Overview

Our objective is to understand programming languages by implementing language features in the context of an interpreter.  We will study simple parsing, issues with naming and scope, evaluation strategies, and various  approaches to programming (procedural, functional, object-oriented, logic, etc).  We will look at perhaps 3 different languages but our main work will be in Scheme.   We'll see how the design of languages affects very practical programming issues, including garbage collection and web programming.

Prerequisites

Textbooks

Administrative Handouts



Stephen P. Carl
scarl AT sewanee D0T edu