ALGOL 68 <language> An extensive revision of {ALGOL 60} by Adriaan van Wijngaarden et al. ALGOL 68 was discussed from 1963 by Working Group 2.1 of {IFIP}. Its definition was accepted in December 1968. ALGOL 68 was the first, and still one of very few, programming languages for which a complete formal specification was created before its implementation. However, this specification was hard to understand due to its formality, the fact that it used an unfamiliar {metasyntax} notation (not {BNF}) and its unconventional terminology. One of the singular features of ALGOL 68 was its {orthogonal} design, making for freedom from arbitrary rules (such as restrictions in other languages that arrays could only be used as parameters but not as results). It also allowed {user defined data types}, then an unheard-of feature. It featured {structural equivalence}; automatic type conversion ("{coercion}") including {dereferencing}; {flexible arrays}; generalised loops (for-from-by-to-while-do-od), if-then-else-elif-fi, an integer case statement with an 'out' clause (case-in-out-esac); {skip} and {goto} statements; {blocks}; {procedures}; user-defined {operators}; {procedure parameters}; {concurrent} execution (par-begin-end); {semaphores}; generators "heap" and "loc" for {dynamic allocation}. It had no {abstract data types} or {separate compilation}. (http://www.bookrags.com/research/algol-68-wcs/). (2007-04-24)