Descripción: manual para la prueba especifica de la usac
manual para la prueba especifica de la usac
Descripción: lenguaje
Descripción: datos de lenguaje para primer año de secundaria
datos de lenguaje para primer año de secundaria
Descripción: manual para la prueba especifica de la usac
Descripción: manual para la prueba especifica de la usac
Descripción completa
Descripción completa
Descripción: Haz clic para editar la descripción de la publicaciónDiseño de un compilador online usando Flex y Bison, para el analisis lexico y sintactico respectivamente, y para el analisis semantico usamos tr...
Haz clic para editar la descripción de la publicaciónDiseño de un compilador online usando Flex y Bison, para el analisis lexico y sintactico respectivamente, y para el analisis semantico usamos tr...
Descripción completa
Lenguaje de Programación Bison Historia: El lenguaje de programación Bison funciona esencialmente como un compilador, es decir, transforma código fuente escrito en un 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). Por tanto, Bison es un programa generador de analizadores sintácticos de propósito general perteneciente al proyecto GNU disponible para prácticamente 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 Me llon añadió literales de cadena de varios caracteres y otras características.
Características: Para que Bison pueda analizar un lenguaje, este debe ser descrito por una gramática gr amática independiente del contexto, esto significa que debe especificar uno o más grupos sintácticos y dar reglas para construirlos desde sus partes.2 De los posibles sistemas formales a analizar esta herramienta, e l más común será la Forma de Backus-Naur o "BNF". Cualquier gramática expresada en BNF e s una gramática independiente del contexto. La entrada de Bison es e n esencia una BNF legible por la máquina. En las reglas gramaticales formales para un lenguaje, cada tipo de unidad sintáctica o agrupación se identifica por un símbolo. Aquellos que son construidos agrupando construcciones más pequeñas de acuerdo a reglas gramaticales se denominan símbolos no terminales; aquellos que no pueden subdividirse se denominan símbolos terminales o tipos de tokens. Se denomina token a un fragmento de la entrada que corresponde a un solo símbolo terminal, y grupo a un fragmento que corresponde a un solo símbolo no terminal. 3
Ventajas: Este tipo de analizadores ascendentes no tienen problemas con la r ecursividad puesto que la forma en que se realiza el e l análisis, en general, da preferencias a la recursividad izquierda ya que supone un uso más eficiente de la pila del analizador. No obstante, esto genera un analizador eficiente, incluso más que los que pudiéramos hacer de manera manual, los analizadores ascendentes reconocen la mayor parte de los lenguajes.
1
Introducción 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 semánticas asociadas con las producciones de los no terminales de las gramáticas son difíciles de depurar. Igualmente, mezcla las especificaciones sintácticas con las semánticas.
Aplicaciones: Bison tiene características que no se e ncuentran en Yacc, por lo que algunos proyectos se puede realmente decir que "usar" Bison, desde Yacc no sería suficiente.
Sintaxis: La forma general de una gramática de Bison es la siguiente: %{ declaraciones en C %} Declaraciones de Bison %% Reglas gramaticales %% Código C adicional Los ‘%%’, ‘%{‘ y ‘%}’ son signos de puntuación que aparecen en todo archivo de gramática 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