MATH-MATIC: Ранний компилятор для UNIVAC I и UNIVAC II
MATH-MATIC
MATH-MATIC: ранняя языковая система для UNIVAC I/II, разработанная Грейс Хоппер. Компилятор, алгебраические выражения, числа с плавающей точкой и массивы.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
MATH MATIC — это маркетинговое название компилятора AT 3 (Algebraic Translator 3), одного из первых языков программирования для ЭВМ UNIVAC I и UNIVAC II. MATH MATIC разрабатывался, начиная примерно с 1955 года, командой под руководством Чарльза Каца и под общим руководством Грейс Хоппер. Предварительное руководство было подготовлено в 1957 году, а окончательное — в следующем году. Синтаксически MATH MATIC был схож с бизнес-ориентированным языком FLOW MATIC, разработанным компанией Univac в то же время, но отличался поддержкой алгебраических выражений, арифметики с плавающей точкой и массивов вместо структур записей.
MATH MATIC is the marketing name for the AT 3 (Algebraic Translator 3) compiler, an early programming language for the UNIVAC I and UNIVAC II. MATH MATIC was written beginning around 1955 by a team led by Charles Katz under the direction of Grace Hopper. A preliminary manual was produced in 1957 and a final manual the following year. Syntactically, MATH MATIC was similar to Univac's contemporaneous business oriented language, FLOW MATIC, differing in providing algebraic style expressions and floating point arithmetic, and arrays rather than record structures.
Примечательные особенности
Выражения в MATH MATIC могли содержать числовые степени, включая десятичные и дробные числа, посредством специальной печатающей машинки. Программы MATH MATIC могли включать встроенные секции ассемблера кода ARITH MATIC и машинного кода UNIVAC. UNIVAC I имел всего 1000 слов памяти, а его преемник UNIVAC II – лишь 2000. MATH MATIC позволял создавать более крупные программы, автоматически генерируя код для чтения перекрывающихся сегментов с магнитной ленты UNISERVO по мере необходимости. Компилятор старался избегать разбиения циклов между сегментами.
Expressions in MATH MATIC could contain numeric exponents, including decimals and fractions, by way of a custom typewriter. MATH MATIC programs could include inline assembler sections of ARITH MATIC code and UNIVAC machine code. The UNIVAC I had only 1000 words of memory, and the successor UNIVAC II as little as 2000. MATH MATIC allowed for larger programs, automatically generating code to read overlay segments from UNISERVO tape as required. The compiler attempted to avoid splitting loops across segments.
Влияние
Предлагая сотрудничество с ACM, которое привело к созданию ALGOL 58, Gesellschaft für Angewandte Mathematik und Mechanik сообщила, что считает MATH MATIC наиболее близким доступным языком к своему предложению. В отличие от FORTRAN, разработанного Бакусом, MATH MATIC не делал акцент на скорости выполнения скомпилированных программ. Машины UNIVAC не были оснащены аппаратной поддержкой чисел с плавающей точкой, и MATH MATIC транслировался через псевдоассемблер A 3 (ARITH MATIC), а не напрямую в машинный код UNIVAC, что ограничивало сферу его применения.
In proposing the collaboration with the ACM that led to ALGOL 58, the Gesellschaft für Angewandte Mathematik und Mechanik wrote that it considered MATH MATIC the closest available language to its own proposal. In contrast to Backus' FORTRAN, MATH MATIC did not emphasise execution speed of compiled programs. The UNIVAC machines did not have floating point hardware, and MATH MATIC was translated via A 3 (ARITH MATIC) pseudo assembler code rather than directly to UNIVAC machine code, limiting its usefulness.