Guia
or
UNIVERSIDAD NACIONAL DEL ALTIPLANO
FACULTAD
DE I NGENIERÍA
M ECÁNICA E LÉCTRICA E LECTRÓNICA
Departamento de Ingeniería de Sistemas
Y
S ISTEMAS
MANUAL UNIVERSITARIO
HERRAMIENTAS PARA CONSTRUCCIÓN DE COMPILADORES
Autor: : Mg. Oliver Amadeo Vilca Huayta
Bor
Profesor de la Facultad de Ingeniería FIMEES.
Hecho en LATEX 2ε
R
Todos los Derechos Reservados.
Puno - Perú
Mayo 2014rad
or
Índice
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
.
.
.
.
.
.
.
5
6
6
6
6
7
9
10
11
11
12
13
14
2 El generador YACC
2.1 YACC . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Acciones Semánticas . . . . . . . . . . . . . . .
2.1.2 El Archivo de Entrada . . . . . . . . . . . . . .
2.2 Compilar el Código de Entrada para el YACC ó Bison
2.3 Bison genera código ANSI . . . . . . . . . . . . . . . .
2.4 Bison genera código ANSI . . . . .. . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
16
16
16
18
19
22
Bor
1 El generador de analizadores léxicos LEX
1.1 El LEX . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Uso . . . . . . . . . . . . .. . . . . . . . . . . . . . . .
1.3 Instalación . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Instalación en Linux . . . . . . . . . . . . . . .
1.3.2 Instalación en Microsoft Windows . . . . . . .
1.4 Formato del archivo de entrada del LEX . . . . . . . .
1.5 Compilar el Código de Entrada para el FLEX . . . . .
1.6 Mi primer ejemplo en el LEX . . . . . . . . . . . . . .
1.7 Conjuntoextendido de expresiones regulares del Lex
1.8 Analizador léxico para un sublenguaje de Pascal . . .
1.9 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . .
1.10 Ejercicios Propuestos . . . . . . . . . . . . . . . . . . .
Bibliografía
27
rad
or
Chapter 1
El generador de analizadores léxicos
Bor
LEX
1.1 El LEX
Pág. 6
rad
or
Oliver A. Vilca H.
En esta sección se explicará laimplementación de un analizador léxico utilizando un generador de código, específicamente un generador de analizadores léxicos conocido como “LEX”.
Esto a partir de la descripción de tokens de un lenguaje de programación, por lo general expresiones regulares.
Las versiones más populares de LEX se conoce como “FLEX” (Fast Lex en ingles), es una
herramienta para generar programas que efectúareconocimiento de patrones en texto. Hay
muchas aplicaciones para el Flex, incluido la escritura de compiladores en conjunto con el GNU
Bison. Se distribuye como parte del paquete compilador GNU que produce la Free Software
Foundation, y también se puede obtener gratuitamente en diferentes sitios de Internet. En los
lugares de descarga de los instaladores por lo general también se encuentran sus manualesen
ingles.
El Flex o Lex toma como entrada un archivo de texto (por lo general con extensión y) que
contiene expresiones regulares acompañado de acciones que se ejecutan cuando se iguale cada
expresión. Como salida crea un archivo con código fuente generado en lenguaje C (también
hay generadores para otros lenguajes de programación). En el código fuente generado se crea
una función denominadoyylex, que es la implementación de la tabla de un autómata finito
determinista correspondiente a las expresiones regulares del archivo de entrada. El nombre
del archivo de salida del Lex es por lo general lex.yy.c ó lexyy.c, este se compila junto con un
Bor
programa principal para obtener el programa.
1.2 Uso
El programa se ejecuta en la línea de comandos, y así debería ser ejecutado desde la...
Regístrate para leer el documento completo.