everything.study
CS 350

Programming Language Concepts

3 credits

Introduction to the theory and implementation of programming languages. Functional programming: immutable data, algebraic datatypes, recursion, and higher-order functions. Type-directed development and equational reasoning. Implementation of programming languages: grammars, syntax trees, program translation, and interpreters. Semantic models of languages: substitution, environments, and mutable state, along with alternate models such as lazy evaluation or dynamic scope. ***Prerequisite: CS 220.***

Sources