CS 422
CS 422 - Programming Language Design
Fall 2025
| Title | Rubric | Section | CRN | Type | Hours | Times | Days | Location | Instructor |
|---|---|---|---|---|---|---|---|---|---|
| Programming Language Design | CS422 | T3 | 30132 | LCD | 3 | 1230 - 1345 | T R | 1214 Siebel Center for Comp Sci | Grigore Rosu |
| Programming Language Design | CS422 | T4 | 40088 | LCD | 3 | 1230 - 1345 | T R | 1214 Siebel Center for Comp Sci | Grigore Rosu |
See full schedule from Course Explorer
Official Description
Course Director
Learning Goals
Learn and apply a novel programming language design framework to define a series of languages covering all major paradigms (1), (2)
Design SIMPLE, a C-like imperative programming language with recursive functions, multi-dimensional, arrays, dynamic threads. (1), (2), (6)
Design KOOL, a Java-like object-oriented programming language with dynamic method dispatch, subtype polymorphism, exceptions, threads. (1), (2), (6)
Design FUN, an ML-like functional programming language with higher-order functions, lists, let and letrec binders, parametric polymorphism, callcc. Learn and apply substitution. (1), (2), (6)
Design a parametric polymorphic type system for FUN, which extends the classic Damas-Milner-Clement type system. (1), (2)
Design LOGIK, a Prolog-like logic programming language. Learn and apply unification. (1), (2), (6)
Topic List
Basic PL semantic approaches
K PL Design Framework
Imperative Programming
Object-Oriented Programming
Functional Programming
Logic Programming
Concurrency Concepts in Languages
Exceptions
Types and Polymorphism
Unification
Required, Elective, or Selected Elective
Selected Elective.