ALGOL 60
Encyclopedia
ALGOL 60 is a member of the ALGOL
ALGOL
ALGOL is a family of imperative computer programming languages originally developed in the mid 1950s which greatly influenced many other languages and became the de facto way algorithms were described in textbooks and academic works for almost the next 30 years...

 family of computer programming languages. It gave rise to many other programming languages, including BCPL
BCPL
BCPL is a procedural, imperative, and structured computer programming language designed by Martin Richards of the University of Cambridge in 1966.- Design :...

, B, Pascal
Pascal (programming language)
Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...

, Simula
Simula
Simula is a name for two programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard...

, C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

, and many others. ALGOL 58
ALGOL 58
ALGOL 58, originally known as IAL, is one of the family of ALGOL computer programming languages. It was an early compromise design soon superseded by ALGOL 60...

 introduced code blocks and the begin and end pairs for delimiting them. ALGOL 60 was the first language implementing nested function
Nested function
In computer programming, a nested function is a function which is lexically encapsulated within another function. It can only be called by the enclosing function or by functions directly or indirectly nested within the same enclosing function. In other words, the scope of the nested function is...

 definitions with lexical scope.

Niklaus Wirth
Niklaus Wirth
Niklaus Emil Wirth is a Swiss computer scientist, best known for designing several programming languages, including Pascal, and for pioneering several classic topics in software engineering. In 1984 he won the Turing Award for developing a sequence of innovative computer languages.-Biography:Wirth...

 based his own ALGOL W
ALGOL W
ALGOL W is a programming language. It was based on a proposal for ALGOL X by Niklaus Wirth and C. A. R. Hoare as a successor to ALGOL 60 in IFIP Working Group 2.1. When the committee decided that the proposal was not a sufficient advance over ALGOL 60, the proposal was published as A contribution...

 on ALGOL 60 before moving to develop Pascal
Pascal (programming language)
Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal...

. Algol-W was intended to be the next generation ALGOL but the ALGOL 68
ALGOL 68
ALGOL 68 isan imperative computerprogramming language that was conceived as a successor to theALGOL 60 programming language, designed with the goal of a...

 committee decided on a design that was more complex and advanced rather than a cleaned simplified ALGOL 60. The official ALGOL versions are named after the year they were first published.

ALGOL 68
ALGOL 68
ALGOL 68 isan imperative computerprogramming language that was conceived as a successor to theALGOL 60 programming language, designed with the goal of a...

 is substantially different from Algol 60 but was not well received so that in general "Algol" means dialects of Algol 60. The name ALGOL
ALGOL
ALGOL is a family of imperative computer programming languages originally developed in the mid 1950s which greatly influenced many other languages and became the de facto way algorithms were described in textbooks and academic works for almost the next 30 years...

 of the family is sometimes given in mixed case (Algol 60), and sometimes in all uppercase (ALGOL 68).

Standardization

ALGOL 60 - with COBOL
COBOL
COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....

 - were the first languages to seek standardization.
  • ISO 1538:1984, Programming language Algol 60 (now withdrawn)
  • ISO TR 1672:1977, Algol 60 Hardware Representation (now withdrawn)

History

ALGOL 60 was used mostly by research computer scientists in the United States and in Europe. Its use in commercial applications was hindered by the absence of standard input/output facilities in its description and the lack of interest in the language by large computer vendors. ALGOL 60 did however become the standard for the publication of algorithms and had a profound effect on future language development.

John Backus
John Backus
John Warner Backus was an American computer scientist. He directed the team that invented the first widely used high-level programming language and was the inventor of the Backus-Naur form , the almost universally used notation to define formal language syntax.He also did research in...

 developed the Backus normal form
Backus–Naur form
In computer science, BNF is a notation technique for context-free grammars, often used to describe the syntax of languages used in computing, such as computer programming languages, document formats, instruction sets and communication protocols.It is applied wherever exact descriptions of...

 method of describing programming languages specifically for ALGOL 58. It was revised and expanded by Peter Naur
