Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
teaching:cc4101:tareas:2017-2:tarea3 [2017/11/07 15:09] – [Tarea 3] folmedo | teaching:cc4101:tareas:2017-2:tarea3 [2017/11/07 16:44] (current) – [Tarea 3] folmedo | ||
---|---|---|---|
Line 12: | Line 12: | ||
Su tarea recibirá un String como argumento y debe parsearlo, interpretarlo y retornar el resultado como un String. | Su tarea recibirá un String como argumento y debe parsearlo, interpretarlo y retornar el resultado como un String. | ||
- | A continuación se presenta la gramática BNF del lenguaje a implementar | + | A continuación se presenta, por partes, |
====== Números (2pt)====== | ====== Números (2pt)====== | ||
<code scheme> | <code scheme> | ||
Line 29: | Line 30: | ||
Al igual que en la tarea pasada, usted tiene total libertad en como implementar cada una de estas funciones. | Al igual que en la tarea pasada, usted tiene total libertad en como implementar cada una de estas funciones. | ||
+ | |||
+ | Ejemplos con Java: | ||
+ | <code Java> | ||
+ | java tarea3 " | ||
+ | >" | ||
+ | </ | ||
+ | |||
+ | <code Java> | ||
+ | java tarea3 "(+ 4 3)" | ||
+ | >" | ||
+ | </ | ||
+ | |||
====== Funciones (2pt)====== | ====== Funciones (2pt)====== | ||
- | Usted deberá extender su lenguaje con funciones de primera clase, estas deben tener régimen de evaluación eager y scope estático. Note que los mensajes de error son un String, su tarea debe siempre retornar un String. | + | Usted deberá extender su lenguaje con funciones de primera clase. Éstas |
<code scheme> | <code scheme> | ||
Line 45: | Line 58: | ||
- " | - " | ||
- | - " | + | - " |
- | ====== Secuencias y Set (2pt)====== | + | |
- | Usted deberá extender su lenguaje con secuencias y la capacidad de cambiar el valor de una variable, note que **NO** tiene que implementar cajas. | ||
- | |||
- | |||
- | <code scheme> | ||
- | < | ||
- | | (seqn < | ||
- | | (set <id> < | ||
- | </ | ||
- | |||
- | A continuación se presentan diferentes ejemplos: | ||
Ejemplos con Java: | Ejemplos con Java: | ||
- | <code Java> | ||
- | java tarea3 " | ||
- | >" | ||
- | </ | ||
<code Java> | <code Java> | ||
java tarea3 " | java tarea3 " | ||
>" | >" | ||
- | </ | ||
- | |||
- | |||
- | <code Java> | ||
- | java tarea3 "(+ 4 3)" | ||
- | >" | ||
</ | </ | ||
Line 82: | Line 74: | ||
Ejemplos con C: | Ejemplos con C: | ||
+ | <code C> | ||
+ | ./Tarea3 "(8 10)" | ||
+ | >" | ||
+ | </ | ||
+ | |||
<code C> | <code C> | ||
./Tarea3 " | ./Tarea3 " | ||
Line 87: | Line 84: | ||
| | ||
>" | >" | ||
- | </ | ||
- | |||
- | <code C> | ||
- | ./Tarea3 "(8 10)" | ||
- | >" | ||
</ | </ | ||
Line 100: | Line 92: | ||
(f 4))))" | (f 4))))" | ||
>" | >" | ||
+ | </ | ||
+ | |||
+ | Note que los mensajes de error son un String, su tarea debe siempre retornar un String. | ||
+ | |||
+ | ====== Secuencias y Set (2pt)====== | ||
+ | |||
+ | Usted deberá extender su lenguaje con secuencias y la capacidad de cambiar el valor de una variable. (Note que **NO** tiene que implementar cajas.) | ||
+ | |||
+ | |||
+ | <code scheme> | ||
+ | < | ||
+ | | (seqn < | ||
+ | | (set <id> < | ||
+ | </ | ||
+ | |||
+ | |||
+ | Ejemplo con Java: | ||
+ | <code Java> | ||
+ | java tarea3 "(with (x 3) | ||
+ | (+ (seqn (set x 5) x) x))" | ||
+ | >" | ||
</ | </ |