ALTRANO

Variante del lenguaje de programación FORTRAN
ALTRANO
Diseñado porW. Stanley Brown [1]
ReveladorLaboratorios Bell Telephone
Apareció por primera vez1965
Influenciado por
FORTRAN , PL/I [1]

ALTRAN (ALgebraic TRANslator) es un lenguaje de programación para la manipulación formal de funciones racionales de varias variables con coeficientes enteros. Fue desarrollado en Bell Labs en la década de 1960. [1] ALTRAN es una versión FORTRAN del paquete de álgebra racional ALPAK , [2] y “puede considerarse como una variante de FORTRAN con la adición de una declaración adicional, la declaración de tipo 'algebraica'”. [3]

Aunque ALTRAN está escrito en ANSI FORTRAN, existen diferencias en las implementaciones de FORTRAN. ALTRAN maneja las dependencias de la máquina mediante el uso de un procesador de macros llamado M6. [1] [4]

ALTRAN no debe confundirse con el traductor de ALGOL a FORTRAN, llamado Altran, que "convierte programas de Algol extendido a Fortran IV". [5]

Historia

ALPAK, escrito en 1964, originalmente consistía en un conjunto de subrutinas para FORTRAN escritas en lenguaje ensamblador . Estas subrutinas fueron a su vez reescritas en FORTRAN para ALTRAN. [6]

Una versión temprana de ALTRAN fue desarrollada por M. Douglas McIlroy y W. Stanley Brown a mediados de la década de 1960. [1] Sin embargo, poco después de la finalización de su traductor ALTRAN, las computadoras IBM 7094 , en las que dependían ALPAK y ALTRAN, comenzaron a ser reemplazadas por máquinas más nuevas. Esto condujo al desarrollo de un lenguaje ALTRAN más avanzado y una implementación desarrollada por Brown, Andrew D. Hall, Stephen C. Johnson , Dennis M. Ritchie y Stuart I. Feldman , que era altamente portable. [7] [8] El traductor fue implementado por Ritchie, el intérprete por Hall, las rutinas de funciones racionales y polinomiales en tiempo de ejecución por Feldman, Hall y Johnson, y las rutinas de E/S por Johnson. [1]

Más tarde, Feldman y Julia Ho agregaron un paquete de evaluación de expresiones racionales que generaba subrutinas FORTRAN precisas y eficientes para la evaluación numérica de expresiones simbólicas producidas por ALTRAN. [7]

En 1979, ALTRAN fue trasladado a las computadoras Control Data Corporation 6600 y Cyber ​​176 en el Laboratorio de Armas de la Fuerza Aérea . Descubrieron que "ALTRAN es aproximadamente 15 veces más rápido que FORMAC en un entorno PL/I , y es al menos 12 veces más rápido que REDUCE ". También se observó que ALTRAN era capaz de resolver rápidamente problemas que ni FORMAC ni REDUCE podían manejar en el hardware dado o en un tiempo razonable. [9]

Programa de muestra

 PROCEDIMIENTO PRINCIPAL # EJEMPLO SIMPLE DE USO DE FTNOUT LONG ALGEBRAIC ( X : 10 , Y : 10 ) F ALTRAN FTNOUT OPTS ( 201 , 72 ) # FTNOUT REQUIERE UNA LONGITUD DE LÍNEA DE 72 F = EXPAND ( ( X + 2 * Y + 1000000 ) ** 3 ) WRITE F # PRINT F WRITE ( 25 ) " FUNCIÓN F(X,Y)" "EJEMPLO DE PROGRAMA ESCRITO CON FTNOUT." , F , " RETURN" , " END" # HEMOS ESCRITO UN PROGRAMA SIMPLE EN LA UNIDAD 25, AHORA INVOCAMOS FTNOUT PARA # ESTA SALIDA ALTRAN A FORTRAN LEGAL. FTNOUT END                                       

Operaciones

