EXPOSICION YACC

Páginas: 6 (1378 palabras) Publicado: 2 de marzo de 2015
COMPILADOR YACC

Yacc es una herramienta que sirve para generar
un
programa,
capaz
de
analizar
gramaticalmente una entrada dada por lex, a
partir de una especificación. Esta especificación,
debe contener los tokens reconocidos y los tipos
de datos de los mismos si es que se ocupan
para realizar operaciones sobre ellos, y una
especificación de gramática en un formato
similar a BNF (Backus NausForm), que va desde
el símbolo no terminal más general a cada una
de las opciones terminales.

La entrada de programa de computadora
generalmente tiene alguna estructura; de
hecho, cada programa de la computadora
que hace entrada puede pensarse de
como definir un `` lenguaje'' de la
entrada que acepta. Un idioma de la
entrada puede ser tan complejo como un
idioma de la programación, o tan simplecomo una sucesión de números.

Yacc mantiene una herramienta general
describiendo la entrada a un programa de la
computadora. El usuario de Yacc especifica
las estructuras de su entrada, junto con el
código ser invocado como cada tal
estructura se reconoce. Yacc convierte
semejante
especificación
en
un
subprograma que es el proceso de la
entrada; frecuentemente, es conveniente y
destina para tenerla mayoría del flujo de
mando en la aplicación del usuario
manejado por este subprograma.

Ejemplo :

Numero +
Numero -
Numero



Una especificación yacc se divide en tres
secciones diferentes de manera similar a lex, la
de definiciones, la de reglas, y la de subrutinas,
que van igualmente separadas por un '%%',
mismas que pueden incluir código de C
encerradoentre un %{ y un %}.

Análisis estructural

El problema que se pretende resolver mediante
el programa generado por Yacc consiste en la
realización de un análisis estructural de un texto
de entrada.

El programa generado recibe como entrada una
secuencia representativa de los componentes
elementales de un texto, y comprueba si esa
secuencia se ajusta a la estructura definida por
una gramática decontexto independiente; los
componentes elementales recibidos son los
símbolos terminales de la gramática.

Entrada y salida para el traductor Yacc
En el siguiente esquema se muestra, de
una manera simplificada, lo que constituye
la
entrada
y
la
salida
para
el
traductor/generador Yacc.

La entrada a Yacc es una especificación sintáctica
(estructural) escrita en forma de gramática de
contextoindependiente (codificada de manera
semejante a la notación BNF-No ampliada). Las gra
máticas son mecanismos adecuados para la
especificación de las características sintácticas de
los lenguajes de programación y se representan con
una notación textual fácil de procesar; por estos moti
vos resultan apropiadas para emplearlas como
entrada a Yacc para generar analizadores sintácticos.
La salida es unprograma escrito en C cuya parte
central es una función llamada yyparse que realiza el
análisis sintáctico de la secuencia de piezas
sintácticas recibidas. El algoritmo incorporado a la
función lleva a cabo un análisis sintáctico
ascendente por desplazamiento y reducción

El analizador generado se apoya en:

Una estructura de datos, la pila de
estados, cuyo contenido es un reflejo de
lassituaciones por las que se va pasando
durante el proceso de análisis,

Unas funciones de transición (las
funciones goto y action, implementadas
mediante tablas) que son indicativas de
la evolución que debe tomar el proceso
de análisis conforme se van recibiendo
las sucesivas piezas sintácticas.

SINTAXIS
La sintaxis de un programa puede ser definida por una gramática libre de
contexto. Ésta esesencialmente una estructura jerárquica que indica las
relaciones de las construcciones del lenguaje. La notación más común
usada para describir una gramática libre de contexto es BNF. La
especificación de YACC se hace en BNF.
La descripción se hace en la forma de reglas de producción, que consisten
de un nombre de no terminal, el lado izquierdo, seguido por su definición.
La definición, o lado derecho,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Compilador yacc
  • lex con yacc
  • Yacc Bison
  • Yacc
  • Yacc
  • Exposicion
  • Exposicion
  • Exposicion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS