Flex bison

Solo disponible en BuenasTareas
  • Páginas : 8 (1808 palabras )
  • Descarga(s) : 0
  • Publicado : 7 de diciembre de 2010
Leer documento completo
Vista previa del texto
INTRODUCCIÓN
Una gramática libre de contexto GLC es una gramática que no está sujeta a un lenguaje específico, es decir, es independiente de lenguajes. Lo que describe una gramática de este tipo es la forma que deben cumplir las “cadenas” para pertenecer al lenguaje generado por la gramática.
Con lo anterior nos debe venir a la mente la definición de sintaxis:
“Parte de la gramática queestudia las oraciones y sus clases y, a veces, las significaciones o funciones de las formas que trata la morfología (forma de las palabras).”
De modo que una GLC es descrita por grupos sintácticos, que a su vez obedecen a reglas (en el curso las llamamos reglas de reescritura). Éstas reglas las representan símbolos, terminales (indivisibles) y no terminales.
Una GLC útil para todos, debe estarexpresada en alguna forma normal; como la Forma Normal de Chomsky o la Forma de Backus-Naur (BNF), que se utiliza para describir la sintaxis de lenguajes de programación.
Se recurre a éstas formas para identificar de manera mas sencilla las “cadenas válidas” para una GLC dada.
De acuerdo a un teorema, cada GLC tiene su correspondiente autómata de pila; incluso hay pasos para construir elautómata.
En nuestra relación diaria con las computadoras usamos muchos autómatas sin darnos cuenta. Por supuesto que estos autómatas han tenido un proceso de implementación del que hemos sido ajenos. La mayoría de ellos son precisamente para reconocer “cadenas” y dar paso a un proceso, y es de la misma manera en la que básicamente funcionan los compiladores. Es interesante implementar un autómata enun lenguaje de programación, pero lo sería más (por la simplificación) el definir nuestra GLC y producir automáticamente nuestro autómata. Para ello existen las herramientas Bison y Flex.
La significación del formato del texto es:
Negrita=> Utilidad de las herramientas
Cursiva=> Relación con GLC

BISON

Bison es un programa generador de analizadores sintácticos de propósito general.¿Y que es un analizador sintáctico? Es la parte de un compilador que comprueba que la estructura del código fuente se ajuste a la especificación sintáctica del lenguaje.

Bison convierte la descripción formal de un lenguaje, venido de una gramática libre de contexto (GLC), en un programa en C, C++, o Java que realiza el análisis sintáctico.

Se usa normalmente acompañado de Flex, aunque losanalizadores léxicos se pueden también obtener de otras formas.

Bison es utilizado para crear analizadores para muchos lenguajes, desde los más simples hasta los complejos.

Bison sigue el concepto de Yacc creado para Unix, pero Bison esta disponible para prácticamente todos los sistemas operativos. Por lo que existen mejoras de Bison sobre Yacc.

Para utilizar Bison, es necesaria laexperiencia con la sintaxis usada para describir gramáticas.

FLEX
Es un una herramienta que permite generar analizadores léxicos. A partir de un
conjunto de expresiones regulares formando patrones.

El analizador léxico es un programa que recibe como entrada una secuencia de caracteres y produce una salida compuesta de tokens (terminales) o símbolos. Estos tokens sirven para una posterioretapa del proceso, siendo la entrada para el analizador sintáctico.

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.

PATRONES

Los patrones en la entrada seescriben utilizando un conjunto extendido de expresiones regulares y usando como alfabeto cualquier carácter ASCII. Cualquier símbolo excepto el espacio en blanco, tabulador, cambio de línea y los caracteres especiales se escriben tal cual en las expresiones regulares (patrones) de Flex.

Los caracteres especiales son:

“ \ [ ^ - ? . * + | ( ) $ / { } % < >

Algunos de los patrones de...
tracking img