Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode

We present a design for a class of computers whose 'instruction sets' are based on LISP. LISP, like traditional stored-program machine languages and unlike most high-level languages, conceptually stores programs and data in the same way and explicitly allows programs to be manipulated as d...

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/5731
_version_ 1826215154184880128
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 present a design for a class of computers whose 'instruction sets' are based on LISP. LISP, like traditional stored-program machine languages and unlike most high-level languages, conceptually stores programs and data in the same way and explicitly allows programs to be manipulated as data. LISP is therefore a suitable language around which to design a stored-program computer architecture. LISP differs from traditional machine languages in that the program/data storage is conceptually an unordered set of linked record structures of various sizes, rather than an ordered, indexable vector of integers or bit fields of fixed size. The record structures can be organized into trees or graphs. An instruction set can be designed for programs expressed as such trees. A processor can interpret these trees in a recursive fashion, and provide automatic storage management for the record structures. We describe here the basic ideas behind the architecture, and for concreteness give a specific instruction set (on which variations are certainly possible). We also discuss the similarities and differences between these ideas and those of traditional architectures. A prototype VLSI microprocessor has been designed and fabricated for testing. It is a small-scale version of the ideas presented here, containing a sufficiently complete instruction interpreter to execute small programs, and a rudimentary storage allocator. We intend to design and fabricate a full-scale VLSI version of this architecture in 1979.
first_indexed 2024-09-23T16:17:26Z
id mit-1721.1/5731
institution Massachusetts Institute of Technology
language en_US
last_indexed 2024-09-23T16:17:26Z
publishDate 2004
record_format dspace
spelling mit-1721.1/57312019-04-12T11:48:42Z Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode Steele, Guy Lewis, Jr. Sussman, Gerald Jay We present a design for a class of computers whose 'instruction sets' are based on LISP. LISP, like traditional stored-program machine languages and unlike most high-level languages, conceptually stores programs and data in the same way and explicitly allows programs to be manipulated as data. LISP is therefore a suitable language around which to design a stored-program computer architecture. LISP differs from traditional machine languages in that the program/data storage is conceptually an unordered set of linked record structures of various sizes, rather than an ordered, indexable vector of integers or bit fields of fixed size. The record structures can be organized into trees or graphs. An instruction set can be designed for programs expressed as such trees. A processor can interpret these trees in a recursive fashion, and provide automatic storage management for the record structures. We describe here the basic ideas behind the architecture, and for concreteness give a specific instruction set (on which variations are certainly possible). We also discuss the similarities and differences between these ideas and those of traditional architectures. A prototype VLSI microprocessor has been designed and fabricated for testing. It is a small-scale version of the ideas presented here, containing a sufficiently complete instruction interpreter to execute small programs, and a rudimentary storage allocator. We intend to design and fabricate a full-scale VLSI version of this architecture in 1979. 2004-10-01T20:33:03Z 2004-10-01T20:33:03Z 1979-03-01 AIM-514 http://hdl.handle.net/1721.1/5731 en_US AIM-514 75 p. 6008252 bytes 4674985 bytes application/postscript application/pdf application/postscript application/pdf
spellingShingle Steele, Guy Lewis, Jr.
Sussman, Gerald Jay
Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode
title Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode
title_full Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode
title_fullStr Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode
title_full_unstemmed Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode
title_short Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode
title_sort design of lisp based processors or scheme a dielectric lisp or finite memories considered harmful or lambda the ultimate opcode
url http://hdl.handle.net/1721.1/5731
work_keys_str_mv AT steeleguylewisjr designoflispbasedprocessorsorschemeadielectriclisporfinitememoriesconsideredharmfulorlambdatheultimateopcode
AT sussmangeraldjay designoflispbasedprocessorsorschemeadielectriclisporfinitememoriesconsideredharmfulorlambdatheultimateopcode