# ALGO (2791/alg017)

## Algorithmic language for Bendix G-15

Algorithmic language for Bendix G-15. THe first commercial implementation of the IAL

Hardware:

Related languages
 IAL => ALGO Influence

Samples:
References:
• [Bendix] "Algebraic compiler for the Bendix G-15 general purpose computer". Bendix Computer Div., Bendix Corp. Report No. T21, 1960 view details Extract: Foreward
Algo follows the principles laid down for the universal algebraic computer language, Algol, proposed for international use by computer organizations in America and abroad.
The Bendix Corporation is happy to cooperate with the Association for Computing Machinery and with the other members of the Algol committee in being the first manufacturer to introduce a programming system patterned on their proposal. Extract: Introduction to Algol
INTRODUCTION
The Algo language closely parallels Algebra and
may be learned in a few hours. The similarity may
be seen by examining a few relationships. For example,
to add quantity X to quantity y, the relationship
in Algo language is: X + y; similarly,
to subtract: X - Y
to divide: X / Y
to find the sine of X: sin X
to find the logarithm of X: log X
Thus, without a special knowledge of programming
for electronic computers, anyone with a background
of high school Algebra may express a problem in
the Algo language for the G-15 computer. There are
two steps to obtaining a complete solution for the
problem written in Algo language. First, the problem
is entered into the computer and is automatically
transformed by the Algo routine into a program
called the "object" program, expressed in the computer's
internal language. Secoudly, the computer
solves the problem by executing the object program.
EXAMPLE OF ALGO LANGUAGE PROGRAM
Problem
Find: ui = exi t xi+ sin xi
where,
Xi+l = Xi + .01
Print X, and ui in floating-point notation.
The programmer specifies at the time of execution
the initial value of X and the limit of the
subscript i.
Algo Language Program
001. TITLE Find U [il
002. LlBRAry SIN (0101000)
003. SUBSCript i
004. BEGIN
005. X = KEYBD
006. FOR i = 0 (1) KEYBD BEGIN
007. u=EXPX + x T 5 -t- SINX
008. PRINT (FL) =X
009. PRINT (FL) = U
010. CARR (2)
011. X = X + .0l END
012. END
The lines of the Algo language program may be
broken into two groups, declarations and statements.
The declarations are announcements to Algo regarding
the contents of the program. The statements
describe actions taken by Algo either while compiling
the object program or during the execution of
the object program. In the example, the lines numbered
from 001 thru 003 are declarations, the others
are statements.
The components of a statement may be: identifiers
which are names for the various quantities; numbers
which represent quantities whose numeric values are
fixed; and operators which indicate the relationship
between two quantities.
In the sample program, Line 007 has two identifiers,
u and X; four operators, exp, +, T, and sin; and one
number, 5.
ALGO ALGEBRAIC STATEMENTS
As shown, the programmer writes X L y to express
the addition of X to y. He then replaces or assigns
the relationship X + y to another quantity z.
Table 1 lists the operators for the most common
arithmetic operations, the definitions and an example
of each.

Table 1
PARENTHESES
As some algebraic statements may be incorrectly
interpreted, the programmer should use PARENTHESES
( ) whenever ambiguity may result in the
statement of a problem.
• [Bendix] "ALGO Operating Instructions". Bendix Computer Div., Bendix Corp. Report No. T22, 1961 view details Abstract: INTRODUCTION
Algo is an algebraic compiling system for the Bendix G-15 computer. The Algo language and programming are discussed in a separate manual, Bendix publication T21-1 which should be read before this manual. Extract: ALGO COMPONENTS
ALGO COMPONENTS
The basic Algo system consists of six components, contained in six paper tape magazines. The first three components, designated as Magazines NO. 1. No. 2, and No. 3, interpret a problem written in the Algo language and develop an object program coded in a language which the computer understands. A fourth component, designated Magazine No. 4, operates on the object program and produces a solution to the problem. When Algo completes the interpretation of the Algo language program, the object program is on the drum of the G-15 Computer. At the option of the operator, the object program may be produced on paper tape and run at a later time.
The two other components, designated as the Updater and the Housekeeper, broaden the facilities of the Algo system. The Updater, the corrector component of the Algo system, permits the programmer to add information to or delete information from the Algo language program. The programmer may also correct or modify the existing declarations and statements of the program.
The Housekeeper, an Algo service routine, permits the operator to transfer the Algo system to magnetic tape or to modify or expand the existing Algo system. The Housekeeper is not transferred to magnetic tape. The Algo master is then the five components designated as Magazines No. 1, No. 2, No. 3, No. 4, and Updater. The five paper tape magazines, which contain these components, are called a "paper tape master." When transferred to magnetic tape, the five are called a "magnetic tape master."
MODES OF OPERATION
While preparing the object program, Algo stores intermediate results on either paper tape or magnetic tape. The tapes, containing the intermediate results, are called "scratch pads." Either type of master tape may operate with either type of scratch pad tape.
The four modes of operation are then:
Paper Tape to Paper Tape
Paper Tape to Magnetic Tape
Magnetic Tape to Magnetic Tape
Magnetic Tape to Paper Tape
In conjunction with the two modes using a magnetic tape master, the operator needs the Bendix Application's Project No. 61-Magnetic Tape Service Routine. In the operating instructions Algo directs the operator to perform certain operations. In referring to the master tapes, Algo calls the tapes Magazine No. 1, Magazine No. 2, Magazine No. 3, and Magazine No. 4. In referring to the scratch pads, Algo calls the tapes No. 1 Output or No. 2 Output.
The Magnetic Tape to Magnetic Tape mode of operation is designed to use two Magnetic Tape Units (MTA-2). The Magnetic Tape to Paper Tape Mode or the Paper Tape to Magnetic Tape Mode are designed for one Magnetic Tape Unit (MTA-2).
• [BENDIX] Programming notes for the ALGO system Bendix Computer Division TAM-72 1961 view details Abstract: TECHNICAL APPLICATIONS MEMORANDUM NO. 72
27 March 1961
TITLE: Programming notes for the ALGO system
PURPOSE: The information contained in this memorandum answers several
questions which have been asked and which may arise concerning
use of the ALGO system. Other points of interest are included.
EQUIPMENT AFFECTED: G-15D and optionally MTA-2
EFFECTIVE DATE: 27 March 1961
• Bottenbruch, Hermann review of BENDIX 1960 view details Abstract: This is a description of the algebraic programming language for the Bendix G-15 Computer. The language is called Algo. However, except for similarity in the name it has hardly more in common with ALGOL than other algebraic languages. The language has the following features:

Constants:
Integers and decimal numbers as in ALGOL But 1.34l2 would become 63 O O 134.

Simple Variables:
AS in ALGOL

Subscripted Variables:
Only one or two subscript positions.

They must be occupied by simple variables which have to be declared "subscripts" at the beginning of the program. Variables with two sub" subscripts are not handled in the conventional way (either ALGOL or FORTRAN) and are somewhat hard to use.

Labels:
No integers are permitted. Otherwise as in ALGOL.

Arithmetic Expressions:
As usual.

Arithmetic Comparisons:
Restricted to =, <, >

Special Functions:
ABS, SQRT, EXP, SIN, COS, ARCTG.

Assignment Statement:
Go to statement, if statement in a form close to ALGOL.

For Statement:
More like FORTRAN than ALGOL.

Compound Statement:
As in ALGOL.

Format specifieations, print statement with format indicator and read and write statements without format indicator:
Input from keyboard.

Procedure declarations and statements:
Nested procedure declaration possible. Parameters are restricted to simple variables or constants. Local variables possible in a restricted way.

ALGOL is a very worthwhile programming aid for the G-15 computer. However it does not solve the communication problem between the G-15 and other computers.

in ACM Computing Reviews 2(04) July-August 1961 view details
• Sammet, Jean E "1960 Tower of Babel" diagram on the front of CACM January 1961 view details

in [ACM] CACM 4(01) (Jan 1961) view details
• Rosen, Saul "Programming Systems and Languages: a historical Survey" (reprinted in Rosen, Saul (ed) Programming Systems & Languages. McGraw Hill, New York, 1967) view details Extract: The Algol 58-alike languages
To go on with the Algol development, the years 1958-1959 were years in which many new computers were introduced, The time was ripe for experimentation in new languages. As mentioned earlier there are many elements in common in all Algebraic languages, and everyone who introduced a new language in those years called it Algol, or a dialect of Algol. The initial result of this first attempt at the standardization of Algebraic languages was the proliferation of such languages in great variety.
A very bright young programmer at Burroughs had some ideas about writing a very fast one pass compiler for Burroughs new 220 computer. The compiler has come to be known as Balgol.
A compiler called ALGO was written for the Bendix G15 computer. At Systems Development Corporation, programming systems had to be developed for a large command and control system based on the IBM military computer (ANFSQ32). The resulting Algebraic language with fairly elaborate data description facilities was JOVIAL (Jules Schwartz' own Version of the International Algebraic Language). By now compilers for JOVIAL have been written for the IBM 7090, the Control Data 1604, the Philco 2000, the Burroughs D825, and for several versions of IBM military computers.
The Naval Electronics Laboratory at San Diego was getting a new Sperry Rand Computer, the Countess. With a variety of other computers installed and expected they stressed the description of a compiler in its own language to make it easy, among other things, to produce a compiler on one computer using a compiler on another. They also stressed very fast compiling times, at the expense of object code running times, if necessary. The language was called Neliac, a dialect of Algol. Compilers for Neliac are available on at least as great a variety of computers as for JOVIAL.
The University of Michigan developed a compiler for a language called Mad, the Michigan Algorithmic Decoder. They were quite unhappy at the slow compiling times of Fortran, especially in connection with short problems typical of student use of a computer at a University. Mad was, originally programmed for the 704 and has been adapted for the 7090 It too was based on the 1958 version of Algol.
All of these languages derived from Algol 58 are well established, in spite of the fact that the ACM GAMM committee continued its work and issued its now well known report defining Algol 60.
in [AFIPS JCC 25] Proceedings of the 1964 Spring Joint Computer Conference SJCC 1964 view details
• Stock, Karl F. "A listing of some programming languages and their users" in RZ-Informationen. Graz: Rechenzentrum Graz 1971 11 view details Abstract: 321 Programmiersprachen mit Angabe der Computer-Hersteller, auf deren Anlagen die entsprechenden Sprachen verwendet werden kennen. Register der 74 Computer-Firmen; Reihenfolge der Programmiersprachen nach der Anzahl der Herstellerfirmen, auf deren Anlagen die Sprache implementiert ist; Reihenfolge der Herstellerfirmen nach der Anzahl der verwendeten Programmiersprachen.

[321 programming languages with indication of the computer manufacturers, on whose machinery the appropriate languages are used to know.  Register of the 74 computer companies;  Sequence of the programming languages after the number of manufacturing firms, on whose plants the language is implemented;  Sequence of the manufacturing firms after the number of used programming languages.]
in [AFIPS JCC 25] Proceedings of the 1964 Spring Joint Computer Conference SJCC 1964 view details
• Sammet, Jean E., "Programming languages: history and future" view details
in [ACM] CACM 15(06) (June 1972) view details
Resources
• Page from Keith Smellie's Computer and Me
As mentioned earlier the Bendix Corporation produced a compiler for the G15. It was called "Algo" and was the first implementation produced by private industry of the Algol language. It was documented in a well-written and attractively produced manual of 27 pages. The originators of Algo, or at least the persons who wrote the manual, were enthusiastic about the simplification in programming which the language would produce as is shown by the Introduction which begins as follows:

The Algo language closely parallels Algebra and may be learned in a few hours. The similarity may be seen by examining a few relationships. For example, to add quantity x to quantity y, the relationship in Algo language is: x + y; similarly,
to subtract:                         x - y
to divide:                             x / y
to find the sine of x:             sin x
to find the logarithm of x:     log x
Thus, without a special knowledge of programming for electronic computers, anyone with a background of high school Algebra may express a problem in the Algo language for the G-15 computer. ...