Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Masterat
Domeniul: Informatica
Programul de studii: Programare bazată pe componente (în limba engleză)
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MI366	Advanced Compiler Design	

Semester	Hours: C+S+L	Category	Status	
1	2+2+0		compulsory	

II. Full status faculty members
Name and	Scientific	Didactic	Chair	Type of activity	
surname	title	title		C	S	L	
MOTOGNA Simona Claudia	Ph.D.	Assoc.Prof.	Programming  Languages and Methods	*			

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
The course will cover modern mechanisms for compiler implementation, taking into consideration various optimizations for different programming languages. The students should be able to understand compiler design and to implement these techniques.	

IV. Course contents
I. Language-dependent mechanisms in compiler implementation
   I.1 Functional and logical languages
   I.2 Imperative and object-oriented languages
   I.3 Distributed languages
II. Advanced compiler techniques
   II.1 Virtual machines
   II.2 Garbage collection mechanism
   II.3 Dynamic compilation
III. Compilers for .NET
   III.1 .NET architecture basics
   III.2 program execution scheme in .NET
   III.3 MSIL - intermediary representation in .NET
   III.4 CLI - Common Language Infrastructure	

V. Bibliography
1. GRUNE, DICK - BAL, H. - JACOBS, C. - LANGENDOEN, K.: Modern Compiler Design, John Wiley, 2000 
2. MITCHELL, JOHN: Foundations for Programming Languages, MIT Press, 1996 
3. RICHTER, J.: Applied Microsoft .NET Framework Programming, Microsoft Press, 2002
4. LIDIN, SERGE: Inside .NET IL Assembler, Microsoft Press International, 2002
5. STUTZ, DAVID - NEWARD, TED - SHILLING, GEOFF: Shared Source CLI Essentials, O'Reilly UK, 2003
6. Sun Java Systems, [http://docs.sun.com/db/prod/java.sys], 01.09.2004

VI. Thematic of didactic activities per weeks

VII. Didactic methods used

VIII. Assessment
The final grade will take into consideration:
- project (practical) 30%
- presentation (case study + domain review) 20%
- written exam 50%
For academic year 2008-2009, see
http://cs.ubbcluj.ro/~motogna/AdvancedCompilerDesign.html	

IX. Additional references

	Dean,							Chair head,

	Date,							Course responsible,
								Assoc.Prof. MOTOGNA Simona Claudia, Ph.D.