ALTRAN (ALgebraic TRANslator) is a
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
for the formal manipulation of
rational function
In mathematics, a rational function is any function that can be defined by a rational fraction, which is an algebraic fraction such that both the numerator and the denominator are polynomials. The coefficients of the polynomials need not be ...
s of several variables with integer coefficients. It was developed at
Bell Labs
Nokia Bell Labs, originally named Bell Telephone Laboratories (1925–1984),
then AT&T Bell Laboratories (1984–1996)
and Bell Labs Innovations (1996–2007),
is an American industrial research and scientific development company owned by mult ...
in 1960s.
ALTRAN is a FORTRAN version of
ALPAK rational algebra package,
and “can be thought of as a variant of FORTRAN with the addition of an extra declaration, the ‘algebraic’ type declaration.”
Although ALTRAN is written in ANSI FORTRAN, nevertheless there exist differences in FORTRAN implementations. ALTRAN handles machine dependencies through the use of a
macro processor
A general-purpose macro processor or general purpose preprocessor is a macro
Macro (or MACRO) may refer to:
Science and technology
* Macroscopic, subjects visible to the eye
* Macro photography, a type of close-up photography
* Image macro, ...
called M6.
[Hall, A.D., "The ALTRAN System for Rational Function Manipulation — A Survey". '']Communications of the ACM
''Communications of the ACM'' is the monthly journal of the Association for Computing Machinery (ACM). It was established in 1958, with Saul Rosen as its first managing editor. It is sent to all ACM members.
Articles are intended for readers with ...
'', 14(8):517–521 (August 1971).
ALTRAN should not be confused with the ALGOL to FORTRAN Translator, called Altran, that "converts Extended Algol programs into Fortran IV."
History
ALPAK, written in 1964, originally consisted of a set of
subroutine
In computer programming, a function or subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed.
Functions ma ...
s for FORTRAN written in
assembly language. These subroutines were themselves rewritten in FORTRAN for ALTRAN.
An early version of ALTRAN was developed by
M. Douglas McIlroy
Malcolm Douglas McIlroy (born 1932) is a mathematician, engineer, and programmer. As of 2019 he is an Adjunct Professor of Computer Science at Dartmouth College.
McIlroy is best known for having originally proposed Unix pipelines and developed se ...
and W. Stanley Brown in the middle 1960s.
However, soon after the completion of their ALTRAN translator, the
IBM 7094
The IBM 7090 is a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computer that was designed for "large-scale scientific and technological applications". The 7090 is the fourth member of the IBM 700/7000 s ...
computers, on which ALPAK and ALTRAN were reliant, began to be phased out in favor of newer machines. This led to development of a more advanced ALTRAN language and implementation developed by Brown, Andrew D. Hall,
Stephen C. Johnson,
Dennis M. Ritchie
Dennis MacAlistair Ritchie (September 9, 1941 – October 12, 2011) was an American computer scientist. He is most well-known for creating the C programming language and, with long-time colleague Ken Thompson, the Unix operating system and B ...
, and
Stuart I. Feldman, which was highly portable.
The translator was implemented by Ritchie, the interpreter by Hall, the run-time rational function and
polynomial
In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An ex ...
routines by Feldman, Hall, and Johnson, and the I/O routines by Johnson.
Later, Feldman and Julia Ho added a rational expression evaluation package that generated accurate and efficient FORTRAN subroutines for the numerical evaluation of symbolic expressions produced by ALTRAN.
In 1979, ALTRAN was ported to the
Control Data Corporation 6600 and
Cyber 176 computers at the
Air Force Weapons Laboratory. They found that "ALTRAN is about 15 times faster than
FORMAC in a
PL/I
PL/I (Programming Language One, pronounced and sometimes written PL/1) is a procedural, imperative computer programming language developed and published by IBM. It is designed for scientific, engineering, business and system programming. It ...
environment, and it is at least 12 times faster than
REDUCE." It was also observed that ALTRAN was able to quickly solve problems which neither FORMAC nor REDUCE could handle on the given hardware or in reasonable time.
Sample program
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
Operations
References
* 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, January 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, November 1975, p. 12 - 20.
* A.D. Hall and S.C. Johnson, "ALTRAN programs for SIGSAM problem #6", ACM SIGSAM Bulletin, Volume 8 Issue 2, May 1974, p. 12 - 36.
* Mansour Farah, "A FORMAL DESCRIPTION OF ALTRAN USING LINKED FOREST MANIPULATION SYSTEMS", Technical Report CS-73-08, University of Waterloo, April, 1973.
{{Computer algebra systems
Computer-related introductions in 1968
Fortran programming language family
Computer algebra systems