ALTRAN (Algebraic Translator, Tradutor Algébrico) é uma linguagem de programação para a manipulação formal de funções racionais de várias variáveis com coeficientes inteiros. Foi desenvolvida nos Bell Labs na década de 1960. ALTRAN é uma versão FORTRAN do pacote de álgebra racional ALPAK, e "pode ser pensada como uma variante do FORTRAN com a adição de uma declaração extra, a declaração de tipo 'algebraic'."

Embora ALTRAN seja escrita em ANSI FORTRAN, ainda existem diferenças nas implementações FORTRAN. ALTRAN lida com dependências de máquina através do uso de um processador de macros de propósito geral chamado M6.Hall, A.D., "The ALTRAN System for Rational Function Manipulation — A Survey". Communications of the ACM, 14(8):517–521 (agosto de 1971).

ALTRAN não deve ser confundida com o Tradutor ALGOL para FORTRAN, chamado Altran, que "converte programas Extended Algol em Fortran IV."

História ALPAK, escrito em 1964, originalmente consistia de um conjunto de sub-rotinas para FORTRAN escritas em linguagem assembly. Essas sub-rotinas foram elas próprias reescritas em FORTRAN para ALTRAN.

Uma versão inicial de ALTRAN foi desenvolvida por M. Douglas McIlroy e W. Stanley Brown em meados da década de 1960. No entanto, logo após a conclusão de seu tradutor ALTRAN, os computadores IBM 7094, nos quais ALPAK e ALTRAN dependiam, começaram a ser gradualmente retirados em favor de máquinas mais novas. Isso levou ao desenvolvimento de uma linguagem e implementação ALTRAN mais avançada desenvolvida por Brown, Andrew D. Hall, Stephen C. Johnson, Dennis M. Ritchie, e Stuart I. Feldman, que era altamente portável. O tradutor foi implementado por Ritchie, o interpretador por Hall, as rotinas de tempo de execução de funções racionais e polinômios por Feldman, Hall, e Johnson, e as rotinas de E/S por Johnson.

Mais tarde, Feldman e Julia Ho adicionaram um pacote de avaliação de expressões racionais que gerava sub-rotinas FORTRAN precisas e eficientes para a avaliação numérica de expressões simbólicas produzidas por ALTRAN.

Em 1979, ALTRAN foi portada para os computadores Control Data Corporation 6600 e Cyber 176 no Air Force Weapons Laboratory. Eles descobriram que "ALTRAN é cerca de 15 vezes mais rápida que FORMAC em um ambiente PL/I, e é pelo menos 12 vezes mais rápida que REDUCE." Também foi observado que ALTRAN era capaz de resolver rapidamente problemas que nem FORMAC nem REDUCE conseguiam lidar no hardware dado ou em tempo razoável.

Programa exemplo Um pequeno programa exemplo: PROCEDURE MAIN # SIMPLE EXAMPLE OF USE OF FTNOUT LONG ALGEBRAIC (X:10,Y:10) F ALTRAN FTNOUT OPTS(201,72) # FTNOUT REQUIRES A LINE LENGTH OF 72 F = EXPAND( (X+2*Y+1000000)**3 ) WRITE F # PRINT F WRITE (25) " FUNCTION F(X,Y)" "C EXAMPLE PROG WRITTEN WITH FTNOUT." , F , " RETURN"™, " END" # WE HAVE WRITTEN A SIMPLE PROGRAM ON UNIT 25, NOW WE INVOKE FTNOUT TO # THIS ALTRAN OUTPUT TO LEGAL FORTRAN. FTNOUT END

Operações + Operações elementares em ALTRAN Operação Sintaxe ALTRAN Exemplo em polinômios Adição C = A+B Subtração C = A-B Multiplicação C = A*B Divisão D = A/B Exponenciação integral D = A**K Substituição G = F(X = P, Y = Q) Diferenciação G = DIFF(F, Y) Máximo Divisor Comum D = GCD(A, B)

Ver também MATH-MATIC (Algebraic Translator 3)

Referências

Fontes W.S. Brown, "A language and system for symbolic algebra on a digital computer", SYMSAC '66 Proceedings of the first ACM symposium on Symbolic and algebraic manipulation, p. 501- 540, janeiro de 1966. W.S. Brown, ALTRAN User's Manual (2nd ed.), Bell Laboratories, Murray Hill, N.J., 1972. W.S. Brown, ALTRAN User's Manual (3rd ed.), Bell Laboratories, Murray Hill, N.J., 1973. Stuart I. Feldman, "A brief description of Altran", ACM SIGSAM Bulletin, Volume 9 Issue 4, novembro de 1975, p. 12 - 20. A.D. Hall and S.C. Johnson, "ALTRAN programs for SIGSAM problem #6", ACM SIGSAM Bulletin, Volume 8 Issue 2, maio de 1974, p. 12 - 36. Mansour Farah, "A FORMAL DESCRIPTION OF ALTRAN USING LINKED FOREST MANIPULATION SYSTEMS", Technical Report CS-73-08, University of Waterloo, abril de 1973.

Categoria:Linguagens de computador