[[File:Algol68.png|64px|left|alt=Language|link=http://sourceforge.net/projects/algol68]]
{{language|ALGOL 68
|parampass=both
|strength=strong
|safety=safe
|express=explicit
|compat=structural
|checking=both
|tags=algol68
|LCT=yes}}
ALGOL 68 (short for ALGOrithmic Language 1968) is an [[imperative programming|imperative]] computer programming language that was conceived as a successor to the ALGOL 60 programming language, designed with the goal of a much wider scope of application and more rigorously defined syntax and semantics.

The main aims and principles of design of ALGOL 68:
#Completeness and clarity of design,
#Orthogonal design,
#Security,
#Efficiency: 
#* Static mode checking,
#* Mode-independent parsing,
#* Independent compilation,
#* Loop optimization,
#* Representations - in minimal & larger character sets.
<br><br>
==Execute an ALGOL 68 program online==
* http://www.compileonline.com/execute_algol_online.php
* Algol 68G is available as one of the languages at https://tio.run

==Tasks not implemented in ALGOL 68==
[[Tasks not implemented in ALGOL 68]]

==Grammar==
The formal definition of Algol 68 is given by a "Two-Level" or [[wp:Van Wijngaarden grammar|"Van Wijngaarden" grammar]].
This specifies much more than "just" the syntax and includes such semantic details as the requirement of identifiers to be declared, the necessary type checking and coercions to be applied, etc. The degree of precision allowed by the grammar came at the cost of increased complexity relative to Backus Naur Form, which was used to define [[ALGOL 60]]. It is recomended that less formal material (such as the books mentioned under "Resources" below) be consulted before delving into the Revised Report. 
<br>
<br>
A syntax chart is available [http://www.softwarepreservation.org/projects/ALGOL/book/Lindsey_van_der_Meulen-IItA68-Revised-SyntaxOnly.pdf/view here]

==Resources==
* [http://archive.computerhistory.org/resources/text/algol/algol_bulletin ALGOL BULLETIN] - March 1959 to August 1988, in 52 issues
* [https://lists.sourceforge.net/lists/listinfo/algol68-user Algol68 mailinglist] - December 2008 - algol68-user AT lists.sourceforge.net
* [http://www.linkedin.com/groups/Algol68-2333923 Algol68 group at linkedin] - includes various famous compiler composers.
<br>
'''Books available online''':
* [https://algol68genie.nl/ Algol 68G Manual - By Marcel van der Veer] Includes the Revised Report
* [http://www.softwarepreservation.org/projects/ALGOL/book/pame.2008.a4.pdf/view Programming Algol 68 Made Easy -  by Sian Mountbatten (on softwarepreservation.org)]
* [http://www.softwarepreservation.org/projects/ALGOL/book/Lindsey_van_der_Meulen-IItA68-Revised.pdf/view Informal Introduction to Algol 68 - by C. H. Lindsey & S. V. Van der Meulen (on softwarepreservation.org)] - if you prefer (and find) a hardcopy, be sure to get the 1977 edition. Highly recomended!

<br>
'''Editor modes''':
* [http://www.jemarch.net/a68-mode.el Emacs mode] for Algol 68  supporting syntax highlighting and context-sensitive indentation.
* [http://www.vim.org/scripts/script.php?script_id=1927 Vim script] providing support for syntax highlighting.
* [http://qbnz.com/highlighter/demo.php GeSHi syntax highlighting]
* [https://marketplace.visualstudio.com/items?itemName=jlguenego.algol68 VS-Code Algol 68 syntax highlighting]

==Status==
* 20th December 1968 - '''ALGOL 68's''' Final Report was ratified by [http://en.wikipedia.org/wiki/UNESCO UNESCO's] [http://en.wikipedia.org/wiki/IFIP IFIP] working group 2.1 in Munich.
* 20th December 2008 - [[Zig_Zag#ALGOL 68|Zig Zag]] - the 100th '''ALGOL 68''' code contribution on rosettacode.org! 
** Happy 40th Birthday '''ALGOL 68''', 
** AND 50th Birthday '''ALGOL 58'''.
* 23rd August 2009 - [http://sourceforge.net/projects/algol68/files/ algol68g-1.18.0-9h] released
* 20th December 2009 - Happy 51st/41st Birthdays with [[Hamming_numbers#ALGOL_68|Hamming numbers]] - the 200th '''ALGOL 68''' code contribution on rosettacode.org!  
** This time code was by [[User:Algol68g|Marcel van der Veer]], author of [https://algol68genie.nl Algol 68 Genie]
* 25th October 2011 - [[User:Jejones3141|Jejones3141]] added [[Soundex#ALGOL_68|Soundex]] - the 300th '''ALGOL 68''' code specimen.

== Revisions ==
*Mar. 1968: Draft Report on the Algorithmic Language ALGOL 68 - Edited by: A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck and C.H.A. Koster.  
*Oct. 1968: Penultimate Draft Report on the Algorithmic Language ALGOL 68 - Chapters 1-9 - Edited by: A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck and C.H.A. Koster.
*Dec. 1968: Report on the Algorithmic Language ALGOL 68 - Offprint from Numerische Mathematik, 14, 79-218 (1969); Springer-Verlag. - Edited by: A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck and C.H.A. Koster.  
*Sep 1973: Revised Report on the Algorithmic Language Algol 68 - Springer-Verlag 1976 - Edited by: A. van Wijngaarden, B.J. Mailloux, J.E.L. Peck, C.H.A. Koster, M. Sintzoff, C.H. Lindsey, L.G.L.T. Meertens and R.G. Fisker.
==Coding style of samples, alphabets and stropping==
See [[ALGOL 68 Representation]].

== Coercion (casting) ==
ALGOL 68 has a hierarchy of contexts which determine which kind of coercions are available at a particular point in the program.<br/>
See [[:Category:ALGOL_68_Coercions|ALGOL 68 Coercions]] for more details.

==See also==
*[[Web 68]]
*[[ALGOL 60]]
*[[ALGOL W]]
<br>
* [[Action!]]
* [[Agena]]
* [[Draco]]
* [[RTL/2]]
* [https://en.wikipedia.org/wiki/S3_(programming_language) S3 for ICL 2900]

== Library code used in Rosetta Code samples ==
* [[ALGOL_68/prelude|Various (including the standard prelude)]]
*
* [[:Category:ALGOL_68-bits|bit-manipulation related]]
* [[:Category:ALGOL_68-files|File related]]
* [[:Category:ALGOL_68-l-system|L-System related]]
* [[:Category:ALGOL_68-primes|Prime related]]
* [[:Category:ALGOL_68-rows|Row (array) related]]
* [[:Category:ALGOL_68-sort|Sorting related]]

== Tools ==
[[Syntax_highlighting_using_Mediawiki_formatting#ALGOL 68|Format an upper-stropped Algol 68 source with Mediawiki markup]]<br/>
[[Compiler/Simple_file_inclusion_pre_processor#ALGOL 68|Implement ''read'' and ''include'' pragmatic-comments for compilers that don't support file inclusion]]

{{language programming paradigm|Concurrent}}
{{language programming paradigm|Imperative}}