---------------
- 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)
-------------