Prerequisites: No formal prerequisites – The course assumes knowledge of a high-level programming language and topics of CS 505 or equivalent courses. The theory and design of computer language systems; the formal theory of syntax and language classification; a survey of procedure and problem-oriented computer programming languages, their syntax rules, data structures, and operations; control structures and the appropriate environments and methods of their use; a survey of translator types.