Automatas y compiladores clase2
Upcoming SlideShare
Loading in...5
×
 

Automatas y compiladores clase2

on

  • 3,942 views

 

Statistics

Views

Total Views
3,942
Views on SlideShare
3,942
Embed Views
0

Actions

Likes
0
Downloads
113
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Automatas y compiladores clase2 Automatas y compiladores clase2 Presentation Transcript

    • Teoría de Autómatas y Compiladores Germania Rodríguez grrodriguez@utpl.edu.ec
    • Análisis Léxico
    • Programa Análisis Tokens Fuente Léxico
    • 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.
    • 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, *, +
    • 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.
    • 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.
    • Ejemplo:•  getTokena[index] = 4 + 2
    • 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}
    • CadenasCombinación, secuencia, concatenación de símbolos basados de un alfabeto; cadena nula, prefijos, sufijos.EJM: casa, 01001Operaciones: – Longitud – Concatenación
    • Lenguaje•  Conjunto de palabras formadas sobre un alfabeto – Castellano•  Restricciones: palabras que no forman parte del Lenguaje, que no están conceptualizadas. – Ejm: abcam
    • 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
    • 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
    • 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
    • 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)
    • 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) = { }
    • 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}
    • 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.
    • 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 ….
    • Precedencia de operaciones1.  Repetición2.  Concatenación3.  Selección de alternativasCuando la precedencia es diferente, debemos usar paréntesis para denotarlo.
    • 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]
    • 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
    • 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