1. A compiler translates a program written in a source language into an equivalent program in a target language. It performs analysis and synthesis phases.
2. The analysis phase includes lexical analysis, syntax analysis, and semantic analysis to create an intermediate representation.
3. The synthesis phase includes intermediate code generation, code optimization, and code generation to create the target program.
4. Compiler construction techniques are useful for many tasks beyond just compilation, such as natural language processing.