Segundo Recuperatorio 2C 2006 (Teoría de Lenguajes)

De Cuba-Wiki
Saltar a: navegación, buscar
Back.png Volver a la página de la materia

Consideramos una sintaxis simplificada para expresionenes del lenguaje Common LISP: una expresion puede ser un atomo o una lista. Los atomos pueden ser sımbolos, numeros, o cadenas (terminales sym, num y str, respectivamente). Una lista es una secuencia de expresiones encerradas entre parentesis: ( y ). Las listas pueden ser vacıas. Ejemplos de expresiones validas pueden ser entonces:

num
()
( sym () num str )
( ( num ) sym ( sym num str () ) )

Ejercicio 1[editar]

(25 pts) Dar una gramatica SLR para el fragmento de Common LISP descripto. Dar su tabla SLR. Decir si la gramatica propuesta es LR(0).

Respuesta

S -> A | L
L -> (L')
L' -> SL' | \
A -> num | sym | str

Ejercicio 2[editar]

(25 pts) Dar una gramatica extendida ELL(1) para el fragmento de Common LISP descripto.

Respuesta

Ejercicio 3[editar]

(25 pts) Dar una gramatica de precedencia simple para el fragmento de Common LISP descripto. Dar su tabla de precedencia simple.

Respuesta

Ejercicio 4[editar]

(25 pts) Agregar atributos a la gramatica propuesta en el ejercicio 1 o en el 3 de manera que solo se acepten expresiones en las que el primer elemento de toda lista no vacıa sea un sımbolo o una lista vacıa. (Por ejemplo, de las expresiones que se enumeran mas arriba se deben aceptar todas excepto la ultima).

Respuesta