ALGOL (language)
See also: ALGOL
Algol is a Computer programming language. It was created at the end of the Années 1950. Its name is the acronym dalgo' rithmic L anguage (with a wink with the star β Persei). Its objective was to describe problems of programming algorithmiquement. The principal differences on the level of the design compared to FORTRAN were the use of blocks marked by BEGIN END and especially the Récursivité, concepts which will be largely taken again by its successors.
History
The first report/ratio describing the language goes back to 1958 and thus gave place to Algol 58. There were then 2 other versions, Algol 60 and Algol 68. One can also quote Algol W which is resulting from ALGOL 60, created after 1968 while following the proposals of Niklaus Wirth which was in the work group on Algol 68 (the aforementioned proposals of Wirth having been refused by the work group defining Algol 68). Wirth will take as a starting point ALGOL W to create the language PASCAL. While Algol 60 was developed jointly by a team including/understanding of American and Europeans, Algol 68 was mainly conceived in Europe.Except a university success some, ALGOL will not be used much in commercial programs. That is due in particular for ALGOL 60 to the lack of functions standards of input-output, defect surcorrigé in Algol 68. A bad adaptation to the control programs were also a brake with its development, however it influenced considerably the development of many computer programming languages.
ALGOL 60 was published in 1960. John Backus and Peter Naur belonged to the committee which created it. ALGOL 60 inspired many languages. A traditional quotation in this respect is allotted to A.C.R. Hoare: “ALGOL was a great improvement of its successors”. This comment is sometimes allotted wrongfully to Edsger Dijkstra known also for its humorous comments.
The continuation of this article is mainly devoted to the language Algol 60. Indeed, without mention of year the Algol term indicates the language Algol 60.
Characteristics
ALGOL 60 is a typified, procedural language recursive and with structure of blocks. It allows the construction of the dynamic types but its system of typing does not make it possible the user to define new types. ALGOL 60 was defined without instructions of inputs/outputs; an implementation on a given machine necessarily comprised some, but they varied one with the other. In reaction to this situation, ALGOL 68 surspécifiées them.ALGOL 60 allows two types of passage of parameters at the time of the call of procedure: Passage by value and the Passage by name. The passage by name also has certain limitations compared to the Passage by reference it was abandoned in the successors of ALGOL 60. For example it is impossible in ALGOL 60 to write a procedure exchanging two values if one of the parameters is an entirety and the other a table indexed by this entirety.
John Backus conceived BNF for Backus Normal Form allowing the specification of Algol 58. This method of description of a language was revised and extended by Peter Naur under the name Backus Naur Form with the same acronym to specify ALGOL 60.
ALGOL 68
Algol 68 was defined by a Grammaire independent of the context which bears the name of its originator Adriaan van Wijngaarden. Were added to the previous model the possibility of defining new types, the overload and the extension of the preset operators.
Structure supporting Algol
The B5000 of Burroughs Corporation and its successors were and are machines with pile designed to be programmed with a wide ALGOL; their Operating systems is written in ALGOL since 1961. Unisys Corporation continues to market machines going down from B5000 supporting several wide compilers ALGOL.
Example of code (ALGOL 60)
Terms in bold character ( procedure ,…) are reserved words of the language. Each implementation of the language can use its own syntactic convention (for example “PROCEDURE”).
procedure Absmax (a) Size: (N, m) Result: (there) Subscripts: (I, K); been worth N, m; array has; integer N, m, I, K; real there; how the largest element in absolute value of the matrix has of size N per m is transferred to there and the indices from this element with I and K; begin integer p, Q; there: = 0; I: = K: = 1; for p: =1 step 1 until N C for Q: =1 step 1 until m C yew ABS (Q has) > there then begin there: = ABS (Q has); I: = p; K: = Q end end Absmax
| Random links: | Aspin | David Collenette | HongKong Museum off Coastal Defense | By dubious times | CCY |