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 .
Примітки
- Ash (1957)
- Univac (1958)
- Sammet (1969) p. 135
- Sammet (1969) p. 137
- Bemer (1969) p. 161
- Knuth (1976) p. 90
- 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. Архів оригіналу за 26 грудня 2014. Процитовано 19 березня 2016.(англ.)
- Роберт Вільям, Бемер (1969). A Politico-Social History of Algol (With a Chronology in the Form of a Log Book). Процитовано 20 березня 2016.(англ.)
- Knuth, Donald; Trabb Pardo, Luis (August 1976). The Early Development of Programming Languages. Computer Science Department, School of Humanities and Sciences, Stanford University. Процитовано 19 березня 2016.(англ.)
- Жан Е., Саммет (1969). Programming Languages: History and Fundamentals. Prentice-Hall. с. 132,135–137. ISBN 978-0-13-729988-1.(англ.)
- Univac MATH-MATIC Programming System (PDF). Remington Rand Univac. 1958. Процитовано 19 березня 2016.(англ.)
- MATH-MATIC — Mathematically oriented autocode (Computer Language). Online Historical Encyclopaedia of Programming Languages. Архів оригіналу за 2 квітня 2016. Процитовано 20 березня 2016.(англ.)
- UNICODE — UNIVAC hybrid of FORTRAN and MATH-MATIC. Online Historical Encyclopaedia of Programming Languages. Архів оригіналу за 3 квітня 2016. Процитовано 20 березня 2016.(англ.)