Babes-Bolyai University of Cluj-Napoca
Faculty of Mathematics and Computer Science
Study Cycle: Graduate
SUBJECT

Code	Subject	
MIF0005	Advanced  Compiler Design	

Section	Sem.	Hours: C+S+L	Category	Type	
Computer Science - in English	6	2+0+1	speciality	optional	
Information engineering - in English	8	2+0+2	speciality	optional	

Teaching Staff in Charge	Assoc.Prof. MOTOGNA Simona Claudia, Ph.D., motogna@cs.ubbcluj.ro	
Aims	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.
	
Content	I. Back -end of a compiler:
   I.1 Intermediary code generation
   I.2 Code Optimization
   I.3 Object code generation
II. Language-dependent mechanisms in compiler implementation
   II.1 Functional and logical languages
   II.2 Imperative and object-oriented languages
   II.3 Distributed languages
III. Advanced compiler techniques
   III.1 Virtual machines
   III.2 Garbage collection mechanism
   III.3 Dynamic compilation
IV. Compilers for .NET
   IV.1 .NET architecture basics
   IV.2 program execution scheme in .NET
   IV.3 MSIL - intermediary representation in .NET
   IV.4 CLI - Common Language Infrastructure

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. MOTOGNA, SIMONA: Metode de proiectare a compilatoarelor, Ed. Albastra, 2006
4. RICHTER, J.: Applied Microsoft .NET Framework Programming, Microsoft Press, 2002
5. LIDIN, SERGE: Inside .NET IL Assembler, Microsoft Press International, 2002
6. STUTZ, DAVID - NEWARD, TED - SHILLING, GEOFF: Shared Source CLI Essentials, O@Reilly UK, 2003
7. Sun Java Systems, [http://docs.sun.com/db/prod/java.sys], 01.09.2004	
Assessment	The final grade will take into consideration:
- project (practical) 30%
- presentation (case study + domain review) 20%
- written exam 50%
Foe academic year 2009-2010, see
http://cs.ubbcluj.ro/~motogna/AdvancedCompilerDesign.html