Anar a: Buscar
FIB > Els estudis > Pàgines de les assignatures > Departament LSI > LP Castellano | English
RI
P1
LI
ALG
A
IA
BD
COM
DABD
SIO
GSI
ASAI
PESBD
SGBDO
CL
PGPSI
VIG
DSBW
VA
ER
AIA
ES2
IL
TC
ES1
ALCC
PCD
ADA
PRAP
PROP
PS
LP
PLN
PRED
SGI



Llenguatges de Programació ( LP )

Crèdits: Departament: Tipus: Requisits:
7.5 LSI
  • Optativa per l'EI
  • PRED - Pre-requisit per l' EI

    Professors

    Responsable:  Silvia Inés Clérici Martínez (silvialsi.upc.edu).
    Altres:Cristina Zoltan Torres (zoltanlsi.upc.edu).

    Objectius Generals

    1. Que los alumnos adquieran las herramientas conceptuales para analizar los lenguajes de programación
    -según el modelo subyacente (diferentes classes 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.

    Objectius Específics

    Coneixements

    (Informació no introduïda)

    Habilitats

    (Informació no introduïda)

    Competències

    (Informació no introduïda)

    Continguts

    Hores estimades de:

    T P L Alt L Ext. Est A Ext.
    Teoria Problemes Laboratori Altres activitats Laboratori extern Estudi Altres hores fora d'horari fixat

    1. Clases de Lenguajes
      T     P     L    Alt  L Ext  Est  A Ext Total
     3,0   2,0   0   0   0   3,0   0   8,0 
    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.


    2. Lenguajes Funcionales
      T     P     L    Alt  L Ext  Est  A Ext Total
     6,0   13,0   14,0   0   14,0   19,0   0   66,0 
    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 por 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. Soluciones en redes de procesos comunicantes
    (streams). Definición de listas por comprension (esquema generador/filtro).
    • Laboratori:
      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.
    • Activitats de laboratori addicionals:
      horas adicionales dedicadas a la codificacion y puesta a punto de los ejercicios y de la práctica.

    3. Fundamentos
      T     P     L    Alt  L Ext  Est  A Ext Total
     5,0   5,0   0   0   0   15,0   0   25,0 
    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.


    4. Definición formal de Lenguajes de Programación
      T     P     L    Alt  L Ext  Est  A Ext Total
     5,0   5,0   0   0   0   15,0   0   25,0 
    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

    5. Componentes fundamentales de los LP
      T     P     L    Alt  L Ext  Est  A Ext Total
     9,0   3,0   0   0   0   7,0   0   19,0 
    - 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. En 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. Ambito y visibilidad. Compartición de datos. Formas de paso de parámetros.


    - Total per tipus
      T     P     L    Alt  L Ext  Est  A Ext Total
     28,0   28,0   14,0   0   14,0   59,0   0   143,0 
    - Hores addicionals dedicades a l'avaluació:
    7,0
    - Total hores de treball per l'estudiant
    150,0

    Metodologia docent

    Habrán clases de teoría y problemas ( en promedio 4 horas semanales), y clases de laboratorio (1 hora en promedio).
    Las clases de laboratorio comenzarán en la 8ª semana. Consistirán en la implementación de los ejercicios que se resuelvan
    en clase de problemas y en la realización de una práctica que se resolverá en grupos preferentemente de 3 alumnos.


    Mètode d'avaluació

    Habrán dos exámenes y una práctica obligatoria con un 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 30% y el final 55%.
    Si la nota del parcial es inferior a 4 el examen final incluirá ambas
    partes de la asignatura y tendrá un peso del 85 %.

    Bibliografía bàsica

    • GHEZZI, Carlo & YAZAYERI, Mehdi Programming Language Concepts, John Wiley & Sons, 3ª ed., 1998.
    • TUCKER, Allen & NOONAN, Robert LENGUAJES DE PROGRAMACION, Principios y Paradigmas, Mc Graw Hill/Iberoamericana, 2003.
    • BIRD, Richard Introducción a la programación funcional usando Haskell, Prentice-Hall, 2º edición, 1999.
    • RUIZ, B.; GUTIERREZ, F.; GUERRERO, P.; GALLARDO, J. RAZONANDO CON HASKELL. Un curso sobre Programación Funcional, THOMSON Editores Spain, 2004.
    • CLERICI, Silvia Apuntes sobre Programación Funcional, CPET -UPC, .

    Bibliografía complementària

    • PRATT, Terrence , ZELKOWITZ, Marvin PROGRAMMING LANGUAGES. Design and Implementation(4th Edition), PRENTICE HALL, 2001.
    • PIERCE, Benjamin C. Types and Programming Languages, The MIT Press, 2002.
    • ALLISON, Lloyd A practical Introduction to Denotational Semantics , Cambridge Computer. Science Texts, 1986.
    • SLONNEGER, Kenneth & KURTZ, Barry L. Formal Syntax and Semantics of Programming Languages: A Laboratory Based Approach, Addison-Wesley, 1995.

    Enllaços web

    (Informació no introduïda)

    Capacitats prèvies

    Deberán haber aprobado la asignatura Programación II



    versió per imprimir