Diferencia entre revisiones de «Final 09/03/2017 (Paradigmas)»

De Cuba-Wiki
(Agrego preguntas 2, 4 y 5.)
Sin resumen de edición
Línea 6: Línea 6:


2. Sea M un termino tal que 0 |- M : r, sea W(ERASE(M)) = R |- M' : p, decidir si es posible que:
2. Sea M un termino tal que 0 |- M : r, sea W(ERASE(M)) = R |- M' : p, decidir si es posible que:
a. r != p
a. r != p
b. r == p, M != M'
b. r == p, M != M'


Línea 16: Línea 18:


4. Decidir si es verdadero o falso:
4. Decidir si es verdadero o falso:
a. {P(x,y)} y {P(y, f(y))} no unifican.
a. {P(x,y)} y {P(y, f(y))} no unifican.
b. para_todo(x), para_todo(y) (P(x,f(x)) ^ ~P(y,f(y))) es una forma normal de Skolem de para_todo(x), para_todo(y), existe(z) (P(x,z) ^ ~P(y,z)).
b. para_todo(x), para_todo(y) (P(x,f(x)) ^ ~P(y,f(y))) es una forma normal de Skolem de para_todo(x), para_todo(y), existe(z) (P(x,z) ^ ~P(y,z)).
c. Sea un programa de Prolog con unicas clausulas: "P(X,Y) :- q(X). P(X,Y) :- q(Y)", la expresion "q(X), ~q(Y)" aparece en el arbol de busqueda de Prolog de "P(X,X), ~P(Y,Y)".
c. Sea un programa de Prolog con unicas clausulas: "P(X,Y) :- q(X). P(X,Y) :- q(Y)", la expresion "q(X), ~q(Y)" aparece en el arbol de busqueda de Prolog de "P(X,X), ~P(Y,Y)".


5. Sea un programa en Prolog que redefine el "not" como:
5. Sea un programa en Prolog que redefine el "not" como:
not(G) :- call(G), fail, !.
not(G) :- call(G), fail, !.
not(G).
not(G).
Comparar el resultado de evaluar not(P) si el arbol de resolucion SLD de P es:
Comparar el resultado de evaluar not(P) si el arbol de resolucion SLD de P es:
a. finito y sin solucion
 
b. finito y con solucion
a. finito y sin solución
c. infinito y con solucion
 
b. finito y con solución
 
c. infinito y con solución


6. Seguimiento en Smalltalk
6. Seguimiento en Smalltalk

Revisión del 21:20 11 mar 2017

1. Para cada afirmación decidir si es verdadera o falsa y justificar:

a) término M , si es derivable, entonces existe un valor tal que

b) es derivable, y hay un valor tal que y

2. Sea M un termino tal que 0 |- M : r, sea W(ERASE(M)) = R |- M' : p, decidir si es posible que:

a. r != p

b. r == p, M != M'

3. Sea un lenguaje orientado a objetos donde no se permite sobrecarga, decidir si las siguientes situaciones son admitidas por el sistema de tipos o no. Justificar.

a) Se sobrescribe el método de una clase y se reemplaza el tipo del argumento por un subtipo del tipo que tenía en la superclase.

b) Se tiene un atributo de tipo ref t (es un atributo mutable), se lo sobrescribe en una subclase por un tipo ref s, donde s es subtipo de t.

4. Decidir si es verdadero o falso:

a. {P(x,y)} y {P(y, f(y))} no unifican.

b. para_todo(x), para_todo(y) (P(x,f(x)) ^ ~P(y,f(y))) es una forma normal de Skolem de para_todo(x), para_todo(y), existe(z) (P(x,z) ^ ~P(y,z)).

c. Sea un programa de Prolog con unicas clausulas: "P(X,Y) :- q(X). P(X,Y) :- q(Y)", la expresion "q(X), ~q(Y)" aparece en el arbol de busqueda de Prolog de "P(X,X), ~P(Y,Y)".

5. Sea un programa en Prolog que redefine el "not" como:

not(G) :- call(G), fail, !.

not(G).

Comparar el resultado de evaluar not(P) si el arbol de resolucion SLD de P es:

a. finito y sin solución

b. finito y con solución

c. infinito y con solución

6. Seguimiento en Smalltalk