 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
|
|
 |
|
|
|
Gramatica |
|
|
|
Una gramatica muestra de manera natural la estructura jerarquica de la mayoria de los lenguajes de programacion.
Tiene cuatro componentes:
1. Terminales. Se les conoce como tokens. Son los simbolos elementales del lenguaje que definio la gramatica.
2. No terminales. Cada una representa un conjunto de cadenas o terminales.
3. Producciones. Especifica una de las formas escritas de una instruccion. Cada una consiste en un no terminal del lado izquierdo, una flecha y una secuencia de terminales y no terminales.
4. Simbolo inicial. Se designa una de las no terminales.
Ejemplo:
lista-> lista + digito
lista-> lista - digito
lista-> digito
digito-> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Simplicada:
lista-> lista + digito | lista - digito | digito |
|
|
|
Arboles de analisis sintactico |
|
|
|
Este muestra graficamente, la forma en que a partir del simbolo inicial de una gramatica se deriva una cadena del lenguaje. Por ejemplo:
A -> XYZ |
|
|
|
 |
|
|
|
Ambiguedades |
|
|
|
Una gramatica puede tener mas de un arbol de analisis sintactico, que sea generado por una cadena de terminales. Esta es una gramatica ambigua. Ejemplo:
Si no hacemos distincion entre digitos y listas se genera una gramatica asi:
cadena -> cadena + cadena | cadena - cadena |0|1|2|3|4|5|6|7|8|9
Y puede crear arboles sintacticos diferentes
como los siguientes: |
|
|
|
 |
|
|
|
 |
|
|
|
|
|
Esquema de traduccion por sintaxis |
|
|
|
Es una manera de especificar la traduccion, uniendo pedazos del programa a las producciones de la gramatica. A estos se les conoce como acciones semanticas. |
|
|
|
 |
|
|
|
Analisis sintactico top-down. Construye el arbol de analisis sintactico empezando con la raiz y realizando repetidamente los siguientes pasos:
1) En el nodo N, etiquetado con el no terminal A, se selecciona una de las producciones para A y se construyen simbolos en el cuerpo de la produccion.
2) Se encuentra el siguiente nodo en el que se va a construir un subarbol, por lo general, el no terminal no expandido mas izquierdo del arbol.
Analisis sintactico predictivo. Es un tipo de analisis sintactico de descenso recursivo. Para cada no terminal de una gramatica, existe un metodo asociado, ademas esta un procedimiento llamado coincidir que compara su argumento con el simbolo de preanalisis. |
|