Professors Titulars
Professors Docents
Es coneixen els fonaments bàsics per a la definició forma de llenguatges de programació.
Es coneixen les tècniques per a la implementació de llenguatges de programació.
Mòdul: Llenguatges de programació
Història. Estadístiques
Classificació.
Paradigmes. Essència. Exemples.
Nivells. Definició. Exemples
Compilats/Interpretats/Encambrats. Definició. Exemples
Característiques/Atributs d'un bon llenguatge
Components d'un LP
Punts de vista/Rols. Programador, Dissenyador, Implementa-ho
Casos d'estudi
Mòdul: Llenguatges formals
Llenguatges. Gramàtiques. Màquines.
Classificació de Chomsky. Llenguatges regulars, lliures de context, sensitius al context i sense restriccions.
Gramàtiques. Derivació. Arbre sintàctic. Llenguatge generat
Llenguatges regulars. Expressions regulars. Gramàtiques regulars
Autòmats d'estats finits. Deterministes i no deterministes. Implementació. Aplicacions
Llenguatges lliures de context. Gramàtiques lliures de context.
Autòmats de pila. Deterministes i no deterministes. Implementació. Aplicacions
Semàntica. Gramàtica d'atributs. Implementació. Aplicacions
Mòdul: Compiladors i intèrprets
Compiladors i intèrprets. Estructura d'un compilador. Estructura d'un intèrpret
Un compilador en el procés de l'execució. Un intèrpret en el procés de l'execució
Anàlisi lexicogràfica
Anàlisi sintàctica
Anàlisi semàntica. Traducció dirigida per sintaxi
Generació de codi
Les classes de l'assignatura de llenguatges de programació volen mostrar els coneixements bàsics dels llenguatges de programació en la seva concepció i disseny. Igualment, des de l'assignatura es vol reforçar el pensament crític de l'alumne i serà introduït als àmbits de recerca en llenguatges de programació.
És una assignatura en la que es combinen les classes magistrals i les discussions/debats a classe sobre els diferents temes proposats al temari, amb pràctiques grupals per assentar els coneixements adquirits a la teoria i tant l'autonomia com el treball en equip de l'alumne. El professor proposarà temes (o articles a llegir) per a que l' alumne els prepari i es puguin debatre a classe amb exposicions orals.
- L?assignatura té la durada d'un semestre i consta de dues parts diferenciades: la part de coneixements i la pràctica de l'assignatura. L'avaluació dels coneixements i de la pràctica serà independent. Per tal d'aprovar l'assignatura caldrà aprovar independentment els coneixements i la pràctica. La nota final de l'assignatura és representada en la següent fórmula:
Nota_Final = 30% · Coneixements + 70% · Pràctica
- La nota de coneixements s'avaluarà a partir de les notes (ponderades) relacionades de les activitats propostes a classe i la seva participació. Totes les activitats propostes s'han d' entregar obligatòriament.
- Si la nota de coneixements (Coneixements) no és >=5 llavors l'estudiant tindrà l'oportunitat de presentar-se a un Examen Final que valdrà el 30% de la nota.
- Hi haurà la possibilitat de fer un examen final de recuperació (convocatòria extraordinària) per a aquells alumnes que no hagin aprovat l'assignatura a la convocatòria ordinària (degut a la nota de coneixements i/o de pràctica). En tot cas, la pràctica s'ha d'haver presentat i aprovat.
La pràctica de l'assignatura és molt important dins dels continguts de l'assignatura. Els motius són diversos: l'aplicació pràctica dels conceptes teòrics explicats a les classes magistrals, la capacitat que ha de demostrar l'alumne en el disseny i implementació de programes de cert volum pel que fa a línies de codi i funcionalitats, la complementació aplicada de certs continguts conceptuals, etc. És per això que la pràctica de l'assignatura demana un esforç important pel que fa a dedicació de l'alumne.
1. La pràctica es realitzarà en grups de 4 o 5 persones.
2. El grup s'haurà d' autogestionar per a la realització de la tasca demanada.
3. El llenguatge de programació emprat en la pràctica serà el llenguatge Java.
4. Cada grup tindrà cada setmana una reunió (màxim 15 minuts) amb el professor on es demostrarà el progrés de la pràctica i s?explicarà els plans per a la setmana següent.
5. Per a la pràctica hi haurà 3 punts d' avaluació del progrés (milestones).
6. Perquè una pràctica sigui acceptada i opti a ser qualificada cal que es satisfacin 6 requeriments:
a. Ha d'haver estat presentada el dia corresponent del milestone.
b. Ha d'estar degudament estructurada i tenir la corresponent documentació interna.
c. Ha de tenir una memòria correcta.
d. Ha de funcionar correctament.
e. El grup ha de fer una presentació col·lectiva de la seva pràctica davant d'un tribunal.
f. El grup que presenta la pràctica ha de superar l'entrevista individual amb el professor on han de demostrar un coneixement profund de la pràctica en la seva totalitat.
7. En cas de còpia, implica suspendre la pràctica i la pèrdua de convocatòria al següent examen final pels dos grups implicats (tant la font com la còpia), tenint una qualificació de 0 en l'acta de l'assignatura.
8. Si es suspèn la part pràctica en convocatòria ordinària (o no es presenta la pràctica), s'haurà d'entregar en convocatòria extraordinària.
Aho, Alfred. Compilers: Principles, Techniques, and Tools (2006)
Mozota, M., Teoria de la compilació: Anàlisi lèxic i sintàctic, LaSalleOnline Enginyers, 2009
Mozota, M., Teoria de la compilació: Anàlisi semàntica i generació de codi, LaSalleOnline Enginyers, 2009
Larus, James R.. Assemblers, Linkers, and the SPIM Simulator. Appendix A
Pratt, Terrence W. and Zelkowitz, Marvin V. Programming Languages: Design and Implementation (Fourth edition). Prentice-Hall. 2001.