Section outline

    • 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

    • Intro

      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


    • 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]


  • Not available unless: You belong to Section O-14
  • Not available unless: You belong to Section O-14
  • Not available unless: You belong to Section O-3
  • Not available unless: You belong to Section O-3
  • Not available unless: You belong to Section O-3
  • Not available unless: You belong to Section O-14
  • Week1

    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.

    Resources of Learning:


    Lecture Slide: https://1drv.ms/p/s!AlQ1kOwk6kNGgRc_g3ITuSQbwRY7?e=9e7ibq

  • Week2

    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]

  • Week3

    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]

  • Week4

    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]

  • Week5

    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]

  • Week6

    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]

  • Week9

    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]

  • Week10

    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]

  • Week12

    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:

    • Lecture Slide (Basic Block)
    • Lecture Video
    • Test Question

    • Laboratory 11 Task: [View]