Augmentar lletres   Inici   Informació   Contactar   Mapa
Castellano   English

Llenguatges de Programació (LP)

Crèdits Dept. Tipus Requisits
7.5 (6.0 ECTS) LSI
  • Optativa per a l'EI
PRED - Pre-requisit per la EI

Professors

Responsable:  Silvia Inés Clérici Martínez (silvia@lsi.upc.edu)
Altres:Ana Cristina Zoltan Torres (zoltan@lsi.upc.edu)

Objectius Generals

1. Que els alumnes obtinguin les eines conceptuals per a analitzar els llenguatges de programació
-segons el modelo subjacent (diferents classes o paradigmes),
-segons els seus components fonamentals (sistema de tipus, model d'execució, abstraccions de dades i de processos)
-segons la seva adequació al tipus d'aplicació, envergadura i metodologia de desenvolupament
2. Que coneguin els fonaments teòrics bàsics dels LP i la seva definició formal, i en especial els fonaments del paradigma funcional.
3. Que obtinguin una experiència bàsica a la programació amb llenguatges funcionals del tipus 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. Classes de Llenguatges
T      P      L      Alt    L Ext. Est    A Ext. Total 
3,0 2,0 0 0 0 3,0 0 8,0
Evolució històrica dels Llenguatges de Programació. Caracterització dels principals paradigmes de Programació. El model d"execució en cada un d'ells. Característiques desitjables a un LP. Criteris de disseny.

2. Llenguatges Funcionals
T      P      L      Alt    L Ext. Est    A Ext. Total 
6,0 13,0 14,0 0 14,0 19,0 0 66,0
Components d'un sistema de programació funcional. Evolució del paradigma. Característiques dels LF actuals:
Ús intensiu de l'ordre superior. Curryficació. Definició equacional per patrons. Tipus algebraics i tipus abstractes.
Polimorfisme. Deducció de tipus. Avaluació peresosa. Tècniques de programació d'ordre superior a un llenguatge funcional amb avaluació peresosa (Miranda o Haskell). Programació amb objectes infinits. Soluciones en xarxes de procés comunicants (streams). Definició de llistes por comprensió (esquema generador/filtro).





  • Laboratori:
    S'ha considerat com a activitat de laboratori les qüestions relatives a la implementació al llenguatge de programació (Miranda o Haskell) dels exercicis de la col·lecció de problemes i la pràctica. Part d"aquesta activitat es realitzarà a l'aula i una part davant del terminal.

  • Activitats de laboratori addicionals:
    Hores addicionals dedicades a la codificació i posada a punt dels exercicis i de la pràctica.

3. Fonaments
T      P      L      Alt    L Ext. Est    A Ext. Total 
5,0 5,0 0 0 0 15,0 0 25,0
Lambda càlcul. Estratègies de reducció. Orde normal i aplicatiu. El problema de les definicions recursives.Introducció a la Teoria de dominis. Teorema del Punt fix. Introducció a la teoria de tipus. Sistemes d"inferència de tipus.

4. Definició formal de Llenguatges de Programació
T      P      L      Alt    L Ext. Est    A Ext. Total 
5,0 5,0 0 0 0 15,0 0 25,0
Elements sintàctics. Sintaxi concreta i abstracta. Els diferents enfocaments semàntics i la seva aplicació. L'enfocament denotacional.
Definició semàntica d'un llenguatge imperatiu mínim. Equivalència semàntica de programes. Semàntica d'altres classes de llenguatges.

5. Components fonamentals dels 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 tipus. Evolució del concepte de tipus. Mecanismes de definició de tipus. Tipus algebraics. Genericitat i polimorfisme. Polimorfisme paramètric i d'inclusió. Subtipus i subclasses. Formes d'herència. Jerarquies. Comprovació estàtica i dinàmica de tipus. Inferència de tipus
- El control de seqüència. A nivell d'expressions. En instruccions. Entre unitats de programa. Procediments. Corutines. Processos concurrents. Manegadors d'excepcions. El control de seqüència als diferents paradigmes.
- El control de dades. Associació entre identificadores i objectes. Sobrecàrrega. Aliasing. Resolució estàtica i dinàmica de vincles. Àmbit i visibilitat. Compartició de dades. Formes de pas de paràmetres.


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

Hi haurà classes de teoria i problemes (en mitja 4 hores setmanals), i classes de laboratori (1 hora en promig). Les classes de laboratori es dedicaran a la implementació dels exercicis que es resolguin a classe de problemes i a la realització d"una pràctica que es resoldrà en grups preferentment de 3 alumnes.

Mètode d'avaluació

Hi haurà dos examens i una pràctica obligatòria amb un pes del 15%.

L'examen parcial allibera matèria si la nota no és inferior a 4. En aquest cas la nota final es calcula com la mitja ponderada de les tres notes, on el parcial té un pes del 40% i el final 45%. Si la nota del parcial és inferior a 4 l"examen final inclourà ambdues parts de l"assignatura i tindrà un pes 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

Hauran d'haver aprovat l'assignatura Prap



 
logo FIB © Facultat d'Informàtica de Barcelona - webmaster@fib.upc.edu - RSS RSS