Purdue Northwest
CS 51530
Programming Languages, Interpreters and Compilers
Spring, 2020

Professor Roger Kraft
Office: Classroom Office Building, Room 368
Office phone: (219) 989-2696 or 989-2273
Office hours: 3:30--5:30 MW, and by appointment.
E-mail: rlkraft@pnw.edu

This course is an introduction to the implementation of programming languages using interpreters. The primary goal of this course is to help you understand programming language features by having you implement each features in an interpreter. Some examples of the kind of language features we will be considering are: concrete vs. abstract syntax, static vs. dynamic scope, static vs. dynamic typing, nested functions, first class functions, anonymous functions, closures, strict vs. lazy evaluation, compilation vs. interpretation. We will also look at how a programming language's syntax is specified and how the language's semantics can be described.