flex y bison

6

Click here to load reader

Upload: carlos-rivadeneira

Post on 21-Jun-2015

381 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Flex y bison

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.

Page 2: Flex y bison

Diseño y construcción de un compilador.

Page 3: Flex y bison

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”

Page 4: Flex y bison

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.

Page 5: Flex y bison

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):

Page 6: Flex y bison

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: