]> thyrsus.com Git - mad.git/commitdiff
Added Alfred E Neaumann image.
authorEric S. Raymond <esr@thyrsus,com>
Wed, 18 Feb 2004 07:08:33 +0000 (07:08 +0000)
committerEric S. Raymond <esr@thyrsus,com>
Wed, 18 Feb 2004 07:08:33 +0000 (07:08 +0000)
doc/mad-manual.xml

index 51c1bf6f339568ffa43dcc7893e44934a8fbf7bf..da97fde14b0d6e7d61d5cc2194094058e4729e6f 100644 (file)
@@ -122,6 +122,77 @@ extinct in the 1970s, snuffed out like dinosaurs by the meteoritic
 impact of time-shared computing and teletypewriter-like interactive
 terminals.</para>
 
+<para>MAD was named after Mad Magazine, which in those more innocent
+days of the late 1950s and early 1960s was one of the cutting edges of
+American humor.  Batch compilers of the period sent their error
+listings to a line printer to be printed on fanfold paper.  It was
+normal for such listings to begin with a cover page giving, among
+other things, the time and date of compilation.  We are informed that
+the original MAD compiler also included on the cover page an image
+of the MAD Magazine mascot, Alfred E. Neumann.  It must have looked
+rather like this:</para>
+
+<literallayout format='linespecific' class='monospaced'>
+                                      .M
+                                 .:AMMO:
+                        .:AMMMMMHIIIHMMM.
+             ....   .AMMMMMMMMMMMHHHMHHMMMML:AMF"
+             .:MMMMMLAMMMMMMMHMMMMMMHHIHHIIIHMMMML.
+                 "WMMMMMMMMMMMMMMMMMMH:::::HMMMMMMHII:.
+            .AMMMMMMMHHHMMMMMMMMMMHHHHHMMMMMMMMMAMMMHHHHL.
+          .MMMMMMMMMMHHMMMMMMMMHHHHMMMMMMMMMMMMMHTWMHHHHHML
+         .MMMMMMMMMMMMMMMMMMMHHHHHHHHHMHMMHHHHIII:::HMHHHHMM.
+         .MMMMMMMMMMMMMMMMMMMMMMHHHHHHMHHHHHHIIIIIIIIHMHHHHHM.
+         MMMMMMMMMMMMMMMMMHHMMHHHHHIIIHHH::IIHHII:::::IHHHHHHHL
+         "MMMMMMMMMMMMMMMMHIIIHMMMMHHIIHHLI::IIHHHHIIIHHHHHHHHML
+         .MMMMMMMMMMMMMM"WMMMHHHMMMMMMMMMMMLHHHMMMMMMHHHHHHHHHHH
+        .MMMMMMMMMMMWWMW""YYHMMMMMMMMMMMMF""HMMMMMMMMMHHHHHHHH.
+        .MMMMMMMMMM W" V                         W"WMMMMMHHHHHHHHHH
+       "MMMMMMMMMM".                                 "WHHHMH"HHHHHHL
+       MMMMMMMMMMF  .                                         IHHHHH.
+       MMMMMMMMMM .                                  .        HHHHHHH
+       MMMMMMMMMF. .                               .  .       HHHHHHH.
+       MMMMMMMMM .     ,AWMMMMML.              ..    .  .     HHHHHHH.
+     :MMMMMMMMM".  .  F"'    'WM:.         ,::HMMA, .  .      HHHHMMM
+     :MMMMMMMMF.  . ."         WH..      AMM"'     "  .  .    HHHMMMM
+      MMMMMMMM . .     ,;AAAHHWL"..     .:'                   HHHHHHH
+      MMMMMMM:. . .   -MK"OTO L :I..    ...:HMA-.             "HHHHHH
+ ,:IIIILTMMMMI::.      L,,,,.  ::I..    .. K"OTO"ML           'HHHHHH
+ LHT::LIIIIMMI::. .      '""'.IHH:..    .. :.,,,,           '  HMMMH: HLI'
+ ILTT::"IIITMII::.  .         .IIII.     . '""""             ' MMMFT:::.
+ HML:::WMIINMHI:::.. .          .:I.     .   . .  .        '  .M"'.....I.
+ "HWHINWI:.'.HHII::..          .HHI     .II.    .  .      . . :M.',, ..I:
+  "MLI"ML': :HHII::...        MMHHL     :::::  . :..      .'.'.'HHTML.II:
+   "MMLIHHWL:IHHII::....:I:" :MHHWHI:...:W,,"  '':::.      ..'  ":.HH:II:
+     "MMMHITIIHHH:::::IWF"    """T99"'  '""    '.':II:..'.'..'  I'.HHIHI'
+       YMMHII:IHHHH:::IT..     . .   ...  . .    ''THHI::.'.' .;H.""."H"
+         HHII:MHHI"::IWWL     . .     .    .  .     HH"HHHIIHHH":HWWM"
+          """ MMHI::HY""ML,          ...     . ..  :"  :HIIIIIILTMH"
+               MMHI:.'    'HL,,,,,,,,..,,,......,:" . ''::HH "HWW
+               'MMH:..   . 'MMML,: """MM""""MMM"      .'.IH'"MH"
+                "MMHL..   .. "MMMMMML,MM,HMMMF    .   .IHM"
+                  "MMHHL    .. "MMMMMMMMMMMM"  . .  '.IHF'
+                    'MMMML    .. "MMMMMMMM"  .     .'HMF
+                     HHHMML.                    .'MMF"
+                    IHHHHHMML.               .'HMF"
+                    HHHHHHITMML.           .'IF..
+                    "HHHHHHIITML,.       ..:F...
+                     'HHHHHHHHHMMWWWWWW::"......
+                       HHHHHHHMMMMMMF"'........
+                        HHHHHHHHHH............
+                          HHHHHHHH...........
+                           HHHHIII..........
+                            HHIII..........
+                             HII.........
+                              "H........
+                                ......
+</literallayout>
+
+<para>We cannot certify that this is the original image; we found it
+with a web search on a cartoon site, with no mention of the MAD
+language nearby.  But the character set it uses is limited enough that
+it could be the real thing.</para>
+
 </sect1>
 
 <sect1><title>How This Implementation Differs From The Original MAD</title>
@@ -1312,7 +1383,7 @@ integer division, and, if K happens to have a larger value than
 T<subscript>1</subscript> the quotient is 0.  Similarly,
 T<subscript>3</subscript> will have the value 2 because of the
 division of two integers.  In the computation of
-T<subscript>4,</subscript> however, we have "mixed modes", since Y is
+T<subscript>4</subscript>, however, we have "mixed modes", since Y is
 floating point and T<subscript>3</subscript> is integer.  There
 I<subscript>3</subscript> will be automatically converted to floating
 point before adding.  Likewise, in the next step, <!-- beginpage
@@ -2685,7 +2756,7 @@ assigned a mode consistent with the assigned values (see section 3.7).
 <para>Variables may be declared to be array variables, such as vectors or
 matrices of various dimensions, rather than individual variables.</para>
 
-<para>Each array is stored in a region whose elements may be referred to by
+ <para>Each array is stored in a region whose elements may be referred to by
 means of a single subscript, such as A(0), A(1), B(16), etc.  Even
 elements of higher dimensional arrays may be referred to in this way
 at any time.  We shall call the subscript thus associated with each
@@ -2738,11 +2809,14 @@ i.e. D(k), D(k + 1), ...D(k + n), must be preset (or set during
 computation) to the values</para>
 
 <literallayout>
-       D(k) = n
-       D(k + 1) = the linear subscript which corresponds to A(1,1, ...1) - commonly set to 1
-       D(k + 2) = current upper bound of I<subscript>2</subscript> (i.e., the current highest value of I<subscript>2</subscript> during the computation)
-       D(k + 3) = current upper bound of I<subscript>3</subscript>
-       D(k + 4) = current upper bound of I<subscript>4</subscript>
+        D(k) = n
+        D(k + 1) = the linear subscript which corresponds to A(1,1, ...1) - commonly set to 1
+        D(k + 2) = current upper bound of I<subscript>2</subscript> (i.e., the current highest value of I<subscript>2</subscript> during the computation)
+        D(k + 3) = current upper bound of I<subscript>3</subscript>
+        D(k + 4) = current upper bound of I<subscript>4</subscript>
+        .
+        .
+        .
 </literallayout>
 
 <para>The lower bound of each subscript is assumed to be unity.</para>