Prerequisites
1. A course on “Formal Languages and Automata Theory”.
2. A course on “Computer Organization and architecture”.
3. A course on “Computer Programming and Data Structures”. Course Objectives:
Introduce the major concepts of language translation and compiler design and impart the knowledge of practical skills necessary for constructing a compiler.
Topics include phases of compiler, parsing, syntax directd translation, type checking use of symbol tables, code optimization techniques, intermediate code generation, code generation and data flow analysis. Course Outcomes:
Demonstrate the ability to design a compiler given a set of language features.
Demonstrate the the knowledge of patterns, tokens & regular expressions for lexical analysis.
Acquire skills in using lex tool & yacc tool for devleoping a scanner and parser.
Design and implement LL and LR parsers
Design algorithms to do code optimization in order to improve the performance of a program in terms of space and time complexity.
Design algorithms to generate machine code. UNIT – I
Introduction: The structure of a compiler, the science of building a compiler, programming language basics Lexical Analysis: The Role of the Lexical Analyzer, Input Buffering, Recognition of Tokens, The Lexical-Analyzer Generator Lex, Finite Automata, From Regular Expressions to Automata, Design of a Lexical-Analyzer Generator, Optimization of DFA-Based Pattern Matchers. UNIT – II
Syntax Analysis: Introduction, Context-Free Grammars, Writing a Grammar, Top-Down Parsing,
Bottom-Up Parsing, Introduction to LR Parsing: Simple LR, More Powerful LR Parsers, Using
Ambiguous Grammars and Parser Generators. UNIT – III
Syntax-Directed Translation: Syntax-Directed Definitions, Evaluation Orders for SDD’s, Applications of Syntax-Directed Translation, Syntax-Directed Translation Schemes, Implementing L-Attributed SDD’s. Intermediate-Code Generation: Variants of Syntax Trees, Three-Address Code, Types and Declarations, Type Checking, Control Flow, Switch-Statements, Intermediate Code for Procedures. UNIT – IV
Run-Time Environments: Stack Allocation of Space, Access to Nonlocal Data on the Stack, Heap Management, Introduction to Garbage Collection, Introduction to Trace-Based Collection.Code Generation: Issues in the Design of a Code Generator, The Target Language, Addresses in the Target Code, Basic Blocks and Flow Graphs, Optimization of Basic Blocks, A Simple Code Generator, Peephole Optimization, Register Allocation and Assignment, Dynamic Programming Code-Generation.
UNIT – V
Machine-Independent Optimization: The Principal Sources of Optimization, Introduction to Data-Flow Analysis, Foundations of Data-Flow Analysis, Constant Propagation, Partial-Redundancy Elimination, Loops in Flow Graphs. TEXT BOOK:
1. Compilers: Principles, Techniques and Tools, Second Edition, Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffry D. Ullman. REFERENCE BOOKS:
1. Lex & Yacc – John R. Levine, Tony Mason, Doug Brown, O’reilly
2. Compiler Construction, Louden, Thomson.
CSE-AIML
SEMESTER
SUBJECT CODE
SUBJECT
Lession Plan Lecturer Notes & Question Bank
SYLLABUS
I
MA101BS
Mathematics – I
Click Here
I
AP102BS
Applied Physics
Click Here
I
CS103ES
Programming for Problem Solving
Click Here
I
ME104ES
Engineering Graphics
Click Here
I
AP105BS
Applied Physics Lab
Click Here
I
CS106ES
Programming for Problem Solving Lab
Click Here
I
MC109ES
Environmental Science
Click Here
II
MA201BS
Mathematics – II
Click Here
II
CH202BS
Chemistry
Click Here
II
EE203ES
Basic Electrical Engineering
Click Here
II
ME205ES
Engineering Workshop
Click Here
II
EN205HS
English
Click Here
II
CH206BS
Engineering Chemistry Lab
Click Here
II
EN207HS
English Language and Communication Skills Lab
Click Here
II
EE208ES
Basic Electrical Engineering Lab
Click Here
II-I
CS310PC
Discrete Mathematics
Click Here
II-I
CS302PC
Data Structures
Click Here
II-I
MA313BS
Mathematical and Statistical Foundations
Click Here
II-I
CS304PC
Computer Organization and Architecture
II-I
CS311PC
Python Programming
Click Here
II-I
SM306MS
Business Economics & Financial Analysis
Click Here
II-I
CS307PC
Data Structures Lab
Click Here
II-I
CS312PC
Python Programming Lab
Click Here
II-I
MC309
Gender Sensitization Lab
Click Here
II-II
CS416PC
Formal Language and Automata Theory
Click Here
II-II
CS417PC
Software Engineering
Click Here
II-II
CS403PC
Operating Systems
Click Here
II-II
CS404PC
Database Management Systems
Click Here
II-II
CS412PC
Object Oriented Programming using Java
Click Here
II-II
CS406PC
Operating Systems Lab
Click Here
II-II
CS407PC
Database Management Systems Lab
Click Here
II-II
CS408PC
Java Programming Lab
Click Here
II-II
MC409
Constitution of India
Click Here
III-I
Design and Analysis of Algorithms
Click Here
III-I
Machine Learning
Click Here
III-I
Computer Networks
Click Here
III-I
Compiler Design
Click Here
III-I
Graph Theory (PE1)
Click Here
III-I
Introduction to Data Science(PE1)
Click Here
III-I
Web Programming(PE1)
Click Here
III-I
Image Processing(PE1)
Click Here
III-I
Computer Graphics(PE1)
Click Here
III-I
Software Testing Methodologies(PE2)
Click Here
III-I
Information Retrieval Systems(PE2)
III-I
Pattern Recognition(PE2)
Click Here
III-I
Computer Vision and Robotics(PE2)
Click Here
Click Here
III-I
Data Warehousing and Business Intelligence(PE2)
Click Here
III-I
Machine Learning Lab
Click Here
III-I
Computer Networks Lab
Click Here
III-I
Advanced Communication Skills Lab
Click Here
III-I
Intellectual Property Rights
Click Here
III-II
Artificial Intelligence
Click Here
Click Here
III-II
DevOps
Click Here
Click Here
III-II
Natural Language Processing
Click Here
Click Here
III-II
Internet of Things(PE3)
Click Here
Click Here
III-II
Data Mining(PE3)
Click Here
Click Here
III-II
Scripting Languages(PE3)
Click Here
Click Here
III-II
Mobile Application Development(PE3)
Click Here
Click Here
III-II
Cryptography and Network Security(PE3)
Click Here
Click Here
III-II
Artificial Intelligence and Natural Language
Processing Lab
Add Comment