Subject: Advanced Compiler Design	Code: MI366	

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

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 tehniques
   II.1 Virtual machines
   II.2 Garbage collection mechansim
   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 Infrastructur	
Selective References	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