The Art of the Interpreter of the Modularity Complex (Parts Zero, One, and Two)

We examine the effects of various language design decisions on theprogramming styles available to a user of the language, with particular emphasis on the ability to incrementally construct modular systems. At each step we exhibit an interactive meta-circular interpreter for the language under...

Full description

Bibliographic Details
Main Authors: Steele, Guy Lewis, Jr., Sussman, Gerald Jay
Language:en_US
Published: 2004
Online Access:http://hdl.handle.net/1721.1/6094
_version_ 1811087570680938496
author Steele, Guy Lewis, Jr.
Sussman, Gerald Jay
author_facet Steele, Guy Lewis, Jr.
Sussman, Gerald Jay
author_sort Steele, Guy Lewis, Jr.
collection MIT
description We examine the effects of various language design decisions on theprogramming styles available to a user of the language, with particular emphasis on the ability to incrementally construct modular systems. At each step we exhibit an interactive meta-circular interpreter for the language under consideration. Each new interpreter is the result of an incremental change to a previous interpreter. We explore the consequences of various variable binding disciplines and the introduction of side effects. We find that dynamic scoping is unsuitable for constructing procedural abstractions, but has another role as agent of modularity, being a structured form of side effect. More general side effects are also found to be necessary to promote modular style. We find that the notion of side effect and the notion of equality (object identity) are mutually constraining; to define one is to define the other. The interpreters we exhibit are all written in a simple dialect of LISP, and all implement LISP-like languages. A subset of these interpreters constitute a partial historical reconstruction of the actual evaluation of LISP.
first_indexed 2024-09-23T13:48:11Z
id mit-1721.1/6094
institution Massachusetts Institute of Technology
language en_US
last_indexed 2024-09-23T13:48:11Z
publishDate 2004
record_format dspace
spelling mit-1721.1/60942019-04-11T02:47:21Z The Art of the Interpreter of the Modularity Complex (Parts Zero, One, and Two) Steele, Guy Lewis, Jr. Sussman, Gerald Jay We examine the effects of various language design decisions on theprogramming styles available to a user of the language, with particular emphasis on the ability to incrementally construct modular systems. At each step we exhibit an interactive meta-circular interpreter for the language under consideration. Each new interpreter is the result of an incremental change to a previous interpreter. We explore the consequences of various variable binding disciplines and the introduction of side effects. We find that dynamic scoping is unsuitable for constructing procedural abstractions, but has another role as agent of modularity, being a structured form of side effect. More general side effects are also found to be necessary to promote modular style. We find that the notion of side effect and the notion of equality (object identity) are mutually constraining; to define one is to define the other. The interpreters we exhibit are all written in a simple dialect of LISP, and all implement LISP-like languages. A subset of these interpreters constitute a partial historical reconstruction of the actual evaluation of LISP. 2004-10-04T14:39:05Z 2004-10-04T14:39:05Z 1978-05-01 AIM-453 http://hdl.handle.net/1721.1/6094 en_US AIM-453 75 p. 5131617 bytes 4018042 bytes application/postscript application/pdf application/postscript application/pdf
spellingShingle Steele, Guy Lewis, Jr.
Sussman, Gerald Jay
The Art of the Interpreter of the Modularity Complex (Parts Zero, One, and Two)
title The Art of the Interpreter of the Modularity Complex (Parts Zero, One, and Two)
title_full The Art of the Interpreter of the Modularity Complex (Parts Zero, One, and Two)
title_fullStr The Art of the Interpreter of the Modularity Complex (Parts Zero, One, and Two)
title_full_unstemmed The Art of the Interpreter of the Modularity Complex (Parts Zero, One, and Two)
title_short The Art of the Interpreter of the Modularity Complex (Parts Zero, One, and Two)
title_sort art of the interpreter of the modularity complex parts zero one and two
url http://hdl.handle.net/1721.1/6094
work_keys_str_mv AT steeleguylewisjr theartoftheinterpreterofthemodularitycomplexpartszerooneandtwo
AT sussmangeraldjay theartoftheinterpreterofthemodularitycomplexpartszerooneandtwo
AT steeleguylewisjr artoftheinterpreterofthemodularitycomplexpartszerooneandtwo
AT sussmangeraldjay artoftheinterpreterofthemodularitycomplexpartszerooneandtwo