Enginyeria en Informàtica

5e Curs
1er Semestre

CURS 2011-12


[ Professorat ][ Objectius ] [ Temari ] [ Bibliografia ] [ Metodologia docent ][ Pràctiques ] [ Calendari i Horaris ] [ Avaluació ] [ Material Docent ][ Notes ][ FAQs ]

AVIS: 6-2-2012: Les notes de CP1 sortiran el divendres dia 17 de febrer. La revisió de l'examen serà el dimarts dia 21 de febrer a les 16:00 al despatx QC-1052.

AVIS: 15-12-2011: Fitxers per Generació de Codi (GenCod.csm GenCod.csl Semantic.csl) ja estan penjats a la web.

AVIS: 13-12-2011: Enunciat Generació de Codi ja està penjat a la web.

AVIS: 10-10-2011: El llistat d'estudiants amb la pràctica convalidada i NO convalidada ja s'ha fet public.

Professors de l'assignatura

Professors Docència Despatx Horaris de consulta e-mail
Gemma Sánchez

Teoria, problemes i pràctiques

QC-1052

Dimarts 12:00 - 13:00

Dimarts 17:00 - 18:00

gemma arroba cvc.uab.es
Xavier Sánchez Teoria, problemes i pràctiques QC-1024

Dilluns 10:00 - 11:00

Dilluns 16:00 - 17:00

javier arroba cvc.uab.es


Objectius de l'assignatura

Coneixements:

Habilitats:

Competències:

Capacitats prèvies

Coneixements avançats de programació, estructura d'ordinadors i llenguatges formals.

Temari

  1. Introducció. Conceptes bàsics.(teoria 2h.)
    1. Introducció als compiladors.
    2. Estratègies de construcció d'un compilador.
    3. Definició de compilador i les seves parts.
    4. Presentació dels següents temes del curs.
  2. Anàlisi lexicogràfica: SCANNER.(teoría 3h., problemes 1h.)
    1. Definició d'anàlisi lexicogràfica
    2. Expressions regulars
    3. Implementació d'un analitzador lexicogràfic (Scanner)
    4. Anàlisi lexicogràfica.
  3. Gramàtiques i anàlisi sintàctica: PARSER.(teoría 8h., problemes 3h.)
    1. Definició de gramàtiques lliures de context.
    2. Notacions per definir gramàtiques.
    3. Característiques de les gramàtiques i els seus Llenguatges de Programació associats.
    4. Gramàtiques LL(1).
    5. Parsers LL(1).
    6. Recuperació d'errors en Parsers LL(1).
    7. Parsers LR, SLR, LALR.
    8. Consideracions Pràctiques.
  4. Anàlisi semàntica.(teoría 6h., problemes 3.5h.)
    1. Traducció dirigida per la Sintaxi.
    2. Taula de Símbols I.
    3. Taula de Símbols II.
    4. Anàlisi semàntica de declaracions.
    5. Anàlisi semàntica d'expressions.
  5. Organització de la memòria en temps d'execució.(teoría 4h., problemes 1.5h.)
    1. Ambient d’execució i assignació estàtica de memòria.
    2. Assignació de la pila.
  6. Generació de codi.(teoría 6h., problemes 3h.)
    1. Generació de codi.
    2. Generació de codi d’expressions.
    3. Procés de referències a estructures de dades.
  7. Generalitats de l'aplicació de tècniques de compiladors per a la ressolució de problemes.(teoría 2, problemes 1h..)
    1. Solució de problemes mitjançant tècniques de compiladors

Bibliografia bàsica

 

Bibliografia de consulta


Metodologia docent

