Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| teaching:cc5104 [2011/06/24 15: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 | ||

