MATH-MATIC
![]() | Ця стаття є сирим перекладом з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами. (серпень 2020) |
MATH-MATIC | |
---|---|
Парадигма | імперативне програмування ![]() |
Дата появи | 1957 ![]() |
Творці | Remington Rand ![]() |
Розробник | Ґрейс Гоппер ![]() |
Під впливом від | FLOW-MATIC ![]() |
MATH-MATIC це торгова назва для AT-3 (алгебраїчний перекладач 3) компілятор, рання мова програмування для UNIVAC I і UNIVAC II.
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:[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 .
- 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.(англ.)
- Роберт Вільям, Бемер (1969), A Politico-Social History of Algol (With a Chronology in the Form of a Log Book) (PDF), архів оригіналу (PDF) за 6 грудня 2019, процитовано 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. Архів оригіналу (PDF) за 26 січня 2019. Процитовано 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.(англ.)
![]() |
Це незавершена стаття про мови програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |