flex y bison
TRANSCRIPT
Pontificia Universidad Católica del Ecuador
Sede Ibarra Nombre: Carlos Marcelo Rivadeneira Velasco
Herramientas para la construcción de procesadores de lenguaje
Herramientas para la construcción de Procesadores de Lenguajes
Herramienta Lenguaje Descripción
Bison C Generador de Analizadores Sintácticos Ascendentes tipo
YACC
COCO/R C/C++ Generador de Analizadores Léxicos y Sintácticos
Descendentes Recursivos
Flex C Generador de Analizadores Léxicos tipo Lex
Lex C Generador de Analizadores Léxicos
SDGLL1 exe Sistema Detector de Gramáticas LL(1) y generador de la
tabla
TS 2006 C/C++ Tipo abstracto de datos Tabla de Símbolos de uso
sencillo
TS C Tipo abstracto de datos Tabla de Símbolos
TS-OO C++ Tipo abstracto de datos orientado a objetos Tabla de
Símbolos
VASt exe Visualizador de árboles sintácticos partiendo de los
ficheros con la gramática y el parse pedidos en la Práctica
[versión 2.0, Windows]
VASt C++ Visualizador de árboles sintácticos partiendo de los
ficheros con la gramática y el parse pedidos en la Práctica
[versión 1.0, Linux]
YACC C Generador de Analizadores Sintácticos Ascendentes
LR(1)
Reseña Histórica En informática, un compilador es un programa informático que transforma
código fuente escrito en un lenguaje de programación o lenguaje informático
(el lenguaje fuente), en otro lenguaje informático (el lenguaje objetivo,
estando a menudo en formato binario conocido como código objeto). La razón
más común para querer transformar código fuente es crear un programa
ejecutable. Cualquier programa escrito en un lenguaje de programación de
alto nivel debe ser traducido a código objeto antes de que pueda ser
ejecutado, para que todos los programadores que usen tal lenguaje usen un
compilador o un intérprete. Por esto, los compiladores son muy importantes
para los programadores. Cualquier mejora hecha a un compilador lleva a un
gran número de programas mejorados.
Diseño y construcción de un compilador.
Las herramientas Flex y Bison. Flex y Bison es un una herramienta que permite generar analizadores léxicos.
A partir de un conjunto de expresiones regulares, Flex busca concordancias
en un fichero de entrada y ejecuta acciones asociadas a estas expresiones.
Que es flex y Bison
FLEX es un una herramienta que permite generar analizadores léxicos. A
partir de un conjunto de expresiones regulares, Flex busca concordancias en
un fichero de entrada y ejecuta acciones asociadas a estas expresiones. Es
compatible casi al 100% con Lex, una herramienta clásica de Unix para la
generación de analizadores léxicos, pero es un desarrollo diferente realizado
por GNU bajo licencia GPL.
BISON, al igual que FLEX, permite generar programas de forma automática.
Esta herramienta se usa en consonancia con la herramienta FLEX y sirve para
especificar analizadores sintácticos. De la misma forma que FLEX tiene como
base las expresiones regulares, la herramienta BISON también se basa en
otro formalismo para describir lenguajes, en este caso serán las gramáticas
independientes del contexto las que constituirán el núcleo de las
especificaciones que procesará BISON.
Como se instala Flex y Bison 1. Descarga el software disponible en el sitio de la cátedra.
2. Instalar el software en la unidad C: (para explicar a partir del punto 4
se tendrá como hipótesis de que flex y bison han sido instalados en la
ruta: C:\GnuWin32\ donde contiene una subcarpeta llamada bin donde
se encuentran los programas respectivos)
3. Flex y bison son aplicaciones de consola, por lo que se deberá entrar al
Símbolo del sistema y tipear líneas de comando para ejecutar Flex. Una
alternativa es crear un archivo de proceso por lotes (*.bat) que
contenga las líneas de comando para la ejecución de Flex y Bison y/o la
compilación del archivo generado.
4. Si deseas que flex y bison se integren al conjunto de variables del
entorno (esto te va a permitir llamar a flex/bison desde cualquier
ubicación en la línea de comandos) debes hacer lo siguiente:
Clic derecho en “Mi PC”.
Selecciona “Propiedades”
Clic en la pestaña “Opciones Avanzadas”
Presiona el botón “Variables de entorno”
En la ventana de variables de entorno, ubicarse en la sección “Variables
del sistema” luego haz clic en PATH y luego en el botón “Modificar” (si
no está hacer clic en “Nueva” y agregar PATH)
En la nueva ventana, escribir la ruta completa al directorio “bin” de la
aplicación flex/bison. Si existe otro valor, separarlos con comas.
Aceptar los cambios y luego reiniciar el sistema operativo.
5. Si deseas instalar un compilador de C como MinGwin, deberás integrar
la ruta de acceso al compilador a las variables de entorno para facilitar
la llamada al programa. Por ejemplo si se instaló MingWin en
“C:\Mingw” y dentro de la carpeta “bin” se encuentra “gcc.exe” que es
el ejecutable, entonces de deberá agregar (análogo a los pasos
anteriores) lo siguiente:
6. Cuando tengas listo podrás llamar a flex/bison desde el símbolo del
sistema sin necesidad de ubicarte en la carpeta donde ha sido instalado
flex/bison.
2 Ejemplos de la creación de un compilador utilizando Flex y Bison
Y Como se compila con Flex y Bison
Luego de escribir las especificaciones de flex y bison realizar lo siguiente. Si
se desea invocar a flex:
Si se desea invocar a bison (recordar que bison trabaja en conjunto con flex):
Para invocar a Bison en conjunción con flex realizar lo siguiente:
Para compilar los archivos generados.
Flex: MinGW
Una alternativa es utilizar un compilador para windows como DevC++ o Borland
C++ 4.5. Abriendo el archivo lex.yy.c y luego compilándolo se generará el
ejecutable “lex.yy.exe”
BISON y FLEX en conjunción: