Template:Infobox programming language

MATH-MATIC is the marketing name for the AT-3 (Algebraic Translator 3) compiler, an early programming language for the UNIVAC I and UNIVAC II.

MATH-MATIC was written beginning around 1955 by a team led by Charles Katz under the direction of Grace Hopper. A preliminary manual<ref>Ash (1957)</ref> was produced in 1957 and a final manual<ref>Univac (1958)</ref> the following year.

Syntactically, MATH-MATIC was similar to Univac's contemporaneous business-oriented language, FLOW-MATIC, differing in providing algebraic-style expressions and floating-point arithmetic, and arrays rather than record structures.

Notable featuresEdit

Expressions in MATH-MATIC could contain numeric exponents, including decimals and fractions, by way of a custom typewriter.<ref>Sammet (1969) p. 135</ref>

MATH-MATIC programs could include inline assembler sections of ARITH-MATIC code and UNIVAC machine code.<ref>Sammet (1969) p. 137</ref>

The UNIVAC I had only 1000 words of memory, and the successor UNIVAC II as little as 2000. MATH-MATIC allowed for larger programs, automatically generating code to read overlay segments from UNISERVO tape as required. The compiler attempted to avoid splitting loops across segments.<ref>Sammet (1969) p. 137</ref>

InfluenceEdit

In proposing the collaboration with the ACM that led to ALGOL 58, the Gesellschaft für Angewandte Mathematik und Mechanik wrote that it considered MATH-MATIC the closest available language to its own proposal.<ref>Bemer (1969) p. 161</ref>

In contrast to Backus' FORTRAN, MATH-MATIC did not emphasise execution speed of compiled programs. The UNIVAC machines did not have floating-point hardware, and MATH-MATIC was translated via A-3 (ARITH-MATIC) pseudo-assembler code rather than directly to UNIVAC machine code, limiting its usefulness. <ref>Knuth (1976) p. 90</ref>

MATH-MATIC Sample programEdit

A sample MATH-MATIC program:<ref>Univac (1958) p. 8</ref>

Template:Pre

NotesEdit

Template:Reflist

ReferencesEdit

  • {{#invoke:citation/CS1|citation

|CitationClass=web }}

  • {{#invoke:citation/CS1|citation

|CitationClass=web }}