This document provides an introduction to compilers, including definitions of key terms like source code, target code, and compiler phases. It describes the main stages in compilation: scanning, parsing, semantic analysis, intermediate code generation, code optimization, and code generation. It also discusses important data structures like symbol tables, literal tables, and parse trees. Finally, it reviews the history of compilers from the 1930s to the 1970s and development of technologies like assemblers, recursive descent parsing, and LR parsing.