Peter Naur
Peter Naur is a Danish pioneer in computer science and Turing award winner. His last name is the N in the BNF notation , used in the description of the syntax for most programming languages...

 for ALGOL 60, and at Donald Knuth
Donald Knuth
Donald Ervin Knuth is a computer scientist and Professor Emeritus at Stanford University.He is the author of the seminal multi-volume work The Art of Computer Programming. Knuth has been called the "father" of the analysis of algorithms...

's suggestion renamed Backus–Naur Form
Backus–Naur form
In computer science, BNF is a notation technique for context-free grammars, often used to describe the syntax of languages used in computing, such as computer programming languages, document formats, instruction sets and communication protocols.It is applied wherever exact descriptions of...

.

Peter Naur: "As editor of the ALGOL Bulletin I was drawn into the international discussions of the language and was selected to be member of the European language design group in November 1959. In this capacity I was the editor of the ALGOL 60 report, produced as the result of the ALGOL 60 meeting in Paris in January 1960."

The following people attended the meeting in Paris (from January 11 to 16):
  • Friedrich L. Bauer
    Friedrich L. Bauer
    Friedrich Ludwig Bauer is a German computer scientist and professor emeritus at Technical University of Munich.-Life:...

    , Peter Naur
    Peter Naur
    Peter Naur is a Danish pioneer in computer science and Turing award winner. His last name is the N in the BNF notation , used in the description of the syntax for most programming languages...

    , Heinz Rutishauser
    Heinz Rutishauser
    Heinz Rutishauser was a Swiss mathematician and a pioneer of modern numerical mathematics and computer science.- Life :...

    , Klaus Samelson
    Klaus Samelson
    Klaus Samelson was a German mathematician, physicist, and computer pioneer in the area of programming language translation and push-pop stack algorithms for sequential formula translation on computers.- Early life :...

    , Bernard Vauquois, Adriaan van Wijngaarden
    Adriaan van Wijngaarden
    Adriaan van Wijngaarden was an important mathematician and computer scientist who is considered by many to have been the founding father of informatica in the Netherlands...

    , and Michael Woodger (from Europe)
  • John W. Backus
    John Backus
    John Warner Backus was an American computer scientist. He directed the team that invented the first widely used high-level programming language and was the inventor of the Backus-Naur form , the almost universally used notation to define formal language syntax.He also did research in...

    , Julien Green, Charles Katz, John McCarthy
    John McCarthy (computer scientist)
    John McCarthy was an American computer scientist and cognitive scientist. He coined the term "artificial intelligence" , invented the Lisp programming language and was highly influential in the early development of AI.McCarthy also influenced other areas of computing such as time sharing systems...

    , Alan J. Perlis
    Alan Perlis
    Alan Jay Perlis was an American computer scientist known for his pioneering work in programming languages and the first recipient of the Turing Award.-Biography:...

    , and Joseph Henry Wegstein (from the USA).

Alan Perlis gave a vivid description of the meeting: "The meetings were exhausting, interminable, and exhilarating. One became aggravated when one's good ideas were discarded along with the bad ones of others. Nevertheless, diligence persisted during the entire period. The chemistry of the 13 was excellent."

Both John Backus and Peter Naur served on the committee which created ALGOL 60 as did Wally Feurzeig
Wally Feurzeig
Wally Feurzeig is an inventor of the LOGO programming language, and a well-known researcher in Artificial Intelligence.During the early 1960s, BBN had become a major center of computer science research and innovative applications...

, who later created Logo
Logo (programming language)
Logo is a multi-paradigm computer programming language used in education. It is an adaptation and dialect of the Lisp language; some have called it Lisp without the parentheses. It was originally conceived and written as functional programming language, and drove a mechanical turtle as an output...

.

