Diferencia entre revisiones de «Final 09/03/2017 (Paradigmas)»
Sin resumen de edición |
(Agrego preguntas 2, 4 y 5.) |
||
Línea 5: | Línea 5: | ||
b) <math> \exists M \in \lambda^{bn}, \ \emptyset \vdash M : \sigma </math> es derivable, y hay un valor <math> V </math> tal que <math> fix \ fix \ M \twoheadrightarrow V </math> y <math> fix \ M \twoheadrightarrow V </math> | b) <math> \exists M \in \lambda^{bn}, \ \emptyset \vdash M : \sigma </math> es derivable, y hay un valor <math> V </math> tal que <math> fix \ fix \ M \twoheadrightarrow V </math> y <math> fix \ M \twoheadrightarrow V </math> | ||
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. | 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. | ||
Línea 11: | Línea 14: | ||
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. | 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 solucion | |||
b. finito y con solucion | |||
c. infinito y con solucion | |||
6. Seguimiento en Smalltalk |
Revisión del 15:31 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 solucion b. finito y con solucion c. infinito y con solucion
6. Seguimiento en Smalltalk