Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| teaching:cc5104 [2014/05/30 11:44] – etanter | teaching:cc5104 [2014/05/30 11:48] (current) – etanter | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== CC71Y - Lenguajes de Programación II ====== |
| **Objetivo general** | **Objetivo general** | ||
| Line 5: | Line 5: | ||
| 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, | 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** | + | **Nota:** |
| La nueva edición del curso tendrá dos enfoques adicionales: | La nueva edición del curso tendrá dos enfoques adicionales: | ||
| - | * tipos graduales: combinar tipos estáticos y dinámicos. Tipos graduales fueron adoptados bajo alguna variante en los recientes lenguajes Dart (Google), TypeScript (Microsoft), | + | |
| - | * introducción a la programación certificada en Coq: definir programas junto con una demostración de su correctitud. | + | * introducción a la **programación certificada** en Coq: definir programas junto con una demostración de su correctitud. |
| Line 23: | Line 23: | ||
| * simples extensiones (formas derivadas, pares, tuplas, records, sumas, variantes, etc.) | * simples extensiones (formas derivadas, pares, tuplas, records, sumas, variantes, etc.) | ||
| * extensiones avanzadas: recursión, referencias, | * extensiones avanzadas: recursión, referencias, | ||
| - | * conexión con lógica constructiva (o " | ||
| - | * polimorfismo de subtipos, coerciones | ||
| - | * tipear objetos (object calculus, Featherweight Java) | ||
| * polimorfismo paramétrico (" | * polimorfismo paramétrico (" | ||
| * inferencia de tipos | * inferencia de tipos | ||
| - | | + | |
| - | | + | |
| + | | ||
| + | * tipos dependientes | ||
| - | Además de la base teorica, el curso insistirá sobre la construcción de artefactos | + | Además de la base teorica, el curso insistirá sobre la construcción de artefactos. |
| ** Material de referencia** | ** Material de referencia** | ||
| * **(principalmente)** Types and Programming Languages (TAPL), Benjamin Pierce | * **(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 | * Programming Languages: Application and Interpretation (PLAI), Shriram Krishnamurthi | ||
| * Practical Foundations for Programming Languages (PFPL), Robert Harper | * Practical Foundations for Programming Languages (PFPL), Robert Harper | ||
| - | * Type Systems (TS), Luca Cardelli | ||
| - | |||
| - | ** Horario ** | ||
| - | |||
| - | Para el 2011/2, el horario es: 1.5/ | ||
| ** Evaluación ** | ** Evaluación ** | ||
| Mini-controles y tareas. No hay examen. | Mini-controles y tareas. No hay examen. | ||
| + | |||
| + | ** Horario ** | ||
| + | |||
| + | TBA | ||
| + | |||