ALGOL 60 inspired many languages that followed it. C. A. R. Hoare
C. A. R. Hoare
Sir Charles Antony Richard Hoare , commonly known as Tony Hoare or C. A. R. Hoare, is a British computer scientist best known for the development of Quicksort, one of the world's most widely used sorting algorithms...

 remarked: "Here is a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors." The Scheme programming language, a variant of Lisp that adopted the block structure and lexical scope of ALGOL, also adopted the wording "Revised Report on the Algorithmic Language Scheme" for its standards documents in homage to ALGOL.

ALGOL 60 implementations timeline

To date there have been at least 70 augmentations, extensions, derivations and sublanguages of Algol 60.
Name Year Author State Description Target CPU
X1 ALGOL 60 August 1960 Edsger W. Dijkstra and Jaap A. Zonneveld  Netherlands First implementation of ALGOL 60 Electrologica X1
Electrologica X1
The Electrologica X1 was a digital computer designed and manufactured in the Netherlands from 1958 to 1965. About thirty were produced and sold in the Netherlands and abroad....

Elliott ALGOL
Elliott ALGOL
Elliott ALGOL was an ALGOL 60 compiler for the Eliott 803 computer. It differed slightly from the reference version of Algol, particularly in the supported character set. First released in February 1962, it is believed to be the first implementation of an ALGOL 60 compiler in a commercial context...

1960s C. A. R. Hoare
C. A. R. Hoare
Sir Charles Antony Richard Hoare , commonly known as Tony Hoare or C. A. R. Hoare, is a British computer scientist best known for the development of Quicksort, one of the world's most widely used sorting algorithms...

 
UK Subject of the famous Turing
Turing Award
The Turing Award, in full The ACM A.M. Turing Award, is an annual award given by the Association for Computing Machinery to "an individual selected for contributions of a technical nature made to the computing community. The contributions should be of lasting and major technical importance to the...

 lecture
Elliott 803
Elliott 803
The Elliott 803 was a small, medium speed digital computer manufactured by the British company Elliott Brothers in the 1960s. About 250 were built and most British universities and colleges bought one.-History:...

 & the Elliott 503
Burroughs Algol 
(Several variants)
1961 Burroughs Corporation (with participation by Hoare, Dijkstra, and others) USA Basis of the Burroughs (and now Unisys
Unisys
Unisys Corporation , headquartered in Blue Bell, Pennsylvania, United States, and incorporated in Delaware, is a long established business whose core products now involves computing and networking.-History:...

 MCP based) computers
Burroughs large systems 
and their midrange as well.
Case ALGOL 1961 USA Simula
Simula
Simula is a name for two programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard...

 was originally contracted as a simulation extension of the Case ALGOL
UNIVAC 1107
UNIVAC 1107
The UNIVAC 1107 was the first member of Sperry Rand's UNIVAC 1100 series of computers, introduced in October 1962. It was also known as the Thin Film Computer because of its use of thin film memory for its register storage...

GOGOL 1961 Bill McKeeman  USA For ODIN
Odin
Odin is a major god in Norse mythology and the ruler of Asgard. Homologous with the Anglo-Saxon "Wōden" and the Old High German "Wotan", the name is descended from Proto-Germanic "*Wodanaz" or "*Wōđanaz"....

 time-sharing system
PDP-1
PDP-1
The PDP-1 was the first computer in Digital Equipment Corporation's PDP series and was first produced in 1960. It is famous for being the computer most important in the creation of hacker culture at MIT, BBN and elsewhere...

RegneCentralen ALGOL 1961 Peter Naur
Peter Naur
Peter Naur is a Danish pioneer in computer science and Turing award winner. His last name is the N in the BNF notation , used in the description of the syntax for most programming languages...

, Jørn Jensen
Jørn Jensen
Jørn Jensen, one of the earliest Danish programmers. Examined as a mechanical engineer and had worked with electromechanical construction. In 1958 employed at the Danish Regnecentralen, and very soon exhibited an extraordinary programming skill...

 
Denmark Implementation of full Algol 60 DASK at Regnecentralen
Dartmouth ALGOL 30
Dartmouth ALGOL 30
Dartmouth ALGOL 30 was an implementation, firstly of ALGOL 58, then of ALGOL 60 for the LGP-30 at Dartmouth College, hence the name.Since the limited size of the LGP-30 precluded a full implementation of ALGOL 60, certain of its features were omitted; but the implementors did include parameters...

