~ Office Supplies ~~ Buy Posters ~~ A-Z Products ~~ Website Advertising


Algol programming language - Wikipedia

<<Up     Contents

Algol programming language

Redirected from ALGOL

Algol is a computer programming language originally developed in 1958, which was named for the algorithmic process of definition of a programming problem. It is short for Algorithmic Language. In some ways, it was a reaction to Fortran and was a precursor to Pascal. It uses words to bracket blocks and was the first to use begin end pairs.

There were three main official versions of Algol: Algol 58[?], Algol 60, and Algol 68[?]. Of these, Algol 60 was by far the most influential. (Algol 60 produced Algol W, which was used by Niklaus Wirth to develop Pascal.) Each of the official Algol versions is named after the year in which it was published.

Algol was developed jointly by a committee of European and American computer scientists. It had at least three different syntaxes: a reference syntax, a publication syntax, and an implementation syntax. The different syntaxes permitted it to use different keyword names, conventions for decimal points (commas vs. periods) for different languages.

Algol 60 was released in 1960. John Backus and Peter Naur both served on the committee which created it. Algol 60 inspired many languages that followed it; the canonical quote in this regard is C.A.R. Hoare's "Algol was a great improvement on its successors." The Burroughs Corporation's B5000[?] and its successors were and are stack machines[?] designed to be programmed in an extended Algol; indeed their operating system, or MCP (Master Control Program) as they are called, is written in an extended Algol back in 1961. The Unisys Corporation still markets machines descended from the B5000 today, running the MCP and supporting several extended Algol compilers.

Algol 60 as officially defined had no I/O facilities; implementations necessarily had to add some, but they varied from one implementation to another. Algol 68 perhaps went overboard with its I/O (or "transput") facilities in reaction.

Algol 60 allowed for two types of parameter passing: call-by-value, and the innovation of call-by-name, which was later abandoned by its successor languages. Call-by-name had certain limitations in contrast to call-by-reference, making it an undesirable feature in 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.

John Backus developed the Backus normal form method of describing programming languages specifically for Algol 58[?]. It was revised and expanded by Peter Naur to the Backus-Naur form for Algol 60. Algol 68 was defined using a two-level grammar of the sort invented by Adriaan van Wijngaarden[?] and which bears his name. The van Wijngaarden grammar uses a context-free grammar to generate an infinite set of productions that will recognize a particular Algol 68 program; it is able to express the kind of requirements that in many other programming language standards are labelled "semantics", expressed in often-ambiguous natural language prose, and implemented in compilers in ad hoc code attached to the formal language parser.

Code Sample (Hello World)

 % the main program (this is a comment)

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

External links

Charles Lindsey (http://www.cs.man.ac.uk/~chl/index.html)'s wonderful and bittersweet paper on the development of Algol 68 in the second History of Programming Languages proceedings is well worth reading, and perhaps dispels some of the common myths about the language.

wikipedia.org dumped 2003-03-17 with terodump




 
 
88 carat Unique Mexican CRAZY LACE AGATE rough cabbing gemstone tumbled jewelry wirewrap piece nice
 88 carat Unique Mexican CRAZY LACE AGATE cabbing tumbled jewelry wirewrap piece nice 
 
49 gram mint green PREHNITE gem stone Cab cabbing cabochon rough gemstone cabachon specimen 244 cts
 49 gram mint green PREHNITE Cab cabbing cabochon cabachon specimen 244 cts 
 
11 carats maroon red Jasper agate gems Polished rectangle block Cabbing cab cabochon rough gemstones
 11 carats maroon red Jasper agate Polished rectangle block Cabbing cab cabochon  
 
75 carats rough tumble polished MOZAMBIQUE Garnet jewelery designer accent gemstone jewel parcel lot
 75 carats tumble polished MOZAMBIQUE Garnet jewelery designer accent jewel parcel lot 
 
34 grams Ruby-In-Zoisite green black gem stones Tumble polished lapidary carving rough raw uncut
 34 grams Ruby-In-Zoisite green black Tumble polished lapidary carving raw uncut