Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| teaching:cc5104:2010-2:tarea2 [2010/10/27 02:11] – 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. | ||