Aquesta assignatura té un lligam molt fort entre el que és la teoria, explicació de com funcionen i es poden crear compiladors, i la pràctica o els problemes, com crear un compilador realment. Durant les classes de teoria s'expliquen conceptes i tècniques que són necessaris per poder resoldre la pràctica. Els conceptes de pràctica i problemes estan lligats, donat que l'alumne dissenyarà una solució per resoldre un problema i la implementarà a la pràctica.
D'aquesta forma, el procés d'aprenentatge de l'alumne es fonamentarà en aquests tres tipus d'activitats: classes de teoria, seminaris o explicacions de com aplicar els conceptes teòrics a la pràctica i les classes pràctiques o de problemes en que els alumnes presentaran i discutiran les seves solucions

Classes de teoria
Les classes de teoria serviran per introduir els conceptes que es detallen al temari de l'assignatura. Es basaran en les explicacions del professor, que s'ajudarà de material complementari en forma de fotocòpies o transparències. L'alumne haurà de completar les classes de teoria amb les hores d'estudi, que han de servir per acabar d'entendre els continguts de l'assignatura i poder preparar correctament les sessions de pràctiques. Cal tenir ben present que les classes de teoria presenten una continuïtat al llarg del curs, de manera que per poder seguir correctament una classe cal haver assimilat el que s'ha explicat a les classes anteriors.

Classes de problemes
Les classes de problemes es dedicaran bàsicament a l'explicació detallada de com aplicar els conceptes teòrics de manera pràctica, i serviran de pont entre les classes teòriques i les pràctiques. Els professors plantejaran problemes i indicaran com es resolen preparant als alumnes per resoldre les pràctiques. Es molt important tenir assimilats els conceptes teòrics previs per poder seguir correctament les classes de problemes.
Abans de cada sessió de problemes el professor proposarà una llista d'exercicis que els alumnes hauran d'intentar resoldre prèviament per poder presentar dubtes a l'hora de classe. En algunes sessions es prepararan o discutiran problemes comuns sorgits a les pràctiques.

Pràctica
La pràctica es realitzarà en grups de 3-4 persones. La seva avaluació es farà al llarg del curs en sessions tutoritzades de 30 minuts. Cada grup d'alumnes tindrà assignades 5 sessions de 30 minuts de tutoria. El tutor encarregat de la sessió serà l'encarregat de fer el seguiment del treball. Les sessions de tutoria seran en un horari acordat pel professor i els alumnes dels presentats a continuació, l'horari serà el mateix per les 5 sessions.
Les sessions estaran dividides en 3 blocs: Anàlisi sintàctica, Anàlisi semàntica i Generació de codi. Per cada bloc hi haurà una primera sessió de presentació del disseny de la solució proposada, en la qual els alumnes explicaran la solució i el professor preguntarà sobre la mateixa i corregirà possibles errors. A la segona sessió els alumnes presentaran la solució ja implementada tot justificant-la i explicant el seu funcionament. Excepte per Anàlisi Sintàctica que només hi haurà la sessió inicial i el lliurament de la solució final es farà via telemàtica.
En cada un dels tres blocs el professor proporcionarà abans de les entregues un joc de probes que ha de superar la solució implementada. Aquestes probes formaran l'autotest que li servirà a l'alumne per poder comprovar el correcte funcionament de la solució ja implementada.
Per cada sessió hi haurà una nota individual resultat de les respostes donades al professor, i una nota col·lectiva resultant de la solució presentada



Pràctiques

Descripció general de la pràctica de compiladors 1 (2010-2011)

La práctica consta de tres fases a implementar: Anàlisi sintàctica, Anàlisi Semàntica i Generació de Codi. Cada un d'elles tindrà dues sessions d'avaluació, una de presentació del disseny i una d'implementació, els enunciats detallats sortiran a la web una setmana abans del lliurament.

PLA DE PRÀCTIQUES

Sis sessions de seminaris de 30 minuts per grup de pràctiques. Es distribueixen de la següent manera:

Data

Tema

Contingut previst

19/10/2011
20/10/2011

Anàlisi Sintàctica

 

Preliminar

Fins el 4/11/2011

Implementació: Sense sessió presencial, lliurament telemàtic

16/11/2011
17/11/2011

Anàlisi Semàntica

 

Preliminar

