TP3 SINTAXIS Enunciado
TP3 SINTAXIS Enunciado
TP3 SINTAXIS Enunciado
GRUPO DE TRABAJO
Profesor: Fecha de Entrega
Nº de Grupo: División:
Auxiliar: ___/___/___
Orden Apellido y Nombre de los Integrantes Nro. Legajo
1
2
3
4
5
1.1. Encontrar GIC que generen los siguientes lenguajes. Simular con JFLAP.
a) L1 = { a2n bn+1 / n ≥ 0 }
b) L2 = { an bm / n,m ≥ 0 , |n-m| = 1 }
c) L3 = { an bn+m cm / n,m ≥ 1 }
d) L4 = { an bm cp / m ≥ 0 , n ≥ m , p impar}
1.2. Para dos de las gramáticas obtenidas en el ejercicio anterior, dibujar los árboles de derivación de dos pa-
labras de longitud mayor que 4 y los árboles totales de los lenguajes. Simular con JFLAP.
1.3. Comprobar si son ambiguas las siguientes GIC. En caso afirmativo y de ser posible, obtener gramáticas
equivalentes sin ambigüedad. Simular con JFLAP.
a) S → aS | aaS | aa b) S → aSbb | Sb | λ
1.4. Desarrollar la Forma Normal de Backus para representar la sintaxis de los siguientes lenguajes:
a) Todas las secuencias con ∑ = { a , b } que comienzan con y terminan con el mismo símbolo
b) Todas las secuencias w ε { a , b , c }* / w = w-1 , |w| impar y w no tiene símbolos consecutivos
iguales
a) Todas las secuencias de dígitos y letras que comienzan con letra y no tienen dígitos consecutivos
b) Las secuencias que tienen la forma an bm / n > m
c) El conjunto de números enteros sin ceros no significativos
d) Las sentencias de selección (simple y doble)
Página 1/5
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 3
Cátedra: Sintaxis y Semántica de los Lenguajes
1.6. Obtener Autómatas de Pila que acepten los siguientes lenguajes. Plantear soluciones con criterio de acep-
tación por Estado Final y por Pila Vacía. Simular con JFLAP.
a) L1 = { an+m bn cm / n,m ≥ 1 }
b) L2 = { an (b + c)m / n,m ≥ 0 , | w |b = | w |a }
1.7. Obtener gramáticas simplificadas para las siguientes GIC y pasarlas a la Forma Normal de Chomsky.
Simular con JFLAP.
a) S → aS | aXc | bYa | Z b) S → x | AB | SA
W → aXa | λ A → xEzz | xAy | λ
X → aXbc | b B → xCx | yCy
Y → aYb | bYa C → zzB | λ
Z → aZa | λ D → A | xx | Byy
1.8. Obtener la Forma Normal de Greibach de las siguientes GIC. Simular con THOTH.
a) S → SA | aa b) S → aX | Wbb | λ
A → aAb | cBa | ab W → bWa | c
B → abc | Bba X → Ya | Wa
Y → Zb | cc
Z → Xc | ab
1.9. Resolver las factorizaciones por izquierda presentes en las siguientes gramáticas y obtener gramáticas
equivalentes en FNG sin factores comunes. Simular con THOTH. ¿Se pueden obtener AP deterministas?
P: S → aX | aY | λ
X → Ybb
Y → aX | b
Página 2/5
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 3
Cátedra: Sintaxis y Semántica de los Lenguajes
2.1. Encontrar GIC que generen los siguientes lenguajes. Simular con JFLAP.
a) L1 = { xn (y + z)n / n ≥ 0 }
b) L2 = { an+m bn cm / n,m ≥ 1 }
c) L3 = { 0n 1m / n,m ≥ 1 , n=2m o m=2n }
d) L4 = { (a + b)n cm / n,m ≥ 0, |w|a = m }
e) L5 = { x2n+1 zm yn / n, > 0, m impar}
2.2. Para las gramáticas obtenidas en el ejercicio anterior, seleccionar dos palabras de longitud mayor que 5 y
dibujar los árboles de derivación correspondientes a cada una. Graficar los árboles totales de los lenguajes
(considerar al menos 4 niveles de profundidad). Simular con JFLAP.
2.3. Comprobar si son ambiguas las siguientes GIC. En caso afirmativo y de ser posible, obtener gramáticas
equivalentes sin ambigüedad. Si hubiera algún caso donde no se pueda encontrar una GIC no ambigua,
encontrar el patrón del lenguaje y decir cómo se denomina en general a este tipo de lenguajes. Simular
con JFLAP.
a) S → aX | Yb | λ b) S → aX | Yb | λ c) S → XY | YZ d) S → XY | YX
X → aXb | aa | b X → aXb | aX | b X → aXb | ab X → aaX | a
Y → aYb | b | a Y → aYb | Yb | a Y → aY | a Y → abY | a
Z → bXa | ba
2.4. Expresar en BNF las gramáticas cuyas producciones se indican a continuación, usando todos los meta-
caracteres que sean posibles:
2.5. Desarrollar la Forma Normal de Backus y el diagrama de sintaxis de los siguientes lenguajes:
a) Secuencias de letras formadas por una mayúscula seguida de una o más minúsculas, que no tienen
vocales consecutivas
b) Expresiones aritméticas con paréntesis balanceados
c) Las estructuras iterativas de programación
Página 3/5
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 3
Cátedra: Sintaxis y Semántica de los Lenguajes
2.7. Obtener Autómatas de Pila que acepten los siguientes lenguajes. Plantear soluciones con criterio de acep-
tación por Estado Final y por Pila Vacía. Simular con JFLAP.
a) L1 = { an bn+m am / n,m ≥ 0 }
b) L2 = { (x + y)n zn / n ≥ 0 }
c) L3 = {(a + b + c) n / n > 0 , |w|a = |w|b }
d) L4 = { xn ym zp / n ≥ 0, m par, p=2n+1 }
e) L5 = { xn ym / n> 0 m > n }
f) L6 = { xn ym / n < m }
2.8. Obtener gramáticas simplificadas para cada una y pasarlas a la Forma Normal de Chomsky.
Simular con JFLAP.
a) S → aaS | X b) S → aX | bZa | λ c) S → bY | ZX
W → abX | bbZ X → bS | Z X → aXb | λ
X → aaX | bY | aZ Y → abX | ZXa Y → abb | bZ
Y → bYa | aaY Z → bZa | b Z → aZb | λ
Z → bZa | bbT | ba
2.9. Simplificar y pasar a la Forma Normal de Greibach las siguientes GIC. Simular con THOTH.
a) S → aaX | bW | λ b) S → Zb | abY | aT
T → bXb | aYa T → aW | λ
V → Vaa | bb W → aWa | bWb
X → Sb | Z | Yaa X → Xbb | T
Y → aYa | Ybb Y → Sa | aW | λ
Z → Xb | aa Z → Ya | aXb
2.10. A partir de las gramáticas en Forma Normal de Chomsky del ejercicio 2.8, obtener los respectivos Autó-
matas de Pilas que acepten los lenguajes generados por las gramáticas, con análisis ascendente y criterio
de aceptación por estado final. Simular con JFLAP.
2.11. A partir de las gramáticas en Forma Normal de Greibach del ejercicio 2.9, obtener los respectivos Autó-
matas de Pilas que acepten los lenguajes generados por las gramáticas, con análisis descendente y criterio
de aceptación por pila vacía. Simular con JFLAP.
2.12. Resolver las factorizaciones por izquierda de las siguientes GIC, pasarlas a FNG y encontrar AP determi-
nistas para cada una, en caso que sea posible. Simular con THOTH.
Página 4/5
UNIVERSIDAD TECNOLÓGICA NACIONAL
Facultad Regional Tucumán
TRABAJO PRÁCTICO
Departamento: SISTEMAS
Nº 3
Cátedra: Sintaxis y Semántica de los Lenguajes
3. Ejercicio de Aplicación
Podemos decir que una MEF es un AFD al que se le agregó una función de salida. De igual modo se puede de-
finir un Transductor de Pila (conocido como Push Down Transducer - PDT), como un APD al que se le agrega
una función de salida. Esta salida definida sobre un alfabeto de salida S tiene en general el mismo dominio
que la función de transición del APD y el rango en S*.
Es decir si “g” es la función de salida del PDT, tenemos: g: (Q-F) x (E { , } ) x P* → S*
De tal modo que en cada transición puede escribir una secuencia de símbolos en una cinta de salida infinita,
que eventualmente puede ser la palabra vacía, en cuyo caso se interpreta como que no se escribe nada en la
cinta de salida.
3.1. Aplicar el concepto de PDT para diseñar un modelo capaz de hacer el análisis sintáctico o reconocimiento
de una expresión aritmética de sumas, productos, divisiones y restas, con paréntesis, en notación infija y
convertirla a notación posfija. Suponer como operandos, identificadores de variables o constantes repre-
sentados por una letra del alfabeto inglés.
3.2. Implementar un algoritmo que use un modelo similar al APD, para evaluar una expresión posfija, dados
los valores numéricos de sus identificadores de variable o constante. La idea de este “evaluador” es que
cuando lea operandos los introduzca en la pila, cuando lea un operador saque los operandos necesarios de
la pila, haga la operación y coloque el resultado en la pila. Y así sucesivamente hasta que al terminar de
leer la expresión posfija, tenga el resultado como único valor en la pila.
Página 5/5