1962 Thomas Eugene Kurtz
Thomas Eugene Kurtz
Thomas Eugene Kurtz is an American computer scientist who co-developed the BASIC programming language during 1963 to 1964, together with John G. Kemeny....

 et al.
USA LGP-30
LGP-30
The LGP-30, standing for Librascope General Purpose and then Librascope General Precision, was an early off-the-shelf computer. It was manufactured by the Librascope company of Glendale, California , and sold and serviced by the Royal Precision Electronic Computer Company, a joint venture with the...

USS 90 Algol 1962 L. Petrone  Italy
Algol Translator 1962 G. van der Mey and W.L. van der Poel
Willem van der Poel
Willem Louis van der Poel is a pioneering Dutch computer scientist, who is known for designing the ZEBRA computer. In 1950 he obtained an engineering degree in applied science at Delft University of Technology. In 1956 he obtained his PhD degree from the University of Amsterdam...

 
Netherlands Staatsbedrijf der Posterijen, Telegrafie en Telefonie ZEBRA
ZEBRA (computer)
The ZEBRA was one of the first computers to be designed in the Netherlands, and one of the first Dutch computers to be commercially available...

Kidsgrove Algol 1963 F. G. Duncan  UK English Electric Company
English Electric
English Electric was a British industrial manufacturer. Founded in 1918, it initially specialised in industrial electric motors and transformers...

 KDF9
English Electric KDF9
KDF9 was an early British computer designed and built by English Electric, later English Electric Leo Marconi, EELM, later still incorporated into ICL. It first came into service in 1964 and was still in use in 1980 in at least one installation...

VALGOL 1963 Val Schorre  USA A test of the META II
META II
META II is a compiler writing language first released in 1962 by D. V. Schorre. It consists of syntax equations resembling Backus normal form and into which instructions to output assembly language commands are inserted. Compilers have been written in this language for VALGOL I and VALGOL II...

 compiler compiler
FP6000 Algol 1963 Roger Moore
Roger Moore (computer scientist)
Roger D. Moore was the 1973 recipient of the Grace Murray Hopper Award from the Association for Computing Machinery...

 
Canada written for Saskatchewan Power Corp
SaskPower
Since 1929, SaskPower has been the principal supplier of electricity in Saskatchewan, Canada. Today, it serves more than 473,000 customers and manages $5.3 billion in assets...

 
FP6000
Ferranti-Packard 6000
The FP-6000 was a second generation mainframe computer developed and built by Ferranti-Packard in the early 1960s. It is particularly notable for supporting multitasking, being one of the first commercial machines to do so...

Whetstone
Whetstone (benchmark)
The Whetstone benchmark is a synthetic benchmark for evaluating the performance of computers. It was first written in Algol 60 in 1972 at the National Physical Laboratory in the United Kingdom and derived from statistics on program behaviour gathered on the KDF9 computer, using a modified version...

1964 Brian Randell
Brian Randell
Brian Randell is a British computer scientist, and Emeritus Professor at the School of Computing Science, Newcastle University, U.K. He specializes in research in software fault tolerance and dependability, and is a noted authority on the early prior to 1950 history of computers.- Biography...

 and L J Russell
UK Atomic Power Division of English Electric Company. Precursor to Ferranti Pegasus, National Physical Laboratories ACE and English Electric DEUCE
English Electric DEUCE
The DEUCE was one of the earliest British commercially available computers, built by English Electric from 1955.It was the production version of the Pilot ACE, itself a cut down version of Alan Turing's ACE....

 implementations.
English Electric Company KDF9
English Electric KDF9
KDF9 was an early British computer designed and built by English Electric, later English Electric Leo Marconi, EELM, later still incorporated into ICL. It first came into service in 1964 and was still in use in 1980 in at least one installation...