30/11/2011
01/12/2011

Implementació

21/12/2011
22/12/2011

Generació de Codi

 

Preliminar

18/01/2012
19/01/2012

Implementació


Calendari i Horaris

Horaris de teoria i problemes

Grup Dia Hora Docència Aula Professor
Grup I Dimarts 10:00 - 12:00 Teoria Q4/1013 Gemma Sánchez, Xavier Sánchez
Dilluns 11:00 - 12:00 Problemes Q4/1013 Gemma Sánchez, Xavier Sánchez
Grup II Dimarts 15:00 - 17:00 Teoria Q4/1013 Gemma Sánchez, Xavier Sánchez
Dilluns

17:00 - 18:00

Problemes Q4/1013 Gemma Sánchez, Xavier Sánchez

Calendari de problemes

Grup Dia de la setmana Període
Grup I Dilluns

Consultar taula Guia Docent 2011-2012

Grup II Dilluns

 

Pràctiques

Hora

Dimecres

Dijous

8:30-9:00

 

9:00-9:30

 
9:30-10:00 Grup 35 (Javier Sánchez)  
10:00-10:30 Grup1 (Gemma Sánchez) | Grup 36(Javier Sánchez) Grup 18 (Gemma Sánchez)
10:30-11:00 Grup2 (Gemma Sánchez) | Grup 37(Javier Sánchez) Grup 19 (Gemma Sánchez)
11:00-11:30 Grup3 (Gemma Sánchez) Grup 20(Gemma Sánchez)
11:30-12:00    
12:00-12:30 Grup4 (Gemma Sánchez) Grup 21(Gemma Sánchez)
12:30-13:00 Grup5 (Gemma Sánchez) Grup 22(Gemma Sánchez)
13:00-13:30 Grup6 (Gemma Sánchez) Grup 23(Gemma Sánchez)
13:30-14:00 Grup7 (Gemma Sánchez) Grup 24(Gemma Sánchez)
14:00-14:30 Grup8 (Gemma Sánchez) Grup 25(Gemma Sánchez)
15:00-15:30  
15:30-16:00 Grup9 (Gemma Sánchez) Grup 26(Gemma Sánchez)
16:00-16:30 Grup10 (Gemma Sánchez) Grup 27(Gemma Sánchez)
16:30-17:00 Grup11 (Gemma Sánchez) Grup 28(Gemma Sánchez)
17:00-17:30 Grup12 (Gemma Sánchez) Grup 29(Gemma Sánchez)
17:30-18:00 Grup 13(Gemma Sánchez) Grup 30(Gemma Sánchez)
18:00-18:30    
18:30-19:00 Grup 14(Gemma Sánchez) Grup 31(Gemma Sánchez)
19:00-19:30 Grup 15 (Gemma Sánchez) Grup 32(Gemma Sánchez)
19:30-20:00 Grup 16(Gemma Sánchez) Grup 33(Gemma Sánchez)
20:00-20:30 Grup 17 (Gemma Sánchez) Grup 34(Gemma Sánchez)
20:30-21:00  

Mètode d'avaluació

Criteris i indicadors d’avaluació

Activitats i instruments d’avaluació

La nota final de l’assignatura s’obté combinant l’avaluació d’aquestes 2 activitats de la manera següent:

Nota Final = (0.5 * Nota Pràctiques) + (0.5 * Nota Teoria)

Nota Pràctiques = (0.5 * Nota Individual) + (0.5 * Nota Grup)
Nota Individual = (0.1 * respostes A. Sintàctic(1 sessió)) + (0.4 * respostes A. Semàntic (2 sessions)) + (0.5 * respostes G. Codi (2 sessions))
Nota Grup = (0.1 * Lliurament Sintàctic) + (0.4 * Sessio3) + (0.5 * Sessio5)

Condicions per aprovar l’assignatura:

Recuperació de notes de pràctiques:

