Download Lenguajes de Programación Auxiliar 12 - U

Document related concepts
no text concepts found
Transcript
Lenguajes de Programación
Auxiliar 12
Éric Tanter
Auxiliares: Óscar Álvarez, Richard Ibarra
19 de junio de 2008
1. Control 3, Primavera 2007 Escriba el resultado esperado para el siguiente programa VBCFAE, justificando en casa paso los valores en el
Environment y en el Store.
{with {setter {refun {x}
{set x 41}}}
{with {y 10}
{with a {newbox y}}
{seqn
{setter y}
{+ {openbox a} y}}}}
2. Control 3, Otoño 2007 Usted recién descubrió un nuevo lenguaje. ¿Qué
puede decir del resultado del siguiente programa? (la función main es el
punto de entrada del programa).
def y = 10;
def void foo(x) { x = y; }
def void main() {
def z = 5;
foo(z);
println(z);
}
3. Control 3, Otoño 2007 Considere el siguiente programa:
{with {f {fun {x}
{fun {y} {+ x y}}}}
{+ 3 {f 5}}}
a) Reescriba este programa con las anotaciones de tipos necesarias
b) Escriba y explique el juicio de tipo de una expresión with
c) Demuestre, desarollando el árbol de juicio de tipos, que el programa
anterior no es válido.
1