Sistemas
– – – – Su utilidad en compilación Definición EjemplosNotaciones – Aceptación de un string por un AF
4) Autómatas finitos
– Generalidades – Grafo de transiciones asociado a un AF
Compiladores I. C.P.S. Universidad de Zaragoza -J.Ezpeleta-
5) Conversiónde una expresión regular en un AFN 6) Transformación de un AFN en un AFD 7) Minimización de un AFD 8) Una introducción breve a la implementación de analizadores léxicos
1
El papel delanalizador léxico • La función primordial es agrupar caracteres de la entrada en tokens • Estos tokens son suministrados (“bajo demanda”) al analizador sintáctico
programa fuente tabla de símbolos analizadorléxico (scanner) tokens ..... analizador sintáctico (parser)
Compiladores I. C.P.S. Universidad de Zaragoza
-J.Ezpeleta-
2
El papel del analizador léxicocabecera: tkPROG tkID
prog:cabecera bloque ‘.’ cabecera: tkPROG tkID listaParsProg listaParsProg: ‘(‘ listaID ‘)’ listaID: listaID ‘,’ ID listaID: ID ....
program principal(input,output); .... prog
program ProGRam PRogram...
principal pRinCipal
yylex()
(tkPROG)
cabecera
bloque
.
tkPROG tkID listaParsProg
yylex()
...
(tkID,PRINCIPAL)
Compiladores I. C.P.S. Universidad de Zaragoza-J.Ezpeleta-
3
El papel del analizador léxico • Pero, además
– procesar directivas al compilador – introducir información preliminar en la tabla de símbolos (se verá) – eliminar separadoresinnecesarios (cuando no lo ha hecho un preprocesador) – sustituir macros – formatear y listar el fuente
• A, veces cuando el lenguaje es sintácticamente complejo, dos fases:
– fase de examen – fase deanálisis (propiamente dicho)
Compiladores I. C.P.S. Universidad de Zaragoza
-J.Ezpeleta-
4
El papel del analizador léxico • Los tokens se pasan como valores “simples” • Algunos tokens...
Regístrate para leer el documento completo.