Entorns i llenguatges de programació

Objectius

Els objectius de l'assignatura es poden resumir en els punts següents:

Temari

1. Introducció
1.1. Per què estudiem els llenguatges de programació?
1.2. Paradigmes de llenguatges de programació
1.3. Criteris de qualitat dels llenguatges de programació

2. Sintaxi i semàntica d'un llenguatge de programació
2.1. Estructura d'un programa
2.2. Compilació

3. Variables i tipus de dades
3.1. Dades, variables i constants
3.2. Tipus de dades
3.3. Tipus de dades elementals
3.4. Tipus de dades estructurats
3.5. Exercicis

4. Abstracció
4.1. Nivells d'abstracció
4.2. Dades
4.3. Control
4.4. Abstracció procedural
4.5. Exercicis

5. Llenguatges imperatius
5.1. Paradigma estructurat en blocs
5.2. Perspectiva històrica: ALGOL 60, ALGOL 68, Pascal, Ada, C.
5.3. Revisió de C
5.4. Exercicis/laboratori

6. Llenguatges orientats a objectes
6.1. Revisió de tipus abstractes de dades
6.2. Conceptes bàsics del disseny i programació orientats a objectes
(classes, objectes, pas de missatges, identitat, persistència, ...)
6.3. Herència
6.4. Polimorfisme i dynamic binding
6.5. Llenguatges basats en objectes i orientats a objectes
6.6. Java
6.7. Exercicis/laboratori

7. Programació lògica
7.1. Introducció al càlcul proposicional i càlcul de predicats
7.2. Resolució
7.3. Unificació
7.4. Backtraking
7.5. Prolog
7.6. Exercicis/laboratori

8. Programació funcional
8.1. Introducció
8.2. Característiques dels llenguatges funcionals
8.3. LISP
8.4. Exercicis/laboratori

9. Concurrència
9.1. Programació seqüencial i programació concurrent
9.2. Sincronització de processos
(semàfors, monitors, rendezvous, pas de missatges)
9.3. Exemples en alguns llenguatges: Ada, Java
9.4. Exercicis/laboratori

10. Llenguatges "script"
10.1. Motivació
10.2. Perspectiva històrica: awk, sed, perl, python
10.3. Introducció al perl
10.4. Exercicis/laboratori

11. Network programming
11.1. Introducció
11.2. HTML
11.3. CGI Scripts (en C i Perl)
11.4. Java Applets
11.5. XML
11.7. Exercicis/laboratori

12. Graphical User Interfaces (GUIs) i programació orientada a events
12.1. Programació orientada a events
12.2. Components gràfics en Java
12.3. Model d'events en Java
12.4. Exercicis

Bibliografia

Links d'interès

  • Exemples d'analitzador lèxic i sintàctic corresponents al llibre de K.C. Louden: