Description
Introduction to concepts and considerations of modern compilers and programming languages. Language translation, types and declaration, and abstraction mechanisms are studied. Both functional and object-oriented programming paradigms are explored through examination of several programming languages. Automata, languages and grammar, language processing, computability and complexity theory will be examined in detail. Important topics will be explored using a combination of conceptual work and coding exercises.