Analisis Lexico
An´lisis L´xico
a
e
Bibliograf´
ıa:
Aho, A.V., Sethi, R., Ullman, J.D. (1990), Compiladores:
principios, t´cnicas y herramientas, Tema 3, p´ginas: 85-158.
e
a
Louden, K.C. (1997), Compiler Construction: Principles and
Practice, Tema 2, p´ginas: 31-93.
a
Contenido:
1. Funciones del analizador l´xico.
e
o
e
2. Especificaci´n de los componentes l´xicos: expresiones regulares.3. Reconocimiento de los componentes l´xicos: aut´matas finitos.
e
o
4. Implementaci´n de un analizador l´xico:
o
e
a) Dirigido por tabla
b) Mediante bucles anidados.
5. Aspectos pr´cticos en la implementaci´n de un an´lisis l´xico:
a
o
a
e
a) Principio de m´xima longitud.
a
b) Palabras reservadas versus identificadores.
c) Gesti´n del buffer de entrada.
o
6. Errores l´xicos y sutratamiento.
e
7. Generadores autom´ticos de analizadores l´xicos: Lex.
a
e
35
´
´
TEMA 2. ANALISIS LEXICO
36
2.1.
Funciones del analizador l´xico.
e
Analizador l´xico (scanner): lee la secuencia de caracteres del
e
programa fuente, caracter a caracter, y los agrupa para formar
unidades con significado propio, los componentes l´xicos (tokens
e
en ingl´s). Estoscomponentes l´xicos representan:
e
e
palabras reservadas: if, while, do, . . .
identificadores: asociados a variables, nombres de funciones,
tipos definidos por el usuario, etiquetas,... Por ejemplo: posicion,
velocidad, tiempo, . . .
operadores: = * + - / == > < & ! = . . .
s´
ımbolos especiales: ; ( ) [ ] { } ...
constantes num´ricas: literales que representan valores ene
teros, en comaflotante, etc, 982, 0xF678, -83.2E+2,...
constantes de caracteres: literales que representan cadenas
concretas de caracteres, “hola mundo”,...
El analizador l´xico opera bajo petici´n del analizador sint´ctico
e
o
a
devolviendo un componente l´xico conforme el analizador sint´ctie
a
co lo va necesitando para avanzar en la gram´tica. Los coma
ponentes l´xicos son los s´
e
ımbolos terminales dela gram´tica.
a
Suele implementarse como una subrutina del analizador sint´ctia
co. Cuando recibe la orden obt´n el siguiente componente l´xico,
e
e
el analizador l´xico lee los caracteres de entrada hasta identificar
e
el siguiente componente l´xico.
e
componente
léxico
programa
fuente
analizador
léxico
analizador
sintáctico
obtén siguiente
componente léxico
árbol deanál.
sintáctico
´
2.1. FUNCIONES DEL ANALIZADOR LEXICO.
37
Otras funciones secundarias:
Manejo del fichero de entrada del programa fuente: abrirlo,
leer sus caracteres, cerrarlo y gestionar posibles errores de
lectura.
Eliminar comentarios, espacios en blanco, tabuladores y saltos
de l´
ınea (caracteres no v´lidos para formar un token).
a
Inclusi´n de ficheros: # include ...
o
Laexpansi´n de macros y funciones inline: # define ...
o
Contabilizar el n´mero de lineas y columnas para emitir menu
sajes de error.
Reconocimiento y ejecuci´n de las directivas de compilaci´n
o
o
(por ejemplo, para depurar u optimizar el c´digo fuente).
o
Ventajas de separar el an´lisis l´xico y el an´lisis sint´ctico:
a
e
a
a
Facilita transportabilidad del traductor (por ejemplo, sidecidimos en un momento dado cambiar las palabras reservadas
begin y end de inicio y fin de bloque, por { y }, s´lo hay que
o
cambiar este modulo.
Se simplifica el dise˜o: el analizador es un objeto con el que
n
se interact´a mediante ciertos m´todos. Se localiza en un
u
e
unico m´dulo la lectura f´
´
o
ısica de los caracteres, por lo que
facilita tratamientos especializados de E/S.Componentes L´xicos, Patrones, Lexemas
e
Patr´n: es una regla que genera la secuencia de caracteres que
o
puede representar a un determinado componente l´xico (una exe
presi´n regular).
o
Lexema: cadena de caracteres que concuerda con un patr´n
o
que describe un componente l´xico. Un componente l´xico puede
e
e
tener uno o infinitos lexemas. Por ejemplo: palabras reservadas
tienen un...
Regístrate para leer el documento completo.