Máster Universitario en Software y Sistemas

Fundamentos de Lenguajes de Programación

Profesor (Coordinador):
Julio Mariño
jmarino@fi.upm.es
Profesor:
Manuel Carro
mcarro@fi.upm.es
Profesor:
Aleksandar Nanevski
aleks.nanevski@imdea.org

Semestre

Primer semestre

Créditos

4 ECTS

Resumen

Esta asignatura proporciona la formación necesaria para razonar de forma precisa y matemáticamente correcta acerca de los lenguajes de programación del software.

Se tratan los conceptos fundamentales en los que se apoyan el diseño, la definición y los mecanismos de ejecución de los lenguajes de programación, entre los que están la recursión, la sintaxis, la semántica en sus distintas formas y los sistemas de tipos.

Junto con los contenidos teóricos, esta asignatura puede incluir algunas pequeñas prácticas de programación para adquirir un nivel más instrumental de las ideas arriba mencionadas.

Programa

  1. Introducción
    1. Visión global, motivación y retos de las tecnologías de software
    2. Nociones básicas: programación, lógica, estructuras matemáticas...
  2. La sintaxis
    1. Definiciones de sintaxis abstracta y concreta
    2. La recursión y la inducción
  3. Los cálculos de lambda
    1. El cálculo de lambda sin tipos
    2. El cálculo de lambda de tipado simple
  4. La semántica
    1. La semántica operacional
    2. La semántica denotacional
  5. Sistemas de tipado
    1. La deducción natural
    2. El isomorfismo Curry-Howard
    3. El polimorfismo
    4. Los tipos algebraicos/recursivos
    5. Los tipos de referencia; mónadas, efectos
    6. El subtipado

Bibliografía

Web de la Asignatura

http://www.software.imdea.org/graduateschool

Prerrequisitos:

Método de Evaluación

La nota final se obtendrá a partir de:

Idioma en que se imparte

Inglés

Competencias Específicas

Más información:

Esta tabla muestra el código, la descripción y el nivel de cada una de las competencias específicas de la asignatura

Código Competencia Nivel
CEM3 Aplicar métodos de investigación relevantes a problemas abiertos en el área de la Ingeniería del Software, relacionados tanto con las características peculiares del producto software como con la gestión del desarrollo del mismo. S

Resultados de Aprendizaje

Más información:

Esta tabla muestra cada el código, la descripción, las competencias asociadas y el nivel de adquisición de cada uno de los resultados de aprendizaje de la asignatura

Código Resultado de Aprendizaje Competencias asociadas Nivel de Adquisición
RA-IS-4 Analizar investigaciones pioneras que pretendan cubrir debilidades en las actividades de requisitos y diseño de proyectos llevados a cabo con metodologías no clásicas CEM3 S


Guía de Aprendizaje

Guía de aprendizaje de la asignatura: Fundamentos de Lenguajes de Programación