CS217 Day 10 Monday, April 17, 2000

Environment Passing Interpreters I

An interpreter is a program that performs some action on a data structure that depends upon its structure. We will begin by developing interpreters for a series of simple languages that have the semantics of Scheme, a lexically scoped language in which procedures are first class objects and which supports recursion and assignment. We will then consider alternative semantics for the meaning of variables and parameter passing.

Our interpreters will act on abstract syntax obtained either by parsing list syntax expressions or character syntax expressions. In order to emphasize the distinction between Scheme and defined languages, we will generally write defined language programs in character syntax and parse to abstract syntax using SLLGEN, although for convenience, we will maintain a parser of list syntax into abstract syntax.

Start working on Assignment 4, adding primitive procedues.