En el cas que una entrega de pràctiques no superi el autotest, es pot recuperar la nota de grup si s'entrega una nova versió que superi l'autest i tot el test de professor abans de l'entrega final. En aquest cas, la nota de grup serà 5. La verificació del test de professor es pot fer amb qualsevol del professors de l'assignatura en hores de consulta. l'entrega de la versió que superi tot el test de professor es farà al professor de pràctiques del grup.

Segona convocatòria:

No presentats:

En primera convocatòria un alumne es considerarà no presentat només si compleix totes les condicions següents:

En segona convocatòria un alumne es considerarà no presentat si compleix totes les condicions següents:


Material Docent

Teoria Presentació

Presentacio(2011-2012)

Guia Docent (2011-2012)

Tema 1 Tema1. Introducció
Tema 2

Tema2. Analisi lexicogràfica

Figura Autòmat

Figura scanner1, Figura scanner2.

Tema 3 Tema3. Analisi sintàctica
Tema 4 Tema4. Anàlisi semàntica
Tema 5 Tema5. Organització de memòria en temps d'execució
Tema 6 Tema6. Generació de codi
Problemes Tema 1

Tema1. Diagrames de Tombstone

Tema 2

Tema2. Anàlisi Lexicogràfica

Tema 3

Tema3. Anàlisi Sintàctica

Tema3. Us de CoSeL i Com.csm

Tema 4

Tema4. Problema 4.1 T.S.

Tema4. Problemes de semantic

Prob41Sem.csl

Prob42Sem.csl

Prob43Sem.csl

Prob44Sem.csl

Prob45Sem.csl

Prob46Sem.csl

Tema 5

Tema5.ProbOrganitzacioDeMemoria.pdf

Tema 6

Tema6.ProbGeneracioDeCodi.pdf

Prob61gencod.csl

Prob63_4gencod.csl

Sessions d'avaluació continuada Descripció inicial  
Sessió 1 + (lliurament no presencial)

Enunciat (curs 2011-2012)

Sintactic.csl (actualitzat 18-10-2011)

Sessió 2i 3

Enunciat (curs 2011-2012)

Semantic.csl (curs 2011-2012 10-11-2011)

Semantic.csm (curs 2010-2011 10-11-2011)

Sessió 4i 5

Enunciat (curs 2011-2012)

GenCod.csl (curs 2011-2012 15-12-2011)

GenCod.csm (curs 2011-2012 15-12-2011)

Semantic.csm (curs 2011-2012 15-12-2011)

Practica Generacion de código .pdf (curs 2011-2012 19-12-2011)

Enunciats Examens

Teoria+Problemes TeoriaFebrer06; TeoriaJuny06; ProblemesJuliol06;TeoriaFebrer07; TeoriaJuliol07; TeoriaGener08;
Pràctiques PractiquesFebrer07;
Generador de Compiladors Fitxers del generador

CoSeL (CrossVisions)

Modul del generador (Com.csm)

Ajuda del generador (Com.chm)

Modul semantic del generador (Semantic.csm)

Modul generador de codi del generador (GenCod.csm)

Exemple gramàtica

Gramática BNF de expressions aritmétiques (gramatica1.csl)

Font per provar la gramàtica (gramatica1_test.txt)

Exemple calculadora Calculadora.csl
Compilador de LS

Semantic.csl

GenCod.csl

 

 


Notes

Convalidats pràctica curs 2011/2012: Convalidats-NO Convalidats
Teoria

Sessions Avaluació Continuada

Final febrer 2011: CP1Febrer
Final juny 2011: CP1Juliol

FAQs

Com hem puc apuntar a un grup de pràctiques

Qui pot convalidar les pràctiques de l'any passat per la part d'avaluació continuada d'aquest any?

Qui NO pot convalidar pràctiques?

 


Dept. Informàtica
Escola Tècnica Superior d'Enginyeria
Universitat Autònoma de Barcelona
Edifici Q - Campus UAB
08193 Bellaterra (Barcelona), Catalunya - Spain