NU ALGOL 1965 Norway UNIVAC
UNIVAC
UNIVAC is the name of a business unit and division of the Remington Rand company formed by the 1950 purchase of the Eckert-Mauchly Computer Corporation, founded four years earlier by ENIAC inventors J. Presper Eckert and John Mauchly, and the associated line of computers which continues to this day...

ALGEK 1965 USSR
Soviet Union
The Soviet Union , officially the Union of Soviet Socialist Republics , was a constitutionally socialist state that existed in Eurasia between 1922 and 1991....

 
Minsk-22
Minsk family of computers
Minsk family of mainframe computers was developed and produced in the Byelorussian SSR from 1959 to 1975. Its further progress was stopped by a political decision of switching to IBM System/360 clone family known as ES EVM during the brief period of détente....

 
АЛГЭК, based on ALGOL-60 and COBOL
COBOL
COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....

 support, for economical tasks
MALGOL 1966 publ. A. Viil, M Kotli & M. Rakhendi, Estonian SSR
Estonian Soviet Socialist Republic
The Estonian Soviet Socialist Republic , often abbreviated as Estonian SSR or ESSR, was a republic of the Soviet Union, administered by and subordinated to the Government of the Soviet Union...

 
Minsk-22
Minsk family of computers
Minsk family of mainframe computers was developed and produced in the Byelorussian SSR from 1959 to 1975. Its further progress was stopped by a political decision of switching to IBM System/360 clone family known as ES EVM during the brief period of détente....

ALGAMS 1967 GAMS group (ГАМС, группа автоматизации программирования для машин среднего класса), cooperation of Comecon Academies of Science Comecon
Comecon
The Council for Mutual Economic Assistance , 1949–1991, was an economic organisation under hegemony of Soviet Union comprising the countries of the Eastern Bloc along with a number of communist states elsewhere in the world...

 
Minsk-22
Minsk family of computers
Minsk family of mainframe computers was developed and produced in the Byelorussian SSR from 1959 to 1975. Its further progress was stopped by a political decision of switching to IBM System/360 clone family known as ES EVM during the brief period of détente....

, later ES EVM
ES EVM
ES EVM was a series of clones of IBM's System/360 and System/370 mainframes, released in the Comecon countries under the initiative of the Soviet Union since the 1960s. Production continued until 1998...

, BESM
BESM
BESM is the name of a series of Soviet mainframe computers built in 1950-1960s. The name is an acronym for "Bolshaya Elektronno-Schetnaya Mashina" , literally "Large Electronically Computing Machine". The series began as a successor to MESM...

ALGOL/ZAM 1967 Poland Polish ZAM computer
Chinese Algol 1972 China Chinese characters, expressed via the Symbol system
DG/L
DG/L
DG/L was a programming language developed by Data General Corp for the Nova, Eclipse and Eclipse/MV families of minicomputers in the 1970s and early 1980s.There were actually two separate versions:...

1972 USA DG Eclipse
Data General Eclipse
The Data General Eclipse line of computers by Data General were 16-bit minicomputers released in early 1974 and sold until 1988. The Eclipse was based on many of the same concepts as the Data General Nova, but included support for virtual memory and multitasking more suitable to the small office...

 family of Computers


The Burroughs dialects included special Bootstrapping dialects such as ESPOL
ESPOL
ESPOL was a superset of ALGOL 60 that provided capabilities of what would later be known as Mohols, machine oriented high order languages, such as interrupting a processor on a multiprocessor system...

 and NEWP
NEWP
NEWP is a high-level programming language used on the Unisys MCP systems. The language is used to write the operating system and other system utilities, although it can also be used to write user software as well. Several constructs separate it from extended ALGOL on which it is based...

.

Properties

ALGOL 60 as officially defined had no I/O facilities; implementations defined their own in ways that were rarely compatible with each other. In contrast, ALGOL 68 offered an extensive library of transput (ALGOL 68 parlance for Input/Output) facilities.

