Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
teaching:cc5104 [2010/08/06 19:44] – etanter | teaching:cc5104 [2014/05/30 11:48] (current) – etanter | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== CC71Y - Lenguajes de Programación II ====== | ||
+ | |||
+ | **Objetivo general** | ||
+ | |||
+ | El curso entrega los elementos técnicos y formales necesarios para entender la problematica de garantizar que los programas cumplen con sus objetivos, limitando efectos indeseados, lo más temprano posible. Se estudian las nociones de programas válidos, errores y excepciones, | ||
+ | |||
+ | **Nota:** | ||
+ | La nueva edición del curso tendrá dos enfoques adicionales: | ||
+ | * **tipos graduales**: | ||
+ | * introducción a la **programación certificada** en Coq: definir programas junto con una demostración de su correctitud. | ||
+ | |||
+ | |||
+ | |||
+ | //Este curso es parte de los grupos de cursos recomendados para las lineas de especialización en Ciencia de la Computación y en Ingeniería de Software.// | ||
+ | |||
+ | **Contenidos** | ||
+ | |||
+ | * semántica de lenguajes, lambda calculus | ||
+ | * sistemas de tipos estáticos y dinámicos | ||
+ | * lenguajes seguro y sistemas de tipos coherentes | ||
+ | * el Halting Problem, tipos y contratos | ||
+ | * simply-typed lambda calculus | ||
+ | * simples extensiones (formas derivadas, pares, tuplas, records, sumas, variantes, etc.) | ||
+ | * extensiones avanzadas: recursión, referencias, | ||
+ | * polimorfismo paramétrico (" | ||
+ | * inferencia de tipos | ||
+ | * conexión con lógica constructiva (o " | ||
+ | * polimorfismo de subtipos, coerciones | ||
+ | * tipos graduales | ||
+ | * tipos dependientes y programación certificada. | ||
+ | |||
+ | Además de la base teorica, el curso insistirá sobre la construcción de artefactos. | ||
+ | |||
+ | ** Material de referencia** | ||
+ | * **(principalmente)** Types and Programming Languages (TAPL), Benjamin Pierce | ||
+ | * Software Foundations (SF), B. Pierce et al. | ||
+ | * Certified Programming with Dependent Types (CPDT), Adam Chlipala | ||
+ | * Programming Languages: Application and Interpretation (PLAI), Shriram Krishnamurthi | ||
+ | * Practical Foundations for Programming Languages (PFPL), Robert Harper | ||
+ | |||
+ | ** Evaluación ** | ||
+ | |||
+ | Mini-controles y tareas. No hay examen. | ||
+ | |||
+ | ** Horario ** | ||
+ | |||
+ | TBA | ||