Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
teaching:cc5104:2010-2:tarea2 [2010/10/26 13:04] – created etanter | teaching:cc5104:2010-2:tarea2 [2010/10/27 02:11] (current) – etanter | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== Tarea 2: Subtipos y contratos ===== | ||
+ | **Parte 1: records y subtipos** | ||
+ | * Extienda su lenguaje con records, y subtipos, basandose en lo visto en clases. No se olvide que su lenguaje debe incluir `if'. Su verificador de tipos debe retornar el tipo mínimo del termino dado, si existe, y señalar un error sino. | ||
+ | * Provea los tests suficientes para demostrar el buen funcionamiento de su verificador en presencia de subtipos. | ||
+ | |||
+ | **Parte 2: subtipos y contratos** | ||
+ | |||
+ | En su lenguaje, los tipos pueden tener un contrato, condición que se verifica dinámicamente. En lo que sigue notamos los tipos T@C, para referirnos al tipo T con contrato C. | ||
+ | - Explique como se puede reconciliar la noción de " | ||
+ | - Complemente la verificación de contratos teniendo particular cuidado con la asignación de culpa (blame) en caso de que se viole un contrato. (Hint: ahora, la culpa puede provenir del uso de una función, de su implementación, | ||
+ | |||
+ | **Parte 3 (opcional pregrado / obligatorio posgrado)** | ||
+ | |||
+ | - reformule/ | ||
+ | |||
+ | **Instrucciones** | ||
+ | |||
+ | Como siempre, para cada paso entregue código debidamente comentado, con tests y ejemplos ilustrativos. | ||
+ | |||
+ | Puntaje: | ||
+ | * pregrado: P1=3 / P2=3 / P3=+1 (opcional) | ||
+ | * posgrado: P1=2 / P2=2 / P3=2 | ||
+ | |||
+ | Fecha de entrega: Miercoles 17 de Noviembre, por U-Cursos. |