Está en la página 1de 2

Teoría de Lenguajes de Programación - Tarea individual #2

Ejercicio 1:

Dada la gramática G=(Vn, Vt, S, P), donde Vn={S, A, B}, Vt={a, b, c, +, -, (, ) } y las producciones:
P = { S -> (SA) | a ,
A -> +SB | Bb | ε ,
B -> -SAc | ε }

Proporcione la tabla de parsing bajo el estándar de un parser descendente con LL(1). Se recomienda
implementar y utilizar los algoritmos dados para FIRST, FOLLOW y el de creación de la tabla en el
desarrollo de este ejercicio.

Ejercicio 2. Complete la definición o explicación para los conceptos que se le indiquen:

Podemos definir a un programa como una serie de instrucciones que un computador puede
entender y ______________________. Entonces decimos que un lenguaje de programación es un
lenguaje formal utilizado para escribir dichos programas.
Los elementos básicos y comunes entre el diseño y la utilización de un lenguaje de programación
son:
- Vocabulario del lenguaje, al cual podemos definir como un conjunto finito de _______________.
- Sintaxis, un conjunto finito de ______________________________________________.
- Semántica, que asocia un _________________ a cada instrucción.
En el diseño de cualquier lenguaje de programación, se deben considerar tres aspectos básicos:
_______________________, _________________________________, _____________________

Ejercicio 3. Responda y explique su respuesta a cada una de las siguientes preguntas:

a) ¿Hay problemas programables en ciertos lenguajes, pero no en otros?


b) ¿Hay problemas que ciertas computadoras pueden hacer, pero no otras?

Ejercicio 4. Leer los artículos de los siguientes enlaces:


http://www.cs.cmu.edu/~wing/publications/Wing06.pdf
https://www.edsurge.com/news/2016-08-06-what-s-the-difference-between-coding-and-
computational-thinking
Ejercicio 5. Resolver dos de los siguientes problemas:
a) Compruebe si la gramática con las producciones S -> S + S | S * S | (S) | -S | id es ambigua al
generar la palabra id + id * id

b) Determinar si la siguiente gramática es LL(1):


S AaAb │ BbBa
A
B

c) La siguiente gramática es LL(1)?


S  AB end
A  tipo
A  id A
B  begin C
C  codigo

d) Modifique la siguiente gramática para que cumpla la condición de LL(1)

S  S inst

S  S var D

S

D  D ident E

D  D ident sep

D  int

D  float

E  S fproc

También podría gustarte