MATH-MATIC - Википедия - MATH-MATIC

МАТЕМАТИЧЕСКИЙ
Парадигмаимператив
РазработаноРемингтон Рэнд
Впервые появился1957 (1957)
ПлатформаUNIVAC I, UNIVAC II
Под влиянием
ПОТОК-MATIC
Под влиянием
UNICODE (язык программирования)

МАТЕМАТИЧЕСКИЙ маркетинговое название AT-3 (Algebraic Translator 3) компилятор, рано язык программирования для UNIVAC I и UNIVAC II.

MATH-MATIC был написан примерно в 1955 году командой во главе с Чарльз Кац под руководством Грейс Хоппер. Предварительное руководство[1] был произведен в 1957 году и окончательное руководство[2] в следующем году.

Синтаксически MATH-MATIC был похож на современный бизнес-ориентированный язык Univac, ПОТОК-MATIC, отличающиеся тем, что предоставляют выражения в алгебраическом стиле и арифметику с плавающей запятой, а также массивы, а не структуры записей.

Примечательные особенности

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

Программы MATH-MATIC могут включать встроенный ассемблер разделы АРИФ-МАТИЧЕСКИЙ код и UNIVAC Машинный код.[4]

В UNIVAC I имел всего 1000 слов памяти, а его преемник UNIVAC II всего 2000. MATH-MATIC позволял большие программы, автоматически генерируя код для чтения наложение сегменты из UNISERVO лента по мере необходимости. Компилятор пытался избежать разделения циклов по сегментам.[5]

Влияние

Предлагая сотрудничество с ACM это привело к АЛГОЛ 58, то Gesellschaft für Angewandte Mathematik und Mechanik написал, что считает MATH-MATIC наиболее близким доступным языком к своему собственному предложению.[6]

В отличие от Бэкуса FORTRAN, MATH-MATIC не делает упор на скорость выполнения скомпилированных программ. Машины UNIVAC не имели плавающая точка аппаратное обеспечение, а MATH-MATIC был переведен через A-3 (АРИФ-МАТИЧЕСКИЙ ) псевдоассемблерного кода, а не непосредственно в машинный код UNIVAC, что ограничивает его полезность. [7]

MATH-MATIC Пример программы

Пример программы MATH-MATIC:[8]

(2) НАБОР АЛЬФА. (2A) ПРОЧИТАЙТЕ A B C SERVO 4 ХРАНИЛИЩЕ A ЕСЛИ SENTINEL переходит на сообщение 8. (3) ПРОЧИТАЙТЕ D F SERVO 5. (4) ВАРИАНТЫ Y 1 (0.1) 3 ПРЕДЛОЖЕНИЕ 5 - 6. (5) Х1 = (7 * 103* Y * A * SIN ALPHA)3 / (B POW D + C POW E). (6) ЗАПИСАТЬ И РЕДАКТИРОВАТЬ А Y D E X1 SERVO 6. (7) ПЕРЕЙТИ К ПРЕДЛОЖЕНИЮ 2А. (8) ЗАКРЫТЬ ВВОД И ПЕРЕмотка 3. (9) ЗАКРЫТИЕ ВЫВОДА 6. (10) ПРОЧИТАЙТЕ F G H N SERVO 4 STORAGE, ЕСЛИ SENTINEL ПЕРЕХОДИТ НА ПРЕДЛОЖЕНИЕ 20. (11) ВЫПОЛНИТЬ ПРЕДЛОЖЕНИЕ 3. (12) X2 = (3 ROOT (E-G) + LOG (D + N)) / (F2.6* EXP H). (13) ЗАПИСЬ РЕДАКТИРОВАТЬ F D F X2 SERVO 6. (16) ПЕРЕЙТИ К ПРЕДЛОЖЕНИЮ 10. (20) СТОП.

Примечания

  1. ^ Ясень (1957)
  2. ^ Унивак (1958)
  3. ^ Саммет (1969) стр. 135
  4. ^ Саммет (1969) стр. 137
  5. ^ Саммет (1969) стр. 137
  6. ^ Бемер (1969) стр. 161
  7. ^ Knuth (1976) стр. 90
  8. ^ Univac (1958) стр. 8

Рекомендации

  • Ash, R .; Broadwin, E .; Della Valle, V .; Greene, M .; Jenny, A .; Кац, К.; Ю. Л. (1957-04-19). Предварительное руководство по системам MATH-MATIC и ARITH-MATIC для алгебраического перевода и компиляции для UNIVAC I и II (PDF) (Технический отчет). Филадельфия: Remington Rand Univac. Архивировано из оригинал (PDF) на 2014-12-26. Получено 2016-03-19.