Analisis Sintactico

comprueba si la cadena proporcionada por el analizador léxico puede ser generada por la gramatica que define el lenguaje fuente

la tarea del analizador sintáctico es determinar la estructura sintáctica de un programa, a partir de los tokens producidos por el analizador léxico

construir un árbol gramatical o árbol sintáctco que represente esta estructura

se denomina como la fase primordial del compilador o motor del compilador

toma como entrada la secuencia de componentes léxicos y produce como salida un árbol sintáctico

informa errores sintácticos de forme precisa y significativa

Gramaticas Libres de Contexto

simbolos terminales

Son aquellos simbolos basicos con los que se forman las cadenas

simbolos no terminales

no pertenece los simbolos terminales sy se utiliza para especificar la gramatica

vocabulario

es la union del conjunto de simbolos terminales y no terminales de dicha gramatica

derivaciones

mas a la izquierda

Se sustituye cada paso la variable mas ala izquierda de la forma de frase

mas a la derecha

Se sustituye cada paso la variable mas ala derecha de la forma de frase

Una GLC viene definida por la represencion de una estructura de sentencia condicional (if-else)

se aplicara una serie de metodos para eliminacion de posibles abliguedades y la recursion por la izquierda que pudiese existir en todas y cada una de las producciones de la gramatica

Ambiguedad

si el lenguaje que define contiene alguna cadena que tenga mas de un arbol de derivacion para esa gramatica

webgrafia

Generador analizador sintáctico

4.La orden del sistema UNIX Yacc traduce y transforma al archivo traduce, y en un programa escrito en C llamado y .tab.c usando el método LALR

5.El programa y. tab. c es una representación de un analizador sintáctico escrito en C, junto con otras rutinas en C que el usuario pudo haber preparado

6.Si se necesitan otros procedimientos, se pueden compilar o cargar con y. tab. e, igual que en cualquier programa en C.

1.YACC se usará como base de esta exposición, puesto que implanta muchos de los conceptos estudiados en las dos secciones anteriores y es fácil de encontrar

2.YACC significa "otro compilador de compiladores más" (del inglés Yet Another Compiler-Compiler)

3.El generador de analizadores sintácticos YACC Se puede construir un traductor utilizando Y ACC de la forma que se ilustra en la figura. Primero, se prepara un archivo, por ejemplo traduce

Un programa fuente en YACC tiene tres partes:

Tratamiento de Errores Sintácticos

Informar de Errores con claridad y exactitud

Recuperarse de cada error con la suficiente rapidez como para detectar errores posteriores

No debe retrasar de forma significativa el proceso de programas correctos

Se recomienda tener la propiedad de prefijo variable. que detecta la presencia de un error al ver un prefijo que no es de alguna cadena valida

Gran parte de la detección y recuperación de errores se concentra en la fase del analisis sintáctico