Enginyeria en Informàtica (3371)
Processadors de Llenguatge II (12470)
Descripció
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, programació lògica, programació funcional, programació orientada a objectes, i programació concurrent. Aquests conceptes són il·lustrats per exemples en diferents llenguatges de programació com Pascal, C, Prolog, SML, Java, etc.
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. 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 4. El paradigma funcional
Escalars bàsics, tipus, tuplas, dades definides per l'usuari
Operaciones: expresions, patern matching.
Control: definicions de function, recursion.
Tema 5. El Paradigma concurrent
Procesos, threads, mecanismes i problemes de sincronizació,
scheduling de procesos, Java.
Tema 6. Paradigma orientat a objectes
Information Hiding, encapsulació, tipus de dades abstractes.
Organització
Pràctiques
Mètode d'avaluació
A través de les pràctiques i un examen. L'examen serà teòric amb una secció referent a les pràctiques . Les pràctiques consistiran en resoldre un nombre de problemes utilitzant els diferents paradigmes de programació presentats a classe. Eveluaciió: examen teòric (60%), pràctiques (40%), les dues parts deuen ser aprovades.
Bibliografia
Bibliografia bàsica
Pratt and Zelkowitz,
Programming Languages Design and Implementation, 4th Edition, Prentice Hall(2001).
Bibliografia complementària
R. W. Sebesta,
Concepts of Programming Languages, 5th Edition, Addison Wesley
A. Tucker and R. Noonan,
Programming Languages Principles and Paradigms Mc Graw Hill