MATH-MATIC: Difference between revisions
imported>Citation bot Misc citation tidying. | Use this bot. Report bugs. | #UCB_CommandLine |
imported>GhostInTheMachine Changing short description from "Marketing name for the AT-3 (Algebraic Translator 3) compiler, an early programming language for the UNIVAC I and UNIVAC II" to "Programming language for UNIVAC I and II" |
||
| (One intermediate revision by one other user not shown) | |||
| Line 1: | Line 1: | ||
{{Short description|Programming language for UNIVAC I and II}} | |||
{{Infobox programming language | {{Infobox programming language | ||
| name = MATH-MATIC | | name = MATH-MATIC | ||
| Line 9: | Line 10: | ||
}} | }} | ||
'''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''' 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. | 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. | ||
| Line 29: | Line 30: | ||
In contrast to [[John Backus|Backus']] [[Fortran|FORTRAN]], MATH-MATIC did not emphasise execution speed of compiled programs. The UNIVAC machines did not have [[floating point|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> | In contrast to [[John Backus|Backus']] [[Fortran|FORTRAN]], MATH-MATIC did not emphasise execution speed of compiled programs. The UNIVAC machines did not have [[floating point|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> | ||
== | == Sample program == | ||
A sample MATH-MATIC program:<ref>Univac (1958) p. 8</ref> | A sample MATH-MATIC program:<ref>Univac (1958) p. 8</ref> | ||
| Line 144: | Line 145: | ||
[[Category:Programming languages]] | [[Category:Programming languages]] | ||
[[Category:Programming languages created in 1957]] | [[Category:Programming languages created in 1957]] | ||
[[Category:Remington Rand]] | |||
Latest revision as of 21:46, 28 July 2025
Template:Short description Script error: No such module "Infobox".Template:Template otherScript error: No such module "Check for unknown parameters".
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]
Sample program
A sample MATH-MATIC program:[8]
<templatestyles src="Pre/styles.css"/>
(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
<templatestyles src="Reflist/styles.css" />
Script error: No such module "Check for unknown parameters".
References
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".