MATIK-MATIK

MATH-MATIC  er markedsføringsnavnet for AT-3 (Algebraic Translator 3) compileren , et tidligt programmeringssprog for UNIVAC I og UNIVAC II .

MATH-MATIC blev skabt omkring 1955 af et team ledet af Charles Katz under Grace Hopper . I 1957 blev der udarbejdet en foreløbig vejledning [1] og året efter en endelig [2] .

Syntaktisk lignede MATH-MATIC det kommercielle orienterede sprog FLOW-MATIC , der eksisterede på samme tid , som adskilte sig i den algebraiske repræsentation af udtryk, understøttelse af flydende kommatal og arrays , og ikke notationsstrukturer som i MATH-MATIC.

Funktioner

Med en speciel skriveanordning kan udtryk i MATH-MATIC indeholde numeriske eksponenter, herunder decimaltal og almindelige brøker . [3]

MATH-MATIC-programmer kan omfatte ARITH-MATIC assemblersprog og UNIVAC maskinkodeindsatser . [fire]

UNIVAC I 's hukommelse lagrede 1.000 maskinord , når som efterfølgeren til UNIVAC II 2000. Men MATH-MATIC tillod større programmer at køre ved automatisk at generere kode til at læse overlejringssegmenter fra UNISERVO -båndet efter behov. Compileren forsøgte at undgå at opdele loops i segmenter. [fire]

Indflydelse

Foregribende et samarbejde med ACM , der ville føre til Algol-58 , skrev Society for Applied Mathematics and Mechanics, at de betragtede MATH-MATIC som det nærmeste og mest tilgængelige sprog til deres formål. [5]

I modsætning til Backus 's Fortran understregede MATH-MATIC ikke udførelseshastigheden af ​​kompilerede programmer. UNIVAC - maskiner havde ikke floating-point hardware , så MATH-MATIC blev oversat til A-3 pseudo-assembler-kode ( ARITH-MATIC ) i stedet for direkte til UNIVAC maskinkode , hvilket begrænsede dens anvendelighed. [6]

Programeksempel

(2) INDSKRIV ALFA . (2A) LÆS ABC SERVO 4 OPBEVARING A HVIS SENTINEL HOP TIL SÆTNING 8 . (3) LÆS DF SERVO 5 . (4) VARIER Y 1 (0,1) 3 SÆTNING 5 TIL 6 . (5) X1=(7*10<sup>3</sup>*Y*A*SIN ALPHA)<sup>3</sup> / (B POW D+C POW E) . (6) SKRIV OG REDIGER AYDE X1 SERVO 6 . (7) HOP TIL SÆTNING 2A . (8) LUK-INDGANG OG TILBAGESPOL SÆTNING 3 . (9) LUK-OUTPUT SÆTNING 6 . (10) LÆS FGHN SERVO 4 OPBEVARING A IF SENTINEL HOP TIL SÆTNING 20 . (11) UDFØR SÆTNING 3 . (12) X2 = (3 ROD (EG)+LOG (D+N)) / (F<sup>2,6</sup>*EXP H) . (13) SKRIV REDIGER FDF X2 SERVO 6 . (16) HOP TIL SÆTNING 10 . (20) STOP .

Noter

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

Links