Com S 541 Programming Languages I. (3-1) Cr. 3. S. Prereq: 442. Survey of the goals and problems of language design. Formal and informal studies of a wide array of programming language features including type systems, naming, state, and control. Creative use of functional, object-oriented, declarative, concurrent and other programming paradigms. Com S 542 Programming Languages II. (3-0) Cr. 3. F. Prereq: 442. Study of compilation theory and techniques, with emphasis on high-level software tools to facilitate compiler construction. Topics include lexical analysis, parsing, attribute grammars, code generation and optimization for traditional and non-traditional languages and architectures.