Está en la página 1de 14

FUNDAMENTOS DE PROGRAMACION

UNIDAD I CONCEPTOS BSICOS. 1.- Clasificacin del Software El software es la parte lgica (intangible) de una computadora, que permite el manejo de los recursos y la realizacin de tareas especificas, tambin denominados programas. En general el software se clasifica en 2 grupos: 1. Software de Sistemas 2. Software de Aplicacin 1. SOFTWARE DE SISTEMAS: Son aquellos programas que permiten la administracin de la parte fsica o los recursos de la computadora, es la que interacta entre el usuario y los componentes hardware de la computadora. En seguida se muestra como se clasifica a su vez este grupo: Compiladores Procesadores de Lenguajes Intrpretes software de Sistemas: Basados en caracteres Sistemas Operativos Basados en una Interfaz Grfica

2. SOFTWARE DE APLICACION: Son aquellos programas que nos ayudan a realizar tareas especficas como son: edicin de textos, imgenes, clculos, etc. a estos programas tambin se les conoce como aplicaciones. Software de Uso General El software para uso general ofrece la estructura para un gran nmero de aplicaciones empresariales, cientficas y personales. El software de hoja de clculo, de diseo asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categora. La mayora de software para uso general se vende como paquete; es decir, con software y documentacin orientada al usuario (manual de referencia, plantillas de teclado y dems). Software de aplicaciones El software de aplicacin est diseado y escrito para realizar tareas especficas personales, empresariales o cientficas como el procesamiento de nminas, la administracin de los recursos humanos o el control de inventarios. Todas estas aplicaciones procesan datos (recepcin de materiales) y generan informacin (registros de nmina) para el usuario.

MC. IRENE GARCIA ORTEGA

MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

