The most essential prerequisites for this book are courses in C or C++
programming, Data Structures, Assembly Language or Computer Architecture, and
possibly Programming Languages. Topics covered includes: Introduction, Lexical Analysis, Syntax Analysis, Top Down Parsing, Bottom Up
Parsing, Code Generation, Optimization, The Phases of a Compiler, Implementation
Techniques, Formal Languages, Lexical Tokens, Implementation with Finite State
Machines, Lexical Tables, Lexical Analysis with SableCC, Ambiguities in
Programming Languages, The Parsing Problem, Summary, Relations and Closure,
Simple Grammars, Parsing Arithmetic Expressions Top Down, Attributed Grammars,
An Attributed Translation Grammar for Expressions, Decaf Expressions,
Translating Control Structures, Shift Reduce Parsing, LR Parsing With Tables,
SableCC, Arrays, Introduction to Code Generation, Converting Atoms to
Instructions, Register Allocation, Introduction and View of Optimization, Global
Optimization, Local Optimization
This note covers the
design and implementation of compiler and runtime systems for high-level
languages, and examines the interaction between language design, compiler
design, and runtime organization. Topics covered includes: lexical and syntactic
analysis, type-checking, program analysis, code generation and optimization,
memory management, and runtime organization.
This note aims to teach students the principles involved in
compiler design. It will cover all the basic components of a compiler but not
the advanced material on optimizations and machine code generation.
This note covers the following topics:
Introduction, lexical analysis, LL parsing, LR parsing, JavaCC and JTB, Semantic
analysis, Translation and simplification, Liveness analysis and register
allocation, Activation Records.
This manual is mainly a reference manual
rather than a tutorial. This manual documents the internals of the GNU
compilers, including how to port them to new targets and some information about
how to write front ends for new languages. It corresponds to the compilers (GCC)
version 5.0.0.
Author(s): Free
Software Foundation for GNU development
This
book covers the following topics:Processing Simple Forms of Data, Processing
Arbitrarily Large Data, Abstracting Designs, Generative Recursion, Accumulating
Knowledge, Changing the State of Variables, Changing Compound Values.
Author(s): Matthias
Felleisen, Robert Bruce Findler, Matthew Flatt and Shriram Krishnamurth
This 320-page book treats parsing in its own right, in greater depth than
is found in most computer science and linguistics books. It offers a clear,
accessible, and thorough discussion of many different parsing techniques with
their interrelations and applicabilities, including error recovery techniques.