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 PDF covers the following topics related to Introduction to
Compilers and Language Design : A Quick Tour, Scanning, Parsing,
Parsing in Practice, The Abstract Syntax Tree, Semantic Analysis, Intermediate
Representations, Memory Organization, Assembly Language, Code Generation,
Optimization.
Author(s): Prof. Douglas Thain, University of
Notre Dame
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
examines the fundamental theory and practice of implementing today's programming
languages. Topics covered includes: Lexical Analysis, Parsing, Top-down Parsing,
Bottom-up Parsing, Table Construction, Procedure Abstraction, Code Shape,
Register Allocation and Wrap Up.
This note
explains the following topics: Compilation, The Context of a Compiler ,
Languages, Applications to Compilation, Lexical Analysis, Lex, Syntax Analysis,
Top-Down Parsers, Bottom-up Parsers, Javacc, Symbol Tables, Semantic Analyses
and Tiny.
This note explains the following topics: Tour of Common Optimizations,
Dataflow Analysis, Lattices, Dataflow Analysis using Lattices, Pointer Analysis,
Intermediate Representations, Interprocedural Analysis.
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
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 book is intended to be a source of practical
labwork material, to help make functional-language implementations come alive,
by helping the reader to develop, modify and experiment with some non-trivial
compilers. The principal content of the book is a series of implementations of a
small functional language called the Core language.