+ All Categories
Home > Technology > Presentación computación 1_compiladores_e_interpretes

Presentación computación 1_compiladores_e_interpretes

Date post: 07-Apr-2017
Category:
Upload: michael-vreys
View: 69 times
Download: 0 times
Share this document with a friend
19
Lenguajes de Programación Compiladores e intérpretes CATEDRA DE COMPUTACION I AÑO 2016
Transcript

Lenguajes de ProgramacinCompiladores e intrpretes

CATEDRA DE COMPUTACION I AO 2016

1

INTRODUCCINLas primeras computadoras ejecutaban instrucciones consistentes en cdigos numricos que sealan a los circuitos de la mquina los estados correspondientes a cada operacin. (Lenguaje de Maquina)Pronto los primeros usuarios de estos ordenadores descubrieron la ventaja de escribir sus programas mediante claves ms fciles de recordar que esos cdigos numricos; al final, todas esas claves juntas se traducan manualmente a Lenguaje Mquina.(Lenguaje Ensamblador)

2

INTRODUCCIONEl lenguaje Ensamblador segua siendo el de una mquina, pero ms fcil de manejar.Esta sentencia en un Lenguaje de Alto NivelA: = B+Cconvertida en Lenguaje Ensamblador quedara:LOAD BADD CSTORE AEst ms cerca de la mquina

3

Traductores de lenguajes de ProgramacinLa programacin de un lenguaje de alto nivel requiere, de algn tipo de interfaz con el lenguaje mquina para que el programa pueda ejecutase.Las interfaces ms comunes son: compilador e "interprete".

4

Traductores de lenguajes de ProgramacinEl Compilador: Traduce el programa a otro equivalente en el lenguaje X de la maquina residente como un paso separado antes de la ejecucin.El Interprete: Ejecuta directamente las instrucciones en un lenguaje Y de alto nivel, sin un paso de procedimiento previo.

5

CONCLUSIONUn compilador: Traduce un Programa Fuente a un Programa Objeto o de mquina y despus que est todo traducido lo ejecuta.Un Ensamblador: es un compilador, pero el programa fuente que debe traducir es un programa ensamblador, lo traduce a programa de mquina y despus lo ejecuta.Un intrprete: no genera un programa equivalente, sino que toma una sentencia del programa fuente en un lenguaje de alto nivel y la traduce al cdigo equivalente en un lenguaje de bajo nivel y al mismo tiempo lo ejecuta.

6

Compiladores Vs. InterpretesCOMPILADORINTRPRETERealizan 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.

Se compila una vez, se ejecuta n veces.

Realizan la traduccin en tiempo de ejecucin. Es decir, a medida que el programa se va ejecutando, el intrprete va traduciendo instrucciones al lenguaje mquina.

La ejecucin es ms lenta, pues cada instruccin debe ser traducida a cdigo mquina tantas veces como sea ejecutada.

7

Funcionamiento de un compiladorA grandes rasgos un compilador es un programa que lee un programa escrito es un lenguaje, el lenguaje fuente, y lo traduce a un programa equivalente en otro lenguaje, el lenguaje objeto.Como parte importante de este proceso de traduccin, el compilador informa a su usuario de la presencia de errores en el programa fuente.

8

Partes en las que trabaja un compiladorConceptualmente un compilador opera en fases. Cada una de las cuales transforma el programa fuente de una representacin en otra. En la figura que est en la prxima filmina se muestra una descomposicin tpica de un compilador.

Fases de un compilador

Programa FuentePrograma Objeto

Tabla de smbolosUn compilador necesita guardar y usar la informacin de los objetos que va encontrando en el texto fuente, como por ejemplo variables, etiquetas, etc. Esta informacin se almacena en una estructura de datos interna conocida como tabla de smbolos.

Manejo de ErroresEs una de las misiones ms importantes de un compilador. Donde ms se utiliza es en las etapas de anlisis sintctico y semntico, aunque los errores se pueden descubrir en cualquier fase de un compilador. Es una tarea difcil, por dos motivos:A veces unos errores ocultan otros.A veces un error provoca una avalancha de muchos errores que se solucionan con el primero.

Manejo de ErroresEs conveniente un buen manejo de errores, y que el compilador detecte todos los errores que tiene el programa y no se pare en el primero que encuentre.Hay, pues, dos criterios a seguir a la hora de manejar errores:Pararse al detectar el primer error.Detectar todos los errores de una pasada.

Funcionamiento de un intrpreteSe caracteriza por traducir y ejecutar, de una en una, las instrucciones del cdigo fuente de un programa, pero sin generar como salida cdigo objeto. El proceso que realiza un intrprete es el siguiente: Lee la primera instruccin del cdigo fuente, la traduce a cdigo objeto y la ejecuta; a continuacin, hace lo mismo con la segunda instruccin; y as sucesivamente, hasta llegar a la ltima instruccin del programa, siempre y cuando, no se produzca ningn error que detenga el proceso.

Criterios de diseo y de implementacin Los Lenguajes de programacin se pueden clasificar segn el paradigma de programacin que soporten: Lenguajes GenricosLenguajes EstructuradosLenguajes Orientados a Objetos

Atributos de un buen lenguajeClaridad, Sencillez y UnidadLa sintaxis del lenguaje afecta la facilidad con la que un programa se puede escribir, poner a prueba, y ms tarde entender y modificar.OrtogonalidadCapacidad para combinar varias caractersticas de un lenguaje en todas las combinaciones posibles, de manera que todas ellas tengan significado.Naturalidad para la aplicacinLa sintaxis del programa debe permitir que la estructura del programa refleje la estructura lgica subyacente.

Atributos de un buen lenguajeApoyo para la abstraccinUna parte importante de la tarea del programador es proyectar las abstracciones adecuadas para la solucin del problema y luego implementar esas abstracciones empleando las capacidades ms primitivas que provee el lenguaje de programacin mismo.Facilidad para verificar programasLa sencillez de la estructura semntica y sintctica ayuda a simplificar la verificacin de programas.Costo de uso1. Costo de ejecucin del programa.2. Costo de traduccin de programas.3. Costo de creacin, prueba y uso de programas.4. Costo de mantenimiento de los programas: costo total del ciclo de vida.

Dominio de Aplicacin

Lenguajes para diversos dominios de aplicacin Cientficos.De Sistemas.De IA (Inteligencia Artificial). De Edicin.De Proceso.Nuevos Paradigmas.


Recommended