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>
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
<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
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>