Escolar Documentos
Profissional Documentos
Cultura Documentos
Análisis Léxico
Ingeniería en Informática
Analizador Léxico
• El analizador léxico lee el programa fuente carácter por
carácter para producir tokens.
• Pasa por alto comentarios y espacios en blanco.
• Devuelve un token cuando el parser lo solicita.
• Correlaciona mensajes de error con el programa fuente.
Token
Programa Analizador Parser Para el Análisis
fuente Léxico Semántico
getNextToken
Tabla de
Símbolos
• Concatenación: = ∈ ∧ ∈ }
• Clausura positiva: = ⋃
• ∪ = , , , !, 1, 2
• = 1, 2, 1, 2, 1, 2, !1, !2
∗
• = todas las cadenas que pueden formarse con las
letras a, b, c, d, incluyendo la cadena vacía.
• = todas las cadenas que pueden formarse con las
letras a, b, c, d, sin incluir la cadena vacía.
Extensión
∗
& = & & ( & )
& ?= & | & ∪ { } cero o una instancia
[ − ] |…| ) clase de caracteres
LyC - Prof. Diego Mosquera 9
Expresiones regulares
• Podemos remover paréntesis usando reglas de precedencia:
• * alta precedencia
• Concatenación
• | baja precedencia
∗ ∗|
• |( ) es equivalente a
• Ejemplos:
• Σ = 0, 1
• 0 | 1 ⇒ {0, 1}
• 0 1) 0 1) ⇒ {00, 01, 10, 11}
• 0∗ ⇒ , 0, 00, 000, 0000, …
• 0 1)∗ ⇒ todas las cadenas con 0 y 1, incluyendo la cadena vacía.
• Estado intermedio:
)∗
0 es el estado inicial
{2} es el conjunto de estados finales F
∑ = {a, b}
S = {0, 1, 2}
Función de transición:
a b
0 {0, 1} {0}
1 - {2}
2 - -
⟵ C4DE &()
FE93 ( ! = ;H){ /* Conjunto de todos los estados
⟵ − 3 B B& I; , que pueden ser accesibles desde
un estado de S por una transición
⟵ C4DE &() c */
}
9H ∩ K ! = ∅ 4E /* Si S contiene un estado de aceptación */
& 4B& "yes"
3
& 4B& " ;"
• El lenguaje reconocido ( | )∗
{1, 2, 3, 4, 6, 7, 8} B B D
{1, 2, 4, 5, 6, 7} C B C
{1, 2, 4, 5, 6, 7, 9} D B E
{1, 2, 4, 5, 6, 7, 10} E B C