Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
teaching:cc4101:tareas:2016-2:tarea3 [2016/11/30 20:13] – [Tarea 3] fmossoteaching:cc4101:tareas:2016-2:tarea3 [2017/11/07 14:56] (current) – old revision restored (2016/11/30 16:16) folmedo
Line 9: Line 9:
  
 Para claridad los lenguajes prohibidos son: Racket, Scheme, Lisp, Haskell, Scala, ML, OCaml, Coq, Idris, Agda, Rust y Erlang.  Para claridad los lenguajes prohibidos son: Racket, Scheme, Lisp, Haskell, Scala, ML, OCaml, Coq, Idris, Agda, Rust y Erlang. 
-====== Números (2pt)====== +
 Su tarea recibirá un String como argumento; su tarea debe parsear, interpretar y retornar el resultado como un String. Su lenguaje debe ser capaz de soportar los mismos casos que el lenguaje visto en clases y se deberá caer en los mismos casos. Su tarea recibirá un String como argumento; su tarea debe parsear, interpretar y retornar el resultado como un String. Su lenguaje debe ser capaz de soportar los mismos casos que el lenguaje visto en clases y se deberá caer en los mismos casos.
  
-A continuación se presenta la gramática BNF del lenguaje a implementar+A continuación se presenta la gramática BNF del lenguaje a implementar por partes (Números, Funciones, Secuencias y Set). 
 +====== Números (2pt)====== 
 <code scheme> <code scheme>
 <s-expr> ::= <num> <s-expr> ::= <num>
Line 27: Line 28:
   -  **''%%run :: String -> String%%''** que toma un programa fuente y retorna la representación en String del valor resultante.   -  **''%%run :: String -> String%%''** que toma un programa fuente y retorna la representación en String del valor resultante.
  
-Al igual que en la tarea pasada, usted tiene total libertad en como implementar la tarea.+Al igual que en la tarea pasada, usted tiene total libertad en como implementar cada una de estas funciones.
  
 ====== 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. También deben implementar variables, 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, 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. 
  
 <code scheme> <code scheme>