Anda di halaman 1dari 5

Lenguajes Compiladores e Interpretes

Jose Barboza Jiemenez 201117197 February 23, 2014


Generacion de Codigo Intermedio En esta fase se genera una primera version del lenguaje objeto al cual se desea transformar el lenguaje fuente. Esta primera version piede ser mejodara posteriormente.En este punto se hace una transformacion aplicando algoritmos como: Codigo de tres direcciones Creacion o sustitucion de variables por unas mas simples Construccion de gracos dirigidos acicliclos para optimizas la primera version. Los grafos dirigidos aciclicos tienen una orientacion, no permiten ciclos y buscan tener la menor cantidad de variables temporales.

Optimizacion de Codigo Intermedio Reducir operaciones Reducir codigo Eliminar codigo que no se necesita Cambiar el orden del codigo para mejorar el rendimiento Disminuir el uso de variables 1

Utilizacion de memoria Reutilizacion de codigo Detectar errores de ejecucion

Generacion de Codigo Final Genera la salida Cuando es un compilador genera un archivo ejecutable Cuando es un interprete genera una instruccion ejecutable Caracteristicas de la salida Formato del archivo Encoding Tabla de Simbolos Almacena datos como variables y constantes, estos pueden ser: Nombre Tipo Alcance Valor Nombre temporal asociado Utilizacion Inicializacion Manejo de Errores La construcccion de un manejador de errores permite al desarrollador: 2

Mas informacion Localizacion Opciones de correccion Avanzar en el proceso en busqueda de mas errores Correccion automatica de errores

Pasadas Una pasada: Lee el programa fuente solo una vez. Multiples pasadas: Requiere varias lectiras del codigo para realizar la compilacion. Generalmente las lecturas de una sola pasada tienden a ser mas optimos que los de multiples pasadas, estos ultimos normalmente son utilizados por interpretes y menos por compiladores ya que tienen un costo elevado. Diferencias entre Compilador e Interprete

Compilador Tiene como salida un unico lenguaje objeto. El rendimiento en ejecucion del programa compilado (salida) es mas rapido que interpretado. La salida puede depender de la arquitectura. No requiere del programa fuente porque el programa objeto es portable,es decir el programa Fuente puede ser desconocido. Los errores sintacticos y semanticos se detectan antes de la ejecucion del programa objeto. Tienen menos exibilidad en el uso de memoria para el programa objeto.

Interprete Tiene como salida instrucciones tradicidas. El rendimiento se somete al rendimiento de realizar la traduccion una a una. Tiende a ser portable e independiente de la arquitectura. Se requieren del programa fuente para su ejecucion.

Se detectan los errores en la ejecucion del programa.

Es mas exible porque el programa puede usar la memoria.

Taxonomia de los compialdores Cruzados: Utilizados para generar lenguaje objeto para una arquitectura distinta. Optimizadores: Relacionados a hacer codigo mas robusto, mejorando su eciencia. Una Pasada: Generan codigo objeto a partir de una unica lectura del codigo. Varias Pasadas: Deben hacer varias lecturas del codigo para generar codigo objeto. Jit (Just in time): Es un hibrido entre compilador e interprete. Esta mas realcionado a tener un compilador de secciones de codigo dentro de un interprete. Ensambladores: Utilizan nmomicos.

Anda mungkin juga menyukai