Compiler Construction: Principles and Practice
COMPILER CONSTRUCTION: PRINCIPLES AND PRACTICE features a comprehensive, hands-on case study project for constructing an actual, working compiler. This case study involves a relatively simple programming language that will expose readers to the basic concepts used (and potential pitfalls) in constructing larger compilers. Kenneth Louden and his colleagues at San Jose State University have successfully class-tested this approach. COMPILER CONSTRUCTION is a natural extension of Professor Louden's popular text PROGRAMMING LANGUAGES: PRINCIPLES AND PRACTICE. Professionals joining or beginning a compiler project will find COMPILER CONSTRUCTION valuable, as it provides the basic theory, necessary tools, and practical experience to design and program an actual compiler.
What people are saying - Write a review
We haven't found any reviews in the usual places.
CONTEXTFREE GRAMMARS AND PARSING
6 other sections not shown
abstract syntax tree action activation record addop allocated ambiguous arithmetic expressions array assignment attribute equations attribute grammar Boolean bottom-up parsing called chapter char character compiler computed Consider construction contains context-free grammars corresponding data structure data type declarations defined definition dependency graph described digit dtype EBNF else-part expression grammar factor Figure Follow sets function given grammar of Example grammar rule identifier if-stmt implementation instruction integer intermediate code left recursion lookahead machine match metacharacter mulop node nonterminal operations P-code parameter parse tree parser parsing algorithm parsing stack parsing table Pascal pointer procedure programming language recursive-descent reduce regular expression represent reserved words runtime environment scanner semantic analyzer sequence shift statement static string struct symbol table syntax tree temp term three-address code TINY language tion top-down parsing transition TreeNode type checking typedef var-list variable void write Yacc