Vous êtes sur la page 1sur 4

Facultad de Ingeniera

Departamento de Computacin
IECI ICCI

Gua N 1 de Fundamentos de Lenguajes de Programacin


1er Semestre del 2003.

I.- Gramticas BNF.


1) La gramtica de la lengua castellana se expresa mediante reglas sencillas que definen las
partes de la oracin, y que permiten comprobar fcilmente si una frase determinada es o no
correcta. Como ejemplo de aplicacin se analizar la frase el estudiante daba apuntes a
Juan en el bar.
Las reglas que se aplicarn son las siguientes:
UNA ORACIN CONSTA DE SUJETO Y PREDICADO.
UN SUJETO ES UNA FRASE NOMINAL.
UNA FRASE NOMINAL CONSTA DE UN GRUPO NOMINAL Y DE UN CALIFICATIVO,
QUE PUEDE FALTAR.
UN GRUPO NOMINAL CONSTA DE UN ARTCULO, QUE PUEDE FALTAR, Y DE UN
NOMBRE.
UN PREDICADO CONSTA DE UN VERBO SEGUIDO DE UN CONJUNTO DE
COMPLEMENTOS.
UN CONJUNTO DE COMPLEMENTOS CONSTA DE UN COMPLEMENTO DIRECTO, QUE
PUEDE FALTAR, UN COMPLEMENTO INDIRECTO, QUE PUEDE FALTAR, Y CERO, UNO O
VARIOS COMPLEMENTOS CIRCUNSTANCIALES.
UN COMPLEMENTO DIRECTO ES UNA FRASE NOMINAL.
UN COMPLEMENTO INDIRECTO ES LA PREPOSICIN a SEGUIDA DE UNA FRASE
NOMINAL.
UN COMPLEMENTO CIRCUNSTANCIAL ES UNA PREPOSICIN SEGUIDA DE UNA
FRASE NOMINAL.
2) Determine la BNF, para el siguiente enunciado:
Se puede ver un aeropuerto como un conjunto de aviones en el aire y un conjunto de
aviones en la loza, entre los cuales siempre est la torre de control de por medio. Un avin
puede verse como una tripulacin y un conjunto de pasajeros; en que cada tripulacin est
compuesta por un piloto, un copiloto y tres o cuatro azafatas; mientras que un pasajero
puede ser un hombre, una mujer o un nio. Cada avin en la loza debe estar acompaado
por un equipo tcnico que se preocupa de su preparacin para el despegue, este equipo
tcnico est compuesto por un sealizador, dos mecnicos y uno o dos carros
suministradores de combustible; por otro lado, cada avin en el aire debe estar acompaado
de un equipo de profesionales de la torre de control, entre los cuales se cuenta un jefe de
pista, uno o dos radiocontroladores y dos inspectores de vuelo que podran o no estar
presentes.

Profesor: Ricardo Valdivia.


Ayudante: Solange Reyes.

Facultad de Ingeniera
Departamento de Computacin
IECI ICCI

II.- Conceptos
A) Nombre y explique al menos cinco principios que se deben considerar en el diseo de un
lenguaje de programacin.
B) Defina los siguientes conceptos:
Sintaxis
Sobrecarga de operadores
Casting
Semntica short-circuit

Precedencia
Dangling-else

Coercin
Corrutina

C) Indique la diferencia entre evaluacin especulativa y evaluacin perezosa.


D) Explique el concepto de registro de activacin.
III.- Paso de parmetros y Scopes
1. Dado el siguiente segmento de programa:
Program Principal(input , output);
Var a , b , c : integer;
:
Procedure Sub_Prog(a , b , c : integer);
Begin
a:= b + c + 1;
b:= a + c + 2;
c:= a + b + 3;
write(En Subprograma:, a , b , c);
End;
:
Begin
a:=1 ; b:=2 ; c:=3;
Sub_Prog(b , c , a);
write(En el Principal:, a , b , c);
:
End;
Determine su salida. Suponiendo que el lenguaje inicializa por defecto las variables enteras
con el valor 0 y el paso de parmetros se realiza por:
i)
ii)
iii)
iv)

Valor
Resultado
Valor-Resultado
Referencia
2

Profesor: Ricardo Valdivia.


Ayudante: Solange Reyes.

Facultad de Ingeniera
Departamento de Computacin
IECI ICCI

2. Dado el siguiente segmento de programa:


Program Principal (input , output);
const n = 3;
var

A: array[1..n] of integer
i: integer;

Procedure Problema (a , b , c : integer);


Begin
a:= a + 1;
b:= b + a;
c:= c + b;
end;
Begin
i:=1;
Problema (i , A[i] , A[i+1])
for i=1 to n
write( A[i] );
:
end.
Determine su salida, si inicialmente A[1]=10, A[2]=20, A[3]=30 ; a = b = c = 1, y el
paso de parmetros se realiza por:
i)
ii)
iii)
iv)

Valor
Resultado
Valor-Resultado
Referencia

Profesor: Ricardo Valdivia.


Ayudante: Solange Reyes.

Facultad de Ingeniera
Departamento de Computacin
IECI ICCI

IV.- Programacin Imperativa.


1. A partir del siguiente programa, seale los seis nmeros que se imprimen.
Justifique su resultado, sealando qu variables son creadas o renombradas
en cada paso y qu valores van siendo asignados a ellas.
Program Principal;
variable
i, x : integer;
procedure Q(procedure S());
variable
i : integer;
begin
i := 1;
x := S(i);
write(x, i);
end;
procedure P(x: reference integer);
variable
i : integer;
procedure R(j: value integer) : integer;
begin
i := j;
return i + x;
end;
begin
i := 2;
x := 3;
Q(R);
write(x, i);
end;
begin
-- programa principal
i := 4;
x := 5;
P(i);
write(x, i);
end;
-- programa principal

Profesor: Ricardo Valdivia.


Ayudante: Solange Reyes.

Vous aimerez peut-être aussi