III Cse FLCD Syllabus
III Cse FLCD Syllabus
(Autonomous)
B.Tech– V Sem LTPC
3003
Course Objectives:
This course is designed to:
● Introduce languages, grammars, and computational models
● Ability to check Context Free Grammars
● Enable the students to use Turing machines
● Demonstrate decidability and un-decidability for NP Hard problems
UNIT – I
Formal Language And Regular Expressions
Languages, Operations On Languages, RegularExpressions, Identity Rules For Regular
Expressions, Finite Automata – DFA, NFA, Conversion ofRegular Expression to NFA, NFA To
DFA. Introduction to Compilers: Phases of the Compiler.
Learning Outcomes:
At the end of the unit, students will be able to:
● Distinguish DFA and NFA(L3).
● Construct DFA for an input string(L4).
● Perform minimization of Automata(L3).
● Compare Moore and Mealy Machines(L4).
UNIT – II
Syntax Analysis
Context Free Grammars, Top-Down Parsing, Recursive Descent Parsers: LL (K)Parsers.
Bottom-Up Parsing: Shift Reduces Parser, LR Parsers: SLR, CLR, LALR.
Learning Outcomes:
At the end of the unit, students will be able to:
● Construct Context Free Grammars
● Construct shift reduce parsers.
● Apply top down and bottom up parsing to regular expressions.
UNIT – III
Syntax Directed Translation:
Syntax Directed Definition, Construction of Syntax Trees, L-AttributedDefinitions.
Intermediate Code Generation: Intermediate Languages, Translation of
AssignmentStatements and Boolean Expressions.
Learning Outcomes:
At the end of the unit, students will be able to:
● Construction of syntax trees (L4).
● Generating intermediate code (L5).
UNIT – IV
Type Checking
Specification of Simple Type Checker, Equivalence of Type Expressions, TypeConversions,
Runtime Environments: Storage Organization, Storage Allocation Strategies, Accessto Non
Local Names, Parameter Passing, Symbol Table, Dynamics Storage Allocation Techniques.
Learning Outcomes:
At the end of the unit, students will be able to:
● List the dynamic storage allocation techniques(L4).
● Constructingsymbol table(L4).
UNIT – V
Code Optimization
Principal Sources Of Optimization, Optimization Of Basic Blocks, Loops In FlowGraphs,
Global Data Flow Analysis, Peephole Optimization.
Code Generation: Issues in Design of Code Generator, Simple Code Generator,
RegisterAllocation and Assignment, DAG Representation of Basic Block, Generating Code
from DAGs.
Learning Outcomes:
At the end of the unit, students will be able to:
● List types of Turing Machines(L4).
● Design DAG for basic blocks(L5).
Course Outcomes:
Students will be able to:
● Employ finite state machines to solve problems in computing and classify
● machines by their power to recognize languages. (L2)
● Understand the basic concept of compiler design, and its different phases
● which will be helpful to construct new tools like LEX, YACC, etc(L6)
● Ability to implement semantic rules into a parser that performs attribution
● while parsing and apply error detection and correction methods. (L3)
● Apply the code optimization techniques to improve the space and time
● complexity of programs while programming. (L3)
● Ability to design a compiler for a concise programming language. (L3)
TEXT BOOKS:
1. Compilers Principles, Techniques and Tools, Alfred V. Aho, Ravi Sethi, Jeffrey D.
Ullman,
2. PEA.
3. Introduction to Automata Theory Languages & Computation, 3rd Edition, Hopcroft,
Ullman, PEA.
REFERENCE BOOKS:
4. Theory of Computer Science, Automata Languages and Computation, 2nd Edition,
5. Mishra, Chandra Shekaran, PHI.
6. Elements of Compiler Design, A.Meduna, Auerbach Publications, Taylor and Francis
7. Group
Online Learning Resources:
● https://nptel.ac.in/courses/106106049/
● https://nptel.ac.in/courses/106104028