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

SUBJECT

Code
Subject
MIF0005 Advanced Compiler Design
Section
Semester
Hours: C+S+L
Category
Type
Computer Science - in English
6
2+0+2
speciality
optional
Information engineering - in English
8
2+0+2
optional
Teaching Staff in Charge
Assoc.Prof. MOTOGNA Simona Claudia, Ph.D.,  motognacs.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

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%
Foe academic year 2008-2009, see
http://cs.ubbcluj.ro/~motogna/AdvancedCompilerDesign.html
Links: Syllabus for all subjects
Romanian version for this subject
Rtf format for this subject