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

De Cuba-Wiki
Sin resumen de edición
m (Formato)
 
(No se muestran 3 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
1. Para cada afirmación decidir si es verdadera o falsa y justificar:
# Para cada afirmación decidir si es verdadera o falsa y justificar:
 
## <math> \forall </math> término M <math> \in \lambda^{bn} </math>, si <math> \emptyset \vdash M : \sigma </math> es derivable, entonces existe un valor <math>V</math> tal que <math> fix \ M \twoheadrightarrow V </math>
a) <math> \forall </math> término M <math> \in \lambda^{bn} </math>, si <math> \emptyset \vdash M : \sigma </math> es derivable, entonces existe un valor <math>V</math> tal que <math> fix \ M \twoheadrightarrow V </math>
## <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>
 
# Sea M un término tal que <math> \emptyset \vdash M : \sigma </math>, sea <math> W(ERASE(M)) = \Gamma \vdash M' : \rho </math>, decidir si es posible que:
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>
## <math> \sigma \neq \rho </math>
 
## <math> \sigma = \rho, \ M \neq M' </math>
2. Sea M un termino tal que 0 |- M : r, sea W(ERASE(M)) = R |- M' : p, decidir si es posible que:
# 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.
 
## 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.
a. r != p
## 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.
 
# Decidir si es verdadero o falso:
b. r == p, M != M'
## {P(x, y)} y {P(y, f(y)} no unifican.
 
## <math> \forall x. \forall y. P(x, f(x)) \ \wedge \ \lnot P(y, f(y)) </math> es una forma normal de Skolem de <math> \forall x. \forall y. \exists z. P(x, z) \ \wedge \ \lnot P(y, z) </math>.
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.
## 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)".
 
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:
5. Sea un programa en Prolog que redefine el "not" como:
 
not(G) :- call(G), fail, !.
not(G) :- call(G), fail, !.
not(G).
 
: Comparar el resultado de evaluar not(P) si el arbol de resolucion SLD de P es:
not(G).
: a) finito y sin solución
 
: b) finito y con solución
Comparar el resultado de evaluar not(P) si el arbol de resolucion SLD de P es:
: c) infinito y con solución
 
a. finito y sin solución
 
b. finito y con solución
 
c. infinito y con solución
 
6. Seguimiento en Smalltalk
6. Seguimiento en Smalltalk

Revisión actual - 13:43 2 sep 2020

  1. Para cada afirmación decidir si es verdadera o falsa y justificar:
    1. Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \forall } término M Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \in \lambda^{bn} } , si Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \emptyset \vdash M : \sigma } es derivable, entonces existe un valor Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle V} tal que Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle fix \ M \twoheadrightarrow V }
    2. Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \exists M \in \lambda^{bn}, \ \emptyset \vdash M : \sigma } es derivable, y hay un valor Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle V } tal que Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle fix \ fix \ M \twoheadrightarrow V } y Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle fix \ M \twoheadrightarrow V }
  2. Sea M un término tal que Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \emptyset \vdash M : \sigma } , sea Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle W(ERASE(M)) = \Gamma \vdash M' : \rho } , decidir si es posible que:
    1. Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \sigma \neq \rho }
    2. Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \sigma = \rho, \ M \neq 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.
    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. Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \forall x. \forall y. P(x, f(x)) \ \wedge \ \lnot P(y, f(y)) } es una forma normal de Skolem de Error al representar (SVG o PNG como alternativa (MathML puede ser habilitado mediante plugin de navegador): respuesta no válida («Math extension cannot connect to Restbase.») del servidor «https://en.wikipedia.org/api/rest_v1/»:): {\displaystyle \forall x. \forall y. \exists z. P(x, z) \ \wedge \ \lnot P(y, z) } .
    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