Definicin de Lenguaje
Lenguaje: Es una serie de smbolos que sirven para transmitir uno o ms mensajes (ideas) entre dos entidades diferentes. Lenguajes de Programacin: Cualquier lenguaje es solamente un conjunto de reglas para especificar la forma en que las cosas deben expresarse a fin de que sean entendidas. Un lenguaje de programacin es un conjunto de smbolos, caracteres y reglas que le permiten a las personas comunicarse con la computadora. Los lenguajes de programacin tienen un conjunto de instrucciones o sentencias cada una de las cuales especifica ciertas operaciones que debe ejecutar la computadora. Las instrucciones bsicas y comunes a casi todos los lenguajes de programacin se pueden condensar en cuatro grupos: Instrucciones de Entrada/Salida: Son las instrucciones de transferencia de informacin y datos entre los dispositivos perifricos. Instrucciones Aritmticas/Lgicas: Son las instrucciones que ejecutan operaciones aritmticas (suma, resta, multiplicacin, divisin), y lgicas (operaciones que conjuntan varias condiciones para determinar la ejecucin de otras instrucciones). Instrucciones selectivas: Son las instrucciones que permiten la seleccin de tareas alternativas en funcin de los resultados de diferentes expresiones condicionales. Instrucciones Repetitivas: Instrucciones que permiten la repeticin de secuencias de instrucciones un nmero determinado o indeterminado de veces. Los lenguajes de programacin se clasifican en: Lenguaje Maquina: Son aquellos cuyas instrucciones estn escritas en lenguajes directamente entendibles por la computadora y no necesitan traduccin posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en trminos de la unidad de memoria mas pequea el bit (dgito binario 0 o 1) ya que son cadenas binarias que especifican una operacin y las direcciones de memoria implicadas.. Ventajas del Lenguaje Mquina Posibilidad de cargar (transferir un programa a memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de programacin. Desventajas del Lenguaje Mquina Dificultad y lentitud en la codificacin. Poca fiabilidad. Gran dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el mismo procesador (CPU).

MC. IRENE GARCIA ORTEGA

MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

Lenguaje de Bajo Nivel (Ensamblador): Son ms fciles de utilizar que los lenguajes mquina. Son dependientes del hardware. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos para las operaciones y direcciones simblicas. Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son: ADD, SUB, DIV, etc. Un programa escrito en lenguaje ensamblador, requiere de una fase de traduccin al lenguaje mquina para poder ser ejecutado directamente por la computadora. Ventajas del lenguaje ensamblador frente al lenguaje mquina Mayor facilidad de codificacin y, en general, su velocidad de clculo. Desventajas del lenguaje ensamblador Dependencia total de la mquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes mquinas, la formacin de los programadores es ms compleja que la correspondiente a los programadores de alto nivel, ya que exige no solo las tcnicas de programacin, sino tambin el conocimiento del interior de la mquina. Lenguaje de Alto Nivel: (C, Pascal, Cobol, Fortran, Java, etc.) son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensin del programa. Un programa escrito en lenguaje de alto nivel es independiente de la mquina (las instrucciones no dependen del diseo del hardware o de una computadora en particular), por lo que estos programas son portables. Ventajas de los lenguajes de alto nivel El tiempo de formacin de los programadores es relativamente corto comparado con otros lenguajes, la escritura de programas se basa en reglas sintcticas similares a los lenguajes humanos, las modificaciones y puestas a punto de los programas son ms fciles. Desventajas de los lenguajes de alto nivel Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la mquina que se explotan mucho mejor en lenguajes mquina y ensambladores. Aumento de la ocupacin de memoria. El tiempo de ejecucin de los programas es mucho mayor.

La computadora no solamente es una maquina que puede realizar procesos para dar resultados, sin que se tenga la nocin exacta de las operaciones que realiza para llegar a dichos resultados; adems de lo anterior tambin podemos disear soluciones a la medida, de problemas especficos que se nos presenten, lo cual necesariamente requiere una metodologa que nos ensee de manera gradual, la forma de llegar a estas soluciones. A las soluciones creadas por computadora se les conoce como programas. Un programa es simplemente una secuencia de instrucciones escritas en algn lenguaje de programacin, que la computadora puede entender y ejecutar para llegar a un resultado, con un grupo de datos especficos.
MC. IRENE GARCIA ORTEGA MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

Para realizar programas, adems de conocer la metodologa mencionada, tambin debemos de conocer, de manera especfica las funciones que puede realizar la computadora y las formas en que se pueden manejar los elementos que la componen. Una Computadora es un dispositivo electrnico de uso general, utilizado para procesar informacin y obtener resultados. Los datos y la informacin se pueden introducir en la computadora como entrada y a continuacin se procesan para producir una salida. Toda computadora, est compuesta de cuatro componentes bsicos, estos son: las unidades de almacenamiento (memoria), la unidad de aritmtica/lgica, la unidad de entrada/salida y la unidad de control.

Organizacin fsica de una computadora CPU Dispositivos de de Entrada Memoria Unidad de Arit./Log. Unidad de Control Dispositivos Salida

La Unidad Central de Proceso (C.P.U.) A la combinacin de la unidad de control y la unidad Aritmtico Lgica se le conoce como Unidad Central de Proceso. Unidad de Control: representa el corazn de una computadora. Se encarga de controlar y coordinar las actividades de la computadora y determina que operaciones se deben realizar y en que orden; as mismo controla todo el proceso de la computadora. Unidad Aritmtico - Lgica: Componente bsico de cualquier computadora, donde se efectan todas las operaciones. En ella se realizan operaciones aritmticas como la suma, resta, multiplicacin y divisin, y las operaciones lgicas como las comparaciones. Cuando se efectan clculos complejos, es necesario que la informacin se mueva frecuentemente hacia y desde la memoria principal, durante el desarrollo de la computacin. La Memoria de la computadora se divide en dos: Memoria Central (Interna o Primaria) Memoria Auxiliar ( Externa o Secundaria) Memoria Central: Esta memoria se clasifica en dos:

MC. IRENE GARCIA ORTEGA

MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

Memoria RAM (RAM -Random Access Memory-) es la memoria de acceso aleatorio. Recibe el nombre de memoria principal o memoria del usuario, en ella se almacena informacin solo mientras la computadora esta encendida. Cuando la computadora se apaga o arranca nuevamente, la informacin se pierde, de ah que se le denomine tambin memoria voltil. Memoria ROM (Read Only Memory): Es la memoria de slo lectura en ella la informacin no se puede cambiar, la computadora puede leer los datos almacenados en la memoria ROM, pero no se pueden introducir datos en ella, o cambiar los datos que ah se encuentran. Los datos de la memoria ROM estn grabados en forma permanente y son introducidos por el fabricante de la computadora. Memoria Auxiliar: Conocida tambin como medio de almacenamiento secundario, es donde se almacenan todos los programas o datos que el usuario desee. Los dispositivos de almacenamiento o memorias auxiliares (externas o secundarias) ms comnmente utilizados son: cintas magnticas y discos magnticos. Toda computadora necesita establecer contacto con el mundo exterior por medio de lo que se conoce como dispositivos de entrada y de salida. Dispositivos de Entrada: Proporcionan los medios por los cuales los datos (informacin) son transmitidos a la computadora y se almacenan en la memoria central o interna. Existe una gran variedad de dispositivos de entrada por ejemplo: teclado (el ms utilizado), Mouse (ratn), scanner (digitalizadores de rastreo), joystick (palancas de juego), lpiz ptico, etc. Dispositivos de Salida: son los dispositivos que permiten visualizar los resultados del procesamiento de la informacin, que sirven al usuario. Ejemplo: monitor, impresora.

Definicin de Lenguaje
Lenguaje: Es una serie de smbolos que sirven para transmitir uno o ms mensajes (ideas) entre dos entidades diferentes. A la transmisin de mensajes se le conoce comnmente como comunicacin. Lenguajes de Programacin Cualquier lenguaje es solamente un conjunto de reglas para especificar la forma en que las cosas deben expresarse a fin de que sean entendidas Es un conjunto de smbolos, caracteres y reglas que le permiten a las personas comunicarse con la computadora. Los lenguajes de programacin tienen un conjunto de instrucciones o sentencias cada una de las cuales especifica ciertas operaciones que de be ejecutar la computadora. Las instrucciones bsicas y comunes a casi todos los lenguajes de programacin se pueden condensar en cuatro grupos:

MC. IRENE GARCIA ORTEGA

MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

Instrucciones de Entrada/Salida: Son las instrucciones de transferencia de informacin y datos entre los dispositivos perifricos. Instrucciones Aritmticas/Lgicas: Son las instrucciones que ejecutan operaciones aritmticas (suma, resta, multiplicacin, divisin), y lgicas (operaciones que conjunta varias condiciones para determinar la ejecucin de otras instrucciones). Instrucciones selectivas: Son las instrucciones que permiten la seleccin de tareas alternativas en funcin de los resultados de diferentes expresiones condicionales. Instrucciones Repetitivas: Instrucciones que permiten la repeticin de secuencias de instrucciones un nmero determinado o indeterminado de veces.

Los lenguajes de programacin se clasifican en: Lenguaje Maquina: Son aquellos cuyas instrucciones estn escritas en lenguajes directamente entendibles por la computadora y no necesitan traduccin posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en trminos de la unidad de memoria ms pequea el bit (dgito binario 0 o 1) ya que son cadenas binarias que especifican una operacin y las direcciones de memoria implicadas.. Ventajas del Lenguaje Mquina o Posibilidad de cargar (transferir un programa a memoria) sin necesidad de traduccin posterior, lo que supone una velocidad de ejecucin superior a cualquier otro lenguaje de programacin. Desventajas del Lenguaje Mquina o Dificultad y lentitud en la codificacin. o Poca fiabilidad. o Gran dificultad para verificar y poner a punto los programas. o Los programas solo son ejecutables en el mismo procesador (CPU). Lenguaje de Bajo Nivel (Ensamblador): Son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos, dependen de la mquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicos para las operaciones y direcciones simblicas.. Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son: ADD, SUB, DIV, etc. Un programa escrito en lenguaje ensamblador, requiere de una fase de traduccin al lenguaje mquina para poder ser ejecutado directamente por la computadora. Ventajas del lenguaje ensamblador frente al lenguaje mquina o Mayor facilidad de codificacin y, en general, su velocidad de clculo. Desventajas del lenguaje ensamblador o Dependencia total de la mquina lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes mquinas.

MC. IRENE GARCIA ORTEGA

MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

La formacin de los programadores es ms compleja que la correspondiente a los programadores de alto nivel, ya que exige no solo las tcnicas de programacin, sino tambin el conocimiento del interior de la mquina.

Lenguaje de Alto Nivel: Los lenguajes de programacin de alto nivel (C, Pascal, Cobol, Fortran, etc.) son aquellos en los que las instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensin del programa. Un programa escrito en lenguaje de alto nivel es independiente de la mquina (las instrucciones no dependen del diseo del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Ventajas de los lenguajes de alto nivel o El tiempo de formacin de los programadores es relativamente corto comparado con otros lenguajes. o La escritura de programas se basa en reglas sintcticas similares a los lenguajes humanos. o Las modificaciones y puestas a punto de los programas son ms fciles. o Transportabilidad. Desventajas de los lenguajes de alto nivel o Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. o No se aprovechan los recursos internos de la mquina que se explotan mucho mejor en lenguajes mquina y ensambladores. o Aumento de la ocupacin de memoria. o El tiempo de ejecucin de los programas es mucho mayor.

Definicin de Algoritmo
La palabra algoritmo se deriva de la traduccin al latn del nombre del famoso matemtico y astrnomo rabe Al-Khwarizmi (siglo IX), que escribi un tratado sobre la manipulacin de nmeros y ecuaciones . Un algoritmo es una serie de pasos, procedimientos o acciones ordenadas, sin ambigedades que nos permiten alcanzar un resultado o resolver un problema. En otras palabras, es un conjunto de reglas para resolver un problema, o una forma de describir la solucin de un problema. Una receta de cocina es un ejemplo de un algoritmo.

Tipos de Algoritmos
Cualitativos: Son los algoritmos descritos en los que se describen los pasos por medio de palabras. Cuantitativos: Son los algoritmos que utilizan clculos numricos para definir los pasos del proceso.

MC. IRENE GARCIA ORTEGA

MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

Lenguajes Algortmicos
Un lenguaje algortmico es una serie de smbolos y reglas que se utilizan para describir de manera explcita un proceso. Tipos de Lenguajes Algoritmicos 1) Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo (diagrama de flujo). 2) No Grficos: Es la representacin descriptiva de las operaciones que debe realizar un algoritmo (pseudocodigo). Paradigmas de programacin Qu es paradigma? Para Kuhn, el trmino se reere a la forma en que un cientco percibe al mundo y a la estructura de teoras y suposiciones que modican esta percepcin. Un sealamiento importante que hace Kuhn es acerca de cmo el xito de un paradigma es consecuencia de su efectividad para resolver un problema. En concreto un paradigma es el resultado de un proceso social en cual un grupo de personas desarrolla nuevas ideas y crea principios y prcticas alrededor de estas ideas. Para las ciencias de la computacin, probablemente fue Robert Floyd quien habl por primera vez del trmino Paradigmas de programacin y quien los defini como un proceso de diseo que va mas all de una gramtica, reglas semnticas y algoritmos, sino que es un conjunto de mtodos sistemticos aplicables en todos los niveles de diseo de programas. Hoy en da, el uso de la computacin es extremadamente diverso e intensivo, el cual va desde asistir el control de aeronaves o plantas nucleares, hasta aplicaciones tan crticas como determinar el tiempo de centrifugado en nuestra lavadora o reproducir en formato .mov la ltima produccin estelarizada por Jenna Jameson. Todas estas distintas aplicaciones del cmputo han requerido del desarrollo de un sinnmero de lenguajes de programacin, cada uno con propsitos y formas distintas. No obstante, todos estos lenguajes pueden ser clasicados en una jerarqua de familias a partir del modelo que siguen para denir y operar informacin. En una primera clasicacin, se encuentran dos grandes grupos en donde es posible englobar casi todos los paradigmas de programacin conocidos hasta ahora. Aunque existe un gran nmero de paradigmas, se explicaran solamente al paradigma imperativo y el orientado a objetos.

