Successfully reported this slideshow.

Analisis Lexico Ii

0

Share

Upcoming SlideShare
Leccion 2 Java
Leccion 2 Java
Loading in …3
×
1 of 10
1 of 10

Analisis Lexico Ii

0

Share

Download to read offline

Continuación de la primera presentación sobre análisis léxico y análisis sintáctico, muestra cómo los árboles de análisis sintáctico se harían innecesariamente largos si se utilizaran gramáticas formales para ciertas construcciones que pueden analizarse con expresiones regulares.

Continuación de la primera presentación sobre análisis léxico y análisis sintáctico, muestra cómo los árboles de análisis sintáctico se harían innecesariamente largos si se utilizaran gramáticas formales para ciertas construcciones que pueden analizarse con expresiones regulares.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Analisis Lexico Ii

  1. 1. Análisis Léxico Arboles de Análisis Sintáctico Recortados Leonel Morales Díaz [email_address] Copyright 2008 by Leonel Morales Díaz – Ingeniería Simple. Derechos reservados Disponible en: http://www.ingenieriasimple.com/compiladores
  2. 2. Analizar Léxico <ul><li>Arbol de Análisis Sintáctico </li></ul><ul><ul><li>x++ </li></ul></ul>Programa Instrucción Variable x ++ ¿Variable?
  3. 3. Producción de variable <ul><li>Variable -> Inicial Resto </li></ul><ul><li>Inicial -> _ | Letra </li></ul><ul><li>Resto -> Letra Resto | Especial Resto </li></ul><ul><li>Número Resto | nil </li></ul><ul><li>Letra -> [a..z] </li></ul><ul><li>Especial -> _ | - </li></ul>
  4. 4. Analizador Léxico <ul><li>Transformar no terminal en terminal </li></ul><ul><li>Programa -> Instrucción | { Rutina } </li></ul><ul><li>Rutina -> Instrucción ; Instrucción | </li></ul><ul><li>Instrucción ; Rutina </li></ul><ul><li>Instrucción -> nil | Variable ++ | Variable -- | </li></ul><ul><li>While Prueba do Programa </li></ul><ul><li>Prueba -> Variable <> 0 | Variable = 0 </li></ul><ul><li>Variable -> var </li></ul><ul><ul><li>(terminal) </li></ul></ul>
  5. 5. Analizador Léxico <ul><li>Variable -> var </li></ul><ul><ul><li>(terminal) </li></ul></ul><ul><li>Compone lexema </li></ul><ul><ul><li>“ _ammm-8ab” </li></ul></ul><ul><li>Lo transforma en var </li></ul><ul><li>El árbol sintáctico no crece más </li></ul>
  6. 6. Funciones Analizador Léxico <ul><li>Eliminar espacios </li></ul><ul><li>Eliminar comentarios </li></ul><ul><li>Constantes </li></ul><ul><li>Reconoce identificadores </li></ul><ul><li>Reconoce palabras clave </li></ul><ul><li>Palabras clave no pueden ser identificadores </li></ul>
  7. 7. Ejemplos <ul><li>Cuenta = Cuenta+ Incremento ; </li></ul><ul><li>id = id + id ; </li></ul><ul><li>id=id+id; </li></ul><ul><li>If a >= b then </li></ul><ul><li>If id mayorig b then </li></ul>
  8. 8. Tabla de símbolos <ul><li>Registrar todo los id </li></ul><ul><li>Funciones: </li></ul><ul><ul><li>Inserta(s,t) </li></ul></ul><ul><ul><ul><li>s es la cadena (Cuenta = ...) </li></ul></ul></ul><ul><ul><ul><li>t es el componente léxico (id) </li></ul></ul></ul><ul><ul><li>Busca(s) </li></ul></ul><ul><ul><ul><li>Verdadero si s existe en la tabla </li></ul></ul></ul><ul><ul><ul><li>Falso si s no existe </li></ul></ul></ul>
  9. 9. Tabla de símbolos <ul><li>Manejo de palabras reservadas </li></ul><ul><ul><li>char while; </li></ul></ul><ul><ul><li>int for; </li></ul></ul><ul><li>Dos opciones </li></ul><ul><ul><li>Meter todas las palabras clave en tabla </li></ul></ul><ul><ul><li>Hacer que las funciones las reconozcan </li></ul></ul>
  10. 10. Palabras reservadas <ul><li>Bien definidas desde el inicio </li></ul>

×