Theory and practice of compiler design. Detailed consideration of efficient parsing techniques; organization of semantic analysis and code generation phases; machine dependent and independent optimization techniques; organization of run time environment.