jueves, 12 de agosto de 2010

Fases de Compilacion

Fases de Compilación de un Programa


La compilación consiste en la traducción de un programa fuente escrito en un lenguaje de alto nivel a un programa objeto y luego se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje máquina directamente ejecutable.
Intérprete: toma el programa fuente, lo traduce y a continuación lo ejecuta. Un ejemplo de lenguaje interpretado es Java.

Compilador: es un programa que se encargan de convertir las instrucciones escritas en un lenguaje de programación en instrucciones escritas en lenguaje máquina (0´s y 1´s) que la computadora pueda entender. Ejemplos de lenguajes compilados son Pascal, C, C++.

Fases de Proceso de un compilador

1.- Analizador Léxico:
Realiza un análisis del archivo. La cadena de entrada se lee e izquierda a derecha y se va agrupando en componentes léxicos, que son secuencias de caracteres con un significado colectivo. Por ejemplo, identificadores, palabras reservadas, signos de final de instrucción. Cada componente es asociada ala categoría que pertenece.
2.- Analizador Sintáctico
Realiza un análisis jerárquico agrupado de los componentes léxicos en frases gramaticales que el compilador utiliza.
3.- Analizador Semántico
Busca errores semánticos, reúne información sobre los tipos; identifica operadores en base al árbol sintáctico producido en el análisis anterior Ejemplo de error: operación entre tipos de datos incompatibles, rangos permitidos existencia de variables. En cualquiera de estos tres análisis pueden producirse errores.
4.- Generador de código intermedio
Algunos compiladores generan una representación explicita del programa fuente. Este código es independiente de la maquina y a veces se usa en un conjunto con interpretes, en lenguajes independientes de la plataforma como JAVA. Esta representación debe ser fácil de producir, ayudar a la optimización y fácil de traducir al programa objeto.
5.-Optimización
Esta fase trata de mejorar el código intermedio, o las estructuras que generaran el código definitivo de modo de que resulte un código de maquina más rápido de ejecutar para guardarlos valores calculados por cada instrucción.
6.- Generador de código
Esta fase final de un compilador. Genera el código objeto, que por lo general consiste en un código de maquina relocalizable o código ensamblador. Las posiciones de memoria relativas se seleccionan para cada variable. El uso de los registros de la CPU es relevante.
7.- Agrupación lógica de un compilador
Es la fase de análisis, depende del lenguaje fuente y son independientes de las maquinas. Controla la corrección del programa fuente, manejando errores en cada etapa. Produce las estructuras necesarias para la generación del código.
Fase de generación, depende de la maquina y el lenguaje intermedio. Hace uso intensivo de la tabla de símbolos

No hay comentarios:

Publicar un comentario