Compiler theory: Chapters