3.00 Credits
Programming languages are studies from the theoretical viewpoint. The goal is deeper understanding of the design and translation of computer languages. Topics include compilation, automata and formal languages, computability by Turing machines and recursive functions, uncomputability, data types, data structures, binding scope, control mechanisms, conversions, storage management, reliability, portability, modularity, documentation, implementation methods and language extensibility.