0% found this document useful (0 votes)
13 views

Compiler Syllabus TCE 2017

The document outlines a course on programming language translation and compiler design, covering topics such as lexical analysis, syntax analysis, code generation, and optimization. It lists prerequisites and expected outcomes for students, detailing specific skills and knowledge to be acquired. The syllabus includes various concepts, techniques, and practical applications related to compiler construction and optimization.

Uploaded by

Cse Hod
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Compiler Syllabus TCE 2017

The document outlines a course on programming language translation and compiler design, covering topics such as lexical analysis, syntax analysis, code generation, and optimization. It lists prerequisites and expected outcomes for students, detailing specific skills and knowledge to be acquired. The syllabus includes various concepts, techniques, and practical applications related to compiler construction and optimization.

Uploaded by

Cse Hod
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Preamble

This course studies programming language translation and compiler design concepts; language
recognition, symbol table management, syntax analysis ,code generation and code optimization.
Prerequisite
14CS240 : Computer Organization and Microprocessors
14CS370 : Object Oriented Programming
14CS390 : Assembly Language Programming Lab
14CS530 : Theory of Computation
On the successful completion of the course, students will be able to
Describe the role of each phase of a compiler with its construction tools. (CO1)
Understand Develop a Lexical Analyzer for recognizing the tokens of a given language with an
understanding of symbol table management and errorhandling. (CO2)
Construct parsers like top-down, bottom-up, operator precedence and SLR with an understanding of
Context Free Grammars and syntax analysis (CO3)
Develop semantic analyzers for type-checking and intermediate code generators to translate the
source program into an intermediate code. (CO4)
Construct code optimizers to optimize the target code generated. (CO5)
Syllabus
Introduction to compiling: Introduction of Compilers-Analysis of the source program-The phases of
compiler- The grouping of phases.
Lexical Analysis: The role of the lexical analyzer- Input buffering-Specification of tokens Recognition
of tokens- Regular Expression- Context-free grammars-Writing a grammar
Finite Automata – Conversion of Regular Expression into NFA- Conversion of NFA to minimized DFA.
Syntax Analysis : The role of the parser- Top down parsing -Non-recursive predictive parsing- LL(1)
grammar- Bottom-up Parsing- Shift Reduce Parser- Operator precedence parsing-Precedence
functions-LR Parser: SLR Parser.
Intermediate Code Generation: Three address Codes- Boolean expressionsCase statements.
Code Generation: basic blocks and flow graphs -The DAG representation of basic blocks Generating
code from DAGs.
Code Optimization: Code improving transformations - Loop optimization -Peephole Optimization.

Text Book 1. Alfred V. Aho, Ravi Sethi, Jeffrey D Ullman – Principles of Compiler Design, Pears

Course Outcome 1 (CO1):


1. What is Token?
2. Give two types of Parsing with example.
3. Define Regular Expression.
4. Define CFG.
5. What is the role of Lexical Analyser?
6. Distinguish between compiler and interpreter.
Course Outcome 2 (CO2):
1. Draw the NFA for recognizing the language (a/b) * abb.
2. Write the regular expression for the language ―All strings of digits with even numbers ―.
3. Define the term Finite Automata. Distinguish between NFA and DFA.
4. Draw the NFA diagram for the regular expression 011(011)*
5. Convert the regular expression of (a│b)* abb into DFA and draw the minimized transition table.
Course Outcome 3 (CO3)
1. Convert the following operator precedence relations table into precedence graph and construct
the precedence functions table. ( ) A , $ ( < = < < ) > > > A > > > , < > < > $ < <
2. Construct the predictive parsing table for the following grammar and check the given grammar is
LL(1) grammar or not. S→iEtS │iEtSeS │ a E→b
3. Construct the operator precedence relations table for the following grammar and show the parser
movements for the given input string i) *id=id ii) id*id=id The grammar is S → L=R, S →R,L → *R, L
→id, R →L
Course Outcome 4 (CO4)
1. Define Back patching? What are the functions are used to implement the Back patching?
2. What is basic blocks? Describe briefly about partition into basic block algorithm.
3. What do you mean by short circuit code representation of Boolean Expression? Give an example.
Course Outcome 5 (CO5)
1. Illustrate benefits of code optimizer.
2. Mention the issues to be considered while applying the techniques for code optimization.
3. Define Intermediate text.
4. Differentiate Triple and Indirect Triple
5. Implement various code optimization techniques in a C program of Quicksort.
6. Write the Principle Sources of Optimization.

You might also like