Ejercicio

Dada la gramática con producciones:



program $ \rightarrow$ declarations statements $ \vert$ statements
declarations $ \rightarrow$ declaration ';' declarations $ \vert$ declaration ';'
declaration $ \rightarrow$ INT idlist $ \vert$ STRING idlist
statements $ \rightarrow$ statement ';' statements $ \vert$ statement
statement $ \rightarrow$ ID '=' expression $ \vert$ P expression
expression $ \rightarrow$ term '+' expression $ \vert$ term
term $ \rightarrow$ factor '*' term $ \vert$ factor
factor $ \rightarrow$ '(' expression ')' $ \vert$ ID $ \vert$ NUM $ \vert$ STR
idlist $ \rightarrow$ ID ',' idlist $ \vert$ ID


En esta gramática, $ \Sigma$ esta formado por los caracteres entre comillas simples y los símbolos cuyos identificadores están en mayúsculas. Los restantes identificadores corresponden a elementos de $ V$. El símbolo de arranque es $ S =$ program.

Conteste a las siguientes cuestiones:

  1. Describa con palabras el lenguaje generado.
  2. Construya el árbol de análisis sintáctico concreto para cuatro frases del lenguaje.
  3. Señale a que recorridos del árbol corresponden las respectivas derivaciones a izquierda y a derecha en el apartado 2.
  4. ¿Es ambigua esta gramática?. Justifique su respuesta.

Casiano Rodríguez León
2009-12-09