MATEMATICĂ

MATH-MATIC  este numele de marketing pentru compilatorul AT-3 (Algebraic Translator 3), un limbaj de programare timpuriu pentru UNIVAC I și UNIVAC II .

MATH-MATIC a fost creat în jurul anului 1955 de o echipă condusă de Charles Katz sub Grace Hopper . În 1957 a fost întocmit un ghid preliminar [1] , iar în anul următor, unul definitiv [2] .

Sintactic, MATH-MATIC a fost similar cu limbajul orientat comercial FLOW-MATIC care a existat în același timp , care diferă în reprezentarea algebrică a expresiilor, suport pentru numere și tablouri în virgulă mobilă și nu structuri de notație ca în MATH-MATIC.

Caracteristici

Cu un dispozitiv special de scriere, expresiile din MATH-MATIC pot conține exponenți numerici, inclusiv numere zecimale și fracții comune . [3]

Programele MATH-MATIC pot include limbajul de asamblare ARITH-MATIC și inserții de cod de mașină UNIVAC . [patru]

Memoria UNIVAC I a stocat 1.000 de cuvinte mașină , la fel ca succesorul său UNIVAC II 2000. Dar MATH-MATIC a permis rularea programelor mai mari prin generarea automată a codului pentru a citi segmentele suprapuse de pe banda UNISERVO , după cum este necesar. Compilatorul a încercat să evite împărțirea buclelor în segmente. [patru]

Influență

Anticipând o colaborare cu ACM care ar duce la Algol-58 , Societatea pentru Matematică Aplicată și Mecanică a scris că consideră MATH-MATIC cel mai apropiat și mai accesibil limbaj pentru scopurile lor. [5]

Spre deosebire de Fortran de la Backus , MATH-MATIC nu a accentuat viteza de execuție a programelor compilate. Mașinile UNIVAC nu aveau hardware în virgulă mobilă , așa că MATH-MATIC a fost tradus în cod pseudo-asamblator A-3 ( ARITH-MATIC ) mai degrabă decât direct în codul mașină UNIVAC , ceea ce i-a limitat utilitatea. [6]

Exemplu de program

(2) TYPE-IN ALPHA . (2A) CITEȘTE ABC SERVO 4 DEPOZITARE A DACĂ SENTINELĂ SARIȚI LA PROPOZIȚIA 8 . (3) CITEȘTE DF SERVO 5 . (4) VARY Y 1 (0,1) 3 PROPOZIȚIA 5 PÂNĂ 6 . (5) X1=(7*10<sup>3</sup>*Y*A*SIN ALPHA)<sup>3</sup> / (B POW D+C POW E) . (6) SCRIEȚI ȘI EDIȚIȚI SERVO-UL AYDE X1 6 . (7) SARIȚI LA PROPOZA 2A . (8) INTRODUCERE ȘI REBOBINAȚI PROPOZIȚIA 3 . (9) PROPOZIȚIE 6 . (10) CITIȚI FGHN SERVO 4 DEPOZITARE A DACĂ SENTINELĂ SARIȚI LA PROPOZIȚIA 20 . (11) EXECUTĂ PROPOZIȚIA 3 . (12) X2 = (3 rădăcină (EG)+LOG (D+N)) / (F<sup>2,6</sup>*EXP H) . (13) SCRIERE EDIT FDF X2 SERVO 6 . (16) SARIȚI LA PROPOZIȚIA 10 . (20) STOP .

Note

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

Link -uri