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

Примітки ред.

  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

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

  • Ash, R.; Broadwin, E.; Della Valle, V.; Greene, M.; Jenny, A.; Katz, C.; Yu, L. (19 квітня 1957). Preliminary Manual for MATH-MATIC and ARITH-MATIC Systems for ALGEBRAIC TRANSLATION and COMPILATION for UNIVAC I and II (PDF) (Технічний звіт). Philadelphia: Remington Rand Univac. Архів оригіналу (PDF) за 26 грудня 2014. Процитовано 19 березня 2016.(англ.)