MATH-MATIC

{{Infobox programming language

| name = MATH-MATIC

| paradigm = imperative

| year = {{start-date|1957}}

| 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 manualAsh (1957) was produced in 1957 and a final manualUnivac (1958) 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.Sammet (1969) p. 135

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

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.Sammet (1969) p. 137

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.Bemer (1969) p. 161

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. Knuth (1976) p. 90

MATH-MATIC Sample program

A sample MATH-MATIC program:Univac (1958) p. 8

{{pre|1=

(2) TYPE-IN ALPHA .

(2A) READ A B C SERVO 4 STORAGE A IF SENTINEL JUMP TO SENTENCE 8 .

(3) READ D F SERVO 5 .

(4) VARY Y 1 (0.1) 3 SENTENCE 5 THRU 6 .

(5) X1 = (7*103*Y*A*SIN ALPHA)3 / (B POW D+C POW E) .

(6) WRITE AND EDIT A Y D E X1 SERVO 6 .

(7) JUMP TO SENTENCE 2A .

(8) CLOSE-INPUT AND REWIND SENTENCE 3 .

(9) CLOSE-OUTPUT SENTENCE 6 .

(10) READ F G H N SERVO 4 STORAGE A IF SENTINEL JUMP TO SENTENCE 20 .

(11) EXECUTE SENTENCE 3 .

(12) X2 = (3 ROOT (E-G)+LOG (D+N)) / (F2.6*EXP H) .

(13) WRITE EDIT F D F X2 SERVO 6 .

(16) JUMP TO SENTENCE 10 .

(20) STOP .

}}

Notes

{{reflist|2}}

References

  • {{cite tech report

|first1=R.

|last1=Ash

|first2=E.

|last2=Broadwin

|first3=V.

|last3=Della Valle

|first4=M.

|last4=Greene

|first5=A.

|last5=Jenny

|first6=C.

|last6=Katz

|authorlink6=Charles Katz

|first7=L.

|last7=Yu

|title=Preliminary Manual for MATH-MATIC and ARITH-MATIC Systems for Algebraic Translation and Compilation for UNIVAC I and II

|date=1957-04-19

|publisher=Remington Rand Univac

|publication-place=Philadelphia

|url=http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/PDF_index/k-7-pdf/k-7-u2310-UNIVAC-MATH-MATIC-ARITH-MATIC.pdf

|format=PDF

|access-date=2016-03-19

|archiveurl=https://web.archive.org/web/20141226040230/http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/PDF_index/k-7-pdf/k-7-u2310-UNIVAC-MATH-MATIC-ARITH-MATIC.pdf

|archivedate=2014-12-26

|url-status=dead

}}

  • {{citation

|first=Robert W.|last=Bemer|authorlink=Bob Bemer

|title=A Politico-Social History of Algol (With a Chronology in the Form of a Log Book)

|date=1969

|url=http://www.softwarepreservation.org/projects/ALGOL/paper/Bemer-Politico_Social_History_of_Algol.pdf

|access-date=2016-03-20

}}

  • {{cite tech report

|first1=Donald|last1=Knuth|authorlink1=Donald Knuth

|first2=Luis|last2=Trabb Pardo

|title=The Early Development of Programming Languages

|date=August 1976

|publisher=Computer Science Department, School of Humanities and Sciences, Stanford University

|url=https://archive.org/details/DTIC_ADA032123

|access-date=2016-03-19

}}

  • {{cite book

|last=Sammet|first=Jean|authorlink=Jean E. Sammet

|date=1969

|title=Programming Languages: History and Fundamentals

|publisher=Prentice-Hall

|isbn=978-0-13-729988-1

|pages=132,135–137

}}

  • {{cite tech report

|title=Univac MATH-MATIC Programming System

|date=1958

|publisher=Remington Rand Univac

|url=http://bitsavers.org/pdf/univac/univac2/U-1568_MATH-MATIC_PgmgSys_1958.pdf

|format=PDF

|access-date=2016-03-19

}}

  • {{cite web

|url=http://hopl.info/showlanguage.prx?exp=435

|title=MATH-MATIC — Mathematically oriented autocode (Computer Language)

|website=Online Historical Encyclopaedia of Programming Languages

|access-date=2016-03-20

|archive-url=https://web.archive.org/web/20160402235828/http://hopl.info/showlanguage.prx?exp=435

|archive-date=2016-04-02

|url-status=dead

}}

  • {{cite web

|url=http://hopl.info/showlanguage.prx?exp=29

|title=UNICODE — UNIVAC hybrid of FORTRAN and MATH-MATIC

|website=Online Historical Encyclopaedia of Programming Languages

|access-date=2016-03-20

|archive-url=https://web.archive.org/web/20160403013141/http://hopl.info/showlanguage.prx?exp=29

|archive-date=2016-04-03

|url-status=dead

}}

Category:Numerical programming languages

Category:Programming languages

Category:Programming languages created in 1957