Abstract: Remove duplicate reference to the Muddle name in parentheses
[mudman.git] / md / language.md
index 0abf4dfc4871ddb754e8fc4025f2acc9678de879..8ac503ee601709e2ccf07eceef685317c2e76cb6 100644 (file)
@@ -19,21 +19,21 @@ This document is free of known copyright restrictions.
 Abstract
 ========
 
 Abstract
 ========
 
-The Muddle programming language began existence in late 1970 (under
-the name Muddle) as a successor to Lisp (Moon, 1974), a candidate
-vehicle for the Dynamic Modeling System, and a possible base for
-implementation of Planner (Hewitt, 1969). The original design goals
-included an interactive integrated environment for programming,
-debugging, loading, and editing: ease in learning and use; facilities
-for structured, modular, shared programs; extensibility of syntax,
-data types and operators: data-type checking for debugging and
-optional data-type declarations for compiled efficiency; associative
-storage, coroutining, and graphics. Along the way to reaching those
-goals, it developed flexible input/output (including the ARPA
-Network), and flexible interrupt and signal handling. It now serves as
-a base for software prototyping, research, development, education, and
-implementation of the majority of programs at MIT-DMS: a library of
-sharable modules, a coherent user interface, special research
+The Muddle programming language began existence in late 1970 as a 
+successor to Lisp (Moon, 1974), a candidate vehicle for the Dynamic 
+Modeling System, and a possible base for implementation of Planner 
+(Hewitt, 1969). The original design goals included an interactive 
+integrated environment for programming, debugging, loading, and 
+editing: ease in learning and use; facilities for structured, 
+modular, shared programs; extensibility of syntax, data types and 
+operators: data-type checking for debugging and optional data-type 
+declarations for compiled efficiency; associative storage, 
+coroutining, and graphics. Along the way to reaching those goals, it 
+developed flexible input/output (including the ARPA Network), and 
+flexible interrupt and signal handling. It now serves as a base for 
+software prototyping, research, development, education, and 
+implementation of the majority of programs at MIT-DMS: a library of 
+sharable modules, a coherent user interface, special research 
 projects, autonomous daemons, etc.
 
 This document was originally intended to be a simple low-level
 projects, autonomous daemons, etc.
 
 This document was originally intended to be a simple low-level
@@ -130,11 +130,11 @@ cases, the examples contain illustrations of important points which
 are not covered in the text. Ignore examples as your peril.
 
 This document does not assume knowledge of any specific programming
 are not covered in the text. Ignore examples as your peril.
 
 This document does not assume knowledge of any specific programming
-language on the \[sic\] your part. However, "computational literacy"
-is assumed: you should have written at least one program before. Also
-very little familiarity is assumed with the interactive time-sharing
-operating systems under which Muddle runs -- ITS, Tenex, and Tops-20
--- namely just file and user naming conventions.
+language on your part. However, "computational literacy" is assumed:
+you should have written at least one program before. Also very little
+familiarity is assumed with the interactive time-sharing operating
+systems under which Muddle runs -- ITS, Tenex, and Tops-20 -- namely
+just file and user naming conventions.
 
 ### Notation
 
 
 ### Notation
 
@@ -1180,7 +1180,7 @@ re-bound....)
 One way to "name" a `FUNCTION` is
 
     <SETG SQUARE #FUNCTION ((X) <* .X .X>)>$
 One way to "name" a `FUNCTION` is
 
     <SETG SQUARE #FUNCTION ((X) <* .X .X>)>$
-    #FUNCTION ((X) <* .X .X>
+    #FUNCTION ((X) <* .X .X>)
 
 So that
 
 
 So that
 
@@ -1192,7 +1192,7 @@ So that
 Another way, which is somewhat cleaner in its typing:
 
     <SETG SQUARE <FUNCTION (X) <* .X .X>>>$
 Another way, which is somewhat cleaner in its typing:
 
     <SETG SQUARE <FUNCTION (X) <* .X .X>>>$
-    #FUNCTION ((X) <* .X .X>
+    #FUNCTION ((X) <* .X .X>)
 
 `FUNCTION` is an `FSUBR` which simply makes a `FUNCTION` out of its
 arguments and returns the created `FUNCTION`.
 
 `FUNCTION` is an `FSUBR` which simply makes a `FUNCTION` out of its
 arguments and returns the created `FUNCTION`.
@@ -4132,30 +4132,30 @@ used on the `CHANNEL`, and whether or not the *device* is a terminal.
 The following table tells which `SUBR`s can be used with which modes,
 where `OK` indicates an allowed use:
 
 The following table tells which `SUBR`s can be used with which modes,
 where `OK` indicates an allowed use:
 
