HOLY ANGEL UNIVERSITY COLLEGE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY COMPILER THEORY COURSE SYLLABUS

Similar documents
HOLY ANGEL UNIVERSITY COLLEGE OF INFORMATION and COMMUNICATIONS TECHNOLOGY DATABASE MANAGEMENT SYSTEM COURSE SYLLABUS

HOLY ANGEL UNIVERSITY COLLEGE of INFORMATION and COMMUNICATIONS TECHNOLOGY WEB SERVER AND CLOUD TECHNOLOGIES COURSE SYLLABUS

HOLY ANGEL UNIVERSITY COLLEGE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY WEB TECHNOLOGIES 1 COURSE SYLLABUS

G.PULLAIH COLLEGE OF ENGINEERING & TECHNOLOGY

HOLY ANGEL UNIVERSITY COLLEGE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY PRINCIPLES OF DESIGN FOR WEB COURSE SYLLABUS

Compilers. Computer Science 431

HOLY ANGEL UNIVERSITY COLLEGE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY CYBER SECURITY COURSE SYLLABUS

HOLY ANGEL UNIVERSITY COLLEGE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY VOICE OVER IP COURSE SYLLABUS

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Compiler Design

CMPE 152 Compiler Design

Compilers for Modern Architectures Course Syllabus, Spring 2015

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

About the Authors... iii Introduction... xvii. Chapter 1: System Software... 1

CMPE 152 Compiler Design

CMPE 152 Compiler Design

CS/SE 153 Concepts of Compiler Design

LECTURE NOTES ON COMPILER DESIGN P a g e 2

Torben./Egidius Mogensen. Introduction. to Compiler Design. ^ Springer

KALASALINGAM UNIVERSITY ANAND NAGAR, KRISHNAN KOIL DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING ODD SEMESTER COURSE PLAN

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTING DEPARTMENT OF CSE COURSE PLAN

SYED AMMAL ENGINEERING COLLEGE (An ISO 9001:2008 Certified Institution) Dr. E.M. Abdullah Campus, Ramanathapuram

INSTITUTE OF AERONAUTICAL ENGINEERING (AUTONOMOUS)

Compiler Design Overview. Compiler Design 1

Formal Languages and Compilers Lecture I: Introduction to Compilers

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division

Compiler Design (40-414)

CS Compiler Construction West Virginia fall semester 2014 August 18, 2014 syllabus 1.0

CJT^jL rafting Cm ompiler

CS/SE 153 Concepts of Compiler Design

CST-402(T): Language Processors

List of Figures. About the Authors. Acknowledgments

Downloaded from Page 1. LR Parsing

Principles of Compiler Construction ( )

Syntax Analysis Part I

Evaluation Scheme L T P Total Credit Theory Mid Sem Exam

2068 (I) Attempt all questions.

4. An interpreter is a program that

Compiler Construction Principles And Practice Solution Manual

VIVA QUESTIONS WITH ANSWERS

Syntax Analysis. Chapter 4

Introduction to Compiler Construction

CSCI 565 Compiler Design and Implementation Spring 2014

CS 406/534 Compiler Construction Putting It All Together

Principles of Compiler Construction ( )

Gujarat Technological University Sankalchand Patel College of Engineering, Visnagar B.E. Semester VII (CE) July-Nov Compiler Design (170701)

KINGS COLLEGE OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING ACADEMIC YEAR / EVEN SEMESTER

Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology

SRM UNIVERSITY FACULTY OF ENGINEERING AND TECHNOLOGY SCHOOL OF COMPUTER SCIENCE AND ENGINEERING COURSE PLAN

1. Explain the input buffer scheme for scanning the source program. How the use of sentinels can improve its performance? Describe in detail.

CS606- compiler instruction Solved MCQS From Midterm Papers

MidTerm Papers Solved MCQS with Reference (1 to 22 lectures)

COLLEGE OF THE DESERT

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Subject Name: CS2352 Principles of Compiler Design Year/Sem : III/VI

GUJARAT TECHNOLOGICAL UNIVERSITY

Recursive Descent Parsers

Compiler Design Aug 1996

EDAN65: Compilers, Lecture 06 A LR parsing. Görel Hedin Revised:

CSCI Compiler Design

Section A. A grammar that produces more than one parse tree for some sentences is said to be ambiguous.

RYERSON POLYTECHNIC UNIVERSITY DEPARTMENT OF MATH, PHYSICS, AND COMPUTER SCIENCE CPS 710 FINAL EXAM FALL 96 INSTRUCTIONS

COMPILER DESIGN. For COMPUTER SCIENCE

Introduction to Compiler Construction

CS 415 Midterm Exam Spring SOLUTION

CS5363 Final Review. cs5363 1

The analysis part breaks up the source program into constituent pieces and creates an intermediate representation of the source program.

COMPILER DESIGN - QUICK GUIDE COMPILER DESIGN - OVERVIEW

Compiler Construction Principles And Practice Answers

DEPARTMENT OF INFORMATION TECHNOLOGY AUTOMATA AND COMPILER DESIGN. B.Tech-IT, III Year -I Sem

