es ca en ca ca ca en pt es oc es es es en es es es ca es es en es es en en gl es es fr fr es fr es es es es es pt es es es es es en en fr ia bn fr cs it es eo es eo es es cs es en en fr ia bn fr cs en en en en en en en en en es es cs es en en fr ia bn fr cs en en en en en en en en en es es es eo es es es cs pt en en fr ia bn fr cs en en en en en en en en en es es cs es en en fr ia bn fr cs en en en en en en en en en es es cs es en en fr ia bn fr cs en en en en en en en en en es es es es en en fr ia bn fr cs en en en en en en en en en es en es fr es es es es es es en es es es es es en en en en es es pt es pt es es es es pt es es es es es es es es es es es es es es es es es es es es es es es es en es en en es es
Asignaturas - Facultad de Informática de Barcelona - FIB - Universidad Politecnica de Cataluña - UPC - BarcelonaTech
Masters in Computer Science and Engineering
Grado en Ingeniería en informática
Versió en Català | English version
PRED - Prerrequisito para la EI
1. Que los estudiantes adquieran las herramientas conceptuales para analizar los lenguajes de programación según el modelo subyacente (diferentes clases o paradigmas), según sus componentes fundamentales (sistema de tipos, modelo de ejecución, abstracciones de datos y de procesos), según su adecuación al tipo de aplicación, envergadura y metodología de desarrollo. 2. Que conozcan los fundamentos teóricos básicos de los LP y su definición formal, y en especial los fundamentos del paradigma funcional. 3. Que adquieran una experiencia básica en la programación con lenguajes funcionales del tipo de Miranda o Haskell.
Otras horas fuera del horario fijado
Evolución histórica de los Lenguajes de Programación. Caracterización de los principales paradigmas de Programación.
El modelo de ejecución en cada uno de ellos. Características deseables en un LP. Criterios de diseño.
Componentes de un sistema de programación funcional. Evolución del paradigma. Características de los LF actuales:
Uso intensivo del orden superior. Curryficación. Definición ecuacional mediante patrones. Tipos algebraicos y tipos abstractos.
Polimorfismo. Deducción de tipos. Evaluación perezosa. Técnicas de programación de orden superior en un lenguaje funcional con evaluación perezosa (Miranda o Haskell). Programación con objetos infinitos. Solucionas en redes de procesos comunicantes (streams). Definición de listas por comprensión (esquema generador/filtro).
Se ha considerado como actividad de laboratorio las cuestiones relativas a la implementación en el lenguaje de programación (Miranda o Haskell) de los ejercicios de la colección de problemas y la práctica. Parte de esta actividad se realizará en el aula y una parte frente al terminal.
Actividades de laboratorio adicionales:
Horas adicionales dedicadas a la codificación y puesta a punto de los ejercicios y de la práctica.
Lambda cálculo. Estrategias de reducción. Orden normal y aplicativo. El problema de las definiciones recursivas.
Introducción a la Teoría de dominios. Teorema del Punto fijo. Introducción a la teoría de tipos. Sistemas de inferencia de tipos.
Definición formal de Lenguajes de Programación
Elementos sintácticos. Sintaxis concreta y abstracta. Los distintos enfoques semánticos y su aplicación. El enfoque denotacional.
Definición semántica de un lenguaje imperativo mínimo. Equivalencia semántica de programas. Semántica de otras clases de lenguajes.
Componentes fundamentales de los LP
- El sistema de tipos. Evolución del concepto de tipo. Mecanismos de definición de tipos. Tipos algebraicos. Genericidad y polimorfismo. Polimorfismo paramétrico y de inclusión. Subtipos y subclases. Formas de herencia. Jerarquías. Comprobación estática y dinámica de tipos. Inferencia de tipos.
- El control de secuencia. A nivel de expresiones. instrucciones. Entre unidades de programa. Procedimientos. Corrutinas. Procesos concurrentes. Manejadores de excepciones. El control de secuencia en los distintos paradigmas.
- El control de datos. Asociación entre identificadores y objetos. Sobrecarga. Aliasing. Resolución estática y dinámica de vínculos. Ámbito y visibilidad. Compartición de datos. Formas de paso de parámetros.
Horas adicionales dedicadas a la evaluación
Total horas de trabajo para el estudiante
Habrá clases de teoría y problemas (en promedio 4 horas semanales), y clases de laboratorio (1 hora en promedio).Las clases de laboratorio se dedicarán a la implementación de los ejercicios que se resuelvan en clase de problemas y a la realización de una práctica que se resolverá en grupos preferentemente de 3 alumnos.
Habrá dos exámenes y una práctica obligatoria con uno peso del 15%.El examen parcial libera materia si la nota no es inferior a 4. En ese caso la nota final se calcula como la media ponderada de las tres notas, donde el parcial tiene un peso del 40% y el final 45%.
Si la nota del parcial es inferior a 4, el examen final incluirá ambas partes de la asignatura y tendrá un peso del 85%.
Carlo Ghezzi, Mehdi Jazayeri Programming language concepts, John Wiley and Sons, 1998.
Allen B. Tucker, Robert Noonan Lenguajes de programación : principios y paradigmas, McGraw-Hill, 2003.
Richard Bird Introducción a la programación funcional con Haskell, Prentice Hall, 2000.
Blas Carlos Ruiz Jiménez ... [et al.] Razonando con Haskell : un curso sobre programación funcional, Thomson-Paraninfo, 2004.
CLERICI, Silvia Apuntes sobre Programación Funcional, CPET -UPC, .
Terrence W. Pratt, Marvin V. Zelkowitz Programming languages : design and implementation, Prentice-Hall, 2001.
Benjamin C. Pierce Types and programming languages, MIT Press, 2002.
Lloyd Allison A Practical introduction to denotational semantics, Cambridge University Press, 1986.
Kenneth Slonneger, Barry L. Kurtz Formal syntax and semantics of programming languages : a laboratory based approach, Addison-Wesley Pub. Co., 1995.
Deberán haber aprobado la asignatura Prap
Acceso a los estudios
Plan de estudios Grado
Trabajo de Fin de Grado
Ingeniería Técnica en Informática de Gestión
Ingeniería Técnica en Informática de Sistemas
Proyecto final de carrera
© Facultad de Informática de Barcelona - Contacto - RSS
Esta web utiliza cookies propias para ofrecerle una mejor experiencia y servicio. Si continúa la navegación, entendemos que acepta nuestra política de cookies. Versión clássica Versión móvil