MC. IRENE GARCIA ORTEGA

MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

Paradigmas de programacin

Programacin declarativa

Programacin imperativa

Funcional

Orientado a objetos

Lgica

Visual, , Orientada a Eventos, Orientada a Aspectos, etc.

Programacin Imperativa El trmino imperativo en este caso, no diere esencialmente del modo gramtico imperativo del espaol, donde una oracin como: cierre la puerta! est indicando a un sujeto, que realice una accin. Es decir, es una orden para realizar una accin especca. De forma similar, la programacin imperativa consiste en una serie de comandos que una computadora ejecutar. Estos comandos detallan de forma clara y especca el cmo hacer las cosas y llevarn al programa a travs de distintos estados. Los elementos ms importantes de este paradigma son: Variables: Son objetos cuyo valor depende de una localidad de memoria y que puede cambiar a lo largo de la ejecucin del programa. La denicin de este paradigma sera imposible sin estos elementos fundamentales, ya que los estados de un programa son representados y diferenciados por su conjunto de variables y sus contenidos. Tipos de datos: Son abstracciones que representan un conjunto de valores junto con las operaciones y relaciones que son aplicables a ellos. Algunos tipos comunes en varios lenguajes son: Integer, que dene parcialmente el conjunto de los nmeros enteros, oat, que representa nmeros reales y boolean, que generalmente especica al pequeo conjunto conformado por true y false. Es importante recalcar que estos no son los nicos tipos de datos y que muchos lenguajes permiten la implementacin de muchos otros. Expresiones: Aunque son la forma fundamental de programar instrucciones, en la programacin imperativa su papel ms importante est en las sentencias de asignacin. Una sentencia de asignacin sirve para modicar el valor de una variable y as cambiar el estado de un programa. Esto puede ser algo muy sencillo como copiar el valor de una variable a otra localidad de memoria o involucrar algo ms complicado como realizar operaciones sobre las variables antes de relocalizarlas en la memoria. Los operadores empleados pueden ser matemticos, lgicos o una combinacin de ambos.
MC. IRENE GARCIA ORTEGA MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

