Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
teaching:cc4101:tareas:2025-1:tarea1a [2025/03/26 16:23] – created dibanezteaching:cc4101:tareas:2025-1:tarea1a [2025/03/26 18:02] (current) – [Parsing de Lenguaje con Funciones top-level] dibanez
Line 4: Line 4:
  
 En esta tarea, implementaremos el parser para un lenguaje funcional con funciones top-level, tipos de datos básicos e identificadores locales (''with''). Para hacer una aproximación más incremental al problema, dividiremos el desarrollo en un lenguaje base que luego extenderemos. En esta tarea, implementaremos el parser para un lenguaje funcional con funciones top-level, tipos de datos básicos e identificadores locales (''with''). Para hacer una aproximación más incremental al problema, dividiremos el desarrollo en un lenguaje base que luego extenderemos.
 +
 +<note important>
 +Consulte las normas de entrega de tareas en http://pleiad.cl/teaching/cc4101.
 +Recuerden que tienen que seguir la metodología [[https://users.dcc.uchile.cl/~etanter/preplai/defun.html|vista en las primeras clases]] y dejar sus funciones debidamente documentadas.
 +</note>
 +
 +Deben desarrollar su tarea en base a los siguientes archivos:
 +  * ''{{ :teaching:cc4101:tareas:2025-1:t1a.rkt |}}'': Aquí deberán implementar todas las funcionalidades pedidas en cada pregunta.
 +  * ''{{ :teaching:cc4101:tareas:2025-1:t1a-test.rkt |}}'': Aquí se le proveen tests iniciales para el lenguaje base, y deberán añadir nuevos tests para las funciones desarrolladas o extendidas.
 +
 +Deben entregar vía U-Cursos **un único archivo .zip** que contenga los archivos **t1a.rkt** y **t1a-test.rkt**.
 +
 +----
  
 ===== 1) Parser del Lenguaje Base [0.8 pts] ===== ===== 1) Parser del Lenguaje Base [0.8 pts] =====
Line 58: Line 71:
  
  
-En esta parte, vamos a extender el lenguaje core con algunas primitivas extra (booleanos, y operadores booleanos simples), la expresión condicional ''if'', e identificadores locales (''with'' con una cantidad arbitraria de bindings). +En esta parte, vamos a extender el lenguaje core con algunas primitivas extra (booleanos, y operadores booleanos), la expresión condicional ''if'', e identificadores locales (''with'' con una cantidad arbitraria de bindings). 
  
 Las extensiones sintácticas del lenguaje se presentan en el siguiente BNF. Las extensiones sintácticas del lenguaje se presentan en el siguiente BNF.
Line 105: Line 118:
 } }
 { {
-    {define {<= x y} {{y x}}}+    {define {<= x y} {|| {= x y} {< y}}}
     {define {in-range lo x hi} {&& {<= lo x} {< x hi}}}     {define {in-range lo x hi} {&& {<= lo x} {< x hi}}}
     {in-range -20 0 100}     {in-range -20 0 100}
Line 129: Line 142:
   * Recuerde incluir firmas, descripciones y tests para todas las funciones (incluyendo ''parse-binding'').   * Recuerde incluir firmas, descripciones y tests para todas las funciones (incluyendo ''parse-binding'').
   * Los tests deben cubrir todos los casos relevantes, pues se considerará en la evaluación.   * Los tests deben cubrir todos los casos relevantes, pues se considerará en la evaluación.
-  * Estos factores constituyen hasta un máximo de [1 pt] de descuento en el total de la Tarea 1 (partes a y b). Según la [[https://docs.google.com/document/d/1Ahtk97_teZwtpFnJ-H--rLndeiFuyeDHpoGWpC8wL5I/edit?usp=sharing|siguiente rúbrica]].+  * Estos factores constituyen hasta un máximo de **[1 pt]** de descuento en el total de la Tarea 1 (partes a y b). Según la [[https://docs.google.com/document/d/1Ahtk97_teZwtpFnJ-H--rLndeiFuyeDHpoGWpC8wL5I/edit?usp=sharing|siguiente rúbrica]].
 </note> </note>