Topic outline

  • Compiler Design Lab // Course Code: CSE 331L // Credits: 2


  • Week 1: Preparing Background and Learn about Language Processing System

    Week1

    The ability to research, understand and implement computer programs in the areas related to algorithms.

    compiler for debugging of programs.

  • Week - 2: Phase of a Compiler

    Week2

    Discussion Topics: 

    • Learn about the structure of a compiler.
    • Learn about the phases of a compiler.




  • Week - 3: Context Free Grammar: LMD, RMD

    Week3


  • Week - 4: Regular Expression

    Week4



  • Week - 5: NFA and DFA

    Week5


  • Week - 6: NFA to DFA Conversion

    Week6


  • Week - 8: Left Recursion and Left Factoring Elimination

    Week8

    Discussion Topics: 

    • Discuss about LMD and RMD
    • Discuss and Illustrate the elimination techniques

    Expected Learning Outcomes:

    • Recognize the elimination techniques
    • Understand the importance of Left Elimination

    Resources of Learning:


  • Week - 9: Determination of FIRST and FOLLOW Function

    Week9


  • Report Submission

  • Week - 10: LR0 Parser and Canonical Table

    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:


  • Week - 11: Intermediate Code Generation

    Week11

    Discussion Topics: 

    • Discuss abstract syntax trees and Directed acyclic graph
    • Discuss and illustrate three address code, quadruples, and triples.
    • Discuss about Class Text.

    Expected Learning Outcomes:

    • Recognize techniques to eliminate common sub tree.
    • Design triples.
    Resources of Learning:


  • Week - 12: Code Generation and Basic Block

    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

  • Week - 13: Code Optimization

    Week13

    Discussion Topics: 

    • Discuss about Machine independent code optimization.
    • Discuss and illustrate the techniques of code optimization.

    Expected Learning Outcomes:

    • Recognize machine independent code.
    • Able to apply techniques to optimize codes.

    Resources of Learning:


    • Week - 14: Preparation for Final Examination

      Week14

      Topics Covered for Final Examination

      • Left Recursion and Left Factoring Elimination
      • Determination of FIRST and FOLLOW Function
      • LR0 Parser and Canonical Table
      • Intermediate Code Generation
      • Code Generation and Basic Block
      • Code Optimization