Write an overview of the compilation process illustrated in the figure below, explain in general terms the lexical and syntax analyzers.
Source program
Lexical analyzer
Lexical units
Syntax analyzer
Parse trees
Intermediate code generator (and semantic analyzer)
Symbol table
Optimization
(optional)
Intermediate code
Code generator
Machine language
Input data
Computer
Results
Figure from "Concepts of Programming Languages", 11th Edition, Pearson, 2015