Universitat de Girona

Programa de l'assignatura

Curs 2004-05

3105200736 PARADIGMES DE PROGRAMACIÓ


Objectius  

Donar a l'alumne una visió amplia de les diferencies existents entre els llenguatges de programació.
Familiaritzar a l'estudiant amb els diferents paradigmes de programació, així com amb els seus models de còmput.
Involucrar a l'alumne en l'especificació semàntica dels llenguatges de programació.
 
Prerrequisits  

Obligatoris: cap
Recomanats: Llenguatges de Programació, Lògica
 
Contingut (Programa)  

---------------

- Presentació - (4 hores)

---------------

    Què és un Llenguatge de Programació

    Possibles Classificacions

    Paradigmes

        Imperatiu

        Funcional

        Lògic

        Altres

    Història i evolució

    Definició del Llenguatge

        Lèxic

        Sintàctic

        Semàntic

    Traducció per a l'execució

        Compilació

        Interpretació

 

-----------------------

- Paradigma Funcional - (12 hores)

-----------------------

    Introducció

    Model de Còmput: lambda-càlcul simple no tipat

        lambda-termes

        substitució

        lambda-teoria

        lambda-definibilitat

    lambda-càlcul tipat

        inferència de tipus

    Lisp, ML, Haskell

    Propietats de programes funcionals

 

-------------------

- Paradigma Lògic -  (12 hores)

-------------------

    Introducció

    Model de Còmput: lògica de primer ordre

        Fórmules lògiques

        Unificació

        Resolució, SLD-resolució

    Prolog

        Resolució de restriccions

    Propietats de programes lògics

 

-----------------------

- Paradigma Imperatiu - (12 hores)

-----------------------

    Introducció

    Model de Còmput: Màquines de Turing/Arquitectura Von Newman

        Estat

        Expressions i instruccions

            Tipus d'expressions, notacions

            Assignació i control de flux

        Abstracció de control

            Accions i Funcions

            Pas de paràmetres

        Abstracció de dades

            TAD

            OOP

        C, JAVA, ...

    Propietats de programes imperatius

    Programació Orientada a Objectes

        Tipatge, dispatching, herència,...

        Problemes amb el tipatge

 

-------------

- Semàntica – (5 hores)

-------------

 

 
Bibliografia  


Bibliografia bàsica a utilitzar durant el curs.

- Blas C. Ruiz, Francisco Gutiérrez, Pablo Guerrero, José E. Gallardo: "Razonando con Haskell. Un curso sobre programación funcional", Thomson  2004.

- SETHI, R.: "Lenguajes de programación. Conceptos y constructores" , Addison-Wesley, 1992

- Henri E. Bal, Dick Grune: "Programming Language Essentials", Addisson-Wesley.

- L. Sterling, E. Shapiro: "The Art of Prolog", MIT press.

- C. J. Hogger: "Essentials of Logic Programming", Oxford University Press.

- Altres articles a la Web.

Altra bibliografia utilitzada:

- Manuals de diversos llenguatges.

- SEBESTA, R.W.: "Concepts of programming language" , Benjamin/Crummings Publishing Company, Inc, 1989.

- WILSON, L.B.; CLARK, R.G.: "Comparative Programming Languages" , Addison-Wesley, 1988

- BUDD, T.: "Programación orientada a objetos" , Addison - Wesley, 1994

- PRATT,W : "Programming Languages : Design and implementation" , Prentice-Hall International Editions, 1984

 

 
Mètodes docents  

Classes de teoria i problemes: 3 hores setmanals
Pràctiques: 1 hora setmanal

Consulta a articles i documents a la web.

 
Tipus d'exàmens i avaluacions  

Un examen al final del quatrimestre que serà al 70% de la nota final i el restant 30% serà avaluat a les pràctiques.
Nota mínima de cadascuna de les parts 4.5/10
 
Informació addicional  

Pràctiques sobre els diferents paradigmes de programació
 
Llengua de les classes  

Català