Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| teaching:cc4101:tareas:2024-1:tarea1b [2024/04/08 17:46] – [Tarea 1b (Entrega: Jueves 18 de Abril de 2024)] gricci | teaching:cc4101:tareas:2024-1:tarea1b [2025/04/08 22:09] (current) – [Tarea 1b (Entrega: Domingo 21 de Abril de 2024)] dibanez | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Tarea 1b (Entrega: Domingo | + | ====== Tarea 1b (Entrega: Domingo |
| ==== Lenguaje con tipos estáticos ==== | ==== Lenguaje con tipos estáticos ==== | ||
| Line 18: | Line 18: | ||
| Si lo desea, puede obtener un bonus resolviendo la tercera parte, que es opcional: '' | Si lo desea, puede obtener un bonus resolviendo la tercera parte, que es opcional: '' | ||
| - | También puede serle útil el archivo {{ : | + | **Nota:** Es libre de implementar el intérprete usando sustitución inmediata o diferida (con ambientes), en cuyo caso podría |
| Deben entregar vía U-Cursos **un único archivo .zip** que contenga todos los archivos de su entrega. | Deben entregar vía U-Cursos **un único archivo .zip** que contenga todos los archivos de su entrega. | ||
| Line 54: | Line 54: | ||
| | {<id> < | | {<id> < | ||
| - | < | + | < |
| </ | </ | ||
| Line 113: | Line 113: | ||
| } | } | ||
| </ | </ | ||
| + | Además de lo anterior, asumiremos por simplicidad que en los bindings de un mismo '' | ||
| + | <code scheme> | ||
| + | { | ||
| + | {with {{x 2} | ||
| + | {x 4}} | ||
| + | x} | ||
| + | } | ||
| + | </ | ||
| * Debe verificar en tiempo de ejecución que los argumentos de los operadores numéricos sean numéricos, que los argumentos de los operadores booleanos sean booleanos, y que los argumentos de los operadores de pares sean pares (En la parte 2 se alineará la verificación dinámica con la verificación estática). | * Debe verificar en tiempo de ejecución que los argumentos de los operadores numéricos sean numéricos, que los argumentos de los operadores booleanos sean booleanos, y que los argumentos de los operadores de pares sean pares (En la parte 2 se alineará la verificación dinámica con la verificación estática). | ||
| * Considere que la igualdad solo es válida sobre números. | * Considere que la igualdad solo es válida sobre números. | ||
| Line 174: | Line 182: | ||
| Teniendo en cuenta todo lo descrito anteriormente, | Teniendo en cuenta todo lo descrito anteriormente, | ||
| - | - **[1.0 pts]** '' | + | - **[1.0 pts]** '' |
| - **[0.2 pts]** '' | - **[0.2 pts]** '' | ||
| - | El testing recibe **0.3 pts**. | + | El testing recibe **0.3 pts** |
| ----- | ----- | ||
| Line 259: | Line 266: | ||
| Para poder realizar un checkeo de tipos estático, necesitaremos: | Para poder realizar un checkeo de tipos estático, necesitaremos: | ||
| - | - **[0.7 pts]** Implementar la función '' | + | - **[0.7 pts]** Implementar la función '' |
| - | - **[0.4 pts]** Implementar '' | + | - **[0.4 pts]** Implementar '' |
| - **[0.2 pts]** Implementar '' | - **[0.2 pts]** Implementar '' | ||
| - | - **[0.1 pts]** Extender la función '' | + | - **[0.1 pts]** Extender la función '' |
| - | El testing de esta parte recibe **0.5 pts**. | ||
| **Observaciones importantes**: | **Observaciones importantes**: | ||
| Line 303: | Line 309: | ||
| ¿Puede efectivamente convencerse de que todo programa que pasa la verificación de tipo no se cae con un error de tipo durante la ejecución? | ¿Puede efectivamente convencerse de que todo programa que pasa la verificación de tipo no se cae con un error de tipo durante la ejecución? | ||
| + | El testing de esta parte recibe **0.5 pts** | ||
| ---- | ---- | ||
| Line 321: | Line 328: | ||
| Un contrato corresponde a un predicado, una función que recibe exactamente un argumento y retorna un booleano. Un ejemplo de programa válido puede ser: | Un contrato corresponde a un predicado, una función que recibe exactamente un argumento y retorna un booleano. Un ejemplo de programa válido puede ser: | ||
| <code scheme> | <code scheme> | ||
| - | {{define {positive {x : Num}} {< 0 x}} | + | {{define {positive {x : Num}} : Bool {< 0 x}} |
| | | ||
| {- y x}} | {- y x}} | ||