ALGOL 60 allowed for two evaluation strategies
Evaluation strategy
In computer science, an evaluation strategy is a set of rules for evaluating expressions in a programming language. Emphasis is typically placed on functions or operators: an evaluation strategy defines when and in what order the arguments to a function are evaluated, when they are substituted...

 for parameter
Parameter (computer science)
In computer programming, a parameter is a special kind of variable, used in a subroutine to refer to one of the pieces of data provided as input to the subroutine. These pieces of data are called arguments...

 passing: the common call-by-value, and call-by-name. Call-by-name had certain limitations in contrast to call-by-reference, making it an undesirable feature in imperative language design. For example, it is impossible in ALGOL 60 to develop a procedure that will swap the values of two parameters if the actual parameters that are passed in are an integer variable and an array that is indexed by that same integer variable.
However, call-by-name is still beloved of ALGOL implementors for the interesting "thunk
Thunk (functional programming)
In computer science, a thunk is a parameterless closure created to prevent the evaluation of an expression until forced at a later time. In lazy languages thunks are created and forced implicitly...

s" that are used to implement it. Donald Knuth
Donald Knuth
Donald Ervin Knuth is a computer scientist and Professor Emeritus at Stanford University.He is the author of the seminal multi-volume work The Art of Computer Programming. Knuth has been called the "father" of the analysis of algorithms...

 devised the "man or boy test
Man or boy test
The man or boy test was proposed by computer scientist Donald Knuth as a means of evaluating implementations of the ALGOL 60 programming language...

" to separate compilers that correctly implemented "recursion and non-local references." This test contains an example of call-by-name.

ALGOL 60 Reserved words and restricted identifiers