Estructuras de Control: Las estructuras de control son mecanismos que un lenguaje requiere para realizar dos tareas indispensables: 1. Seleccionar una opcin entre algunos ujos de control alternativos, 2. Iterar la ejecucin de una serie de sentencias. Una sentencia de seleccin provee al programa de medios para elegir entre dos o ms caminos de ejecucin. Su forma ms sencilla es el condicional if que selecciona entre dos opciones y puede extenderse a una seleccin prcticamente innita mediante constructores mltiples (como switch o case ) o la anidacin de condicionales if. Las sentencias de iteracin representan el verdadero poder del cmputo, ejecutan un bloque de sentencias desde cero hasta un nmero tericamente innito de veces. Es interesante que todos los lenguajes de programacin desde el primero, que data de la dcada de los cuarenta, estructuras de iteracin y en su mayora heredan muchas caractersticas de la programacin imperativa.

Paradigma de Programacin Orientado a Objetos La programacin orientada a objetos (POO) es el paradigma de programacin ms popular en la actualidad. Programar bajo este paradigma es como tratar de simular o modelar los objetos del mundo real. Una mascota como un perro podra servir para un ejemplo. Un objeto est compuesto por estados y mtodos. Los estados son propiedades del objeto y estn representados por variables con valores nicos para cada objeto y que son llamadas variables de instancia. En este ejemplo, podramos pensar en cosas como: edad, color, tener hambre, tener ganas de salir al parque, etc., propiedades todas que son intrnsecas a cada perro pero cuyos valores son nicos en cada uno. Los mtodos son representaciones de los comportamientos que el objeto es capaz de hacer. Por ejemplo, mi perro en particular tendra los mtodos: sentarse, echarse, comer, saludar, dormir y bailar, entre otros, y que son comportamientos que probablemente presentan otros perros. Ahora que tenemos una nocin de lo que es un objeto, las propiedades ms generales y formales de este paradigma son: Encapsulamiento: Signica que el cdigo o datos de un objeto pueden estar ocultos. Herencia: La herencia es la propiedad de crear nuevos objetos a partir de la denicin de otros. Polimorsmo: Esencialmente, es la propiedad que le permite a un mtodo aceptar o devolver valores de ms de un tipo. CONCLUSION Como conclusin, slo quiero recalcar que en la actualidad no existe una frontera bien denida para cada paradigma. Los lenguajes actuales, como Ruby, Actionscript o C# pueden ser mejor denidos como multiparadigmas. Involucran caractersticas de ms de uno solo. Tambin cabe mencionar que estos cuatro paradigmas no son los nicos que existen y hay muchos otros que parecen relevantes, como la programacin a aspectos, o

