CS 550 Principles of Programming Languages 4 cr.  (4-0-0)

This course explores the fundamental aspects of modern programming languages with respect to semantic and syntax. Using a rigorous approach, we examine the design and implementation of programming languages. More specifically, by using axiomatic, operational, and denotational semantics, we formalize the intended execution and implementation of languages. We design and implement a programming language with a focus on precise and formal investigation of its features. We see how design choices affect the implementation of a programming languages. This course is not a survey of existing programming language paradigm.