Informe De FLEX BISON Luis Fernando Herrera
NOMBRE DEL ALUMNO:
LUIS FERNANDO HERRERA AGUILAR
TRABAJO:
FLEX – BISON
ASIGNATURA:
COMPILADORES E INTERPRETES I
CATEDRATICO:
ING. JAIRO GALEAS
LUGAR Y FECHA:
CATACAMAS, OLANCHO 30 DE MARZO de 2016
INTRODUCCION
Flex es una herramienta que permite generar analizadores léxicos. A partir de un conjunto de expresiones regulares, Flex busca concordancias en un fichero de entrada yejecuta 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.
Los ficheros de entrada de Flex (normalmente con la extensión. l) siguen el siguiente esquema:
%%
patrón1 {acción1}
patrón2 {acción2} ...
donde:
patrón: expresión regularacción: código C con las acciones a ejecutar cuando se encuentre concordancia del patrón con el texto de entrada
Flex recorre la entrada hasta que encuentra una concordancia y ejecuta el código asociado. El texto que no concuerda con ningún patrón lo copia tal cual a la salida.
Bison es un generador de analizadores sintácticos de propósito general que convierte una descripción para una gramáticaindependiente del contexto (en realidad de una subclase de éstas, las LALR) en un programa en C que analiza esa gramática. Es compatible al 100% con Yacc, 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. Todas las gramáticas escritas apropiadamente para Yacc deberían funcionar con Bison sin ningúncambio. Usándolo junto a Flex esta herramienta permite construir compiladores de lenguajes.
Una fuente de Bison (normalmente un fichero con extensión. y) describe una gramática. El ejecutable que se genera indica si un fichero de entrada dado pertenece o no al lenguaje generado por esa gramática
bison es un programa generador de analizadores sintácticos de propósito general, disponible paraprácticamente todos los sistemas operativos, se usa normalmente acompañado de flex aunque los analizadores léxicos se pueden también obtener de otras formas.
Bison convierte la descripción formal de un lenguaje, escrita como una gramática libre de contexto LALR, en un programa en C, C++, o Java que realiza análisis sintáctico. Es utilizado para crear analizadores para muchos lenguajes, desde simplescalculadoras hasta lenguajes complejos. Para utilizar Bison, es necesaria experiencia con la sintaxis usada para describir gramáticas.
OBJETIVOS
Objetivo General
Conocer de forma general de desarrollar los analizadores FLEX (léxico) BISON(sintáctico), su metodología y desarrollo.
Objetivos Específicos.
1. Aprender a utilizar los analizadores FLEX BISON
2. Facilitar el desarrollo mediante el uso deaplicaciones de FLEX BISON.
3. Comprender el desarrollo de los analizadores FLEX BISON.
Marco teorico
FLEX
Flex es 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ásicade Unix para la generación de analizadores léxicos, pero es un desarrollo diferente realizado por GNU bajo licencia GPL.
Los ficheros de entrada de Flex (normalmente con la extensión. l) siguen el siguiente esquema:
%%
patrón1 {acción1}
patrón2 {acción2} ...
donde:
patrón: expresión regular
acción: código C con las acciones a ejecutar cuando se encuentre concordancia del patrón con el textode entrada
Flex recorre la entrada hasta que encuentra una concordancia y ejecuta el código asociado. El texto que no concuerda con ningún patrón lo copia tal cual a la salida. Por ejemplo:
%%
a*b {printf(“X”);};
re;
El ejecutable correspondiente transforma el texto:
abre la puertaab en X la puertX
pues ha escrito X cada vez que ha encontrado ab o aab y nada cuando ha encontrado re....
Regístrate para leer el documento completo.