There are 35 such reserved words in the standard Burroughs large systems sub-language:
  • ALPHA
  • ARRAY
  • BEGIN
  • BOOLEAN
  • COMMENT
  • CONTINUE
  • DIRECT
  • DO
  • DOUBLE
  • ELSE
  • END
  • EVENT
  • FALSE
  • FILE
  • FOR
  • FORMAT
  • GO
  • IF
  • INTEGER
  • LABEL
  • LIST
  • LONG
  • OWN
  • POINTER
  • PROCEDURE
  • REAL
  • STEP
  • SWITCH
  • TASK
  • THEN
  • TRUE
  • UNTIL
  • VALUE
  • WHILE
  • ZIP


  • There are 71 such restricted identifiers in the standard Burroughs large systems sub-language:
    • ACCEPT
    • AND
    • ATTACH
    • BY
    • CALL
    • CASE
    • CAUSE
    • CLOSE
    • DEALLOCATE
    • DEFINE
    • DETACH
    • DISABLE
    • DISPLAY
    • DIV
    • DUMP
  • ENABLE
  • EQL
  • EQV
  • EXCHANGE
  • EXTERNAL
  • FILL
  • FORWARD
  • GEQ
  • GTR
  • IMP
  • IN
  • INTERRUPT
  • IS
  • LB
  • LEQ
  • LIBERATE
  • LINE
  • LOCK
  • LSS
  • MERGE
  • MOD
  • MONITOR
  • MUX
  • NEQ
  • NO
  • NOT
  • ON
  • OPEN
  • OR
  • OUT
  • PICTURE
  • PROCESS
  • PROCURE
  • PROGRAMDUMP
  • RB
  • READ
  • RELEASE
  • REPLACE
  • RESET
  • RESIZE
  • REWIND
  • RUN
  • SCAN
  • SEEK
  • SET
  • SKIP
  • SORT
  • SPACE
  • SWAP
  • THRU
  • TIMES
  • TO
  • WAIT
  • WHEN
  • WITH
  • WRITE


  • and also the names of all the intrinsic functions.

    Standard Operators

    Priority Operator
    first
    arithmetic
    first ↑ (power)
    second ×, / (real), ÷ (integer)
    third +, -
    second <, ≤, =, ≥, >, ≠
    third ¬ (not)
    fourth ∧ (or)
    fifth ∨ (and)
    sixth ⊃ (implication)
    seventh ≡ (equivalence)

    ALGOL 60

    procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k);
    value n, m; array a; integer n, m, i, k; real y;
    comment The absolute greatest element of the matrix a, of size n by m
    is transferred to y, and the subscripts of this element to i and k;
    begin integer p, q;
    y := 0; i := k := 1;
    for p:=1 step 1 until n do
    for q:=1 step 1 until m do
    if abs(a[p, q]) > y then
    begin y := abs(a[p, q]);
    i := p; k := q
    end
    end Absmax

    Implementations differ in how the text in bold must be written. The word 'INTEGER', including the quotation marks, must be used in some implementations in place of integer, above, thereby designating it as a special keyword.

    Following is an example of how to produce a table using Elliott 803 ALGOL:

    FLOATING POINT ALGOL TEST'
    BEGIN REAL A,B,C,D'

    READ D'

    FOR A:= 0.0 STEP D UNTIL 6.3 DO
    BEGIN
    PRINT PUNCH(3),££L??'
    B := SIN(A)'
    C := COS(A)'
    PRINT PUNCH(3),SAMELINE,ALIGNED(1,6),A,B,C'
    END'
    END'

    PUNCH(3) sends output to the teleprinter rather than the tape punch.

    SAMELINE suppresses the carriage return + line feed normally printed between arguments.

    ALIGNED(1,6) controls the format of the output with 1 digit before and 6 after the decimal point

    ALGOL 60 family

    Since ALGOL 60 had no I/O facilities, there is no portable hello world program
    Hello world program
    A "Hello world" program is a computer program that outputs "Hello world" on a display device. Because it is typically one of the simplest programs possible in most programming languages, it is by tradition often used to illustrate to beginners the most basic syntax of a programming language, or to...

     in ALGOL. The following program could (and still will) compile and run on an ALGOL implementation for a Unisys A-Series mainframe, and is a straightforward simplification of code taken from The Language Guide at the University of Michigan
    University of Michigan
    The University of Michigan is a public research university located in Ann Arbor, Michigan in the United States. It is the state's oldest university and the flagship campus of the University of Michigan...

    -Dearborn Computer and Information
    Science Department Hello world! ALGOL Example Program page.

    BEGIN
    FILE F(KIND=REMOTE);
    EBCDIC ARRAY E[0:11];
    REPLACE E BY "HELLO WORLD!";
    WRITE(F, *, E);
    END.

    A simpler program using an inline format:

    BEGIN
    FILE F(KIND=REMOTE);
    WRITE(F, <"HELLO WORLD!">);
    END.

    An even simpler program using the Display statement:

    BEGIN DISPLAY("HELLO WORLD!") END.

    An alternative example, using Elliott Algol I/O is as follows. Elliott Algol used different characters for "open-string-quote" and "close-string-quote", represented here by ‘ and ’.

    program HiFolks;
    begin
    print ‘Hello world’
    end;

    Here's a version for the Elliott 803 Algol (A104) The standard Elliott 803 used 5 hole paper tape and thus only had upper case. The code lacked any quote characters so £ (UK Pound Sign) was used for open quote and ? (Question Mark) for close quote. Special sequences were placed in double quotes (e.g. ££L?? produced a new line on the teleprinter).

    HIFOLKS'
    BEGIN
    PRINT £HELLO WORLD£L??'
    END'

    The ICT 1900 series
    ICT 1900 series
    ICT 1900 was the name given to a series of mainframe computers released by International Computers and Tabulators and later International Computers Limited during the 1960s and '70s...

     Algol I/O version allowed input from paper tape or punched card. Paper tape 'full' mode allowed lower case. Output was to a line printer.
    'PROGRAM' (HELLO)
    'BEGIN'
    'COMMENT' OPEN QUOTE IS '(', CLOSE IS ')', PRINTABLE SPACE HAS TO
    BE WRITTEN AS % BECAUSE SPACES ARE IGNORED;
    WRITE TEXT('('HELLO%WORLD')');
    'END'
    'FINISH'

    See also

    • ALGOL
      ALGOL
      ALGOL is a family of imperative computer programming languages originally developed in the mid 1950s which greatly influenced many other languages and became the de facto way algorithms were described in textbooks and academic works for almost the next 30 years...

    • ALGOL 58
      ALGOL 58
      ALGOL 58, originally known as IAL, is one of the family of ALGOL computer programming languages. It was an early compromise design soon superseded by ALGOL 60...

    • ALGOL N
      ALGOL N
      ALGOL N is the name of a successor to ALGOL 60 designed in Japan with the aim of being as powerful as ALGOL 68 but as simple as ALGOL 60. It was proposed by Yoneda. Algol N tried to use extensibility in order to solve the problem that programming language designers faced when trying to make an...

    • ALGOL 68
      ALGOL 68
      ALGOL 68 isan imperative computerprogramming language that was conceived as a successor to theALGOL 60 programming language, designed with the goal of a...

    • ALGOL W
      ALGOL W
      ALGOL W is a programming language. It was based on a proposal for ALGOL X by Niklaus Wirth and C. A. R. Hoare as a successor to ALGOL 60 in IFIP Working Group 2.1. When the committee decided that the proposal was not a sufficient advance over ALGOL 60, the proposal was published as A contribution...


    • Atlas Autocode
      Atlas Autocode
      Atlas Autocode was a programming language developed around 1965 at Manchester University for the Atlas Computer. It was developed by Tony Brooker and Derrick Morris as an improvement on the ALGOL programming languages, removing some of Algol's poorer features such as "passing parameters by name"...

    • Coral 66
    • Edinburgh IMP
      Edinburgh IMP
      Edinburgh IMP is a development of ATLAS Autocode, initially developed around 1966-1969 at Edinburgh University, Scotland. IMP was a general-purpose programming language which was used heavily for systems programming....

    • Jensen's Device
      Jensen's Device
      Jensen's Device is a computer programming technique devised by Danish computer scientist Jørn Jensen, who worked with Peter Naur at Regnecentralen, particularly on the GIER Algol compiler, one of the earliest correct implementations of ALGOL 60....

    • ISWIM
      ISWIM
      ISWIM is an abstract computer programming language devised by Peter J. Landin and first described in his article, The Next 700 Programming Languages, published in the Communications of the ACM in 1966...


    • JOVIAL
      JOVIAL
      JOVIAL is a high-order computer programming language similar to ALGOL, but specialized for the development of embedded systems .JOVIAL is an acronym for "Jules Own Version of the International...

    • NELIAC
      NELIAC
      The Navy Electronics Laboratory International ALGOL Compiler or NELIAC is a dialect and compiler implementation of the ALGOL 58 programming language developed by the Naval Electronics Laboratory in 1958....

    • Simula
      Simula
      Simula is a name for two programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard...

    • S-algol
      S-algol
      S-algol is a computer programming language derivative of ALGOL 60 developed at the University of St. Andrews in 1979 by Ron Morrison. The language was developed as his PhD thesis as a modification of ALGOL to contain orthogonal datatypes. Ron Morrison would go on to become professor at the...

    • Scheme (programming language)


    Further reading

    • B. Randell and L.J. Russell, ALGOL 60 Implementation: The Translation and Use of ALGOL 60 Programs on a Computer. Academic Press, 1964. The design of the Whetstone Compiler. One of the early published descriptions of implementing a compiler. See the related papers: Whetstone Algol Revisited, and The Whetstone KDF9 Algol Translator by B. Randell
    • E. W, Dijkstra, Algol 60 translation: an algol 60 translator for the x1 and making a translator for algol 60, report MR 35/61. Mathematisch Centrum, Amsterdam, 1961. http://www.cs.utexas.edu/users/EWD/MCReps/MR35.PDF

    Comparisons with other languages


    External links

    The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
     
    x
    OK