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
Brief history of Compiler The related theories and algorithms in the 1960s and 1970s The classification of language: Chomsky hierarchy he parsing problem was pursued Context-free language. parsing algorithms The symbolic methods for expressing the structure of the words of a programming language Finite automata, Regular expressions Methods have been developed for generating efficient object code Optimization techniques or code, improvement techniques
Brief History of Compiler • The related theories and algorithms in the 1960s and 1970s – The classification of language: Chomsky hierarchy – The parsing problem was pursued: • Context-free language, parsing algorithms – The symbolic methods for expressing the structure of the words of a programming language: • Finite automata, Regular expressions – Methods have been developed for generating efficient object code: • Optimization techniques or code, improvement techniques