Compiladores


FASES DE UN COMPILADOR

  1. Analizador Léxico
  2. Analizador de Sintaxis
  3. Analizador semántico
  4. Generador intermedio de código
  5. Mejora del Código
  6. Generador de código

Fig1: Fases de un compilador

Cada una de las fases hace uso del manejo de una tabla de símbolos y de Errores.

Tabla de Símbolo: Una tabla de símbolos se forma básicamente de una estructura de datos donde cada registro presenta un identificador y sus campos los atributos(tipo de número, espacio asignado, su alcance) del identificador

Detección de Errores: Cada fase puede encontrar errores. Sin embargo, después de detectar un error cada fase debe tratar de alguna forma ese error, para poder continuar la compilación.
Las fases de análisis sintáctico y semántico por lo general manejan una gran porción de errores detectables por el compilador.
  • La fase léxica puede detectar errores donde los caracteres restantes de la entrada no forman ningún componente léxico del lenguaje.
  •  Los errores donde la cadena de componentes léxicos violan las reglas de estructura (sintaxis) del lenguaje son determinadas por la fase de  análisis sintáctico.
  • Durante el análisis semántico el compilador intenta detectar construcciones que no tengan la estructura sintáctica correcta, pero que no tengan significado para la operación implicada. 

ANALIZADOR LÉXICO

   INTRODUCCIÓN

En un compilador el análisis lineal se llama análisis léxico o exploración.
El principal objetivo del analizador léxico es leer el flujo de caracteres  de entrada y transformarlo en una secuencia de componentes léxicos que utilizará el analizador sintáctico. Se ocupa de ciertas labores de “limpieza”, entre ella eliminar los blancos o los comentarios.

   FUNCIONES
  1.  Ignorar caracteres no relevantes
  2.  Agrupar el resto de los caracteres

o   Rechazar agrupaciones inválidas y clasificar las válidas: palabras reservadas, identificadores o variables.

   TOKEN
Símbolos terminales de una gramática. Pueden ser Identificadores, palabras reservadas, operadores

    LEXEMA
Secuencia de caracteres del código fuente que son identificados como un token específico
 Ejemplo:
Else, If, do, int Token Palabras Reservadas

   PATRÓN
Regla que permite determinar que lexemas pertenecen a un token

Token: IDENTIFICADOR      lexema: num1


BIBLIOGRAFÍA
Brookshear, J. G. Teorías de la Computación - Lenguajes Formales, Automátas y Complejidad.
Díaz, E. L. (2002). Análisis y diseño de compiladores. Primera Edicion.
DRAGON BOOK Compiladores Principios - Tecnicas y herramientas.

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Hosted Desktops