Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
MATH-MATIC
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Infobox programming language | name = MATH-MATIC | paradigm = [[imperative programming|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 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 features == 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 I|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 (programming)|overlay]] segments from [[UNISERVO]] tape as required. The compiler attempted to avoid splitting loops across segments.<ref>Sammet (1969) p. 137</ref> == Influence == In proposing the collaboration with the [[Association for Computing Machinery|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 [[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> == MATH-MATIC Sample program == A sample MATH-MATIC program:<ref>Univac (1958) p. 8</ref> <!-- Note to editors: MATH-MATIC had specific and rigid rules for placement of space characters. The <pre> or <syntaxhighlight> tags do not work here due to the need for superscripts. Please use {{pre}}. --> {{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*10<sup>3</sup>*Y*A*SIN ALPHA)<sup>3</sup> / (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)) / (F<sup>2.6</sup>*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]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation
(
edit
)
Template:Cite book
(
edit
)
Template:Cite tech report
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox programming language
(
edit
)
Template:Pre
(
edit
)
Template:Reflist
(
edit
)