Operaciones elementales en ALTRAN [2]
OperaciónSintaxis de ALTRANEjemplo sobre polinomios
SumaC = A+B ( incógnita + y ) + ( incógnita y ) = 2 incógnita {\displaystyle (x+y)+(xy)=2x}
SustracciónC = A-B ( incógnita + y ) ( incógnita y ) = 2 y {\displaystyle (x+y)-(xy)=2y}
MultiplicaciónC = A*B ( incógnita + y ) ( incógnita y ) = incógnita 2 y 2 {\displaystyle (x+y)(xy)=x^{2}-y^{2}}
DivisiónD = A/B ( incógnita 2 y 2 ) ÷ ( incógnita + y ) = incógnita y {\displaystyle (x^{2}-y^{2})\div (x+y)=xy}
Exponenciación integralD = A**K ( incógnita + y ) 3 = incógnita 3 + 3 incógnita 2 y + 3 incógnita y 2 + y 3 {\displaystyle (x+y)^{3}=x^{3}+3x^{2}y+3xy^{2}+y^{3}}
SustituciónG = F(X = P, Y = Q) { F ( incógnita , y , el ) = incógnita y + el pag = incógnita + y q = incógnita y a = incógnita 2 + y 2 F ( pag , q , a ) = pag q + a = ( incógnita + y ) ( incógnita y ) + incógnita 2 + y 2 = ( incógnita 2 y 2 ) + incógnita 2 + y 2 = 2 incógnita 2 {\displaystyle {\begin{cases}{\begin{aligned}f(x,y,z)&=xy+z\\p&=x+y\\q&=xy\\r&=x^{2}+y^{2}\\f(p,q,r)&=pq+r\\&=(x+y)(xy)+x^{2}+y^{2}\\&=(x^{2}-y^{2})+x^{2}+y^{2}\\&=2x^{2}\end{aligned}}\end{cases}}}
DiferenciaciónG = DIFF(F, Y) y ( 2 incógnita + 5 incógnita y 2 3 y 3 ) = 10 incógnita y 9 y 2 {\displaystyle {\frac {\parcial }{\parcial y}}(2x+5xy^{2}-3y^{3})=10xy-9y^{2}}
Máximo común divisorD = GCD(A, B) GRAMO do D ( incógnita 2 y 2 , incógnita 2 + 2 incógnita y + y 2 ) = incógnita + y {\displaystyle \mathrm {MCD} (x^{2}-y^{2},x^{2}+2xy+y^{2})=x+y}

Referencias

  1. ^ abcdef Hall, AD, "El sistema ALTRAN para la manipulación racional de funciones: una encuesta". Communications of the ACM , 14(8):517–521 (agosto de 1971).
  2. ^ ab Tapley, BD; Szebehely, VG (2012). Avances recientes en astronomía dinámica. Springer Science & Business Media. pág. 364. ISBN 978-94-010-2611-6. Consultado el 3 de septiembre de 2019 .
  3. ^ Geddes, Keith O.; Czapor, Stephen R.; Labahn, George (2007). Algoritmos para álgebra computacional. Springer Science & Business Media. pág. 4. ISBN 0-7923-9259-0. Consultado el 3 de septiembre de 2019 .
  4. ^ Brown, PJ, ed. (1977). Portabilidad del software. Cambridge University Press. pág. 21. ISBN 0-521-29725-7. Consultado el 3 de septiembre de 2019 .
  5. ^ Wilner, Wayne T. "TRADUCTOR DE ALGOL A FORTRAN" (PDF) . slac.stanford.edu . Consultado el 3 de septiembre de 2019 .
  6. ^ Lamagna, Edmund A. (2019). Álgebra computacional: conceptos y técnicas. CRC Press. pág. 12. ISBN 9781138093140. Consultado el 3 de septiembre de 2019 .
  7. ^ ab Holbrook, Bernard D.; Brown, W. Stanley. "Informe técnico sobre ciencias de la computación n.º 99: una historia de la investigación en computación en los Laboratorios Bell (1937-1975)". Bell Labs . Archivado desde el original el 2 de septiembre de 2014. Consultado el 2 de febrero de 2020 .
  8. ^ Johnson, SC; Ritchie, DM (1976). "Unix Portability". Está claro que el grado de portabilidad prometido [de Unix en C] no puede aproximarse al de ALTRAN, por ejemplo, que puede lograrse con quince días de esfuerzo por parte de alguien experto en las condiciones locales pero que desconozca ALTRAN en sí.
  9. ^ Rhoades, Jr., Cecil E. "AFWL Implementation of ALTRAN" (PDF) . dtic.mil . Archivado (PDF) del original el 3 de septiembre de 2019 . Consultado el 3 de septiembre de 2019 .
  • WS Brown, "Un lenguaje y sistema para el álgebra simbólica en una computadora digital", SYMSAC '66 Actas del primer simposio ACM sobre manipulación simbólica y algebraica, pág. 501-540, enero de 1966.
  • WS Brown, Manual del usuario de ALTRAN (2.ª ed.), Bell Laboratories, Murray Hill, NJ, 1972.
  • WS Brown, Manual del usuario de ALTRAN (3.ª ed.), Bell Laboratories, Murray Hill, NJ, 1973.
  • Stuart I. Feldman, "Una breve descripción de Altran", Boletín ACM SIGSAM, Volumen 9, Número 4, noviembre de 1975, págs. 12-20.
  • AD Hall y SC Johnson, "Programas ALTRAN para el problema SIGSAM nº 6", Boletín ACM SIGSAM, Volumen 8, Número 2, mayo de 1974, págs. 12-36.
  • Mansour Farah, "UNA DESCRIPCIÓN FORMAL DE ALTRAN UTILIZANDO SISTEMAS DE MANIPULACIÓN FORESTAL VINCULADOS", Informe técnico CS-73-08, Universidad de Waterloo, abril de 1973.
Obtenido de "https://es.wikipedia.org/w/index.php?title=ALTRAN&oldid=1230474657"