MC. IRENE GARCIA ORTEGA

MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

como la programacin a eventos. De cualquier forma, cualquier tipo de programacin involucra los elementos mencionados en este trabajo.

Editores de Texto Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos nicamente por texto sin formato, conocidos comnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes ledos segn el cdigo de caracteres que usa el editor. Hoy en da es comnmente de 7- 8-bits en ASCII o UTF8, rara vez EBCDIC. Por ejemplo, un editor ASCII de 8 bits que lee el nmero binario 0110 0001 (decimal 97 hexadecimal 61) en el archivo lo representar en la pantalla por la figura a, que el usuario reconoce como la letra "a" y ofrecer al usuario las funciones necesarias para cambiar el nmero binario en el archivo. Los editores de texto son incluidos en el sistema operativo o en algn paquete de software instalado y se usan cuando se deben crear o modificar archivos de texto como archivos de configuracin, scripts o el cdigo fuente de algn programa. El archivo creado por un editor de texto incluye por convencin en DOS y Microsoft Windows la extensin .txt, aunque pueda ser cambiada a cualquier otra con posterioridad. Tanto Unix como Linux dan al usuario total libertad en la denominacin de sus archivos. Al trasladar archivos de texto de un sistema operativo a otro se debe considerar que existen al menos dos convenciones diferentes para sealar el trmino de una lnea: Unix y Linux usan slo retorno de carro en cambio Microsoft Windows usa al trmino de cada lnea retorno de carro y salto de lnea. Compiladores e Intrpretes Las computadoras son equipos electrnicos digitales que procesan informacin codificada en formato binario (habitualmente explicado mediante la metfora de los unos y los ceros). Los propios programas, las instrucciones de procesamiento que debe ejecutar la computadora, se codifican en ese formato binario. Para programar en una computadora debemos, pues, generar la secuencia binaria (la coleccin de unos y ceros) que corresponde a todas las instrucciones y datos del programa que queremos generar. Eso vendra a ser el denominado lenguaje mquina. Sin embargo, hacer esto directamente, aunque posible para pequeos programas, resulta absolutamente inviable si se quieren generar programas complejos, con millones de instrucciones. Las razones para ello son: Los humanos no nos movemos cmodamente con unos y ceros sino con textos, frmulas, etc. Una lista de millones de unos y ceros es enormemente propensa a errores y de una casi imposible depuracin.
MTI. FELIPE RODRIGUEZ RAMIREZ

