183x 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.