Course Title: Compiler Construction
Course Code: CS-4141
Course Structure: Lectures: 3 / Labs: 0
Credit Hours: 3
Prerequisites: CS-3131 (Theory of Automata and Formal Languages)
Course Objectives:
At the end of the course students will understand the overall structure of a compiler, and will know significant details of a number of important techniques commonly used. They will be aware of the way in which language features raise challenges for compiler builders.
Course Learning Outcomes:
- Overview of Compilation: Principles of Compilation, Compiler Structure, High-Level View of Translation, Desirable Properties of a Compiler
- Scanners: Recognizing Words, Regular Expressions, Implementing Scanners
- Parsers: Expressing Syntax, Top-Down Parsing, Bottom-Up Parsing
- Context-Sensitive Analysis: Type Systems, Attribute-Grammar Framework, Ad Hoc Syntax-Directed Translation
- Intermediate Representations: Graphical IRs, Linear IRs, Mapping Values to Names, Symbol Tables
- The Procedure Abstraction: Procedure Calls, Name Spaces, Communicating Values Between Procedures, Standardized Linkages
- Code Shape: Assigning Storage Locations, Arithmetic Operators, Boolean and Relational Operators, Storing and Accessing Arrays, Character Strings, Structure References, Control-Flow Constructs, Procedure Calls
- Code Optimization: Scope of Optimization, Local Optimization, Regional Optimization, Global Optimization, Interprocedural Optimization
- Data-Flow Analysis: Iterative Data-Flow Analysis, Static Single-Assignment Form, Inter-procedural Analysis
Course Assessment
- Final Term Exam: 50 marks
- Mid Term Exam: 30 marks
- Sessionals: 20 mrks
- Quiz: 05 marks
- Assignement: 05 marks
- Presentation: 05 marks
- Attendance: 05 marks
Class Timings
PPP BSCS 7th D: Monday (12:30 pm - 02:00 pm) AND Wednesday (02:00 pm - 03:30 pm)