MC. IRENE GARCIA ORTEGA

FUNDAMENTOS DE PROGRAMACION

El lenguaje mquina est ligado al microprocesador concreto que se utilice, por lo que el mismo programa debera ser completamente reescrito para un nuevo microprocesador. Los lenguajes de programacin pretenden suplir estas carencias proporcionando un mecanismo de programacin: Independiente del microprocesador Ms cercano a las habilidades de los humanos De mucha mayor productividad en la generacin de programas.

Con todo lo visto anteriormente, nos encontramos dos extremos: El lenguaje de alto nivel, que es un texto escrito en pseudoingls y ms o menos comprensible por seres humanos. El lenguaje binario que es propio del microprocesador, que es lo que entiende dicho microprocesador, pero que es prcticamente ilegible por un ser humano. Cmo se salta la distancia entre ambos? El proceso se intenta esquematizar en la siguiente figura:

El programador, con ayuda de una herramienta de edicin de textos (un editor) genera, en el lenguaje de alto nivel elegido, el programa (que incluye todas las definiciones de variables y estructuras de datos, as como el procesamiento a realizar). Esto constituye el denominado cdigo fuente. A continuacin otro programa, realiza la traduccin de este cdigo fuente al lenguaje mquina propio del microprocesador. Los programas que realizan esta labor son los compiladores e intrpretes. Luego, el programa, ya en lenguaje mquina, debe ponerse al alcance del microprocesador. Esto, en el caso de programas compilados, se realiza mediante los denominados programas cargadores que forman parte ya del sistema operativo. En qu se diferencia un compilador de un intrprete? La diferencia fundamental es la siguiente: Los compiladores realizan la traduccin en tiempo de desarrollo. Es decir, el programa an no se est ejecutando. El compilador recibe todo el cdigo fuente, lo analiza, lo optimiza y lo traduce a lenguaje mquina dejando un programa completo listo para su ejecucin. Tpicos lenguajes compilados son C o PASCAL. Los intrpretes realizan la traduccin en tiempo de ejecucin. Es decir, a medida que el programa se va ejecutando, el intrprete va analizando el programa fuente, traduciendo y lo

MC. IRENE GARCIA ORTEGA

MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

ejecuta directamente, sin generar ningn cdigo equivalente a instrucciones al lenguaje mquina. Un tpico lenguaje interpretado es el BASIC.

Intrpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen complementarios:

Un intrprete facilita la bsqueda de errores, pues la ejecucin de un programa puede interrumpirse en cualquier momento para estudiar el entorno (valores de las variables, etc.). Adems, el programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecucin. Un compilador suele generar programas ms rpidos y eficientes, ya que el anlisis del lenguaje fuente se hace una sola vez, durante la generacin del programa equivalente. En cambio, un intrprete se ve obligado generalmente a analizar cada instruccin tantas veces como se ejecute (incluso miles o millones de veces). Los lenguajes compilativos, que permiten el uso de un compilador, prescinden de este tipo de operadores.

