La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

A NÁLISIS L ÉXICO Y ANÁLISIS SINTÁCTICO. COMPILADORES ANÁLISIS LÉXICO Y ANÁLISIS SINTÁCTICO ANGIE EVILLA LUQUEZ CORPORACIÓN UNIVERSITARIA REMINGTON INGENIERÍA.

Presentaciones similares


Presentación del tema: "A NÁLISIS L ÉXICO Y ANÁLISIS SINTÁCTICO. COMPILADORES ANÁLISIS LÉXICO Y ANÁLISIS SINTÁCTICO ANGIE EVILLA LUQUEZ CORPORACIÓN UNIVERSITARIA REMINGTON INGENIERÍA."— Transcripción de la presentación:

1 A NÁLISIS L ÉXICO Y ANÁLISIS SINTÁCTICO

2 COMPILADORES ANÁLISIS LÉXICO Y ANÁLISIS SINTÁCTICO ANGIE EVILLA LUQUEZ CORPORACIÓN UNIVERSITARIA REMINGTON INGENIERÍA DE SISTEMAS

3 ANALISIS LEXICO FUNCION DEL ANLIZADOR LEXICO  El analizador léxico es la primera fase de un compilador. Su principal función consiste en leer los caracteres de entrada y elaborar como salida una secuencia de componentes léxicos que utiliza el analizador sintáctico para hacer el análisis.  En algunas ocasiones, los analizadores léxicos se dividen en una cascada de dos fases; la primera, llamada "examen", y la segunda, "análisis léxico". El examinador se encarga de realizar tares sencillas, mientras que el analizador léxico es el que realiza las operaciones complejas.

4 ASPECTO DEL ANALISIS LEXICO Hay varias razones para dividir la fase de análisis de la compilación en análisis léxico y análisis sintáctico.  Un diseño sencillo es quizá la consideración más importante. Separar el análisis léxico del análisis sintáctico a menudo permite simplificar una u otra de dichas fases.  Se mejora la eficiencia del compilador. Un analizador léxico independiente permite construir un procesador especializado y potencialmente más eficiente para esta función. Gran parte de tiempo se consume en leer el programa fuente y dividirlo en componentes léxicos. Con técnicas especializadas de manejo de buffer para la lectura de caracteres de entrada y procesamiento de componentes léxicos se puede mejorar significativamente el rendimiento de un compilador.  Se mejora la transportabilidad del compilador. Las peculiaridades del alfabeto de entrada y otras anomalías propias de los dispositivos pueden limitarse al analizador léxico.

5 COMPONENTES LEXICOS, PATRONES Y LEXEMAS Cuando se menciona el análisis sintáctico, los términos "componente léxico"(token), "patrón" y "lexema" se emplean con significados específicos. En general, hay un conjunto de cadenas en la entrada para el cual se produce como salida el mismo componente léxico. Este conjunto de cadenas se describe mediante una regla llamada patrón asociado al componente léxico. Se dice que el patrón concuerda con cada cadena del conjunto. Lexema es una secuencia de caracteres en el programa fuente con la que concuerda el patrón para un componente léxico. Los componentes léxicos se tratan como símbolos terminales de la gramática del lenguaje fuente, con nombres en negritas para representarlos.

6 ATRIBUTOS DE LOS COMPONENTES LEXICOS  Cuando concuerda con un lexema más de un patrón, el analizador léxico debe proporcionar información adicional sobre el lexema concreto que concordó con las fases del compilador.  El analizador léxico recoge información sobre los componentes léxicos en sus atributos asociados.  Los componentes léxicos influyen en las decisiones del análisis sintáctico, y los atributos, en la traducción de los componentes léxicos.  En la práctica, los componentes léxicos suelen tener un solo atributo – un apuntador a la entrada de la tabla de símbolos donde se guarda la información sobre el componente léxico; el apuntador se convierte en el atributo del componente léxico.

