3.00 Credits
The class introduces the theoretical study of programming languages. The goal is a deeper understanding of the design and translation of programming languages. The topics cover language grammars and parsers, syntax and semantics, compiling processes, name and binding, scopes, data types, pointers, assignment operations, expressions and assignment statements, subprograms, functional and logic programming languages. Students will understand and apply computer theory, compilation processes, and programs written in declarative and imperative programming languages.