UNIVERSITY OF CALIFORNIA

INTRODUCTION PRINCIPLES OF PROGRAMMING LANGUAGES. Norbert Zeh Winter Dalhousie University 1/10

Unit 13. Compiler Design

BSCS Fall Mid Term Examination December 2012

CS 415 Midterm Exam Spring 2002

Error Recovery during Top-Down Parsing: Acceptable-sets derived from continuation

CS202 Compiler Construction. Christian Skalka. Course prerequisites. Solid programming skills a must.

CS415 Compilers Overview of the Course. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University

SYLLABUS UNIT - I UNIT - II UNIT - III UNIT - IV CHAPTER - 1 : INTRODUCTION CHAPTER - 4 : SYNTAX AX-DIRECTED TRANSLATION TION CHAPTER - 7 : STORA

QUESTIONS RELATED TO UNIT I, II And III

Principles of Programming Languages [PLP-2015] Detailed Syllabus

COLLEGE OF ENGINEERING, NASHIK. LANGUAGE TRANSLATOR

Formal Languages and Compilers Lecture VII Part 3: Syntactic A

Name of chapter & details

COMPILER CONSTRUCTION LAB 2 THE SYMBOL TABLE. Tutorial 2 LABS. PHASES OF A COMPILER Source Program. Lab 2 Symbol table

CS 2210 Sample Midterm. 1. Determine if each of the following claims is true (T) or false (F).

Outline. Lecture 17: Putting it all together. Example (input program) How to make the computer understand? Example (Output assembly code) Fall 2002

GUJARAT TECHNOLOGICAL UNIVERSITY

VALLIAMMAI ENGINEERING COLLEGE

Compiling Regular Expressions COMP360

Course introduction. Advanced Compiler Construction Michel Schinz

CS131: Programming Languages and Compilers. Spring 2017

Semantic Analysis. Lecture 9. February 7, 2018

Translator Design CRN Course Administration CMSC 4173 Spring 2017

Group B Assignment 9. Code generation using DAG. Title of Assignment: Problem Definition: Code generation using DAG / labeled tree.


CSE P 501 Compilers. LR Parsing Hal Perkins Spring UW CSE P 501 Spring 2018 D-1

PSD3A Principles of Compiler Design Unit : I-V. PSD3A- Principles of Compiler Design

Software II: Principles of Programming Languages

Syntax-Directed Translation. Lecture 14

Transcription:

HOLY ANGEL UNIVERSITY COLLEGE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY COMPILER THEORY COURSE SYLLABUS Code : 6COMTHEORY Prerequisite : 6AMATA Credit : 3 s (3 hours LEC) Year Level: 3 rd year Degree Program : Bachelor of Science in Computer Science (BSCS) Description : This course studies the principles of programming languages with an emphasis on programming language implementation and compiler design. This includes various techniques for describing and defining a language, as well as techniques for implementing compilers. The course is centered on a large programming project-the construction of a complete compiler for a small programming language. s to be covered over the two terms include: lexical analysis, syntactic analysis, recursive descent parsing, LR parsing, syntax-directed translation, type checking, run-time environments, code generation, code optimization, and various language design issues. At the end of the course, students will be able to: s Graduate s Aligned to C1 Given a basic compiler definition, students can decide the corresponding compiler structure and identify the relationships among different phases of the compiler (1) Lexical Analyzer (2) Syntax Analyzer (3) Semantic Analyzer (4) Intermediate Code Generator (5) Machine Code Optimizer (6) Code Generator C2 Understand how a compiler works, specifically the analysis of a program into atomic pieces and the subsequent synthesis into an equivalent program BSCS01: Apply knowledge of computing fundamentals, knowledge of a computing specialization, and mathematics, science, and domain knowledge appropriate for the computing specialization to the abstraction and conceptualization of computing models from defined problems and requirements. BSCS02: Identify, analyze, formulate, research literature, and solve complex computing problems and requirements reaching substantiated conclusions using fundamental principles of mathematics, computing sciences, and relevant domain disciplines BSCS02: Identify, analyze, formulate, research literature, and solve complex computing problems and requirements reaching substantiated conclusions using fundamental principles of mathematics, computing sciences, and relevant domain disciplines Page 1 of 8

C3 Construct a complete working compiler using a specific language that students have designed BSCS03: Design, implement, and evaluate computer-based systems, processes, components, or programs to meet desired needs and requirements under various constraints. Evidences As proof of achievement of the above-mentioned outcomes, the student is required to complete and submit the following: LE1: Machine Project LE1.1 Lexical Analyzer/Scanner LE1.2 Syntax and Semantic Analyzer LE1.3 Build a Compiler CO1, CO2 CO1, CO2 CO1, CO2, CO3 Measurement System: To assess the level of performance in the learning evidences, the following rubrics will be used: LE1: Machine Project Area to Assess Point Value Codes 50 Efficiency 10 Usability 10 Robustness 10 User Interface 5 Correct 10 Run without Error 5 Presentation 25 Organization 10 Delivery 5 Group Dynamics 5 Completeness 5 Individual Grade 25 Attitude 5 Contribution 10 Participation 10 Total 100 Page 2 of 8

