Automatas y compiladores clase2

5,335 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
5,335
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
199
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Automatas y compiladores clase2

  1. 1. Teoría de Autómatas y Compiladores Germania Rodríguez grrodriguez@utpl.edu.ec
  2. 2. Análisis Léxico
  3. 3. Programa Análisis Tokens Fuente Léxico
  4. 4. Análisis LéxicoFunción principal leer el programa fuente como un archivo de caracteres y dividirlo en tokensCaso especial de coincidencia de patrones, que necesita métodos de reconocimiento de patrones que son principalmente expresiones regulares y autómatas finitos.
  5. 5. El proceso de análisis léxicoPatrón: Regla que describe los lexemas que producirán los tokens.To k e n s : S e c u e n c i a d e c a r a c t e r e s q u e representa una unidad de información en el programa fuente. Categorías: palabras reservadas, identificadores, símbolos especialeLexema: cadena de caracteres que se ajustan a un patrón, representada por un token. Ejm: IF, WHILE, a1, *, +
  6. 6. El proceso de análisis léxicoAtributo: Valor asociado al token. Ejm:Registro de token: Recolección de atributos datos estructurados.El analizador léxico funciona bajo el control de analizador sintáctico.
  7. 7. Otras funciones de análisis léxico•  Eliminar comentarios•  Elimina aquellos caracteres o sentencias que carecen de sentido para el Lenguaje•  Reconoce identificadores de usuario, números, palabras reservadas.•  Reporta errores léxicos•  Lleva la cuenta del número de líneas analizadas para reportar los errores.
  8. 8. Ejemplo:•  getTokena[index] = 4 + 2
  9. 9. Componentes Léxicos Alfabetos•  Conjunto finito no vacío de símbolos sobre el que se puede generar cadenas y posteriormente Lenguajes Latino = {a, b, c, d, e, f, …….z} Binario = {0,1}
  10. 10. CadenasCombinación, secuencia, concatenación de símbolos basados de un alfabeto; cadena nula, prefijos, sufijos.EJM: casa, 01001Operaciones: – Longitud – Concatenación
  11. 11. Lenguaje•  Conjunto de palabras formadas sobre un alfabeto – Castellano•  Restricciones: palabras que no forman parte del Lenguaje, que no están conceptualizadas. – Ejm: abcam
  12. 12. Operaciones Lenguaje•  Dado que un Lenguaje es un conjunto, es aplicable todas las operaciones entre conjuntos – Unión – Intersección – Diferencia – Complemento – Potencia o partesCada una con sus propiedades de las operaciones
  13. 13. Operaciones Lenguaje•  Y algunas propias – Concatenación L1 L2 – Estrella Kleene * L* = { } U L U LL U LLL –  Cierre transitivo + L+ = L U LL U LLLTécnicas de Demostración – Demostración por inducción
  14. 14. Gramática•  Mecanismo para generar las cadenas que pertenecen a un lenguaje, a la vez define un conjunto finito de reglas que aplicadas a un estado inicial, son capaces de generar todas sus cadenas. G={ A, T, P, S} A = símbolos auxiliares T= símbolos terminales P= producciones - pares (antecedente, consecuente) S= símbolo inicial de la gramática
  15. 15. Expresión Regular•  Notación que representan de forma abreviada y precisa las cadenas que pertenecen a un lenguaje, denominadas token.•  Esta formada por los caracteres del alfabeto y metacaracteres que denotan operaciones definidas.•  Al conjunto de cadenas con las que concuerdan con la expresión regular r se denominado Lenguaje L(r)
  16. 16. Expresiones Regulares•  Básicas: Representan caracteres simples del alfabeto que corresponden a si mismos Ejm: L(a) = {a}•  Vacía: La cadena que no corresponde a ningun carácter L(E) = E•  Conjunto vacío: No contiene ninguna cadena. L(o) = { }
  17. 17. Operaciones Expresiones Regulares •  Selección: Si r y s son expresiones regulares, la selección se denota r|s y se define por cualquier cadena que concuerda con r o s En términos de lenguaje L(r|s) = L(r) U L(s) La selección se puede extender a más de dos alternativas L(a|b|c|d) = {a,b,c,d}
  18. 18. Operaciones Expresiones Regulares •  Concatenación: Consiste en la yuxtaposición de los caracteres sin un carácter intermedio. La concatenación de las expresiones regulares r y s se denota rs En términos de lenguaje L(rs) = L(r)L(s) La concatenación tambien se puede extender a más de dos expresiones regulares.
  19. 19. Operaciones Expresiones Regulares •  Repetición: Denominada tambien cerradura de Kleene, se denota r* donde r es una expresión regular y corresponde a cualquier concatenación finita de las cadenas r así r* = { } U r U rr U rrr U ….
  20. 20. Precedencia de operaciones1.  Repetición2.  Concatenación3.  Selección de alternativasCuando la precedencia es diferente, debemos usar paréntesis para denotarlo.
  21. 21. Extensiones expresiones regulares•  Una o más repeticiones: Tambien conocida como cerradura positiva es una variante de la cerradura Kleene que indica cero o más repeticiones, se denota con + y equivale una o más repeticiones Ejm: (0|1)+•  Cualquier carácter: Se denota con el metacaracter . y equivale a que puede ser reemplazado con cuanquier carácter del alfabeto Ejm: .*1.* (todas las cadenas que contengan al menos un 1)•  Intervalo: Se denota con corchetes y un guión Ejm: [a-z]
  22. 22. Extensiones expresiones regulares•  Cualquier carácter que no este en el conjunto Se denota con la el metacaracter -, significa que no incluya el o las expresiones regulares afectadas. Ejm: - (a|c)•  Subexpresión opcional Metacaracter ? Indica la opcionalida de cadenas que pueden o no aparecer Ejm: (+|-)? dígito
  23. 23. Bibliografía•  Kenneth C. Louden, Construccion de Compiladores Principios Y Práctica•  Universidad Jaume, Open Course Ware –II20 Teoría de autómatas y lenguajes formales en: http://e-ujier.uji.es/pls/ w w w / ! g r i _ w w w . e u j i 2 2 1 0 1 ? p_id=7&p_tipo=A&p_curso=II20&p_idioma=ES•  http://www.slideshare.net/perlallamas/analisis-lexico-2•  http://www.slideshare.net/felipeiluminati/expresiones-regulares

×