MATH-MATIC es el nombre comercial del compilador AT-3 (Algebraic Translator 3) , un lenguaje de programación temprano para UNIVAC I y UNIVAC II .
Paradigma | imperativo |
---|---|
Diseñada por | Remington Rand |
Apareció por primera vez | 1957 |
Plataforma | UNIVAC I , UNIVAC II |
Influenciado por | |
FLOW-MATIC | |
Influenciado | |
UNICODE (lenguaje de programación) |
MATH-MATIC fue escrito a partir de 1955 por un equipo dirigido por Charles Katz bajo la dirección de Grace Hopper . Un manual preliminar [1] fue elaborado en 1957 y un manual final [2] el año siguiente.
Sintácticamente, MATH-MATIC era similar al lenguaje contemporáneo orientado a los negocios de Univac, FLOW-MATIC , y se diferenciaba en proporcionar expresiones de estilo algebraico y aritmética de punto flotante, y matrices en lugar de estructuras de registros.
Características notables
Las expresiones en MATH-MATIC podrían contener exponentes numéricos, incluidos decimales y fracciones, mediante una máquina de escribir personalizada. [3]
Los programas MATH-MATIC podrían incluir secciones de ensamblador en línea de código ARITH-MATIC y código de máquina UNIVAC . [4]
El UNIVAC I tenía solo 1000 palabras de memoria, y el sucesor UNIVAC II tan solo 2000. MATH-MATIC permitía programas más grandes, generando automáticamente código para leer segmentos superpuestos de la cinta UNISERVO según fuera necesario. El compilador intentó evitar la división de bucles entre segmentos. [5]
Influencia
Al proponer la colaboración con el ACM que dio lugar a ALGOL 58 , Gesellschaft für Angewandte Mathematik und Mechanik escribió que consideraba que MATH-MATIC era el lenguaje disponible más cercano a su propia propuesta. [6]
En contraste con FORTRAN de Backus , MATH-MATIC no enfatizó la velocidad de ejecución de los programas compilados. Las máquinas UNIVAC no tenían hardware de punto flotante , y MATH-MATIC se tradujo mediante código pseudoensamblador A-3 ( ARITH-MATIC ) en lugar de hacerlo directamente al código de máquina UNIVAC, lo que limita su utilidad. [7]
Programa de muestra MATH-MATIC
Un ejemplo de programa MATH-MATIC: [8]
(2) TIPO ALPHA. (2A) LEA ABC SERVO 4 ALMACENAMIENTO A SI SENTINEL SALTA A LA SENTENCIA 8. (3) LEA DF SERVO 5. (4) VARIAR Y 1 (0.1) 3 SENTENCIA 5 A 6. (5) X1 = (7 * 10 3 * Y * A * SIN ALPHA) 3 / (B POW D + C POW E).(6) ESCRIBIR Y EDITAR AYDE X1 SERVO 6. (7) SALTAR A LA ORACIÓN 2A. (8) SENTENCIA DE CIERRE-ENTRADA Y REBOBINADO 3. (9) SENTENCIA DE CIERRE 6. (10) LEA FGHN SERVO 4 ALMACENAMIENTO A SI SENTINEL SALTA A LA SENTENCIA 20. (11) EJECUTAR ORACIÓN 3. (12) X2 = (3 RAÍZ (EG) + LOG (D + N)) / (F 2.6 * EXP H).(13) ESCRIBIR EDITAR FDF X2 SERVO 6. (16) SALTAR A LA ORACIÓN 10. (20) DETENER.
Notas
Referencias
- Ash, R .; Broadwin, E .; Della Valle, V .; Greene, M .; Jenny, A .; Katz, C .; Yu, L. (19 de abril de 1957). Manual preliminar de sistemas MATH-MATIC y ARITH-MATIC para traducción y compilación algebraica para UNIVAC I y II (PDF) (Informe técnico). Filadelfia: Remington Rand Univac. Archivado desde el original (PDF) el 26 de diciembre de 2014 . Consultado el 19 de marzo de 2016 .
- Bemer, Robert W. (1969), A Politico-Social History of Algol (con una cronología en forma de libro de registro) (PDF) , consultado el 20 de marzo de 2016
- Knuth, Donald ; Trabb Pardo, Luis (agosto de 1976). El desarrollo temprano de lenguajes de programación (informe técnico). Departamento de Ciencias de la Computación, Facultad de Humanidades y Ciencias, Universidad de Stanford . Consultado el 19 de marzo de 2016 .
- Sammet, Jean (1969). Lenguajes de programación: historia y fundamentos . Prentice Hall. págs. 132, 135-137. ISBN 978-0-13-729988-1.
- Sistema de programación Univac MATH-MATIC (PDF) (Informe técnico). Remington Rand Univac. 1958 . Consultado el 19 de marzo de 2016 .
- "MATH-MATIC - Autocode orientado matemáticamente (lenguaje de computadora)" . Enciclopedia histórica en línea de lenguajes de programación . Archivado desde el original el 2 de abril de 2016 . Consultado el 20 de marzo de 2016 .
- "UNICODE - UNIVAC híbrido de FORTRAN y MATH-MATIC" . Enciclopedia histórica en línea de lenguajes de programación . Archivado desde el original el 3 de abril de 2016 . Consultado el 20 de marzo de 2016 .