click below
click below
Normal Size Small Size show me how
Preface
Kenneth Louden Compiler Construction Principles Practice
| Question | Answer |
|---|---|
| Field of compiler construction | Topic |
| Theory underlying the modern approach to compiler design | Topic |
| Practical examples of compiler for small language | Topic |
| Complete description of compiler for small language | Topic |
| Souce code of a compiler for a small language | Topic |
| Compiler design | Topic |
| Compiler Construction | Topic |
| Necessary tools for compiler construction | Topic |
| Design and program an actual compiler | Goal |
| Theory and principles of compiler design with brief examples of the application of theory | Textbook |
| Practical goal of producing a real compiler either for a real programming language or a pared down version of one with only small forays into the theory underlying the code to explain its origin and behavior | Textbook |
| What is needed to develop a full understanding of compilers | To really understand the practical aspect of compiler design one needs to have a good understanding of the theory and to really appreciate the theory one needs to see it in action in a real or near real practical setting |
| Theory and practice techniques with actual implementation detail | Topic |
| Complete compiler for a small language written in c developed using different techniques | Topic |
| Detailed descriptions of coding techniques for additional language examples | Topic |
| Course automata theory | prerequisite |
| Programming languages | Prerequisite |
| Data Structures | Prerequisite |
| study of techniques using only a series of separate small examples each targeting a specific concept | study technique |
| extensive compiler project make it more manageable with the use of Lex and Yacc as tools | study technique |
| write all the code for a compiler by hand using say recursive decent parsing but may lighten the task by giving students the basic data structures and some sample code | study technique |
| survey of the basic structure of a compiler and the techniques | topic |
| porting and bootstrapping | topic |
| theory of finite automata and regular expressions - applies theory to the construction of a scanner both by hand coding and using the scanner generation tool lex | topic |
| studies the theory of context free grammars as it pertains to parsing with particular emphasis on resolving ambiguity | topic |
| detailed descriptions of three common notations for such grammars BNF , EBNF, and syntax diagrams | topic |
| Chomsky hierarchy and the limits of the power of context free grammars - mentions some of the important computation theoretic results concerning such grammars | topic |
| grammar for the sample language | topic |
| top-down parsing algorithms | topic |
| methods of recursive decent and LL(1) parsing (TOP DOWN PARSING ALGORITHMS) | Topic |
| recursive descent parser | topic |
| study of parsing algorithms | topic |
| bottom up parsing | topic |
| (bottom up parsing) culminating in LALR(1) parsing tables | topic |
| (bottom up parsing) use of the Yacc parser generator tool | topic |
| Yacc specification for sample language | topic |
| comprehensive account of static semantic analysis - focus on attribute grammars and syntax tree traversals | topic |
| (static semantic analysis) gives extensive coverage to the construction of symbol tables and static type checking (two primary examples of semantic analysis) | topic |
| hash table implementation for a symbol table - used to implement a semantic analyzer for sample language | topic |
| common forms of runtime environments - fully static environment (FORTRAN) through the many varieties of stack-based environments to the fully dynamic environments of LISP like languages | topic |
| implementation for a heap of dynamically allocated storage (runtime environments) | topic |
| code generation both for intermediate code such as three address code and P code and for executable object code for a simple von Neumann architecture (simulator given) | topic |
| complete code generator for sample language | topic |
| code optimization techniques | topic |
| detailed description of language suitable for a project | topic |
| partial projects used as assignments | topic |
| line numbered listings of the source code for sample compiler and the machine simulator | topic |