CMSC 330 is a junior level class on learning, understanding, and building programming languages. This repository provides much of the lecture material from the class, along with helpful examples and boilerplate code to get students started. There are also interspersed practice questions, which may show up on exams or projects throughout the course.
ocaml
-- A tutorial style introduction to the OCaml programming language, giving callouts to various concepts useful for functional programming in general (e.g., map and fold).lambda-calculus
-- Lectures on the lambda calculus and programming language semantics, including implementations of a core ML subset in big step and small step style.prolog
-- Handout material for the Prolog programming langaugemodule-systems
-- A short tutorial on the OCaml module system