MATH-MATIC explained

MATH-MATIC
Paradigm:imperative
Designer:Remington Rand
Influenced By:FLOW-MATIC
Influenced:UNICODE (programming language)
Platform:UNIVAC I, UNIVAC II

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[1] was produced in 1957 and a final manual[2] 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 features

Expressions in MATH-MATIC could contain numeric exponents, including decimals and fractions, by way of a custom typewriter.[3]

MATH-MATIC programs could include inline assembler sections of ARITH-MATIC code and UNIVAC machine code.[4]

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.[5]

Influence

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.[6]

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. [7]

MATH-MATIC Sample program

A sample MATH-MATIC program:[8]

References

. Jean E. Sammet. 1969. Programming Languages: History and Fundamentals. Prentice-Hall. 978-0-13-729988-1. 132,135–137.

Notes and References

  1. Ash (1957)
  2. Univac (1958)
  3. Sammet (1969) p. 135
  4. Sammet (1969) p. 137
  5. Sammet (1969) p. 137
  6. Bemer (1969) p. 161
  7. Knuth (1976) p. 90
  8. Univac (1958) p. 8