Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
ALGOL 68
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Overview== ALGOL 68 features include expression-based syntax, user-declared types and structures/tagged-unions, a reference model of variables and reference parameters, string, array and matrix slicing, and concurrency. ALGOL 68 was designed by the [[International Federation for Information Processing]] (IFIP) [[IFIP Working Group 2.1]] on Algorithmic Languages and Calculi. On December 20, 1968, the language was formally adopted by the group, and then approved for publication by the General Assembly of IFIP. ALGOL 68 was defined using a [[Formalism (philosophy of mathematics)|formalism]], a two-level [[formal grammar]], invented by [[Adriaan van Wijngaarden]]. [[Van Wijngaarden grammar]]s use a [[context-free grammar]] to generate an infinite set of productions that will recognize a particular ALGOL 68 program; notably, they are able to express the kind of requirements that in many other programming language [[technical standard]]s are labelled ''semantics'', and must be expressed in ambiguity-prone natural language prose, and then implemented in compilers as ''ad hoc'' code attached to the formal language parser. {{quote box|align=right|style=width: 23em;|ALGOL 68 was the first (and possibly one of the last) major language for which a full formal definition was made before it was implemented. |author=[[Cornelis H. A. Koster|C. H. A. Koster]]<ref name="ashoa68">{{cite web |title=A Shorter History of ALGOL 68 |url=http://npt.cc.rsu.ru/user/wanderer/ODP/ALGOL68.txt |access-date=2006-09-15 |url-status=dead |archive-url=https://web.archive.org/web/20060810103448/http://npt.cc.rsu.ru/user/wanderer/ODP/ALGOL68.txt |archive-date=2006-08-10}}</ref>}} The main aims and principles of design of ALGOL 68 are:<ref name="aims-and-principles">{{Cite web|url=https://jmvdveer.home.xs4all.nl//en.post.algol-68-revised-report.html#01|archive-url=https://web.archive.org/web/20130317015548/http://jmvdveer.home.xs4all.nl/report.html#011|url-status=dead|title=Revised Report on the Algorithmic Language Algol 68|at=0.1. Aims and principles of design|first=Marcel van der|last=Veer|date=5 April 2023|archive-date=17 March 2013|website=jmvdveer.home.xs4all.nl/}}</ref> # Completeness and clarity of description # [[Orthogonality]] of design # Security # Efficiency: #* Static mode checking #* Mode-independent parsing #* Independent compiling #* Loop optimizing #* Representations – in minimal & larger [[Character encoding|character sets]] ALGOL 68 has been criticized, most prominently by some members of its design committee such as [[C. A. R. Hoare]] and [[Edsger Dijkstra]], for abandoning the simplicity of [[ALGOL 60]], becoming a vehicle for complex or overly general ideas, and doing little to make the [[compiler]] writer's task easier, in contrast to deliberately simple contemporaries (and competitors) such as [[C (programming language)|C]], [[S-algol]] and [[Pascal (programming language)|Pascal]]. In 1970, [[ALGOL 68-R]] became the first working compiler for ALGOL 68. In the 1973 revision, certain features — such as [[ALGOL 68-R#No proceduring|proceduring]], gommas<ref>{{Cite web|url=https://groups.google.com/group/comp.lang.misc/msg/03af5063e1662d4d|title = Gommas?}}</ref> and [[ALGOL 68-R#No formal declarers|formal bounds]] — were omitted.<ref name="a68r0-jmvdveer">[http://jmvdveer.home.xs4all.nl/report.html#03B Revised Report on the Algorithmic Language Algol 68] {{webarchive |url=https://web.archive.org/web/20130317015548/http://jmvdveer.home.xs4all.nl/report.html#03B |date=2013-03-17}}. jmvdveer.home.xs4all.nl (1968-12-20). Retrieved on 2013-07-21.</ref> Cf. [[#The language of the unrevised report|The language of the unrevised report.<sup>r0</sup>]] Though European defence agencies (in Britain [[Royal Signals and Radar Establishment]] (RSRE)) promoted the use of ALGOL 68 for its expected security advantages, the American side of the NATO alliance decided to develop a different project, the language [[Ada (programming language)|Ada]], making its use obligatory for US defense contracts. ALGOL 68 also had a notable influence in the [[Soviet Union]], details of which can be found in [[Andrey Terekhov]]'s 2014 paper: "ALGOL 68 and Its Impact on the USSR and Russian Programming",<ref>{{Cite conference |last=Terekhov |first=Andrey |date=2014 |title=ALGOL 68 and Its Impact on the USSR and Russian Programming |conference=2014 Third International Conference on Computer Technology in Russia and in the Former Soviet Union |pages=97–106 |doi=10.1109/SoRuCom.2014.29 |isbn=978-1-4799-1799-0 |s2cid=16097093}}</ref> and "Алгол 68 и его влияние на программирование в СССР и России".<ref>{{cite conference |last=Терехов |first=Андрей Николаевич |date=2014 |title=Алгол 68 и его влияние на программирование в СССР и России |language=ru |trans-title=Algol 68 and its influence on programming in the USSR and Russia |conference=Третья Международная конференция, Развитие вычислительной техники и ее программного обеспечения в России и странах бывшего СССР: история и перспективы |pages=336-347 |url=https://sorucom.iis.nsk.su/files/news/sorucom2014.pdf}}</ref> [[Steve Bourne]], who was on the ALGOL 68 revision committee, took some of its ideas to his [[Bourne shell]] (and thereby, to descendant [[Unix shell]]s such as [[Bash (Unix shell)|Bash]]) and to [[C (programming language)|C]] (and thereby to descendants such as [[C++]]). The complete history of the project can be found in [[Charles H. Lindsey|C. H. Lindsey]]'s "A History of ALGOL 68".<ref name="ahoa68"> {{cite book |last=Lindsey |first=Charles H. |author-link=Charles H. Lindsey |publisher=[[ACM Press]] |chapter=A History of ALGOL 68 |pages=27–96 |title=History of Programming Languages II |editor1-first=T. J. |editor1-last=Bergin |editor2-first=R. G. |editor2-last=Gibson |date=1996 |isbn=978-0-201-89502-5 |title-link=History of Programming Languages (conference)#HOPL II}} Also in {{cite journal|volume=28 |number=3 |pages=97–132 |date=March 1993 |title=A history of ALGOL 68 |journal=ACM SIGPLAN Notices |doi=10.1145/155360.155365 |ref=none }} Includes a comprehensive bibliography of the meetings and discussions before, during and after development of ALGOL 68. </ref> For a full-length treatment of the language, see "Programming ALGOL 68 Made Easy"<ref>[http://www.nunan.myzen.co.uk/algol68/pame.pdf Programming Algol 68 Made Easy]</ref> by Dr. Sian Mountbatten, or "Learning ALGOL 68 Genie"<ref>{{Cite web|url=https://jmvdveer.home.xs4all.nl//en.algol-68-genie.html|title=Marcel van der Veer - Algol 68 Genie|first=Marcel van der|last=Veer|website=jmvdveer.home.xs4all.nl/}}</ref> by Marcel van der Veer which includes the Revised Report.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)