Compilation
Aperçu des sections
-
Course: Compilation
Teaching Unit: UEF1
Instructor: Djamila Mohdeb
Semester Hour Volume: 14 weeks
Weekly Hour Volume (in hours):- Lecture : 01h30 minutes
- Tutorial Session (TD): 01h30 minutes
- Practical Session (TP): 01h30 minutes
Credits: 05
Evaluation Method: Exam (60%), Continuous Assessment (40%)
Monitoring Method: Homeworks and Assignments -
Instructor: Djamila Mohdeb
Email: djamila.mohdeb@univ-jijel.dz
Availability (schedule and location):- Offline: /
- Online: Students can post their questions on the online Forum of this course.
-
Upon completing this course, students will be able to:
- Understand the overall structure and phases of a compiler.
- Design and implement lexical analyzers using regular expressions and finite automata
- Construct context-free grammars and implement parsing techniques
- Perform semantic analysis, including type checking and symbol table management
- Generate and optimize intermediate code
- Translate intermediate code into target machine code
- Apply various optimization techniques at different compilation stages
- Implement error handling and recovery mechanisms
- Utilize compiler-generation tools and automate parts of the compiler construction process
- Design and implement a basic compiler for a subset of a programming language
-
- Fundamental programming skills in a high-level language (e.g., C, C++, or Java)
- Data Structures and Algorithms
- Discrete Mathematics
- Languages and Theory of Computation concepts
- Basic knowledge of computer architecture and assembly language
- Familiarity with operating systems concepts
- Basic understanding of software engineering principles
Note: While prior knowledge of language theory concepts is beneficial, key topics will be reviewed as needed during the course.
-
Syllabus
Chapter 01 : Introduction to Compiler Design
Chapter 02 : Lexical Analysis
Chapter 03: Syntactic Analysis (Context-Free Grammars, Top-Down Parsing, Bottom-Up Parsing)
Chapter 04: Syntax-Driven Translation
Chapter 05: Type Checking
Chapter 06: Runtime Environment
Chapter 07: Code Generation -
-
Course Materials
-
-
-
Course Materials
-
Tutorial Session
-
Ressources
-
-
-
-
-
-
-
Introductory Sessions
-
Lexical Analysis
-
Syntactic Analysis
-
Ressources
-
-
- Aho, A. V., Lam, M. S., Sethi, R., & Ullman, J. D. (2007). Compilers: Principles, techniques, and tools (2nd ed.). Addison-Wesley.
- Appel, A. W. (2004). Modern compiler implementation in C/Java/ML. Cambridge University Press.
- Cooper, K. D., & Torczon, L. (2012). Engineering a compiler (2nd ed.). Morgan Kaufmann.
- Pittman, T., & Peters, J. (1992). The art of compiler design: Theory and practice. Pearson.
- Scott, M. L. (2015). Programming language pragmatics (4th ed.). Morgan Kaufmann.
- Muchnick, S. S. (1997). Advanced compiler design and implementation. Morgan Kaufmann.
- Mogensen, T. Æ. (2011). Introduction to compiler design. Springer.
- Aho, A. V., Lam, M. S., Sethi, R., & Ullman, J. D. (2007). Compilers: Principles, techniques, and tools (2nd ed.). Addison-Wesley.