-  -------------------------------------------------------------------------------------------------------------------------------------------------
-  "READ"               "PRINT"               "READB"               "PRINTB", "PRINTO"                           mode / SUBRs
-  -------------------- --------------------- --------------------- -------------------------------------------- -----------------------------------
-  OK                                         OK                                                                 `READ` `READCHR` `NEXTCHR`
-                                                                                                                `READSTRING` `FILECOPY`
-                                                                                                                `FILE-LENGTH LOAD`
+  -------------------------------------------------------------------------
+  "READ" "PRINT" "READB" "PRINTB", "PRINTO" mode / SUBRs
+  ------ ------- ------- ------------------ ------------
+  OK             OK                         `READ` `READCHR` `NEXTCHR`
+                                            `READSTRING` `FILECOPY`
+                                            `FILE-LENGTH LOAD`
 
 
-                       OK                                          OK\*                                         `PRINT` `PRIN1` `PRINC` `IMAGE`
-                                                                                                                `CRLF` `TERPRI` `FILECOPY`
-                                                                                                                `PRINTSTRING` `BUFOUT` `NETS`
-                                                                                                                `RENAME`
+         OK              OK\*               `PRINT` `PRIN1` `PRINC` `IMAGE`
+                                            `CRLF` `TERPRI` `FILECOPY`
+                                            `PRINTSTRING` `BUFOUT` `NETS`
+                                            `RENAME`
 
 
-                                             OK                                                                 `READB` `GC-READ`
+                 OK                         `READB` `GC-READ`
 
 
-                                                                   OK                                           `PRINTB` `GC-DUMP`
+                         OK                 `PRINTB` `GC-DUMP`
 
 
-  OK                                         OK                    OK                                           `ACCESS`
+  OK             OK      OK                 `ACCESS`
 
 
-  OK                   OK                    OK                    OK                                           `RESET`
+  OK     OK      OK      OK                 `RESET`
 
 
-  OK                   OK                                                                                       `ECHOPAIR`
+  OK     OK                                 `ECHOPAIR`
 
 
-  OK                                                                                                            `TTYECHO` `TYI`
-  -------------------------------------------------------------------------------------------------------------------------------------------------
+  OK                                        `TTYECHO` `TYI`
+  -------------------------------------------------------------------------
 
 `*` PRINTing (or `PRIN1`ing) an `RSUBR` (chapter 19) on a `"PRINTB"`
 or `"PRINTO"` `CHANNEL` has special effects.
 
 `*` PRINTing (or `PRIN1`ing) an `RSUBR` (chapter 19) on a `"PRINTB"`
 or `"PRINTO"` `CHANNEL` has special effects.
@@ -4278,52 +4278,52 @@ each element, and an interpretation. The format used is the following:
 
 *element-number: type interpretation*
 
 
 *element-number: type interpretation*
 
-  ----------------------------------------------------------------------------------------------------
-  element-number             type               interpretation
-  -------------------------- ------------------ ------------------------------------------------------
-  -1                         `LIST`             transcript channel(s) (see below)
+  -------------------------------------------------------------------------------------
+  element-number   type          interpretation
+  ---------------- ------------- ------------------------------------------------------
+  -1               `LIST`        transcript channel(s) (see below)
 
 
-  \* 0                       varies             device-dependent information
+  \* 0             varies        device-dependent information
 
 
-  \* 1                       `FIX`              channel number (ITS) or JFN (Tenex and Tops-20), `0`
-                                                for internal or closed
+  \* 1             `FIX`         channel number (ITS) or JFN (Tenex and Tops-20), `0`
+                                 for internal or closed
 
 
-  \* 2                       `STRING`           mode
+  \* 2             `STRING`      mode
 
 
-  \* 3                       `STRING`           first file name argument
+  \* 3             `STRING`      first file name argument
 
 
-  \* 4                       `STRING`           second file name argument
+  \* 4             `STRING`      second file name argument
 
 
-  \* 5                       `STRING`           device name argument
+  \* 5             `STRING`      device name argument
 
 
-  \* 6                       `STRING`           directory name argument
+  \* 6             `STRING`      directory name argument
 
 
-  \* 7                       `STRING`           real first file name
+  \* 7             `STRING`      real first file name
 
 
-  \* 8                       `STRING`           real second file name
+  \* 8             `STRING`      real second file name
 
 
-  \* 9                       `STRING`           real device name
+  \* 9             `STRING`      real device name
 
 
-  \* 10                      `STRING`           real directory name
+  \* 10            `STRING`      real directory name
 
 
-  \* 11                      `FIX`              various status bits
+  \* 11            `FIX`         various status bits
 
 
-  \* 12                      `FIX`              PDP-10 instruction used to do one I/O operation
+  \* 12            `FIX`         PDP-10 instruction used to do one I/O operation
 
 
-  13                         `FIX`              number of characters per line of output
+  13               `FIX`         number of characters per line of output
 
 
-  14                         `FIX`              current character position on a line
+  14               `FIX`         current character position on a line
 
 
-  15                         `FIX`              number of lines per page
+  15               `FIX`         number of lines per page
 
 
-  16                         `FIX`              current line number on a page
+  16               `FIX`         current line number on a page
 
 
-  17                         `FIX`              access pointer for file-oriented devices
+  17               `FIX`         access pointer for file-oriented devices
 
 
-  18                         `FIX`              radix for `FIX` conversion
+  18               `FIX`         radix for `FIX` conversion
 
 
-  19                         `FIX`              sink for an internal `CHANNEL`
-  ----------------------------------------------------------------------------------------------------
+  19               `FIX`         sink for an internal `CHANNEL`
+  -------------------------------------------------------------------------------------
 
 N.B.: The elements of a `CHANNEL` below number 1 are usually invisible
 but are obtainable via `<NTH <TOP channel> fix>`, for some appropriate
 
 N.B.: The elements of a `CHANNEL` below number 1 are usually invisible
 but are obtainable via `<NTH <TOP channel> fix>`, for some appropriate