123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- @c Introduction & acknowledgement chapters.
- @node Introduction & acknowledgements
- @chapter Introduction
- Scheme48 is an implementation of Scheme based on a byte-code virtual
- machine with design goals of simplicity and cleanliness. To briefly
- enumerate some interesting aspects of it, Scheme48 features:
- @itemize @bullet
- @item
- an advanced module system based on Jonathan Rees's W7 security kernel
- with well-integrated interaction between macros and modules;
- @item
- a virtual machine written in a dialect of Scheme itself, Pre-Scheme,
- for which a compiler is written with Scheme48;
- @item
- a sophisticated, user-level, pre@"emptive multithreading system with
- numerous high-level concurrency abstractions;
- @item
- a composable, lock-free shared-memory thread synchronization mechanism
- known as @dfn{optimistic concurrency}; and
- @item
- an advanced user environment that is well-integrated with the module
- and thread systems to facilitate very rapid development of software
- systems scaling from small to large and single-threaded to
- multi-threaded.
- @end itemize
- It was originally written by Jonathan Rees and Richard Kelsey in 1986
- in response to the fact that so many Lisp implementations had started
- out simple and grown to be complex monsters of projects. It has been
- used in a number of research areas, including:
- @itemize @bullet
- @item
- mobile robots at Cornell [Donald 92];
- @item
- a multi-user collaboration system, sometimes known as a `MUD'
- (`multi-user dungeon') or `MUSE' (`multi-user simulation environment'),
- as well as general research in capability-based security [Museme; Rees
- 96]; and
- @item
- advanced distributed computing with higher-order mobile agents at NEC's
- Princeton research lab [Cejtin @etal{} 95].
- @end itemize
- The system is tied together in a modular fashion by a configuration
- language that permits quite easy mixing and matching of components, so
- much so that Scheme48 can be used essentially as its own OS, as it was
- in Cornell's mobile robots program, or just as easily within another,
- as the standard distribution is. The standard distribution is quite
- portable and needs only a 32-bit byte-addressed POSIX system.
- The name `Scheme48' commemorates the time it took Jonathan Rees and
- Richard Kelsey to originally write Scheme48 on August 6th & 7th, 1986:
- forty-eight hours. (It has been joked that the system has expanded to
- such a size now that it requires forty-eight hours to @emph{read} the
- source.)
- @section This manual
- This manual begins in the form of an introduction to the usage of
- Scheme48, suitable for those new to the system, after which it is
- primarily a reference material, organized by subject. Included in the
- manual is also a complete reference manual for Pre-Scheme, a low-level
- dialect of Scheme for systems programming and in which the Scheme48
- virtual machine is written; @pxref{Pre-Scheme}.
- This manual is, except for some sections pilfered and noted as such
- from the official but incomplete Scheme48 reference manual, solely the
- work of Taylor Campbell, on whom all responsibility for the content of
- the manual lies. The authors of Scheme48 do not endorse this manual.
- @section Acknowledgements
- Thanks to Jonathan Rees and Richard Kelsey for having decided so many
- years ago to make a simple Scheme implementation with a clean design in
- the first place, and for having worked on it so hard for so many years
- (almost twenty!); to Martin Gasbichler and Mike Sperber, for having
- picked up Scheme48 in the past couple years when Richard and Jonathan
- were unable to work actively on it; to Jeremy Fincher for having asked
- numerous questions about Scheme48 as he gathered knowledge from which
- he intended to build an implementation of his own Lisp dialect, thereby
- inducing me to decide to write the manual in the first place; to Jorgen
- Sch@"afer, for having also asked so many questions, proofread various
- drafts, and made innumerable suggestions to the manual.
|