ALGO

From Wikipedia, the free encyclopedia

ALGO is an algebraic programming language developed between 1959 and 1961 for the Bendix G-15 computer.

ALGO was one of several programming languages inspired by the Preliminary Report on the International Algorithmic Language written in Zürich in 1958. This report underwent several modifications before becoming the Revised Report on which most ALGOL implementations are based. As a result, ALGO and other early "ALGOLs" have a very different syntax from ALGOL 60.

Other languages developed from the Zürich report include BALGOL, MAD (Michigan Algorithm Decoder) and NELIAC.

[edit] Example

Here is the Trabb Pardo-Knuth algorithm in ALGO:

1. TITLE TRABB PARDO-KNUTH ALGORITHM
2. SUBSCript I,J
3. DATA A(11)
4. FORMAt FI(2DT), FLARGE(3D)
5. PROCEdure F(T=Z)
6. BEGIN
7. Z=SQRT(ABS(T))+5*T^3
8. END
9. FOR I=0(1)10
10. A[I]=KEYBD
11. FOR J=0(1)10 BEGIN
11. I=J-10
12. F(A[I]=Y)
13. PRINT(FI)=I
14. IF Y > 400
15. GO TO LARGE
16. PRINT(FL)=Y
17. GO TO NEXT
18. LARGE: PRINT(FLARGE)=999
19. NEXT: CARR(1) END
20. END

[edit] Notes

  • 1. A title is the only type of comment allowed. Line numbers were inserted by the editor.
  • 2. Integer data type. The lower-case letters are not typos, but reflect the way in which ALGO code was presented in the original documentation.
  • 3. Only the size of an array can be specified, lower bound is always zero.
  • 4. The first format calls for a two-digit number followed by a tab, the second for a three digit number.
  • 5. The syntax of ALGO's procedure implementations is slightly different from that given in the Zurich report. Functions as defined by the Zürich report are not implemented.
  • 9. The syntax here is from the Zürich report and is also consistent with various 1950s-era autocodes.
  • 10. KEYBD reads a numeric value from the typewriter.
  • 11. ALGO did not allow negative increments in subscript loops, hence the trick.
  • 14. The if either of the Zürich report was not implemented.
  • 19. Carriage return.

[edit] External links