2002-2003

Enginyeria en Informàtica (3371)


Processadors de Llenguatge II (12470) 


Objectius

Un petit nombre de conceptes forma la base dels centenars de llenguatges de programació que han estat dissenyats i implementats. Aquest curs introdueix aquests conceptes base per als llenguatges de programació. L'objectiu és donar als estudiants una comprensió i apreciació bàsica dels paradigmes de programació, criteris d'avaluació així com tècniques d'implementació de llenguatges. El curs cobreix conceptes de programació imperativa, lògica funcional, orientada a objectes i concurrents. Aquests conceptes són il·lustrats per exemples en diferents llenguatges de programació com Pascal, C, Java, ML, Lisp, Prolog Perl, etc.

Mètode d'Avaluació

A través de les pràctiques i un examen. L'examen serà teòric. Les pràctiques consistiran en resoldre un nombre de problemes utilitzant els diferents paradigmes de programació presentats a classe.

Temari

Tema 1. Introducció

Paper dels llenguatges de programació
Implementació.
Qualitats en un llenguatge de programació.

Tema 2. Descripció sintàctica i semántica de llenguatges

Descripció de la sintaxi via gramàtiques lliures de context
Altres gramatiques (BNF, EBNF), parse trees, algoritmes de parsing,
Attribute grammars, semàntica denotacional, verificació de programes.

Tema 3. Programació imperativa

Representació de dades, control.

Tema 4. El paradigme lògic

Regles, queries, model d'execució, rastreig d'avaluació de queries.
Prolog, unificació, estructures de dades i tipus, closed world assumption,
negació, model d'execució, no-determinisme, back-tracking

Tema 5. El paradigma funcional

Escalars bàsics, tipus, tuplas, dades definides per l'usuari
Operaciones: expresions, patern matching.
Control: definicions de function, recursion, Lambda Abstractions, Higher-Order Functions

Tema 6. Paradigma orientat a objectes

Information Hiding, encapsulació, tipus de dades abstractes.

Tema 7. Paradigma concurrent

Bibliografia

Bibliografia
PRATT & ZELKOWITZ: Programming Languages Design and Implementation, 4th Edition, Prentice Hall (2001).
R. W. SEBESTA, Concepts of Programming Languages, 5th Edition, Addison Wesley

Bibliografia Complementaria
A. TUCKER and R.NOONAN; Programming Languages Principles and Paradigms Mc Graw Hill

Darrera actualització 24-11-2010
© Universitat Pompeu Fabra, Barcelona