Ejecutables un ejecutable o archivo ejecutable, es un archivo binario cuyo contenido se interpreta por la computadora como un programa. Generalmente, contiene instrucciones en cdigo mquina de un procesador en concreto, pero tambin puede contener bytecode que requiera un intrprete para ejecutarlo. Adems suele contener llamadas a funciones especficas de un sistema operativo (llamadas al sistema). Dependiendo del tipo de que se traten las instrucciones, hablaremos de ejecutables portables (se pueden ejecutar en varias plataformas) y no portables (destinado a una plataforma concreta). Por ejemplo, un ejecutable Java es portable ya que utiliza un bytecode no asociado a un procesador en concreto. Existen otro tipo de programas llamados scripts. No contienen cdigo mquina sino el cdigo fuente, que se interpreta a la vez que se ejecuta. Determinar si un archivo es ejecutable es sobre todo una cuestin de convencin. Unos sistemas operativos se basan en la extensin de archivo (como la terminacin .exe) y otros lo hacen leyendo los metadatos (como los bits de permiso de ejecucin en Unix). Consola de Lnea de comandos Interfaz de Lnea de Comandos (CLI), por su acrnimo en ingls de Command Line Interface (CLI), es un mtodo que permite a las personas dar instrucciones a algn programa informtico por medio de una lnea de texto simple.

MC. IRENE GARCIA ORTEGA

MTI. FELIPE RODRIGUEZ RAMIREZ

FUNDAMENTOS DE PROGRAMACION

Las CLI pueden emplearse interactivamente, escribiendo instrucciones en alguna especie de entrada de texto, o pueden utilizarse de una forma mucho ms automatizada (batch), leyendo comandos desde un archivo de scripts. Existen, para diversos programas y sistemas operativos, para diversos hardware, y con diferente funcionalidad. Por ejemplo, las CLI son parte fundamental de los Shells o Emuladores de Terminal. Aparecen en todos los desktops (Gnome, KDE, Windows) como un mtodo para ejecutar aplicaciones rpidamente. Aparecen como interfaz de lenguajes interpretados tales como Java, Python, Ruby o Perl. La contraparte de CLI es la interfaz grfica de usuario (GUI) que ofrece una esttica mejorada y una mayor simplificacin, a costa de un mayor consumo de recursos computacionales, y, en general, de una reduccin de la funcionalidad alcanzable. Asimismo aparece el problema de una mayor vulnerabilidad por complejidad. Las CLI son usadas por muchos programadores y administradores de sistemas como herramienta primaria de trabajo, especialmente en sistemas operativos basados en Unix; en entornos cientficos y de ingeniera, y un subconjunto ms pequeo de usuarios domsticos avanzados. En dispositivos portables y PDAs (como el iPhone), las CLI no se utilizan, debido a lo complejo que resulta ingresar datos de texto, o por la ausencia total de teclados. En su forma ms simple, una CLI consiste en un espacio donde se pueden escribir comandos (por lo usual sealizando con un prompt). El usuario teclea una orden y la ejecuta al pasar a la lnea siguiente, utilizando la tecla Intro/Enter. Las rdenes dadas a la CLI son con frecuencia de la forma: PROMPT>aplicacion [parametros] ficheros o URI... Al finalizar y enviar la orden con Intro, un modulo Interpretador de rdenes analiza la secuencia de caractres recibida y, si la sintaxis de la orden es correcta, ejecuta la orden dentro del contexto del programa o del sistema operativo donde se encuentra. Esta forma de trabajo es secuencial, y equivale a un tipo de programacin paso a paso. El usuario percibe el procesamiento de sus instrucciones en forma de accin. Artculos fuentes de Informacin en Internet: http://www.scribd.com/doc/9174723/Paradigmas-de-Programacion http://es.wikipedia.org/wiki/Editor_de_texto http://igrgavilan.iespana.es/doc/MA_20070506_MT_Lenguajes.pdf http://www.todo-programacion.com.ar/archives/2005/04/interpretes_y_c.html
MC. IRENE GARCIA ORTEGA MTI. FELIPE RODRIGUEZ RAMIREZ

También podría gustarte