This course is about compilers
Compilers are language processors
translate high-level language into
low-level language
help bridge the semantic gap
Language specification
needed for communication between
language designers, implementers, and users
Three parts we will study during
this course
Syntax of the language: usually
formal: Extended BNF
Contextual constraints: usually
informal: scope rules and type rules (written in English)
Semantics: usually informal:
descriptions in English