guía de fundamentos de lenguajes de programación

4
Facultad de Ingeniería Departamento de Computación IECI – ICCI Guía Nº 1 de Fundamentos de Lenguajes de Programación 1 er Semestre del 2003. I.- Gramáticas BNF. 1) La gramática de la lengua castellana se expresa mediante reglas sencillas que definen las partes de la oración, y que permiten comprobar fácilmente si una frase determinada es o no correcta. Como ejemplo de aplicación se analizará la frase “el estudiante daba apuntes a Juan en el bar”. Las reglas que se aplicarán son las siguientes: 9 “UNA ORACIÓN CONSTA DE SUJETO Y PREDICADO”. 9 “UN SUJETO ES UNA FRASE NOMINAL”. 9 “UNA FRASE NOMINAL CONSTA DE UN GRUPO NOMINAL Y DE UN CALIFICATIVO, QUE PUEDE FALTAR”. 9 “UN GRUPO NOMINAL CONSTA DE UN ARTÍCULO, QUE PUEDE FALTAR, Y DE UN NOMBRE”. 9 “UN PREDICADO CONSTA DE UN VERBO SEGUIDO DE UN CONJUNTO DE COMPLEMENTOS”. 9 “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”. 9 “UN COMPLEMENTO DIRECTO ES UNA FRASE NOMINAL”. 9 “UN COMPLEMENTO INDIRECTO ES LA PREPOSICIÓN a SEGUIDA DE UNA FRASE NOMINAL”. 9 “UN COMPLEMENTO CIRCUNSTANCIAL ES UNA PREPOSICIÓN 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 avión puede verse como una tripulación y un conjunto de pasajeros; en que cada tripulación está compuesta por un piloto, un copiloto y tres o cuatro azafatas; mientras que un pasajero puede ser un hombre, una mujer o un niño. Cada avión en la loza debe estar acompañado por un equipo técnico que se preocupa de su preparación para el despegue, este equipo técnico está compuesto por un señalizador, dos mecánicos y uno o dos carros suministradores de combustible; por otro lado, cada avión en el aire debe estar acompañado 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 podrían o no estar presentes. 1 Profesor: Ricardo Valdivia. Ayudante: Solange Reyes.

Upload: freddy-castro-ponce

Post on 10-Jul-2016

218 views

Category:

Documents


4 download

DESCRIPTION

Una guía para estudiar.

TRANSCRIPT

Facultad de Ingeniería Departamento de Computación

IECI – ICCI

Guía Nº 1 de Fundamentos de Lenguajes de Programación

1er Semestre del 2003.

I.- Gramáticas BNF. 1) La gramática de la lengua castellana se expresa mediante reglas sencillas que definen las partes de la oración, y que permiten comprobar fácilmente si una frase determinada es o no correcta. Como ejemplo de aplicación se analizará la frase “el estudiante daba apuntes a Juan en el bar”.

Las reglas que se aplicarán son las siguientes: “UNA ORACIÓN 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 ARTÍCULO, 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 PREPOSICIÓN a SEGUIDA DE UNA FRASE

NOMINAL”. “UN COMPLEMENTO CIRCUNSTANCIAL ES UNA PREPOSICIÓN 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 avión puede verse como una tripulación y un conjunto de pasajeros; en que cada tripulación está compuesta por un piloto, un copiloto y tres o cuatro azafatas; mientras que un pasajero puede ser un hombre, una mujer o un niño. Cada avión en la loza debe estar acompañado por un equipo técnico que se preocupa de su preparación para el despegue, este equipo técnico está compuesto por un señalizador, dos mecánicos y uno o dos carros suministradores de combustible; por otro lado, cada avión en el aire debe estar acompañado 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 podrían o no estar presentes.

1 Profesor: Ricardo Valdivia. Ayudante: Solange Reyes.

Facultad de Ingeniería Departamento de Computación

IECI – ICCI

II.- Conceptos A) Nombre y explique al menos cinco principios que se deben considerar en el diseño de un lenguaje de programación.

B) Defina los siguientes conceptos:

Sintaxis Sobrecarga de operadores Precedencia Coerción Casting Semántica short-circuit Dangling-else Corrutina

C) Indique la diferencia entre evaluación especulativa y evaluación perezosa. D) Explique el concepto de registro de activación.

III.- Paso de parámetros 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 parámetros se realiza por:

i) Valor ii) Resultado iii) Valor-Resultado iv) Referencia

2 Profesor: Ricardo Valdivia. Ayudante: Solange Reyes.

Facultad de Ingeniería Departamento de Computación

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 parámetros se realiza por:

i) Valor ii) Resultado iii) Valor-Resultado iv) Referencia

3 Profesor: Ricardo Valdivia. Ayudante: Solange Reyes.

Facultad de Ingeniería Departamento de Computación

IECI – ICCI

IV.- Programación Imperativa.

1. A partir del siguiente programa, señale los seis números que se imprimen.

Justifique su resultado, señalando 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

4 Profesor: Ricardo Valdivia. Ayudante: Solange Reyes.