Final 12/09/2013 (Paradigmas)
El profesor era Hernán Melgratti, el final consistió en preguntas de los tres paradigmas, aunque fue más una charla amena que un ping pong de preguntas y respuestas. Me comentó que se evaluaba más el razonamiento en el intercambio que la correctitud de la respuestas en si. En consecuencia, la clave es entender bien los slides, y tener un pequeño background práctico para aplicar los temas a ejemplos sencillos.
Ejercicio 1 - Funcional / LC
Dar la semántica operacional y de tipado de una expresión inventada en el momento, y preguntas posteriores del estilo "que pasaría si esto que escribiste acá fuese de esta otra forma". Por ejemplo, en una regla de tipado si se cambia una de las precondiciones de la regla.
Ejercicio 2 - Paradigma lógico
Dio un sencillo programa, con 3 o 4 facts y 2 cláusulas de definición. Pidió escribir el árbol según la evaluación de Prolog, y ver qué instancias se obtenían de respuestas. Preguntó del determinismo de las respuestas, y qué pasaría si se cambia el orden de las 2 cláusulas de definición (en una de las 2 formas, el árbol era infinito).
Tambien preguntó qué tipo de forma de resolución utilizaba SLD (binaria), y si esa misma forma aplicada a primer órden era completa (no, pues hay que aplicar factorización -explicándola- también)
También preguntó sobre el not.
Ejercicio 3 - Objetos
Dio un esquema de clases heredadas, con métodos que usan super y self, y pidió que le explique, dado un objeto y un mensaje, qué "código" se ejecutaba.
Preguntó que era el dispatch, que tipos de dispatch habían, la ventaja de cada uno de ellos, y mostrar donde ocurria cada uno de ellos en el ejemplo anterior.
También preguntó como se podría hacer para introducir una expresión lambda en objetos, y sobre bloques y clausuras, e independencia del entorno.