2. Explain three reasons why lexical analysis is separated from syntax analysis.
– Simplicity (Techniques for lexical analysis are less complex than those required for syntax analysis)
– Efficiency (Although it pays to optimize the lexical analyzer, because lexical analysis requires a significant portion of total compilation time)
– Portability (Because the lexical analyzer reads input program files and often includes buffering of that input, it is somewhat platform dependent)