-# The Muddle Programming Environment
-
-By P. David Lebling
+% The Muddle Programming Environment
+% P. David Lebling
+% May 1980
MIT Technical Report 294
-May 1980
-
Laboratory for Computer Science
Massachusetts Institute of Technology
545 Technology Square
This book was originally published in the United States in 1980
without a copyright notice and without subsequent registration with
the U.S. Copyright Office within 5 years. Doing at least one of those
-[was a requirement of United States copyright law at that
-time](http://copyright.cornell.edu/resources/publicdomain.cfm). This
-book is therefore in the public domain in the United States for
+was a requirement of United States copyright law at that time [^1].
+This book is therefore in the public domain in the United States for
failure to comply with the required formalities. This means you're
free to download, modify and redistribute this book. People outside of
the United States must check the copyright laws of their country
before downloading or redistributing.
+[^1]: <http://copyright.cornell.edu/resources/publicdomain.cfm>
+
# Introduction
-The Muddle language is described in "The Muddle Programming Language",
-but in addition to the language itself, there is a rich and varied
-collection of software written in the language which facilitates the
-writing of programs and systems of programs in Muddle. The information
-describing this programming environment has been contained in various
-documents, some out of print or out of date, and in supplemental disk
-files describing changes and additions. Some of the packages of
-functions used to deal with Muddle code have never been formally
-documented. This manual brings together some of that scattered
-documentation.
+The Muddle language is described in "The Muddle Programming Language"
+[^2], but in addition to the language itself, there is a rich and
+varied collection of software written in the language which
+facilitates the writing of programs and systems of programs in Muddle.
+The information describing this programming environment has been
+contained in various documents, some out of print or out of date, and
+in supplemental disk files describing changes and additions. Some of
+the packages of functions used to deal with Muddle code have never
+been formally documented. This manual brings together some of that
+scattered documentation.
+
+[^2]: S. W. Galley and Greg Pfister.
+ *The Muddle Programming Language*.
+ MIT Laboratory for Computer Science, 1979.
The document's purpose is to flesh out the description of the language
contained in "The Muddle Programming Language", giving a fuller
debugging.
It should be noted that, in addition to the editors discussed below,
-RMODE and EMACS, TECO based text editors, understand much of the
-syntax and many of the conventions of Muddle programs.
+RMODE [^3] and EMACS [^4], TECO based text editors, understand much of
+the syntax and many of the conventions of Muddle programs.
+
+[^3]: P. David Lebling, R. V. Baron and Bruce K. Daniels.
+ *RMODE: A Real-time Edit Facility*.
+ Technical Report SYS.04.07-1, MIT LCS Programming Technology
+Division, October 1977.
+
+[^4]: Richard M. Stallman.
+ *EMACS*.
+ Technical Report 519, MIT AI Laboratory, August, 1979.
## 3.1. Pretty-Printing
#### 3.2.1.2. The Ampersand Printer
-Your current position is displayed by "ampersand printing' (see
+Your current position is displayed by "ampersand printing" (see
section 3.1.3). This consists of printing any object on a single line
-by using the character & (ampersand) to mean "There's more stuff
+by using the character `&` (ampersand) to mean "There's more stuff
here."
The ampersand printer used in `EDIT` is much like the standard one,
`I*` is somewhat incompatible with `CURSOR`s. Cursors in Imbedded
structures will sometimes disappear.
-`GO` **cursor** `Go` `GO` takes a *cursor* (normally the `LVAL` of an
+`GO` **cursor**
+`Go`
+`GO` takes a *cursor* (normally the `LVAL` of an
`ATOM` previously given as an argument to `CU`) and `GO`es to that
position. If the *cursor* is illegal (not in the current top-level
structure), an error message will be printed and you will remain in