333x Filetype PDF File size 0.48 MB Source: biet.ac.in
PRINCIPLES OF COMPILER CONSTRUCTION (IT602PC)
COURSE PLANNER
I. OBJECTIVE AND RELEVANCE
The objective of this course is to provide a student with an understanding of the fundamental
principles in compiler design and to provide the skills needed for building compilers for
various situations that one may encounter in a career in Computer Science. After the course
a student should have an understanding, based on knowledge of the underlying machine
architecture, the limitations and efficiency of various design techniques of compilers
implementation. The students will also be exposed to System Software programming using
Java and will be trained to develop programs in different parsers, optimization etc., It also
covers programming in various tools like LEX and YACC for scanning and parsing etc.
II. COURSE PURPOSE
The purpose of this course is to provide students with an overview of the issues that arise in
Compiler construction as well as to throw light upon the significant theoretical
developments and tools that are deep rooted into computer science. This course will
basically introduce the major phases of Compiler construction and also its theoretical aspects
including regular expressions, context free grammars etc. As a part of this course the
students are required to design a compiler passing through the phases namely Lexical
Analysis, Syntax Analysis, Semantic Analysis and Intermediate code generation for a small
language.
III. SCOPE OF COURSE
This course provides the concepts related Compiler Design. Here, A mastery of these areas
is essential for us to develop Compiler Design that utilizes computer resources in an
effective manner. A Compiler Design will certainly help the student to create good System.
The Regular Languages are required to determine the quality of Representation
Mechanisms. As computers become faster and faster, the need for programs that can handle
large amounts of input becomes more acute. The objective of this course is to teach students
good automation skills simultaneously so that they can develop such languages with the
maximum amount.
IV. PRE-REQUISITES
1. Formal Languages and Automata Theory
2. Computer organization.
3. Discrete mathematics
4. System software
V. Course Objectives:
• To understand the various phases in the design of a compiler.
• To study various data structures used
• To understand the design of top-down and bottom-up parsers.
• To understand syntax directed translation schemes.
• To introduce lex and yacc tools.
• To learn intermediate languages
• To learn to develop algorithms to generate code for a target machine.
• To learn how to optimize machine code
[IT III Yr II Sem] 1
VI. Course Outcomes:
S. No. Course Outcomes Bloom’s
Taxonomy Levels
CO1 Ability to design, develop, and implement a compiler for Design
any language
CO2 Able to use LEX and YACC tools for developing a scanner Design
and a parser
CO3 Able to design and implement LL and LR parsers Implement
CO4 Able to design algorithms to perform code Design
optimization in order to improve the performance of a
program in terms of space and time complexity.
CO5 Ability to design algorithms to generate machine code Design
VII. How Program Outcomes are Assessed:
Program Outcomes (PO) Level Proficiency
assessed by
PO1 Engineering knowledge: Apply the knowledge of Assignments,
mathematics, science, engineering fundamentals, and an 3 Tutorials,
engineering specialization to the solution of complex Mock Tests
engineering problems.
PO2 Problem analysis: Identify, formulate, review research
literature, and analyze complex engineering problems Assignments,
reaching substantiated conclusions using first principles 3 Tutorials
of mathematics, natural sciences, and engineering
sciences.
PO3 Design/development of solutions: Design solutions for
complex engineering problems and design system Assignments,
components or processes that meet the specified needs 3 Tutorials,
with appropriate consideration for the public health and Mock Tests
safety, and the cultural, societal, and environmental
considerations.
PO4 Conduct investigations of complex problems: Use Assignments,
research-based knowledge and research methods
including design of experiments, analysis and 3 Tutorials,
interpretation of data, and synthesis of the information to Mock Tests
provide valid conclusions.
PO5 Modern tool usage: Create, select, and apply appropriate Assignments,
techniques, resources, and modern engineering and IT
tools including prediction and modeling to complex 3 Tutorials,
engineering activities with an understanding of the Mock Tests
limitations.
PO6 The engineer and society: Apply reasoning informed by
the contextual knowledge to assess societal, health,
safety, legal and cultural issues and the consequent - -
responsibilities relevant to the professional engineering
practice.
IT III Yr II Sem 2
Proficiency
Program Outcomes (PO) Level assessed by
PO7 Environment and sustainability: Understand the impact of
the professional engineering solutions in societal and - -
environmental contexts, and demonstrate the knowledge
of, and need for sustainable development.
PO8 Ethics: Apply ethical principles and commit to
professional ethics and responsibilities and norms of the 2 Quiz
engineering practice.
PO9 Individual and team work: Function effectively as an
individual, and as a member or leader in diverse teams, 2 Quiz
and in multidisciplinary settings.
PO10 Communication: Communicate effectively on complex
engineering activities with the engineering community
and with society at large, such as, being able to - -
comprehend and write effective reports and design
documentation, make effective presentations, and give
and receive clear instructions.
PO11 Project management and finance: Demonstrate
knowledge and understanding of the engineering and Hands on
management principles and apply these to one’s own 3 training
work, as a member and leader in a team, to manage
projects and in multidisciplinary environments.
PO12 Life-long learning: Recognize the need for, and have
the preparation and ability to engage in independent and 2 Hands on
life-long learning in the broadest context of training
technological change.
VIII. How Program Specific Outcomes are Assessed:
Proficiency
Program Specific Outcomes (PSO) Level assessed
by
PSO1 Software Development and Research Ability: Ability
to understand the structure and development
methodologies of software systems. Possess professional
skills and knowledge of software design process. Assignments,
Familiarity and practical competence with a broad range 3 Tutorials,
of programming language and open source platforms. Mock Tests
Use knowledge in various domains to identify research
gaps and hence to provide solution to new ideas and
innovations.
PSO2 Foundation of mathematical concepts: Ability to apply
the acquired knowledge of basic skills, principles of Assignments,
computing, mathematical foundations, algorithmic 3 Tutorials
principles, modeling and design of computer- based
systems in solving real world engineering Problems.
IT III Yr II Sem 3
Proficiency
Program Specific Outcomes (PSO) Level assessed
by
PSO3 Successful Career: Ability to update knowledge
continuously in the tools like Rational Rose, MATLAB, Assignments,
Argo UML, R Language and technologies like Storage, 3 Tutorials,
Computing, Communication to meet the industry Mock Tests
requirements in creating innovative career paths for
immediate employment and for higher studies.
1: Slight (Low) 2: Moderate
(Medium) 3: Substantial (High) - : None
IX. COURSE CONTENTS
UNIT – I
Introduction: Phases of compiler, Groping of phases.
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.
UNIT – II:
Syntax Analysis: Introduction, Context-Free Grammars, Writing a Grammar, Top-Down
arsing, Bottom-Up Parsing,
Introduction to LR Parsing: Simple LR, More Powerful LR Parsers.
UNIT – III:
Syntax-Directed Translation: Syntax-Directed Definitions, Construction of syntax trees,
Bottom-up evaluation of S-attributed definitions, L-attributed definitions, Top down
translation, Bottom-up evaluation of inherited attributes.
Type checking: Type systems, Specification of a simple type checker, Equivalence of type
expressions. Intermediate-Code Generation: Intermediate languages, Declarations
UNIT – IV:
Run-Time Environments: Storage organization, Storage allocation strategies, Symbol tables.
Code Generation: Issues in the Design of a Code Generator, The Target Machine, Basic
Blocks and Flow Graphs, A Simple Code Generator, Register Allocation and Assignment,
Generation of DAGs, Generating code from DAGs.
UNIT – V:
Machine-Independent Optimizations: Introduction, The Principal Sources of
Optimization,
Introduction to Data-Flow Analysis, Foundations of Data-Flow Analysis.
TEXT BOOKS
1. Compilers: Principles, Techniques and Tools, Second Edition, Alfred V. Aho, Monica
S. Lam, Ravi Sethi, Jeffry D. Ullman, Pearson.
REFERENCE BOOKS
1. Compiler Construction-Principles and Practice, Kenneth C Louden, Cengage Learning.
2. Modern compiler implementation in C, Andrew W Appel, Revised edition,
IT III Yr II Sem 4
no reviews yet
Please Login to review.