Ing. Informtica Trujillo Per Ing. Juan Orlando Salazar Campos
Palabras Clave: Frases Gramaticales, Lxico, Semntico, Sintctico, Lenguaje Fuente, Lenguaje Objeto, Cdigo Intermedio, Tabla De Smbolos, Analizadores, Herramientas SW
1. Compilador: Es aquel que traduce un lenguaje fuente (lenguaje de programacin) a un lenguaje objeto (lenguaje maquina).
1.1. Partes De La Compilacin: - Anlisis: Divide al programa fuente y crea una representacin intermedia de l, adems determinan y luego registran las operaciones implicadas en un rbol sintctico.
- Sntesis: Construye el programa objeto a partir de la representacin intermedia.
1.2. Herramientas Software: Se usan para la manipulacin de programas fuente; algunas de ellas son: Editores de estructuras, impresoras estticas, verificadores estticos, interpretes
2. Anlisis Del Programa Fuente: 2.1. Anlisis Lineal o Lxico: Lectura de caracteres de izquierda a derecha para luego agruparlos en componentes lxicos (secuencias de caracteres que poseen un significado colectivo).
2.2. Anlisis Jerrquico o Sintctico: Agrupa los componentes lxicos en frases gramaticales rbol De Anlisis Sintctico. Se puede expresar tambin usando reglas recursivas (GIC).
2.3. Anlisis Semntico: Asegura que los componentes de un programa se ajusten de un modo significativo.
3. Fases De Un Compilador: Analizador Lxico, Sintctico, Semntico; 3.1. Administracin De La Tabla De Smbolos: Se realiza a travs de una estructura de datos que contiene un registro por cada identificador, con los campos para sus atributos. 3.2. Manejador De Errores: Cada fase trata de forma diferente los errores encontrados en su momento. 3.3. Generacin De Cdigo Intermedio: Programa para una maquina abstracta, que debe ser fcil de producir y fcil de traducir al programa objeto. 3.4. Optimizacin De Cdigo: Mejora el cdigo intermedio, resultando un cdigo de maquina ms rpido de ejecutar. 3.5. Generacin De Cdigo: Cdigo ensamblador.
4. Programas De Sistemas Relacionados Con Un Compilador: 4.1. Preprocesadores: Producen la entrada para un compilador, pueden realizar funciones como las siguientes:
- Procesamiento De Macros: UsuarioDefinir Macros (Abreviaturas de construcciones mas grandes). - Inclusin de Archivos: Archivos de encabezamiento en el texto del programa (Ej. Libreras). - Preprocesadores Racionales: Enriquecen lenguajes antiguos con recursos modernos de flujo de control y estructuras de datos. - Extensiones A Lenguajes: Crea la posibilidad de lenguajes equivalentes a las macros incorporadas.
4.2. Ensambladores: El cdigo ensamblador es una mnemotecnia del cdigo maquina, donde se usan nombres en lugar de cdigos binarios y direcciones de memoria.
4.3. Ensamblado De Dos Pasadas: Primera Pasada; encontrar todos los identificadores que denoten posiciones de memoria y almacenarlos en la tabla de smbolos, luego asignarles una posicin de memoria; Segunda Pasada; se examina el archivo nuevamente para traducir cada cdigo de operacin en una secuencia de bits y cada identificador a la direccin dada por ese identificador, su resultado generalmente es cdigo maquina re localizable.
4.4. Cargadores y Editores De Enlace: Proceso De Carga tomar el cdigo de maquina re localizable, modificar las direcciones re localizables y ubicar las instrucciones y los datos modificados en las posiciones adecuadas de memoria. Editor De Enlace permite formar un solo programa a partir de varios archivos de cdigo de maquina re localizable.
5. Agrupamiento De Las Fases 5.1. Etapa Inicial: Dependen principalmente del Lenguaje Fuente. Fases: Anlisis lxico y sintctico, creacin de la tabla de smbolos, anlisis semntico, generacin de cdigo intermedio.
5.2. Etapa Final: Dependen de la maquina objeto, no dependen del lenguaje fuente si no solo del lenguaje intermedio. Fases: Optimizacin de cdigo, generacin de cdigo, manejo de errores, operaciones con la tabla de smbolos.
5.3. Pasadas: Consiste en la lectura de un archivo de entrada y la escritura de un archivo de salida.
5.4. Reduccin Del Nmero De Pasadas: Se logra agrupando varias fases dentro de una sola pasada.
6. Herramientas Para La Construccin De Compiladores: - Generadores de analizadores sintcticos, - Generadores de analizadores lxicos, - Dispositivos de traduccin dirigida por la sintaxis, - Generadores automticos de cdigo y - Dispositivos para el anlisis de flujo de datos 7. Conclusiones Un compilador es una mquina que traduce un lenguaje fuente a un lenguaje maquina, mediante un conjunto de fases; donde cada fase puede pertenecer a una agrupacin.
Hoy en da crear un compilador no es una tarea demasiada compleja como lo fue en los aos 50, ahora existen herramientas que nos facilitan dicha creacin.
8. Bibliografa - Principles of Compiler, Alfred V. Aho y Jeffrey D. Ullman