0% found this document useful (0 votes)
11 views2 pages

Syllabus

This document outlines the objectives, contents, outcomes, and resources for a Compiler Design course. The course covers 5 modules on compiler concepts like lexical analysis, syntax analysis using LL and LR parsing, syntax-directed translations, intermediate code generation, and code optimization. Students will learn to design lexical analyzers, parsers, implement syntax-directed definitions, perform semantic analysis, generate intermediate code, and optimize code for a target machine. The main textbook is Compilers: Principles, Techniques, and Tools by Aho et al.

Uploaded by

exam exam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views2 pages

Syllabus

This document outlines the objectives, contents, outcomes, and resources for a Compiler Design course. The course covers 5 modules on compiler concepts like lexical analysis, syntax analysis using LL and LR parsing, syntax-directed translations, intermediate code generation, and code optimization. Students will learn to design lexical analyzers, parsers, implement syntax-directed definitions, perform semantic analysis, generate intermediate code, and optimize code for a target machine. The main textbook is Compilers: Principles, Techniques, and Tools by Aho et al.

Uploaded by

exam exam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

B.

TECH (CSE) III YEAR II-SEM

CS3201 Compiler Design 3L:0T:0P 3 Credits

Course Objectives:
1. To understand and list the different stages in the process of compilation.
2. Identify different methods of lexical analysis.
3. Design top-down and bottom-up parsers.
4. Identify synthesized and inherited attributes.
5. Develop syntax directed translation schemes.
6. Develop algorithms to generate code for a target machine

Detailed Contents:
Module 1:
Overview of compilation: The structure of a compiler and applications of compiler
technology; Lexical analysis: The role of a lexical analyzer, specification of tokens,
recognition of tokens, hand-written lexical analyzers, LEX, examples of LEX programs.

Module 2:
Introduction to syntax analysis: Role of a parser, use of context-free grammars(CFG) in the
specification of the syntax of programming languages, techniques for writing grammars for
programming languages (removal left recursion, etc.), non- context-free constructs in
programming languages, parse trees and ambiguity, examples of programming language
grammars.
Top-down parsing: FIRST & FOLLOW sets, LL(1) conditions, predictive parsing, recursive
descent parsing, error recovery.
LR-parsing: Handle pruning, shift-reduce parsing, viable prefixes, valid items, LR(0)
automaton, LR-parsing algorithm, SLR(1), LR(1) and LALR(1) parsing. YACC, error
recovery with YACC and examples of YACC specifications

Module 3:
Syntax-directed definitions (attribute grammars): Synthesized and inherited attributes,
Examples of SDDs, Evaluation orders for attributes of an SDD, Dependency graphs, S-
attributed and L-attributed SDDs and their implementation using LR-parsers and recursive-
descent parsers respectively.
Semantic analysis: Symbol tables and their data structures, Representation of “scope”,
Semantic analysis of expressions, assignment and control-flow statements, Declarations of
variables and functions, function calls etc., using S- and L-attributed SDDs (treatment of arrays
and structures included), Semantic error recovery.

Module 4:
Intermediate code generation: Different intermediate representations like quadruples, triples,
trees, flow graphs, SSA forms, and their uses, Translation of expressions (including array
references with subscripts) and assignment statements.
Translation of control-flow statements: if- then-else, while-do and switch, Short-circuit code
and control-flow translation of Boolean expressions, Back patching, Examples to illustrate
intermediate code generation for all constructs.
Run-time environments: Stack allocation of space and activation records, Access to non-local
data on the stack in the case of procedures with and without nesting of procedures.
Module 5:
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,
Peephole Optimization, Register Allocation and Assignment.
Machine Independent Optimizations: The Principal Sources of Optimizations, Introduction
to data flow analysis, Foundation of data flow analysis.

Suggested books:
1. Compilers: Principles, Techniques, and Tools , by A.V. Aho, Monica Lam, Ravi
Sethi, and J.D. Ullman, (2nd ed.), Addison-Wesley, 2007 (main text book, referred to
as ALSU in lab assignments).
2. K.D. Cooper, and Linda Torczon, Engineering a Compiler, Morgan Kaufmann, 2004.

Suggested reference books:


1. K.C. Louden, Compiler Construction: Principles and Practice, Cengage Learning,
1997.
2. D. Brown, J. Levine, and T. Mason, LEX and YACC, O ‟Reilly Media, 1992.

Course Outcomes:
1. For a given grammar specifications develop the lexical analyzer.
2. For a given parser specification design top-down and bottom-up parsers.
3. Develop syntax directed translation schemes.
4. Develop algorithms to generate code for a target machine.

You might also like