To operate the Blended Learning Center(BLC) at optimal level, maintenance will be performed every day at 8:30 AM and at 5:00 PM regularly which can take up to 30 minutes. Please consider scheduling your activity in the BLC platform accordingly.
Topic outline
- Welcome to Compiler Design Lab
Welcome to Compiler Design Lab
Dear Students,
Welcome to the 2020 Fall Semester!
Welcome back, Students. I can’t wait to see all your smiling faces again! . I am here to support you every step of the way.
I encourage you to make the most of your time here.
Remember to make it a great year. I will see you soon.
Iftieaq Murshed
Lecturer, Dept. of CSE
Daffodil International University
Email: iftieaq.cse0305.c@diu.edu.bd
Phone: 01756395455
- Course Summary and Objectives
Course Summary and Objectives
Course Rationale:
The course is intended to teach the students the basic techniques that underlie the
practice of Compiler Construction. The course will introduce the theory and
tools that can be standard employed in order to perform syntax-directed
translation of a high-level programming language into an executable code.These
techniques can also be employed in wider areas of application, whenever we need
a syntax-directed analysis of symbolic expressions and languages and their
translation into a lower-level description. They have multiple applications for
man-machine interaction, including verification and program analysis.
Course Objective:
The
main objective of this course is to introduce the major concept areas of
language translation and compiler design and to develop an awareness of the
function and complexity of modern compilers. This course is a study of the theory
and practice required for the design and implementation of interpreters and
compilers for programming languages.
Grading Scheme:
Lab Course
|
Class Attendance: 10 Marks
|
Lab Final: 40 Marks
|
Lab Performance: 25 Marks
|
Project/Report Submission: 25 Marks
|
Total: 100 Marks
|
- Quick Access
Quick Access
Text Book:
1.
Compiler Principles, Techniques and Tools By Aho, Ullman, Sethi [Download]
Reference Books:
1. Implementations of Compiler, A new approach
to Compilers including the algebraic methods By Yunlin su, Song Y. Yan.
[Download]
2.
Compiler construction, Principles and Practice, By Kenneth C Louden. [Download]
3.
Basics of Compiler Design by Torben. [Download]
- Lab Submissions - O14
Lab Submissions - O14
Restricted Not available unless: You belong to Section O-14
- Class Recordings of O-14
Class Recordings of O-14
Restricted Not available unless: You belong to Section O-14
- Lab Submissions - O3
Lab Submissions - O3
Restricted Not available unless: You belong to Section O-3
- Class Recordings of O-3
Class Recordings of O-3
Restricted Not available unless: You belong to Section O-3
- Lab Final (O3)
Lab Final (O3)
Restricted Not available unless: You belong to Section O-3
- Lab Final (O14)
Lab Final (O14)
Restricted Not available unless: You belong to Section O-14
- Week 1: Preparing Background and Learn about Language Processing System
Week 1: Preparing Background and Learn about Language Processing System
Discussion
Topics:
- Overview
of language processing
- Discuss
about pre-processors – compiler – assembler – interpreters.
- Discuss
about linkers & loaders
- Distinguish
in between Interpreter vs. Compiler.
Expected Learning Outcomes:
- Differentiate
compiler with interpreter.
- Recognize
the language processing system
- Conceptually
understand the application of compiler.
Lecture Slide:
https://1drv.ms/p/s!AlQ1kOwk6kNGgRc_g3ITuSQbwRY7?e=9e7ibq - Week - 2: Phase of a Compiler
Week - 2: Phase of a Compiler
Discussion Topics:
- Learn about the structure of a compiler.
- Learn about the phases of a compiler.
Expected Learning Outcomes:
- Design the basic structure.
- Recognize various phases of
compiler
Resources of Learning:
Laboratory 2 Task: [View]
- Recognize Strings
Recognize Strings
Discussion
Topics:
- Learn
about Lexical Analysis –Role of Lexical Analysis
- Discuss
about Lexical Analysis Vs. Parsing
- Discuss
about Token, patterns and Lexemes
- Discuss about Quiz Test.
Expected Learning Outcomes:
- Distinguish
Token, patterns and Lexemes
- Recognize
Lexical errors.
Resources
of Learning:
Laboratory 3 Task: [View]
- Recognize Token
Recognize Token
Discussion
Topics:
- Discuss about Regular
definitions for the language constructs
- Discuss about Transition
diagram for recognition of tokens.
Expected Learning Outcomes:
- Capable to Design Transition
Diagram.
- Create Regular expression
from sentence.
Resources
of Learning:
Laboratory 4 Task: [View]
- Valid Identifier
Valid Identifier
Discussion
Topics:
- Discuss about Automata
Theory.
- Discuss and Illustrate
NFA and DFA.
Expected Learning Outcomes:
- Understand Tuples.
- Design and Construct NFA and DFA
Resources
of Learning:
Laboratory 5 Task: [View]
- Symbol Table
Symbol Table
Discussion
Topics:
- Discuss about subset
construction method.
- Discuss and Illustrate
the techniques to construct DFA
- Discuss about Class Test.
Expected Learning Outcomes:
- Design DFA from NFA.
- Distinguish NFA and DFA.
- Recognize the benefit to
construct DFA.
Resources
of Learning:
Laboratory 6 Task: [View]
- Week - 8: Left Recursion and Left Factoring Elimination
Week - 8: Left Recursion and Left Factoring Elimination
- Week - 9: Determination of FIRST and FOLLOW Function
Week - 9: Determination of FIRST and FOLLOW Function
Discussion
Topics:
- Discuss and illustrate
the rules for FIRST and FOLLOW Function.
- Discuss the techniques to
find FIRST and FOLLOW function.
Expected Learning Outcomes:
- Recognize specific tokens
- Identify FIRST and FOLLOW
- Construct LL1 Table
Resources
of Learning:
Laboratory 8 Task: [View]
- Shift Reduce Parser
Shift Reduce Parser
Discussion
Topics:
- Discuss and illustrate
Kernel item, Non Kernel Item.
- Discuss about Augmented
grammar.
- Discuss about Canonical
Table.
Expected Learning Outcomes:
- Recognize kernel and non-kernel
item.
- Construct LR 0 Parser.
- Design and construct
canonical table.
Resources
of Learning:
Laboratory 9 Task: [View]
- Intermediate Code Generation
Intermediate Code Generation
- Intermediate Code Generation
Intermediate Code Generation
Discussion
Topics:
- Discuss about the rules
for leader selection.
- Discuss and illustrate
the techniques to create basic block.
- Discuss the techniques to
design flow graph.
Expected Learning Outcomes:
- Recognize three address codes.
- Design basic blocks for
high level languages.
- Understand the necessity
of flow graph.
Resources
of Learning:
Laboratory 11 Task: [View]