Plan: Define what is a compiler and its scheme Comparison of interpreters and compilers, language translation phases, machinedependent and independent aspects of translation, language translation 1-5 CO1, CO2 Overview of Compiler Design Architecture of Compiler Design Lecture Discussion Oral Recitation Brainstorming Mastery test (oral/written) Assignment Seatwork (Problem Solving) Lexical Analyzer / Scanner (LE1.1) Learn the different phases of compiler Phases of Compiler Study and analyze the application of regular expressions and its components in lexical scanners Lexical Analysis: definition Tokens Specification of Tokens Regular Expression (RE) Operations Notations Precedence/Associativity Page 3 of 8

Recognize and analyze the implementation of finite state automata in lexical analysis finite state automata Know the use of derivations in syntax analyzer Syntax Analysis: Context Free Grammar Syntax Analyzer Derivations (Left-Most and Right- Most) 6 Prelim Examination Create parse trees, first and follow sets in syntax analysis Know the limitations of syntax analyzers 7-11 Syntax Analysis: Parse Tree First and Follow Sets Limitations of Syntax Analyzer Lecture Discussion Oral Recitation Brainstorming Mastery test (oral/written) Assignment Seatwork (Problem Solving) Syntax and Semantic Analyzer (LE1.2) Know the different parsing techniques and learn the basic concepts Types of Parsing Top-Down parsing: Definition and concepts Bottom-Up parsing: Definition and concepts Distinguish the Types of Top-Down Page 4 of 8

different top-down parsing and their basic concepts parsing Recursive Descent Parsing - Backtracking - Non Backtracking o Predictive Parser o LL parser Learn the different bottomup parsing and their basic concepts Types of Bottom-Up parsing Shift-Reduce LR Parsing - SLR parsing - LR Parser - LALR Parser Identify the different kind of errors, error detection and recovery strategies Kind of Errors - Lexical - Syntactical - Semantical - Logical Common Error-recovery strategies - Panic Mode - Statement Mode - Error Productions - Global Corrections Define the AST, its use in semantic analysis and how it reveals the Abstract Syntax Trees Semantics: definition Semantic Error Attribute Grammar Page 5 of 8

lexical/syntactical structure of the program S-Attribute SDT L-Attribute SDT 12 Midterm Examination Intermediate Representation, code generation and object code, implementation of code generators 13-17 Runtime Environment Activation Trees Storage Allocation Static Allocation Stack Allocation Heap Allocation Parameter Passing Pass by Value/reference Pass by Name/copyrestore Lecture Discussion Oral Recitation Brainstorming Mastery test (oral/written) Assignment Seatwork (Problem Solving) Build a compiler (LE1.3) Code generation: code generation by tree walking; context sensitive translation Identify and analyze the Code optimization: Machineindependent Symbol table Implementation Scope Management Intermediate Code Generation - Representation - Three Address Code Declarations Code Optimization - Machine Independent Page 6 of 8

optimization; data-flow analysis; loop optimizations; machinedependent optimization - Machine Dependent - Loop - Dead-Code Elimination - Partial Redundancy 18 Final Examination References: A. Published Materials Compiler Construction: Principles and Practices by Kenneth C. Louden (1998) Compiler Construction by William Waite (1996) Compiler Construction by Niklaus Wirth (1996) Compiler Design: Theory, Tools and Examples by Seth Bergmann (1994) Elements of Compiler Design by Alexander Meduna (2007) Basics of Compiler Design by Torben Ægidius Mogensen (2010) Compilers: Principles, Techniques and Tools by Alfred V. Aho et. Al (2006) B. Web References http://www.tutorialspoint.com/compiler_design/ (Learn Compiler Design) http://www.cs.man.ac.uk/~pjj/farrell/compmain.html (Compiler Basics) http://www.cs.rit.edu/~ats/cc-2010-2/tutorial/ (Compiler Construction Tutorial) http://web.stanford.edu/class/archive/cs/cs143/cs143.1128/ (Compilers) Page 7 of 8

Grading System The final grade in this course will be composed of the following items and their weights in the final grade computation: Class Standing 70% Major Exam 30% FINAL GRADE = Class Standing + Major Exam Transmutation Table: Minimum Passing Percent Average of Subject : 50 RANGE EQUIVALENTS (COMPUTED AVERAGES & TRANSMUTED VALUES) Range of Computed Average Range of Transmuted Values Grade General Classification 94.0000 100.0000 97 100 1.00 Outstanding 88.0000 93.9999 94 96 1.25 Excellent 82.0000 87.9999 91 93 1.50 Superior 76.0000 81.9999 88 90 1.75 Very Good 70.0000 75.9999 85 87 2.00 Good 64.0000 69.9999 82 84 2.25 Satisfactory 58.0000 63.9999 79 81 2.50 Fairly Satisfactory 52.0000 57.9999 76 78 2.75 Fair 50.0000 51.9999 75 3.00 Passed Below Passing Average 5.00 Failed Failure due to absences 6.00 FA Unauthorized Withdrawal 8.00 UW Officially Dropped 9.00 Dropped Page 8 of 8