Este análisis (en inglés scanner) se encarga de verificar si todas las cadenas pertenecen o no al lenguaje, es decir realiza un análisis símbolo por símbolo indicando las palabras que reconoce o el error en caso de no reconocer.
Este análisis no logra detectar muchos errores por su característica; sólo errores léxicos:
- Caracteres no permitidos en el lenguaje (p“$”>“$”>$").
- Caracteres no permitidos en un contexto determinado (p“12.3”>12“.”> vs "“.23”>".23").
Es la primera fase de un compilador, consistente en un programa que recibe como entrada el código fuente de otro programa (secuencia de caracteres) y produce una salida compuesta de tokens (componentes léxicos).
- Los tokens se especifican mediante patrones léxicos (expresiones regulares).
- Los tokens sirven para un posterior análisis sintáctico.
- La cadena de caracteres concreta que se ha reconocido como un token determinado se denomina lexema.
Lexema: El lexema es la parte fundamental de una palabra, capaz de expresar un significado léxico definido; ocasionalmente es la palabra entera.
Por ejemplo, el lexema de
panadería
espan
.
También realiza otras tareas auxiliares:
- Tratamiento de comentarios.
- Eliminación de blancos.
Automatas finitos
Es un modelo matemático que puede ser usado para hacer traducciones o cálculos sencillos con las cadenas que pertenecen a un lenguaje generado por gramáticas regulares.