Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
teaching:cc5104 [2014/05/30 08:47] etanterteaching:cc5104 [2014/05/30 08:48] (current) etanter
Line 1: Line 1:
-====== CC5104/CC71Y - Lenguajes de Programación II  ======+====== 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, contratos, y sobre todo, tipos. En particular, se describen los conceptos fundamentales de los sistemas de tipos, permitiendo entender porque los lenguajes de hoy siguen evolucionando en ese aspecto (por ejemplo, el sistema de tipos de Java), y porque no existe una respuesta única y definitiva al problema. El alumno será capaz además de relacionar un sistema de tipo con la semántica del lenguaje, probando su coherencia. Además de proveer un entendimiento más profundo de los lenguajes de programación, el curso habilita a los alumnos para diseñar (extensiones de) lenguajes que proveen garantías fuertes de buen comportamiento. 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, contratos, y sobre todo, tipos. En particular, se describen los conceptos fundamentales de los sistemas de tipos, permitiendo entender porque los lenguajes de hoy siguen evolucionando en ese aspecto (por ejemplo, el sistema de tipos de Java), y porque no existe una respuesta única y definitiva al problema. El alumno será capaz además de relacionar un sistema de tipo con la semántica del lenguaje, probando su coherencia. Además de proveer un entendimiento más profundo de los lenguajes de programación, el curso habilita a los alumnos para diseñar (extensiones de) lenguajes que proveen garantías fuertes de buen comportamiento.
  
-**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), Hack (Facebook), etc.)      * **tipos graduales**: combinar tipos estáticos y dinámicos. Tipos graduales fueron adoptados bajo alguna variante en los recientes lenguajes Dart (Google), TypeScript (Microsoft), Hack (Facebook), etc.)