Procesador de Lenguaje
• Programa informático que recibe como entrada un texto escrito en algún formato, lo analiza y, opcionalmente, produce un resultado.
• Ejemplos:• Compilador• Intérprete• Conversores de formatos• Formateadores de texto
Fases Principales
• Análisis Léxico
Lee secuencia de caracteres y devuelve símbolos léxicos (tokens)• Análisis sintáctico
Lee secuencia de símbolos léxicos y los agrupa en sentencias (frases)• Análisis semántico
Comprueba la corrección del significado de las sentencias.
Análisis Léxico
• Lee secuencia de caracteres y devuelve tokens al analizador sintáctico.
• Es el encargado de procesar el medio de entrada (ej. Fichero de entrada)
• No devuelve tokens para los símbolos no significativos (espacios en blanco, comentarios,…)
• La especificación léxica debe expresarse mediante un lenguaje formal: expresiones regulares
Análisis léxico
• Ejemplo de expresión regular:
[0-9]+
• Generadores automáticos de analizadores léxicos:• Lex/Flex• ANTLR
Análisis sintáctico
• Recibe secuencia de tokens y comprueba que forman una secuencia (frases o sentencia) válida.
• Suele producir una representación de las construcciones sintácticas reconocidas: árbol sintáctico.
• La especificación sintáctica debe expresarse mediante un lenguaje formal: gramáticas incontextuales.
Análisis sintáctico
• Ejemplo de gramática incontextual
Expresion: expresion OPSUMA expresion
CTE
• Generadores automáticos de analizadores sitnácticos:• Yacc / Bison• ANTLR