MATH-MATIC

MATH-MATIC це торгова назва для AT-3 (алгебраїчний перекладач 3) компілятор, рання мова програмування для UNIVAC I і UNIVAC II.

MATH-MATIC
Парадигма Імперативне програмування
Дата появи 1957
Творці Remington Rand
Розробник Ґрейс Гоппер
Під впливом від FLOW-MATIC

MATH-MATIC написано починаючи з 1955 року командою під керівництвом Чарльза Каца і Ґрейс Гоппер. Попередній посібник[1] був випущений в 1957 році і підсумковий посібник[2] наступного року. Синтаксично, MATH-MATIC була схожою на сучасну бізнес-орієнтовану мову Univac, FLOW-MATIC, що відрізняє забезпеченістю висловлювань алгебраїчного стилю та арифметичними операціями з плаваючою комою і масивами а не записними структурами.

Відомі функції

Вирази в MATH-MATIC можуть містити числові показники, у тому числі десяткові та дрібні, введені за допомогою спеціальної друкарської машинки.[3]

MATH-MATIC програми можуть включати в себе асемблерні вставки розділи кодів ARITH-MATIC і машинні коди UNIVAC.[4]

UNIVAC I мав лише 1000 символів пам'яті, а наступником у 2000 році був UNIVAC II. MATH-MATIC дозволив більші програми, автоматично генеруючи код для читання overlay сегментів з UNISERVO стрічки, як потрібно. Компілятор намагався уникнути розщеплення циклів по сегментах.[4]

Вплив

У пропозиції співпраці з ACM, який привів до ALGOL 58, Товариство прикладної математики і механіки написало, що вважало MATH-MATIC найближчою доступною мовою для неї.[5]

На відміну від Джона Бекуса FORTRAN, MATH-MATIC не підкреслив швидкість виконання складених програм. Машини UNIVAC не мали апаратне забезпечення для введення чисел з рухомою комою, і MATH-MATIC був переведений на A-3 (ARITH-MATIC) псевдоасемблерний код, не безпосередньо на машинний код UNIVAC, обмежуючи його корисність.[6]

MATH-MATIC: приклад програми

Зразок програми MATH-MATIC:[7]

(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 .

Примітки

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

Список літератури

  • Жан Е., Саммет (1969). Programming Languages: History and Fundamentals. Prentice-Hall. с. 132,135–137. ISBN 978-0-13-729988-1.(англ.)
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.