Final 09/03/2017 (Paradigmas)

De Cuba-Wiki
  1. Para cada afirmación decidir si es verdadera o falsa y justificar:
    1. término M , si es derivable, entonces existe un valor tal que
    2. es derivable, y hay un valor tal que y
  2. Sea M un término tal que , sea , decidir si es posible que:
  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.
    1. 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.
    2. 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:
    1. {P(x, y)} y {P(y, f(y)} no unifican.
    2. es una forma normal de Skolem de .
    3. 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