LENGUAJES DE PROGRAMACION INFORMATICOS PARA EL DESARROLLO DE SOFTWARE 3. LOS LENGUAJES DE PROGRAMACION Para que un procesador realice un proceso se le debe suministrar un algoritmo adecuado. El procesador debe ser capaz de interpretar el algoritmo, lo que significa: - Comprender las instrucciones de cada paso. Realizar las operaciones correspondientes. Un programa se escribe en un lenguaje de programación y las operaciones que conducen a expresar un algoritmo en forma de programa se llama programación. Los tipos de lenguaje utilizados en la actualidad son: o o o Lenguaje Máquina. Lenguaje de bajo nivel (ensamblador) Lenguaje de alto nivel. 3.1. Instrucciones a la computadora Las instrucciones básicas y comunes a casi todos los lenguajes de programación se pueden condensar en cuatro grupos: o o o o Instrucciones de entrada y salida, estas son instrucciones de transferencia de información y datos entre distintos dispositivos (teclado, impresora, mouse, unidades de disco, entre otros) y la memoria central. Instrucciones aritméticas – lógicas, estas instrucciones ejecutan operaciones aritméticas (suma, resta, multiplicación, división y potencias), y las lógicas (operaciones AND, OR, NOT, etc) Instrucciones selectivas, estas instrucciones permiten la selección de tareas alternativas en función de los resultados de diferentes expresiones condicionales. Instrucciones repetitivas, estas nos permiten la repetición de secuencias de instrucciones, un numero determinado o indeterminado de veces. 3.2. Lenguajes máquina. Estos lenguajes son aquellos que están escritos directamente en el lenguaje máquina, ya que son inteligibles por la computadora, estas instrucciones son cadenas binarias (cadenas de dígitos 0 y 1), se denominan instrucciones de máquina o código máquina. Las ventajas son la posibilidad de cargar (transferir un programa a la memoria) sin la necesidad de traducirlo, lo que hace que tenga un velocidad superior en la ejecución del mismo. 1 Las desventajas son: o o o o Dificultad y lentitud en la codificación. Poca fiabilidad. Dificultad grande de verificar y poner a punto los programas Solo son ejecutados en el mismo procesador. 3.3. Lenguajes de bajo nivel Estos son mas fáciles de utilizar que los anteriores, ya que dependen de la computadora, el lenguaje de bajo nivel es por excelencia ensamblador (assembly language). Estos conllevan a instrucciones conocidas como nemotécnicos, o sea, típicos de operaciones aritméticas como: ADD, SUN, DIV, etc o bien en español SUM, RES, DIV, etc. Una instrucción típica seria la suma, como ejemplo; ADD M, N, P Esta instrucción significa “sumar el numero contenido en M al numero almacenado en N y situar el resultado en P, o sea, ( P = M + N ). Los inconvenientes más notables de este lenguaje ensamblador son: o o Depende totalmente de la máquina, lo que impide transportar los programas. Formación de los programadores es más compleja que la correspondiente a los programadores de alto nivel, ya que les exige no solo técnicas, sino también el conocimiento interno del la computadora. 3.4. Lenguajes de alto nivel Estos son los más usados por los programadores en la actualidad. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más sencillo, que los lenguajes maquina y ensamblador. Los programas escritos en este lenguaje de alto nivel pueden ser transportados a cualquier otro equipo ya que no dependen del mismo para funcionar. Las ventajas de los lenguajes de alto nivel. o o o o o Formación de los programas es más rápida, se requiere menor tiempo. La escritura es parecida el lenguaje humano. Ejemplo instrucciones como Write, Read, Print, etc. Las modificaciones y puestas a punto son más fáciles. Reducción del coste de los programas. Transportabilidad de los mismos. 2 Las desventajas que podemos encontrar en este son: o o o o Incremento de tiempo de puesta a punto. No se aprovechan los recursos internos de los equipos. Aumento del uso de memoria. El tiempo de ejecución de los programas es mucho mayor. Los programas fuentes tiene que ser traducidos, en este caso por medio de un compilador o un interpretador. Entre los lenguajes de programación de alto nivel, podemos encontrar los siguientes: Los lenguajes de programación de alto nivel se reducen a: C C++ COBOL FORTRAN BASIC PASCAL VISUAL BASIC JAVA Se están extendiendo: CLIPPER ADA MODULA-2 PROLOG LISP SMALLTALK Y comienzan a bifurcarse VISUAL OBJECT DELPHI MIRADA EIFFEL 3.5. Traductores de lenguajes. Los traductores son programas que traducen el programa fuente en lenguaje maquina, para ser entendida por la computadora. Estos se dividen en: o o Compiladores Interpretadores. 3.5.1. Interpretadores Estos son un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta. Ejemplos: BASIC. 3.5.2. Compiladores Un compilador es un programa que traduce los programas fuente escritos en lenguaje de alto nivel –Pascal, FORTRAN, etc . –a lenguaje máquina. Los lenguajes compiladores típicos son: C, C++, PASCAL, FORTRAN, COBOL, etc. 3 3.6. La compilación y sus fases. La compilación es el proceso de traducción de programas fuentes a programas objetos. El programa objeto obtenido de la compilación ha sido traducido normalmente a código máquina. Para conseguir el programa máquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje máquina directamente ejecutable. PROGRAMA FUENTE COMPILADOR (TRADUCTOR) FASE DE LA COMPILACION PROGRAMA OBJETO MONTADOR Nota: Este es un proceso intermedio del compilador, el proceso no lo vemos, es interno de la máquina PROGRAMA EJECUTABLE EN LENGUAJE MAQUINA EL proceso de ejecución de un programa Pascal, por ejemplo, tiene los siguientes pasos: 1234567- Escritura del código fuente con un editor (Programa de programación). Introducir el programa en memoria. Compilar el programa con el compilador Pascal. Verificar y corregir errores de compilación (listado de errores). Obtención del programa objeto. El montador obtiene el programa ejecutable. Se ejecuta el programa y, si no existen errores, se tendrá salida del programa. 4 El proceso de ejecución sería el siguiente: Programa Fuente Programa COMPUTADORA Compilador Datos programa ejecutable Si Resultados Existen errores en la compilación No Programa Montador Programa Ejecutable Ejecución Fase de la Ejecución de un Programa 5