COMPILER CONSTRUCTION Principles and practice Kenneth C. louden San Jose state university
COMPILER CONSTRUCTION Principles and Practice Kenneth C. Louden San Jose State University
Content INTRODUCTION 2. SCANNING 3. CONTEXT-FREE GRMMARS AND PARSING 4. TOP-DOWN PARSING 5. BOTTOM-UP PARSING 6. SEMANTIC ANALYSIS 7. RUNTIME ENVIRONMENT 8. CODE GENERATION
Content 1. INTRODUCTION 2. SCANNING 3. CONTEXT-FREE GRMMARS AND PARSING 4. TOP-DOWN PARSING 5. BOTTOM-UP PARSING 6. SEMANTIC ANALYSIS 7. RUNTIME ENVIRONMENT 8. CODE GENERATION
Main references Books 《编译原理及实践》 美) Kenneth C. Louden著,冯博琴、冯岚等译, 机械工业出版社, 《编译程序原理与技术》, 李赣生、王华民编著,清华大学出版社。 《编译原理》, (美) AlfredⅤAho等著,李建中、姜守旭等译, 机械工业出版社
Main References Books: • 《编译原理及实践》, – (美)Kenneth C. Louden著,冯博琴、冯岚等译, 机械工业出版社。 • 《编译程序原理与技术》, – 李赣生、王华民编著,清华大学出版社。 • 《编译原理》, – (美)Alfred V. Aho 等著,李建中、姜守旭等译, 机械工业出版社
1 INTRODUCTION
1. INTRODUCTION
What is a compiler A computer program translates one language to another Source→ Compil Target er Program Program a compiler is a complex program From 10.000 to 1.000.000 lines of codes Compilers are used in many forms of computing Command interpreters, interface programs
What is a compiler? • A computer program translates one language to another • A compiler is a complex program • From 10,000 to 1,000,000 lines of codes • Compilers are used in many forms of computing • Command interpreters, interface programs Compiler Source Program Target Program
What is the purpose of this text This text is to provide basic knowledge Theoretical techniques, such as automata theory This text is to give necessary tools and practical experience A series of simple examples TINY C-Minus
What is the purpose of this text • This text is to provide basic knowledge – Theoretical techniques, such as automata theory • This text is to give necessary tools and practical experience – A series of simple examples – TINY, C-Minus
Main Topics 1. 1 Why Compilers? A Brief History Openl 1.2 Programs related to Compilers open 1.3 The Translation Process Openl 1. 4 Major Data Structures in a Compiler Open 1.5 Other Issues in Compiler Structure Open 1.6 Bootstrapping and porting open 1. 7 The TINY Sample language and compiler Open 1. 8 C-Minus: A Language for a Compiler project Open
Main Topics 1.1 Why Compilers? A Brief History [Open] 1.2 Programs Related to Compilers [Open] 1.3 The Translation Process [Open] 1.4 Major Data Structures in a Compiler [Open] 1.5 Other Issues in Compiler Structure [Open] 1.6 Bootstrapping and Porting [Open] 1.7 The TINY Sample Language and Compiler [Open] 1.8 C-Minus: A Language for a Compiler Project [Open]
1. 1 Why? A Brief history
1.1 Why? A Brief History
Why Compiler Writing machine language-numeric codes is time consuming and tedious C70600000002 MoV 2 X=2 The assembly language has a number of defects not easy to write Difficult to read and understand
Why Compiler • Writing machine language-numeric codes is time consuming and tedious C7 06 0000 0002 Mov x, 2 X=2 • The assembly language has a number of defects – Not easy to write – Difficult to read and understand
Brief history of compiler The first compiler was developed between 1954 and 1957 The FORTRaN language and its compiler by a team at IBM led by John Backus The structure of natural language was studied at about the same time by noam Chomsky
Brief History of Compiler • The first compiler was developed between 1954 and 1957 – The FORTRAN language and its compiler by a team at IBM led by John Backus – The structure of natural language was studied at about the same time by Noam Chomsky