Programacion de Sistemas
 
  UNIVERSIDAD DE LEON
  Indice de Unidades
  1 Computabilidad y Lenguajes
  1.1 Estructura de un Compilador
  1.2 Paradoja de Russel
  1.3 Conjuntos Ordenados
  1.4 Maquina de Estados Infinitos
  2 Procesamiento de Lenguajes
  2.1 Definicion de Gramatica
  2.2 Analisis Lexico
  2.3 Definicion de Sintaxis
  2.4 Precedencia de Operadores
  2.6 Asociatividad de los Operadores
Todos los derechos reservados Lucero M. R. Copyright
2.3 Definicion de Sintaxis

Definición de la sintaxis:

 

Una gramática describe en forma natural la estructura jerárquica de la maquina de instrucciones de un lenguaje de programación.

 

Ejemplo:

 

            If (expr) intr else instr

Regla de estructuración insts if (instr else instr)

If, else, ( ) terminales.
Expr, instr no terminales.

Derivaciones

 

Para especificar las gramáticas se presentan sus producciones en donde se listan primero sus producciones para el símbolo inicial.

Los, signos como < y <= y las cadenas como while son terminales.

Los producciones con el mismo no terminal que el encabezado puede agrupar sus cuerpos con los cuerpos, con los cuerpos alternativos separados por el símbolo | , que leemos como “o”.

Ejemplo:

Cadenas como 9-5+2 3+1 o 7” se llaman listas de dígitos separados por signos  positivos o negativos” .

La siguiente gramática describe la sintaxis de estas expresiones, las producciones son:

Lista lista + digito
Lista lista – digito
Lista
digito
Digito 0|1|2|3|4|5|6|7|8|9


Los cuerpos de las tres producciones con la no terminal lista como encabezado pueden agruparse de la siguiente manera.

Lista lista + digito | lista-digito | digito
Digito 0|1|2|3|4|5|6|7|8|9

Los terminales de la gramática son los siguientes símbolos: + - 0 1 2 3 4 5 6 7 8 9

 

Los no terminales son: lista y digito, en donde listas el símbolo inicial, ya que sus producciones se dan primero.

Una producción es un no terminal, si l no terminal es el encabezado de la producción,

Una cadena de terminales es una secuencia de 0 o más terminales. La cadena de 0 terminales, escrita como E se llama cadena vacía.

Arboles

 

Muestra la forma gramática, la manera en la que le símbolo inicial de una gramática deriva a una cadena en el lenguaje. Si el no-terminal A tiene una perecuación A X y Z entonces un árbol de análisis  sintáctico podría tener un nodo interior etiquetado A, con  3 hijos X, Y, Z.






De manera formal, dada una gramática libre de contexto un árbol de análisis sintáctico de acuerdo con esta gramática, tiene las siguientes propiedades.

 

 

1)      La raíz se etiqueta con el árbol inicial

2)      Cada hoja se etiqueta con un no terminal, o con E

3)      Cada nodo interior se etiqueta con no terminal

        4)   Si A es un no-terminal que etiqueta a cierto nodo interior y X1, X2 ….Xn son las etiquetas de los hijos de ese nodo izquierdo__ derecha--- entonces debe haber una producción A X1, X2…Xn cada una de las etiquetas X1, X2…Xn representa a un símbolo que puede ser o no un termino, como un caso especial si A

5)      E un nodo etiquetado como A puede tener un solo hijo etiquetado con E

Puede tener la forma…..





Ambigüedad

 

Una gramática puede tener mas de un árbol de análisis sintáctico que genere una cadena dada de terminantes, dicha gramática es  ambigua, se deben generar (diseñar) gramáticas no ambiguas  para las aplicaciones de compilación.

 

Una gramática puede tener más de un árbol de análisis sintáctico que genere una cadena de datos de terminales.

Dicha gramática es ambigua. Se deben generar (diseñar) gramática no ambiguas para las aplicaciones de compilación o utilizar reglas adicionales para resolver las ambigüedades.

 

Ejemplo: Cadena cadena + cadena | cadena – cadena |0|1|2|3|4|5|6|7|8 |9

 

Mezclar la noción de dígitos y lista en la cadena no-terminal, tiene sentido superficial, ya que un digito individual es un caso especial de una lista.

Se generan 2 arboles que correspondan a los 2 formas de aplicar paréntesis a la expresión (9-5) + 2 y 9 – (5+2).

 












 

 

 

 

Tiempo  
   
Hoy habia 4 visitantes (5 clics a subpáginas) ¡Aqui en esta página!
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis