Saltar al contingut Menu
Mapa
  • Inici
  • Informació
  • Contacte
  • Mapa

Llenguatges de Programació (LP)

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

Professors

Responsable:  (-)
Altres:(-)

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

  • 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, .

Bibliografía complementària

  • 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.

Enllaços web

(Informació no introduïda)

Capacitats prèvies

Hauran d'haver aprovat l'assignatura Prap


Compartir

 
logo FIB © Facultat d'Informàtica de Barcelona - Contacte - RSS
Aquest web utilitza cookies pròpies per oferir una millor experiència i servei. En continuar amb la navegació entenem que acceptes la nostra política de cookies.
Versió clàssica Versió mòbil