MATH-MATIC es el nombre comercial del compilador AT-3 ( Algebraic Translator 3 ) , un lenguaje de programación antiguo para las computadoras UNIVAC I y UNIVAC II .
MATH-MATIC comenzó a escribirse alrededor de 1955 por un equipo liderado por Charles Katz bajo la dirección de Grace Hopper . Un manual preliminar [ 1 ] se produjo en 1957 y un manual final [ 2 ] al año siguiente.
Sintácticamente, MATH-MATIC era similar al lenguaje FLOW-MATIC de Univac, orientado a los negocios y de la misma época , diferenciándose en que proporcionaba expresiones de estilo algebraico y aritmética de punto flotante, y matrices en lugar de estructuras de registro.
Características destacadas
Las expresiones en MATH-MATIC podían contener exponentes numéricos, incluyendo 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 máquina UNIVAC . [ 4 ]
El UNIVAC I tenía solo 1000 palabras de memoria, y su sucesor, el UNIVAC II, apenas 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 intentaba evitar la división de bucles entre segmentos. [ 5 ]
Influencia
Al proponer la colaboración con la ACM que dio lugar a ALGOL 58 , la Gesellschaft für Angewandte Mathematik und Mechanik escribió que consideraba a MATH-MATIC el lenguaje disponible más cercano a su propia propuesta. [ 6 ]
A diferencia de FORTRAN de Backus , MATH-MATIC no hacía hincapié en la velocidad de ejecución de los programas compilados. Las máquinas UNIVAC no tenían hardware de punto flotante , y MATH-MATIC se traducía mediante código pseudoensamblador A-3 ( ARITH-MATIC ) en lugar de directamente a código máquina UNIVAC, lo que limitaba su utilidad. [ 7 ]
Programa de ejemplo
Un ejemplo de programa MATH-MATIC: [ 8 ]
(2) ESCRIBA ALPHA . (2A) LEER ABC SERVO 4 ALMACENAMIENTO A SI CENTINELA SALTAR A LA ORACIÓN 8. (3) LEER SERVO DF 5 . (4) VARIAR Y 1 (0.1) 3 ORACIONES 5 A 6 . (5) X1 = (7*10 3 *Y*A*SIN ALFA) 3 / (B POW D+C POW E) . (6) ESCRIBIR Y EDITAR AYDE X1 SERVO 6 . (7) PASAR A LA ORACIÓN 2A. (8) CERRAR LA ENTRADA Y REBOBINAR LA ORACIÓN 3. (9) ORACIÓN DE SALIDA CERRADA 6 . (10) LEA EL SERVO FGHN 4 ALMACENAMIENTO A SI EL CENTINELA SALTA A LA ORACIÓN 20. (11) EJECUTAR LA 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) ALTO.
Notas
Referencias
- Ash, R.; Broadwin, E.; Della Valle, V.; Greene, M.; Jenny, A.; Katz, C. ; Yu, L. (1957-04-19). Manual preliminar para los sistemas MATH-MATIC y ARITH-MATIC para la traducción y compilación algebraica para UNIVAC I y II (PDF) (Informe técnico). Filadelfia: Remington Rand Univac. Archivado del original (PDF) el 26 de diciembre de 2014. Recuperado el 19 de marzo de 2016 .
- Bemer, Robert W. (1969), Una historia político-social de 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 los lenguajes de programación (Informe técnico). Departamento de Ciencias de la Computación, Facultad de Humanidades y Ciencias, Universidad de Stanford . Recuperado 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 — Autocódigo orientado matemáticamente (lenguaje informático)" . Enciclopedia histórica en línea de lenguajes de programación . Archivado del 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 del original el 3 de abril de 2016. Consultado el 20 de marzo de 2016 .
- Lenguajes de programación numérica
- Lenguajes de programación
- Lenguajes de programación creados en 1957
- Remington Rand