Documente Academic
Documente Profesional
Documente Cultură
Guatemala, 2013
Procesador de lenguaje
Programa informtico que recibe como entrada un texto escrito en algn formato, lo analiza y, opcionalmente, produce resultados.
Ejemplos
Compilador Interprete Conversores de formato Formateadores de texto
Interprete
El funcionamiento de un intrprete se caracteriza por traducir y ejecutar, de una en una, las instrucciones del cdigo fuente de un programa, pero, sin generar como salida cdigo objeto.
Tipos de interpretes
Interprete Puro
El proceso es a travs del anlisis de cada sentencia y su ejecucin hasta finalizar todo el programa fuente. Interprete Avanzado
Compilador
Es una herramienta que traduce un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar.
Tipos de compiladores
Compiladores Cruzados Generan cdigo para un sistema distinto del que estn funcionando. Compiladores Optimizadores
Realizan cambios en el cdigo para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
Tipos de compiladores
Compiladores de una sola pasada Generan el cdigo maquina a partir de una nica lectura del cdigo fuente. Compiladores de Varias Pasadas
Necesitan leer el cdigo fuente varias veces antes de poder producir el cdigo maquina.
Tipos de compiladores
Compiladores JIT (Just In Time) Forman parte de un intrprete y compilan partes del cdigo segn se Necesitan. Decompilador
Compilador
Se compila una vez, se ejecuta n veces.
vs.
Interprete
Se traduce cada vez que se ejecuta.
El proceso de compilacin tiene una visin global de todo el programa, por lo cual la gestin de errores es ms eficiente.
La ejecucin es ms rpida.
Fases de un compilador
Cdigo Fuente Anlisis Lxico Anlisis Sintctico Anlisis Semntico Tabla de Smbolos Cdigo Intermedio Optimizacin de Cdigo Generacin de Cdigo Cdigo Objeto Gestin de Errores
Fases de un compilador
Texto
Anlisis Lxico
Esta fase se encarga de verificar si todos los caracteres pertenecen o no al lenguaje. Es decir realiza un anlisis carcter por carcter, generando como salida una coleccin de componentes lxicos que son utilizados en el anlisis sintctico.
Anlisis Sintctico
Lee la secuencia de componentes lxicos y los agrupa realizando un anlisis sobre la estructura de las expresiones en base a gramticas. El anlisis que se realiza es jerrquico es decir en base a rboles de derivacin que se obtienen de las mismas gramticas.
Herramientas
Estas herramientas nos ayudaran a la implementacin del anlisis lxico: Jlex , Lex, Jflex, Flex. Estas herramientas nos ayudara a la implementacin del anlisis Sintactico: Bison, Yacc, Happy , JavaCC, ANTLR y CUP
Anlisis Semntico
Detecta la validez semntica generado del anlisis sintctico. del rbol
Permite comprobar que los argumentos que tienen un operador pertenecen al conjunto de operadores posible, y si son compatibles entre s.
de
tipos,
flujo
de
control,
Optimizacin de cdigo
Consiste en realizar una mejora en el cdigo intermedio, para reducir el nmero de lneas y hacer que la ejecucin sea ms rpida.
Generacin de cdigo
Traduce el cdigo intermedio a cdigo ensamblador o cdigo mquina del procesador que nos interese.
Se traduce cada una de las instrucciones intermedias a una secuencia de instrucciones de mquina. Se seleccionan las posiciones de memoria para las variables usadas por el programa .
Tabla de Smbolos
Estructura de datos que contiene un registro por cada identificador, etiquetas, tipos, etc. Permite encontrar rpidamente cada ID y almacenar o consultar datos de ese registro. En el Anlisis Lxico se detectan los ID y se introducen en la tabla de smbolos. Las fases restantes introducen informacin sobre los ID y despus la utilizan .
Gestin de errores
Cada fase puede encontrar errores y debe tratarlo para continuar con la Compilacin, permitiendo detectar ms errores.
Aplicacin
Diseo de un compilador (poco probable). Tratamiento de ficheros informacin estructurada. de texto con
Procesadores de texto.
Traduccin de formatos de ficheros.