Sunteți pe pagina 1din 2

Lenguaje de Programacin Bison

Historia:

El lenguaje de programacin Bison funciona esencialmente como un compilador, es decir,


transforma cdigo fuente escrito en un lenguaje informtico (el lenguaje fuente), en otro lenguaje
informtico (el lenguaje objetivo, estando a menudo en formato binario conocido como cdigo
objeto). Por tanto, Bison es un programa generador de analizadores sintcticos de propsito
general perteneciente al proyecto GNU disponible para prcticamente todos los sistemas
operativos.1

Bison fue escrito principalmente por Robert Corbett; pero Richard Stallman lo hizo compatible con
Yacc, del mismo modo Wilfred Hansen de la Universidad Carnegie Mellon aadi literales de
cadena de varios caracteres y otras caractersticas.

Caractersticas:

Para que Bison pueda analizar un lenguaje, este debe ser descrito por una gramtica
independiente del contexto, esto significa que debe especificar uno o ms grupos sintcticos y dar
reglas para construirlos desde sus partes.2

De los posibles sistemas formales a analizar esta herramienta, el ms comn ser la Forma de
Backus-Naur o "BNF". Cualquier gramtica expresada en BNF es una gramtica independiente del
contexto. La entrada de Bison es en esencia una BNF legible por la mquina.

En las reglas gramaticales formales para un lenguaje, cada tipo de unidad sintctica o agrupacin
se identifica por un smbolo. Aquellos que son construidos agrupando construcciones ms
pequeas de acuerdo a reglas gramaticales se denominan smbolos no terminales; aquellos que no
pueden subdividirse se denominan smbolos terminales o tipos de tokens. Se denomina token a un
fragmento de la entrada que corresponde a un solo smbolo terminal, y grupo a un fragmento que
corresponde a un solo smbolo no terminal.3

Ventajas:

Este tipo de analizadores ascendentes no tienen problemas con la recursividad puesto que la
forma en que se realiza el anlisis, en general, da preferencias a la recursividad izquierda ya que
supone un uso ms eficiente de la pila del analizador. No obstante, esto genera un analizador
eficiente, incluso ms que los que pudiramos hacer de manera manual, los analizadores
ascendentes reconocen la mayor parte de los lenguajes.

1
Introduccin a Flex y Bison.
http://webdiis.unizar.es/asignaturas/LGA/material_2004_2005/Intro_Flex_Bison.pdf
2
Introduccion a Flex y Bison. Op cit
3
Ibid
Desventajas:

Las acciones semnticas asociadas con las producciones de los no terminales de las gramticas son
difciles de depurar. Igualmente, mezcla las especificaciones sintcticas con las semnticas.

Aplicaciones:

Bison tiene caractersticas que no se encuentran en Yacc, por lo que algunos proyectos se puede
realmente decir que "usar" Bison, desde Yacc no sera suficiente.

Sintaxis:

La forma general de una gramtica de Bison es la siguiente:


%{
declaraciones en C
%}

Declaraciones de Bison

%%
Reglas gramaticales
%%
Cdigo C adicional

Los %%, %{ y %} son signos de puntuacin que aparecen en todo archivo de gramtica de Bison
para separar las secciones.

Referencias:

"Introduccion a Flex y Bison".


http://webdiis.unizar.es/asignaturas/LGA/material_2004_2005/Intro_Flex_Bison.pdf

"Bison". http://es.tldp.org/Manuales-LuCAS/BISON/bison-es-1.27.html

http://centrodeartigos.com/articulos-informativos/article_62543.html

S-ar putea să vă placă și