Difference between revisions of "Algol"

From Chessprogramming wiki
Jump to: navigation, search
(Created page with "'''Home * Programming * Languages * Algol''' FILE:Eclipsing binary star animation 2.gif|border|right|thumb| Algol rotation <ref>Eclipsing binary star...")
 
 
Line 3: Line 3:
 
[[FILE:Eclipsing binary star animation 2.gif|border|right|thumb|  Algol rotation <ref>Eclipsing binary star animation, created by [https://commons.wikimedia.org/wiki/User:Stanlekub Stanlekub] with [https://en.wikipedia.org/wiki/Blender_(software) Blender] and the [https://en.wikipedia.org/wiki/GIMP GIMP], [https://de.wikipedia.org/wiki/Algol_(Stern)#Bedeckungsver%C3%A4nderlicher_Stern Algol (Stern) Wikipedia.de], [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]]  
 
[[FILE:Eclipsing binary star animation 2.gif|border|right|thumb|  Algol rotation <ref>Eclipsing binary star animation, created by [https://commons.wikimedia.org/wiki/User:Stanlekub Stanlekub] with [https://en.wikipedia.org/wiki/Blender_(software) Blender] and the [https://en.wikipedia.org/wiki/GIMP GIMP], [https://de.wikipedia.org/wiki/Algol_(Stern)#Bedeckungsver%C3%A4nderlicher_Stern Algol (Stern) Wikipedia.de], [https://en.wikipedia.org/wiki/Wikimedia_Commons Wikimedia Commons]</ref> ]]  
  
'''Algol''' (ALGOL, ALGOrithmic Language)<br/>
+
'''ALGOL''' (ALGOrithmic Language)<br/>
 
is a family of [https://en.wikipedia.org/wiki/Imperative_programming imperative] computer programming languages developed jointly by a committee of European and American computer scientists in a meeting in 1958 at [[ETH Zurich]] ([https://en.wikipedia.org/wiki/ALGOL_58 Algol 58]).  
 
is a family of [https://en.wikipedia.org/wiki/Imperative_programming imperative] computer programming languages developed jointly by a committee of European and American computer scientists in a meeting in 1958 at [[ETH Zurich]] ([https://en.wikipedia.org/wiki/ALGOL_58 Algol 58]).  
 
Algol 58 introduced code blocks and the begin and end pairs for delimiting them. Two years later, [https://en.wikipedia.org/wiki/ALGOL_60 Algol 60] was specified, as the result of a meeting in Paris in January 1960 by 13 European and American scientists, [https://en.wikipedia.org/wiki/Peter_Naur Peter Naur], [https://en.wikipedia.org/wiki/John_Backus John Backus], [[John McCarthy]], [[Mathematician#Bauer|Friedrich L. Bauer]], [[Mathematician#AvWijngaarden|Adriaan van Wijngaarden]], et al. Algol 60 became the standard for the publication of algorithms and had a profound effect on future language development, it was the first language implementing [https://en.wikipedia.org/wiki/Nested_function nested function] definitions with [https://en.wikipedia.org/wiki/Lexical_scope#Static_versus_dynamic_scoping lexical scope].  
 
Algol 58 introduced code blocks and the begin and end pairs for delimiting them. Two years later, [https://en.wikipedia.org/wiki/ALGOL_60 Algol 60] was specified, as the result of a meeting in Paris in January 1960 by 13 European and American scientists, [https://en.wikipedia.org/wiki/Peter_Naur Peter Naur], [https://en.wikipedia.org/wiki/John_Backus John Backus], [[John McCarthy]], [[Mathematician#Bauer|Friedrich L. Bauer]], [[Mathematician#AvWijngaarden|Adriaan van Wijngaarden]], et al. Algol 60 became the standard for the publication of algorithms and had a profound effect on future language development, it was the first language implementing [https://en.wikipedia.org/wiki/Nested_function nested function] definitions with [https://en.wikipedia.org/wiki/Lexical_scope#Static_versus_dynamic_scoping lexical scope].  
Line 29: Line 29:
 
11678 END CLEAR;
 
11678 END CLEAR;
 
</pre>
 
</pre>
 +
 +
=Algol Chess Programs=
 +
* [[:Category:Algol|Category Algol]]
  
 
=Selected Publications=
 
=Selected Publications=
 +
* [[Mathematician#Samelson|Klaus Samelson]], [[Mathematician#Bauer|Friedrich L. Bauer]] ('''1960'''). ''[http://portal.acm.org/citation.cfm?id=366968 Sequential Formula Translation]''. [[ACM#Communications|Communications of the ACM]], Vol. 3 No. 2
 
* [[Christopher Strachey]], [[Mathematician#MVWilkes|Maurice Wilkes]] ('''1961'''). ''[https://dl.acm.org/doi/10.1145/366813.366816 Some Proposals for Improving the Efficiency of ALGOL 60]''. [[ACM#Communications|Communications of the ACM]], Vol. 4, No. 11
 
* [[Christopher Strachey]], [[Mathematician#MVWilkes|Maurice Wilkes]] ('''1961'''). ''[https://dl.acm.org/doi/10.1145/366813.366816 Some Proposals for Improving the Efficiency of ALGOL 60]''. [[ACM#Communications|Communications of the ACM]], Vol. 4, No. 11
 
* [http://www.mathnet.ru/php/person.phtml?option_lang=eng&personid=63222 V. I. Sobel'man], [[Mikhail R. Shura-Bura]] ('''1962'''). ''[http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=zvmmf&paperid=7886&option_lang=eng Realization of recursive procedures in the language of AlGOL-60]''. (Реализация Рекурсивных Процедур В Языке Алгол-60) [http://www.mathnet.ru/php/archive.phtml?jrnid=zvmmf&option_lang=eng&wshow=statlist Zhurnal Vychislitel'noi Matematiki i Matematicheskoi Fiziki], Vol. 2, No. 2
 
* [http://www.mathnet.ru/php/person.phtml?option_lang=eng&personid=63222 V. I. Sobel'man], [[Mikhail R. Shura-Bura]] ('''1962'''). ''[http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=zvmmf&paperid=7886&option_lang=eng Realization of recursive procedures in the language of AlGOL-60]''. (Реализация Рекурсивных Процедур В Языке Алгол-60) [http://www.mathnet.ru/php/archive.phtml?jrnid=zvmmf&option_lang=eng&wshow=statlist Zhurnal Vychislitel'noi Matematiki i Matematicheskoi Fiziki], Vol. 2, No. 2
Line 39: Line 43:
 
* [https://en.wikipedia.org/wiki/ALGOL_60 ALGOL 60 from Wikipedia]
 
* [https://en.wikipedia.org/wiki/ALGOL_60 ALGOL 60 from Wikipedia]
 
* [https://en.wikipedia.org/wiki/ALGOL_68 ALGOL 68 from Wikipedia]
 
* [https://en.wikipedia.org/wiki/ALGOL_68 ALGOL 68 from Wikipedia]
 +
* [https://en.wikipedia.org/wiki/ALGOL_W ALGOL W from Wikipedia]
 
* [http://www.softwarepreservation.org/projects/ALGOL History of ALGOL — Software Preservation Group] from [[The Computer History Museum]]
 
* [http://www.softwarepreservation.org/projects/ALGOL History of ALGOL — Software Preservation Group] from [[The Computer History Museum]]
* [https://en.wikipedia.org/wiki/ALGOL_W ALGOL W from Wikipedia]
+
* [http://www.softwarepreservation.org/projects/ALGOL/algol58impl Algol 58 implementations and dialects — Software Preservation Group] from [[The Computer History Museum]]
 +
* [http://www.softwarepreservation.org/projects/ALGOL/algol60impl Algol 60 implementations and dialects — Software Preservation Group] from [[The Computer History Museum]]
 +
* [http://www.softwarepreservation.org/projects/ALGOL/algol68impl Algol 68 implementations and dialects — Software Preservation Group] from [[The Computer History Museum]]
 
* [http://www.osp.ru/cw/1999/45/38679/ Трансляторы с Алгола-60 - № 45, 1999] [[Computerworld#Russia|Computerworld Россия]] (Russian)
 
* [http://www.osp.ru/cw/1999/45/38679/ Трансляторы с Алгола-60 - № 45, 1999] [[Computerworld#Russia|Computerworld Россия]] (Russian)
  

Latest revision as of 10:01, 29 February 2020

Home * Programming * Languages * Algol

Algol rotation [1]

ALGOL (ALGOrithmic Language)
is a family of imperative computer programming languages developed jointly by a committee of European and American computer scientists in a meeting in 1958 at ETH Zurich (Algol 58). Algol 58 introduced code blocks and the begin and end pairs for delimiting them. Two years later, Algol 60 was specified, as the result of a meeting in Paris in January 1960 by 13 European and American scientists, Peter Naur, John Backus, John McCarthy, Friedrich L. Bauer, Adriaan van Wijngaarden, et al. Algol 60 became the standard for the publication of algorithms and had a profound effect on future language development, it was the first language implementing nested function definitions with lexical scope. Algol 68 was designed by IFIP, while Niklaus Wirth based his own Algol W [2] on Algol 60 before moving to develop Pascal.

Algol W

A boolean procedure in Algol W from the chess program Awit by Tony Marsland [3] :

11662 LOGICAL PROCEDURE CLEAR(INTEGER VALUE SQA, SQF, SQT);
11663 BEGIN
11664   INTEGER DIR;
11665   LOGICAL FREE;
11666   FREE := FALSE;
11667   DIR := BOTV(EDGE, OFFSET(SQF)−OFFSET(SQT));
11668   IF DIR ~= 0 THEN BEGIN
11669     FREE := TRUE;
11670     IF SQA ~= SQF AND
11671        DIR = BOTV(EDGE, OFFSET(SQA)−OFFSET(SQT))
11672     THEN FREE := FALSE;
11673     FOR SQ := SQF+DIR STEP DIR UNTIL SQT−DIR
11674     DO IF FREE AND BRD(SQ) ~= 0
11675       THEN FREE := FALSE;
11676   END;
11677   FREE
11678 END CLEAR;

Algol Chess Programs

Selected Publications

External Links

References

Up one Level