Laboratorio


En esta sección se colocarán las prácticas y ejecicios de laboratorio asignados durante el semestre.

Lenguaje de programación
El principal lenguaje de programación que se usará será Racket (un descendiente de Scheme), aunque habrán prácticas en las que se tendrá que utilizar otro lenguaje. Para las prácticas en Racket se utilizará el intérprete PLT (también conocido como DrRacket) versión 6.7. El dialecto que se usará en el curso será plai.

Prácticas


Lineamientos de entrega

Nombre Fecha de inicio Fecha de entrega
Práctica 1: Fundamentos de Racket 03-02-2017 17-02-2017 23:59
Práctica 2: Tipos de Datos Abstractos 17-02-2017 03-03-2017 23:59
Práctica 3: Generación de código ejecutable 03-03-2017 17-03-2017 23:59
Práctica 4: Funciones de primera clase 17-03-2017 31-03-2017 23:59
Práctica 5: Evaluación perezosa 31-03-2017 21-04-2017 23:59
Práctica 6: Recursividad 21-04-2017 05-05-2017 23:59
Práctica 7: Sistema Verificador de Tipos 06-05-2017 19-05-2017 23:59
Práctica 8: Orientación a Objetos 19-05-2017 05-06-2017 23:59
Práctica Extra: Estado 25-05-2017 15-06-2017 23:59


Sesiones de laboratorio


Forma de trabajo

  1. Introducción al tema mediante una explicación breve y demostración de código a los alumnos para aprender la sintaxis del lenguaje o la implementación de pequeños intérpretes.
  2. Ejercicios breves para desarrollar en laboratorio, para que los alumnos experimenten y se puedan aclarar dudas.
Nombre Ejemplos Ejercicios Fecha de entrega
Fundamentos de Racket - Parte 1 Ejercicios sesión 1 03-02-2017 16:59
Fundamentos de Racket - Parte 2 Ejercicios sesión 2 10-02-2017 16:59
Tipos de Datos Abstractos - Parte 1 naturales.rkt Ejercicios sesión 3
Solución
17-02-2017 16:59
Tipos de Datos Abstractos - Parte 2 listas.rkt Ejercicios sesión 4 24-02-2017 16:59
Generación de código ejecutable - Parte 1 Ejercicios sesión 5
Solución
03-03-2017 16:59
Generación de código ejecutable - Parte 2 waev2.rkt Ejercicios sesión 6
Solución (diagrama)
Solución (código)
10-03-2017 16:59
Azúcar sintáctica Ejercicios sesión 7
Solución
17-03-2017 16:59
Funciones de primera clase faev2.rkt
faev3.rkt
faev4.rkt
Ejercicios sesión 8
Solución
24-03-2017 16:59
Estructuras de datos infinitas streams.rkt Ejercicios sesión 9 31-03-2017 16:59
Intérpretes perezosos cfae.rkt
wae.hs
Ejercicios sesión 10 07-04-2017 16:59
Recursión y optimizaciones factorial.rkt Ejercicios sesión 11 25-04-2017 18:30
Intérpretes recursivos rcfwae.rkt Ejercicios sesión 12 28-04-2017 15:59
Sistema Verificador de Tipos Ejercicios sesión 13 05-05-2017 15:59
Juicios de tipo trcfwae.rkt Ejercicios sesión 14
Solución
12-05-2017 15:59
Macros y Orientación a Objetos macros.c
macros.rkt
objetos.rkt
Ejercicios sesión 15
Solución
19-05-2017 15:59