7 CARACTERÍSTICAS DEL ANÁLISIS LÉXICO  Lee caracteres.  Produce componentes léxicos (tokens).  Filtra comentarios.  Filtra separadores múltiples (espacios, tabuladores y saltos de línea).  Lleva el contador de línea y columna del texto fuente.  Genera errores en caso de que la entrada no corresponda a ninguna categoría léxica.

8 ALGUNAS DEFINICIONES  Categoría léxica: Tipo de símbolo elemental del lenguaje fuente, (identificadores, palabras clave, constantes numéricas, operadores,...).  Componente léxico (token): Elemento perteneciente a una categoría léxica.  Atributos de un componente: Información del componente necesaria en etapas posteriores del análisis (valor de la constante, nombre de una variable,...).  Lexema: Cadena de caracteres correspondiente al componente léxico.

9 ANALISIS SINTACTICO comprueba que las sentencias que componen el texto fuente son correctas en el lenguaje, creando una representación interna que corresponde a la sentencia analizada. De esta manera se garantiza que sólo serán procesadas las sentencias que pertenezcan al lenguaje fuente. Durante el análisis sintáctico, así como en las demás etapas, se van mostrando los errores que se encuentran.

10 RAZONES POR LAS QUE SE SEPARA LA FASE DE ANÁLISIS DE UN COMPILADOR EN ANÁLISIS LEXICOGRÁFICO Y ANÁLISIS SINTÁCTICO.  En el diseño del analizador sintáctico, éste no ha de preocuparse de leer el archivo de entrada, ni de saltar blancos, ni comentarios, ni de recibir caracteres inesperados, puesto que todo ello ha sido filtrado previamente por el analizador lexicográfico.  Se mejora la eficiencia del compilador en su conjunto. La lectura del programa fuente suele requerir gran parte del tiempo de compilación, que se ve reducido si el analizador lexicográfico incorpora técnicas especiales de lectura, o está realizado en ensamblador.  Aumenta la portabilidad del compilador, ya que todas las diferencias que se produzcan en el alfabeto de entrada, o en el dispositivo de almacenamiento, pueden ser reducidas al analizador lexicográfico, dejando al analizador sintáctico intacto.

11 FUNCIÓN DEL ANÁLISIS SINTÁCTICO Analizar sintácticamente una cadena de tokens no es más que encontrar para ella el árbol sintáctico o de derivación que tiene como raíz el axioma de la gramática, y como nodos terminales la sucesión ordenada de símbolos que componen la cadena analizada. En caso de no existir este árbol sintáctico, la cadena no pertenecerá al lenguaje, y el analizador sintáctico ha de emitir el correspondiente mensaje de error. Existen dos formas de analizar sintácticamente una cadena:

12 ANÁLISIS DESCENDENTE: Partiendo del axioma inicial de la gramática se va descendiendo utilizando las derivaciones izquierdas, hasta llegar a construir la cadena analizada. Análisis ascendente: Se va construyendo el árbol desde sus nodos terminales. Es decir, se construye desde los símbolos de la cadena hasta llegar al axioma de la gramática. Simultáneamente a la fase de análisis sintáctico, además de reconocer las secuencias de tokens, y analizar su estructura, pueden realizarse una serie de tareas adicionales, como:  Recopilar información de los distintos tokens y almacenarla en la tabla de símbolos.  Realizar algún tipo de análisis semántico, tal como la comprobación de tipos.  Generar código intermedio.  Avisar de los errores que se detecten.

13 Bibliografía: http://www.galeon.com/shock/tareas.html http://www.uhu.es/francisco.moreno/gii_pl/ docs/Tema_2.pdf http://informatica.uv.es/docencia/iiguia/asi gnatu/2000/PL/2008/tema2.pdf

14 G RACIAS !!!


Descargar ppt "A NÁLISIS L ÉXICO Y ANÁLISIS SINTÁCTICO. COMPILADORES ANÁLISIS LÉXICO Y ANÁLISIS SINTÁCTICO ANGIE EVILLA LUQUEZ CORPORACIÓN UNIVERSITARIA REMINGTON INGENIERÍA."

Presentaciones similares


Anuncios Google