CS 4536: Programming Languages
A21 (Junior Year, First Semester)

Course Description

“This course covers the design and implementation of programming languages. Topics include data structures for representing programming languages, implementing control structures (such as functions, recursion, and exceptions), garbage collection, and type systems. Students will be expected to implement several small languages using a functional programming language. Undergraduate credit may not be earned for both this course and CS 536.”


Concepts Learned


My Experience

CS 4536 focused on properties of programming languages and how to design your own. There was a basic mathematical language that was developed and expanded throughout this course. Projects involved writing different aspects of the language, such as the interpreter, desugrarer, and type-checker.