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

Code	Subject	
MI366	Advanced Compiler Design	

Section	Semester	Hours: C+S+L	Category	Type	
Component-Based Programming - in English	1	2+2+0		compulsory	

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. 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	
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
	
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