Anda di halaman 1dari 3

Universidad Cat

olica del Norte


Departamento de Ingeniera de Sistemas y Computaci
on
Antofagasta, Chile

Lenguajes de Programacion:
Ejercicios Primera Prueba
Juan Bekios Calfa
Abril 2016

Problemas
1. Escriba una gram
atica en BNF que describa las expresiones boolenas en Java que incluyen los operadores:
|| (Menor prioridad)
&&
!
()
Y las expresiones relacionales:
==, ! =, <, <=, >=, > (Mayor prioridad)
Adem
as,
(a) Dibuje el
arbol sint
actico para: a&&(b > c)||!a.
(b) Transforme la gram
atica a notaci
on EBNF.
(c) Dibuje los diagramas de sintaxis.
2. Dibuje el
arbol sint
actico y una derivaci
on a la izquierda para la siguiente expresion gramatical y sus sentencias.
< assign >
< id >
< expr >

< id >=< expr >


A|B|C
< id > + < expr > | < id > < expr > |(< expr >)| < id >

(a) A = A (B + (C A)).
(b) B = C (A C + B).
(c) A = A (B + (C)).
3. Describa, con palabras, el lenguaje definido por la siguiente gramatica BNF.
<S>
<A>
<B>
<C>

< A >< B >< C >


a < A > |a
b < B > |b
c < C > |c

Universidad Cat
olica del Norte
Departamento de Ingeniera de Sistemas y Computaci
on
Antofagasta, Chile

4. Considere la gram
atica BNF:
< S > a < A > c < B > | < A > |b
< A > c < A > |c
< B > d| < A >
Cual de las siguientes sentencias son parte del lenguaje de la gramatica?, justifique:
(a) abcd
(b) acccbd
(c) acccbcc
(d) acd
(e) accc
5. Genere una gram
atica para la siguiente estructura:


EL
UN



HOM BRE
P ERRO



 M U ERDE A 
EL
HOM BRE
JU EGA CON
P ERRO
UN

COM E CON

Donde {} significa que los elementos pueden ser seleccionados en cualquier orden. Ademas, genere un
arbol
de sintaxis para la frase: UN PERRO MUERDE A UN PERRO.
6. Escriba una gram
atica en BNF para el lenguaje de los palndromos.
7. Considerar la siguiente reglas gramaticales en BNF:
< pop > [< bop >, < pop >]| < bop >
< bop > < boop > |(< pop >)
< boop > x|y|z
Para cada uno de los siguientes string, indicar todas las categoras sintacticas donde pertenecen, dado:
(a) z
(b) (x)
(c) [y]
(d) ([x, y])
(e) [(x), y]
(f) [(x), [y, x]]
8. Escribir una gram
atica no ambigua que genere el lenguaje siguiente:
S SS|(S)|()
9. Escribir una expresi
on regular para lo siguiente:
(a) Todas las cadenas sobre 0, 1 que contienen la cadena 010.
(b) Todas las cadenas sobre 0, 1 que no contienen la cadena 010.

Universidad Cat
olica del Norte
Departamento de Ingeniera de Sistemas y Computaci
on
Antofagasta, Chile

10. Dada la siguiente gram


atica para sentencias simples de asignacion:

< assignment statement > < variable >:=< arithmetic expression >
< arithmetic expression > < term > | < arithmetic expression > + < term > |
< arithmetic expression > < term >
< term > < primary > | < term > < primary > | < term > / < primary >
< primary > < variable > | < number > |(< arithmetic expression >)
< variable > < identif y > | < identif y > [< subscript list >]
< subscript list > < arithmetic expression > |
< subscript list >, < arithmetic expression >
Construir el
arbol sint
actico y el arb
ol sintactico abstracto para las siguientes sentencias de asignaci
on:
(a) A[2] := B + 1
(b) A[I, J] := A[J, I]
(c) X := U V W + X/Y
(d) P := U/(V /(W/X))
11. El lenguaje de programaci
on V# puede ser descrito como sigue:
Las variables y nombres se forman con la combinacion de las letras A, B, C y siempre deben terminar
con un n
umero. Ejemplos: A5, BCA15, AABA2.
Las sentencias v
alidas son:
Sentencia declarativa:
variable 1, variable 2,..., variable n : tipo
Ejemplo: A5, BCA15: entero
Sentencia de impresi
on:
Imprimir variables separadas por ;.
Ejemplo: imprimir A5; BCA15
Los tipos de datos v
alidos son: entero, letra o palabra.
Un programa tiene una estructura de la forma:
INICIO nombrePrograma Sentencias
...
FIN.
(No es obligatorio darle un nombre al programa)
(a) Describir formalmente la gram
atica con BNF.
(b) Describir formalmente la gram
atica con EBNF.
(c) Describir formalmente la gram
atica con Diagrama de Sintaxis.

Anda mungkin juga menyukai