The
goal of the note is to understand how a modern compiler is structured and the
major algorithms used to translate code from high-level to machine language.
Topics covered are: Overview of compilers, Scanners and lexical analysis,
Parsing, Static semantics, type checking, and symbol tables, Runtime
organization and code shape, Code generation - instruction selection and
scheduling, Register allocation, Program analysis, optimization, and program
transformations.
This note explains the following topics, lexical analysis, Syntax analysis and run time environments, Intermediate code generation, Code generation and code optimization.
This note covers the design and implementation of compiler and runtime systems for highlevel languages, and examines the interaction between language design, compiler design, and runtime organization. Topics covered includes, lexical and syntactic analysis, typechecking, program analysis, code generation and optimization, memory management, and runtime organization.