CINXE.COM
ALGOL 68 - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>ALGOL 68 - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"a003c165-1be4-4151-b76c-100247fabdd1","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"ALGOL_68","wgTitle":"ALGOL 68","wgCurRevisionId":1257674219,"wgRevisionId":1257674219,"wgArticleId":692880,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["CS1 interwiki-linked names","Webarchive template wayback links","CS1 errors: periodical ignored","All articles with dead external links","Articles with dead external links from November 2016","Articles with permanently dead external links","CS1 Russian-language sources (ru)","CS1 maint: archived copy as title","Articles with dead external links from October 2016","Articles with short description","Short description matches Wikidata","Use dmy dates from May 2019", "All articles with unsourced statements","Articles with unsourced statements from August 2011","Articles with dead external links from June 2017","Articles with example ALGOL 68 code","ALGOL 68","Algol programming language family","Academic programming languages","Computer-related introductions in 1968","Procedural programming languages","Programming languages created in 1968","Systems programming languages","Programming languages"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"ALGOL_68","wgRelevantArticleId":692880,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"}, "wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":100000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q2166735","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles": "ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.tablesorter.styles":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","mediawiki.page.media","ext.scribunto.logs","site","mediawiki.page.ready","jquery.tablesorter","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions", "wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cjquery.tablesorter.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/en/3/35/Algol68RevisedReportCover.jpg"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1775"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/en/3/35/Algol68RevisedReportCover.jpg"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="1183"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="946"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="ALGOL 68 - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/ALGOL_68"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=ALGOL_68&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/ALGOL_68"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-ALGOL_68 rootpage-ALGOL_68 skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=ALGOL+68" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=ALGOL+68" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=ALGOL+68" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=ALGOL+68" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Overview" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Overview"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Overview</span> </div> </a> <ul id="toc-Overview-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>History</span> </div> </a> <button aria-controls="toc-History-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle History subsection</span> </button> <ul id="toc-History-sublist" class="vector-toc-list"> <li id="toc-Origins" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Origins"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Origins</span> </div> </a> <ul id="toc-Origins-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Definition_process" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Definition_process"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Definition process</span> </div> </a> <ul id="toc-Definition_process-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Publication" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Publication"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Publication</span> </div> </a> <ul id="toc-Publication-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Implementations" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Implementations"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4</span> <span>Implementations</span> </div> </a> <ul id="toc-Implementations-sublist" class="vector-toc-list"> <li id="toc-ALGOL_68-R" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#ALGOL_68-R"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4.1</span> <span>ALGOL 68-R</span> </div> </a> <ul id="toc-ALGOL_68-R-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Others" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Others"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4.2</span> <span>Others</span> </div> </a> <ul id="toc-Others-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Timeline" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Timeline"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5</span> <span>Timeline</span> </div> </a> <ul id="toc-Timeline-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-The_Algorithmic_Language_ALGOL_68_Reports_and_Working_Group_members" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#The_Algorithmic_Language_ALGOL_68_Reports_and_Working_Group_members"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.6</span> <span>The Algorithmic Language ALGOL 68 Reports and Working Group members</span> </div> </a> <ul id="toc-The_Algorithmic_Language_ALGOL_68_Reports_and_Working_Group_members-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Timeline_of_standardization" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Timeline_of_standardization"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.7</span> <span>Timeline of standardization</span> </div> </a> <ul id="toc-Timeline_of_standardization-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Notable_language_elements" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Notable_language_elements"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Notable language elements</span> </div> </a> <button aria-controls="toc-Notable_language_elements-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Notable language elements subsection</span> </button> <ul id="toc-Notable_language_elements-sublist" class="vector-toc-list"> <li id="toc-Bold_symbols_and_reserved_words" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Bold_symbols_and_reserved_words"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Bold symbols and reserved words</span> </div> </a> <ul id="toc-Bold_symbols_and_reserved_words-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Units:_Expressions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Units:_Expressions"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>Units: Expressions</span> </div> </a> <ul id="toc-Units:_Expressions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-mode:_Declarations" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#mode:_Declarations"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span> <span>mode: Declarations</span> </div> </a> <ul id="toc-mode:_Declarations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Coercions:_casting" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Coercions:_casting"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span> <span>Coercions: casting</span> </div> </a> <ul id="toc-Coercions:_casting-sublist" class="vector-toc-list"> <li id="toc-Coercion_hierarchy_with_examples" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Coercion_hierarchy_with_examples"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4.1</span> <span>Coercion hierarchy with examples</span> </div> </a> <ul id="toc-Coercion_hierarchy_with_examples-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-pr_&_co:_Pragmats_and_Comments" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#pr_&_co:_Pragmats_and_Comments"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.5</span> <span>pr & co: Pragmats and Comments</span> </div> </a> <ul id="toc-pr_&_co:_Pragmats_and_Comments-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Expressions_and_compound_statements" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Expressions_and_compound_statements"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.6</span> <span>Expressions and compound statements</span> </div> </a> <ul id="toc-Expressions_and_compound_statements-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-struct,_union_&_[:]:_Structures,_unions_and_arrays" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#struct,_union_&_[:]:_Structures,_unions_and_arrays"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.7</span> <span>struct, union & [:]: Structures, unions and arrays</span> </div> </a> <ul id="toc-struct,_union_&_[:]:_Structures,_unions_and_arrays-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-proc:_Procedures" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#proc:_Procedures"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.8</span> <span>proc: Procedures</span> </div> </a> <ul id="toc-proc:_Procedures-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-op:_Operators" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#op:_Operators"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.9</span> <span>op: Operators</span> </div> </a> <ul id="toc-op:_Operators-sublist" class="vector-toc-list"> <li id="toc-Array,_Procedure,_Dereference_and_coercion_operations" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Array,_Procedure,_Dereference_and_coercion_operations"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.9.1</span> <span>Array, Procedure, Dereference and coercion operations</span> </div> </a> <ul id="toc-Array,_Procedure,_Dereference_and_coercion_operations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Monadic_operators" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Monadic_operators"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.9.2</span> <span>Monadic operators</span> </div> </a> <ul id="toc-Monadic_operators-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Dyadic_operators_with_associated_priorities" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Dyadic_operators_with_associated_priorities"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.9.3</span> <span>Dyadic operators with associated priorities</span> </div> </a> <ul id="toc-Dyadic_operators_with_associated_priorities-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Assignation_and_identity_relations,_etc." class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Assignation_and_identity_relations,_etc."> <div class="vector-toc-text"> <span class="vector-toc-numb">3.9.4</span> <span>Assignation and identity relations, etc.</span> </div> </a> <ul id="toc-Assignation_and_identity_relations,_etc.-sublist" class="vector-toc-list"> <li id="toc-Why_:=:_and_:/=:_are_needed" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Why_:=:_and_:/=:_are_needed"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.9.4.1</span> <span>Why :=: and :/=: are needed</span> </div> </a> <ul id="toc-Why_:=:_and_:/=:_are_needed-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Special_characters" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Special_characters"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.9.5</span> <span>Special characters</span> </div> </a> <ul id="toc-Special_characters-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-transput:_Input_and_output" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#transput:_Input_and_output"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.10</span> <span>transput: Input and output</span> </div> </a> <ul id="toc-transput:_Input_and_output-sublist" class="vector-toc-list"> <li id="toc-Books,_channels_and_files" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Books,_channels_and_files"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.10.1</span> <span>Books, channels and files</span> </div> </a> <ul id="toc-Books,_channels_and_files-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-formatted_transput" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#formatted_transput"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.10.2</span> <span>formatted transput</span> </div> </a> <ul id="toc-formatted_transput-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-par:_Parallel_processing" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#par:_Parallel_processing"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.11</span> <span>par: Parallel processing</span> </div> </a> <ul id="toc-par:_Parallel_processing-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Miscellaneous" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Miscellaneous"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.12</span> <span>Miscellaneous</span> </div> </a> <ul id="toc-Miscellaneous-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Examples_of_use" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Examples_of_use"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Examples of use</span> </div> </a> <button aria-controls="toc-Examples_of_use-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Examples of use subsection</span> </button> <ul id="toc-Examples_of_use-sublist" class="vector-toc-list"> <li id="toc-Code_sample" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Code_sample"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Code sample</span> </div> </a> <ul id="toc-Code_sample-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Operating_systems_written_in_ALGOL_68" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Operating_systems_written_in_ALGOL_68"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Operating systems written in ALGOL 68</span> </div> </a> <ul id="toc-Operating_systems_written_in_ALGOL_68-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Applications" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Applications"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>Applications</span> </div> </a> <ul id="toc-Applications-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Libraries_and_APIs" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Libraries_and_APIs"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.4</span> <span>Libraries and APIs</span> </div> </a> <ul id="toc-Libraries_and_APIs-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Program_representation" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Program_representation"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Program representation</span> </div> </a> <button aria-controls="toc-Program_representation-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Program representation subsection</span> </button> <ul id="toc-Program_representation-sublist" class="vector-toc-list"> <li id="toc-Example_of_different_program_representations" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Example_of_different_program_representations"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>Example of different program representations</span> </div> </a> <ul id="toc-Example_of_different_program_representations-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Revisions" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Revisions"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Revisions</span> </div> </a> <button aria-controls="toc-Revisions-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Revisions subsection</span> </button> <ul id="toc-Revisions-sublist" class="vector-toc-list"> <li id="toc-The_language_of_the_unrevised_report" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#The_language_of_the_unrevised_report"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.1</span> <span>The language of the unrevised report</span> </div> </a> <ul id="toc-The_language_of_the_unrevised_report-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Extension_proposals_from_IFIP_WG_2.1" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Extension_proposals_from_IFIP_WG_2.1"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.2</span> <span>Extension proposals from IFIP WG 2.1</span> </div> </a> <ul id="toc-Extension_proposals_from_IFIP_WG_2.1-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-True_ALGOL_68s_specification_and_implementation_timeline" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#True_ALGOL_68s_specification_and_implementation_timeline"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.3</span> <span>True ALGOL 68s specification and implementation timeline</span> </div> </a> <ul id="toc-True_ALGOL_68s_specification_and_implementation_timeline-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Implementation_specific_extensions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Implementation_specific_extensions"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.4</span> <span>Implementation specific extensions</span> </div> </a> <ul id="toc-Implementation_specific_extensions-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Quotes" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Quotes"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Quotes</span> </div> </a> <ul id="toc-Quotes-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>References</span> </div> </a> <button aria-controls="toc-References-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle References subsection</span> </button> <ul id="toc-References-sublist" class="vector-toc-list"> <li id="toc-Citations" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Citations"> <div class="vector-toc-text"> <span class="vector-toc-numb">9.1</span> <span>Citations</span> </div> </a> <ul id="toc-Citations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Works_cited" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Works_cited"> <div class="vector-toc-text"> <span class="vector-toc-numb">9.2</span> <span>Works cited</span> </div> </a> <ul id="toc-Works_cited-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">ALGOL 68</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 17 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-17" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">17 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%A7%D9%84%D8%BA%D9%88%D9%84_68" title="الغول 68 – Arabic" lang="ar" hreflang="ar" data-title="الغول 68" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Algol_68" title="Algol 68 – German" lang="de" hreflang="de" data-title="Algol 68" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%A7%D9%84%DA%AF%D9%88%D9%84%DB%B6%DB%B8" title="الگول۶۸ – Persian" lang="fa" hreflang="fa" data-title="الگول۶۸" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Algol_68" title="Algol 68 – French" lang="fr" hreflang="fr" data-title="Algol 68" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-io mw-list-item"><a href="https://io.wikipedia.org/wiki/ALGOL_68" title="ALGOL 68 – Ido" lang="io" hreflang="io" data-title="ALGOL 68" data-language-autonym="Ido" data-language-local-name="Ido" class="interlanguage-link-target"><span>Ido</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%86%E0%B5%BD%E0%B4%97%E0%B5%8B%E0%B5%BE_68" title="ആൽഗോൾ 68 – Malayalam" lang="ml" hreflang="ml" data-title="ആൽഗോൾ 68" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Algol_68" title="Algol 68 – Dutch" lang="nl" hreflang="nl" data-title="Algol 68" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/ALGOL_68" title="ALGOL 68 – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="ALGOL 68" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-pa mw-list-item"><a href="https://pa.wikipedia.org/wiki/%E0%A8%90%E0%A8%B2%E0%A8%97%E0%A9%8C%E0%A8%B2_68" title="ਐਲਗੌਲ 68 – Punjabi" lang="pa" hreflang="pa" data-title="ਐਲਗੌਲ 68" data-language-autonym="ਪੰਜਾਬੀ" data-language-local-name="Punjabi" class="interlanguage-link-target"><span>ਪੰਜਾਬੀ</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/ALGOL_68" title="ALGOL 68 – Portuguese" lang="pt" hreflang="pt" data-title="ALGOL 68" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D0%BB_68" title="Алгол 68 – Russian" lang="ru" hreflang="ru" data-title="Алгол 68" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/ALGOL_68" title="ALGOL 68 – Slovak" lang="sk" hreflang="sk" data-title="ALGOL 68" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-tg mw-list-item"><a href="https://tg.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D0%BB_68" title="Алгол 68 – Tajik" lang="tg" hreflang="tg" data-title="Алгол 68" data-language-autonym="Тоҷикӣ" data-language-local-name="Tajik" class="interlanguage-link-target"><span>Тоҷикӣ</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/ALGOL_68" title="ALGOL 68 – Turkish" lang="tr" hreflang="tr" data-title="ALGOL 68" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/ALGOL_68" title="ALGOL 68 – Vietnamese" lang="vi" hreflang="vi" data-title="ALGOL 68" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/ALGOL_68" title="ALGOL 68 – Cantonese" lang="yue" hreflang="yue" data-title="ALGOL 68" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/ALGOL_68" title="ALGOL 68 – Chinese" lang="zh" hreflang="zh" data-title="ALGOL 68" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q2166735#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/ALGOL_68" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:ALGOL_68" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/ALGOL_68"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=ALGOL_68&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=ALGOL_68&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/ALGOL_68"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=ALGOL_68&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=ALGOL_68&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/ALGOL_68" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/ALGOL_68" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=ALGOL_68&oldid=1257674219" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=ALGOL_68&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=ALGOL_68&id=1257674219&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FALGOL_68"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FALGOL_68"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=ALGOL_68&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=ALGOL_68&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q2166735" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Programming language</div> <p class="mw-empty-elt"> </p> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">ALGOL 68</caption><tbody><tr><td colspan="2" class="infobox-image"><span typeof="mw:File"><a href="/wiki/File:Algol68RevisedReportCover.jpg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/en/thumb/3/35/Algol68RevisedReportCover.jpg/121px-Algol68RevisedReportCover.jpg" decoding="async" width="121" height="179" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/3/35/Algol68RevisedReportCover.jpg/182px-Algol68RevisedReportCover.jpg 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/3/35/Algol68RevisedReportCover.jpg/242px-Algol68RevisedReportCover.jpg 2x" data-file-width="259" data-file-height="383" /></a></span><div class="infobox-caption">Revised Report on the Algorithmic Language – Algol 68 Edited by: A. van Wijngaarden et al, September 1973<sup id="cite_ref-Wijngaarden_1976_1-0" class="reference"><a href="#cite_note-Wijngaarden_1976-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></div></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Programming_paradigm" title="Programming paradigm">Paradigms</a></th><td class="infobox-data"><a href="/wiki/Multi-paradigm_programming_language" class="mw-redirect" title="Multi-paradigm programming language">Multi-paradigm</a>: <a href="/wiki/Concurrent_programming_language" class="mw-redirect" title="Concurrent programming language">concurrent</a>, <a href="/wiki/Imperative_programming" title="Imperative programming">imperative</a></td></tr><tr><th scope="row" class="infobox-label">Family</th><td class="infobox-data"><a href="/wiki/ALGOL" title="ALGOL">ALGOL</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_design" title="Software design">Designed by</a></th><td class="infobox-data"><a href="/wiki/Adriaan_van_Wijngaarden" title="Adriaan van Wijngaarden">A. van Wijngaarden</a>, <a href="/wiki/Barry_J._Mailloux" title="Barry J. Mailloux">B. J. Mailloux</a>, <a href="/wiki/John_E._L._Peck" title="John E. L. Peck">J. E. L. Peck</a> and <a href="/wiki/Cornelis_H._A._Koster" title="Cornelis H. A. Koster">C. H. A. Koster</a>, et al.</td></tr><tr><th scope="row" class="infobox-label">First appeared</th><td class="infobox-data">Final Report: 1968<span class="noprint">; 56 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">1968</span>)</span><sup><a href="#The_language_of_the_unrevised_report">r0</a></sup></td></tr><tr><td colspan="2" class="infobox-full-data"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1257001546"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;">Algol 68/RR / Revised Report: 1973<span class="noprint">; 51 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">1973</span>)</span><sup><a href="#Revisions">r1</a></sup></div></td></tr><tr style="display:none"><td colspan="2"> </td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Type_system" title="Type system">Typing discipline</a></th><td class="infobox-data"><a href="/wiki/Type_system#Type_checking" title="Type system">static</a>, <a href="/wiki/Strong_and_weak_typing" title="Strong and weak typing">strong</a>, <a href="/wiki/Type_system#Safely_and_unsafely_typed_systems" title="Type system">safe</a>, <a href="/wiki/Structural_type_system" title="Structural type system">structural</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Scope_(computer_science)" title="Scope (computer science)">Scope</a></th><td class="infobox-data"><a href="/wiki/Scope_(computer_science)" title="Scope (computer science)">Lexical</a></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Major <a href="/wiki/Programming_language_implementation" title="Programming language implementation">implementations</a></th></tr><tr><td colspan="2" class="infobox-full-data"><a href="/wiki/ALGOL_68C" title="ALGOL 68C">ALGOL 68C</a>, Algol 68 Genie (recent), <a href="/wiki/ALGOL_68-R" title="ALGOL 68-R">ALGOL 68-R</a>, <a href="/wiki/ALGOL_68RS" title="ALGOL 68RS">ALGOL 68RS</a>, <a href="/wiki/ALGOL_68S" title="ALGOL 68S">ALGOL 68S</a>, <a href="/wiki/FLACC" title="FLACC">FLACC</a>, <a href="https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D0%BB_68" class="extiw" title="ru:Алгол 68">Алгол 68 Ленинград/Leningrad Unit</a>, <a href="/wiki/Odra_(computer)" title="Odra (computer)">Odra ALGOL 68</a></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;"><a href="/wiki/Programming_language#Dialects,_flavors_and_implementations" title="Programming language">Dialects</a></th></tr><tr><td colspan="2" class="infobox-full-data">ALGOL 68/FR (Final Report<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup>)</td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="/wiki/ALGOL_60" title="ALGOL 60">ALGOL 60</a>, <a href="/wiki/ALGOL_Y" title="ALGOL Y">ALGOL Y</a></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Influenced</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="/wiki/C_(programming_language)" title="C (programming language)">C</a>,<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> <a href="/wiki/C%2B%2B" title="C++">C++</a>,<sup id="cite_ref-a68-c++_6-0" class="reference"><a href="#cite_note-a68-c++-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Bourne_shell" title="Bourne shell">Bourne shell</a>, <a href="/wiki/KornShell" title="KornShell">KornShell</a>, <a href="/wiki/Bash_(Unix_shell)" title="Bash (Unix shell)">Bash</a>, <a href="/wiki/Steelman_language_requirements" title="Steelman language requirements">Steelman</a>, <a href="/wiki/Ada_(programming_language)" title="Ada (programming language)">Ada</a>, <a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a>,<sup id="cite_ref-a68-python_7-0" class="reference"><a href="#cite_note-a68-python-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Seed7" title="Seed7">Seed7</a>, <a href="/wiki/Mary_(programming_language)" title="Mary (programming language)">Mary</a>, <a href="/wiki/S3_(programming_language)" title="S3 (programming language)">S3</a></td></tr></tbody></table> <style data-mw-deduplicate="TemplateStyles:r1235681985">.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}</style><style data-mw-deduplicate="TemplateStyles:r1092331828">@media(min-width:720px){.mw-parser-output .contains-special-characters{width:22em}}</style><div class="side-box metadata side-box-right contains-special-characters noprint selfref"><style data-mw-deduplicate="TemplateStyles:r1126788409">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style> <div class="side-box-flex"> <div class="side-box-text plainlist"><b>This article contains Unicode 6.0 "<a rel="nofollow" class="external text" href="https://www.unicode.org/charts/PDF/U2300.pdf">Miscellaneous Technical</a>" characters.</b> Without proper <a href="/wiki/Unicode#External_links" title="Unicode">rendering support</a>, you may see <a href="/wiki/Specials_(Unicode_block)#Replacement_character" title="Specials (Unicode block)">question marks, boxes, or other symbols</a> instead of something like "₁₀" (<a rel="nofollow" class="external text" href="http://mailcom.com/unicode/DecimalExponent.ttf">Decimal Exponent Symbol U+23E8 TTF</a>).</div></div> </div> <p><b>ALGOL 68</b> (short for <i>Algorithmic Language 1968</i>) is an <a href="/wiki/Imperative_programming" title="Imperative programming">imperative</a> <a href="/wiki/Programming_language" title="Programming language">programming language</a> that was conceived as a successor to the <a href="/wiki/ALGOL_60" title="ALGOL 60">ALGOL 60</a> programming language, designed with the goal of a much wider scope of application and more rigorously defined <a href="/wiki/Syntax_(programming_languages)" title="Syntax (programming languages)">syntax</a> and semantics. </p><p>The complexity of the language's definition, which runs to several hundred pages filled with non-standard terminology, made <a href="/wiki/Compiler" title="Compiler">compiler</a> implementation difficult and it was said it had "no implementations and no users". This was only partly true; ALGOL 68 did find use in several niche markets, notably in the <a href="/wiki/United_Kingdom" title="United Kingdom">United Kingdom</a> where it was popular on <a href="/wiki/International_Computers_Limited" title="International Computers Limited">International Computers Limited</a> (ICL) machines, and in teaching roles. Outside these fields, use was relatively limited. </p><p>Nevertheless, the contributions of ALGOL 68 to the field of <a href="/wiki/Computer_science" title="Computer science">computer science</a> have been deep, wide-ranging and enduring, although many of these contributions were only publicly identified when they had reappeared in subsequently developed programming languages. Many languages were developed specifically as a response to the perceived complexity of the language, the most notable being <a href="/wiki/Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>, or were reimplementations for specific roles, like <a href="/wiki/Ada_(programming_language)" title="Ada (programming language)">Ada</a>. </p><p>Many languages of the 1970s trace their design specifically to ALGOL 68, selecting some features while abandoning others that were considered too complex or out-of-scope for given roles. Among these is the language <a href="/wiki/C_(programming_language)" title="C (programming language)">C</a>, which was directly influenced by ALGOL 68, especially by its <a href="/wiki/Strong_and_weak_typing" title="Strong and weak typing">strong typing</a> and structures. Most modern languages trace at least some of their syntax to either C or Pascal, and thus directly or indirectly to ALGOL 68. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=1" title="Edit section: Overview"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>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. </p><p>ALGOL 68 was designed by the <a href="/wiki/International_Federation_for_Information_Processing" title="International Federation for Information Processing">International Federation for Information Processing</a> (IFIP) <a href="/wiki/IFIP_Working_Group_2.1" title="IFIP Working Group 2.1">IFIP Working Group 2.1</a> 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. </p><p>ALGOL 68 was defined using a <a href="/wiki/Formalism_(philosophy_of_mathematics)" title="Formalism (philosophy of mathematics)">formalism</a>, a two-level <a href="/wiki/Formal_grammar" title="Formal grammar">formal grammar</a>, invented by <a href="/wiki/Adriaan_van_Wijngaarden" title="Adriaan van Wijngaarden">Adriaan van Wijngaarden</a>. <a href="/wiki/Van_Wijngaarden_grammar" title="Van Wijngaarden grammar">Van Wijngaarden grammars</a> use a <a href="/wiki/Context-free_grammar" title="Context-free grammar">context-free grammar</a> 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 <a href="/wiki/Technical_standard" title="Technical standard">technical standards</a> are labelled <i>semantics</i>, and must be expressed in ambiguity-prone natural language prose, and then implemented in compilers as <i>ad hoc</i> code attached to the formal language parser. </p> <style data-mw-deduplicate="TemplateStyles:r1224211176">.mw-parser-output .quotebox{background-color:#F9F9F9;border:1px solid #aaa;box-sizing:border-box;padding:10px;font-size:88%;max-width:100%}.mw-parser-output .quotebox.floatleft{margin:.5em 1.4em .8em 0}.mw-parser-output .quotebox.floatright{margin:.5em 0 .8em 1.4em}.mw-parser-output .quotebox.centered{overflow:hidden;position:relative;margin:.5em auto .8em auto}.mw-parser-output .quotebox.floatleft span,.mw-parser-output .quotebox.floatright span{font-style:inherit}.mw-parser-output .quotebox>blockquote{margin:0;padding:0;border-left:0;font-family:inherit;font-size:inherit}.mw-parser-output .quotebox-title{text-align:center;font-size:110%;font-weight:bold}.mw-parser-output .quotebox-quote>:first-child{margin-top:0}.mw-parser-output .quotebox-quote:last-child>:last-child{margin-bottom:0}.mw-parser-output .quotebox-quote.quoted:before{font-family:"Times New Roman",serif;font-weight:bold;font-size:large;color:gray;content:" “ ";vertical-align:-45%;line-height:0}.mw-parser-output .quotebox-quote.quoted:after{font-family:"Times New Roman",serif;font-weight:bold;font-size:large;color:gray;content:" ” ";line-height:0}.mw-parser-output .quotebox .left-aligned{text-align:left}.mw-parser-output .quotebox .right-aligned{text-align:right}.mw-parser-output .quotebox .center-aligned{text-align:center}.mw-parser-output .quotebox .quote-title,.mw-parser-output .quotebox .quotebox-quote{display:block}.mw-parser-output .quotebox cite{display:block;font-style:normal}@media screen and (max-width:640px){.mw-parser-output .quotebox{width:100%!important;margin:0 0 .8em!important;float:none!important}}</style><div class="quotebox pullquote floatright" style="; width: 23em;"> <blockquote class="quotebox-quote left-aligned" style=""> <p>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. </p> </blockquote> <p style="padding-bottom: 0;"><cite class="left-aligned" style=""><a href="/wiki/Cornelis_H._A._Koster" title="Cornelis H. A. Koster">C. H. A. Koster</a><sup id="cite_ref-ashoa68_8-0" class="reference"><a href="#cite_note-ashoa68-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></cite></p> </div> <p>The main aims and principles of design of ALGOL 68: </p> <ol><li>Completeness and clarity of description<sup id="cite_ref-completeness_9-0" class="reference"><a href="#cite_note-completeness-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Orthogonality" title="Orthogonality">Orthogonality</a> of design<sup id="cite_ref-orthogonality_10-0" class="reference"><a href="#cite_note-orthogonality-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></li> <li>Security<sup id="cite_ref-security_11-0" class="reference"><a href="#cite_note-security-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup></li> <li>Efficiency:<sup id="cite_ref-efficiency_12-0" class="reference"><a href="#cite_note-efficiency-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> <ul><li>Static mode checking</li> <li>Mode-independent parsing</li> <li>Independent compiling</li> <li>Loop optimizing</li> <li>Representations – in minimal & larger <a href="/wiki/Character_encoding" title="Character encoding">character sets</a></li></ul></li></ol> <p>ALGOL 68 has been criticized, most prominently by some members of its design committee such as <a href="/wiki/C._A._R._Hoare" class="mw-redirect" title="C. A. R. Hoare">C. A. R. Hoare</a> and <a href="/wiki/Edsger_Dijkstra" class="mw-redirect" title="Edsger Dijkstra">Edsger Dijkstra</a>, for abandoning the simplicity of <a href="/wiki/ALGOL_60" title="ALGOL 60">ALGOL 60</a>, becoming a vehicle for complex or overly general ideas, and doing little to make the <a href="/wiki/Compiler" title="Compiler">compiler</a> writer's task easier, in contrast to deliberately simple contemporaries (and competitors) such as <a href="/wiki/C_(programming_language)" title="C (programming language)">C</a>, <a href="/wiki/S-algol" title="S-algol">S-algol</a> and <a href="/wiki/Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>. </p><p>In 1970, <a href="/wiki/ALGOL_68-R" title="ALGOL 68-R">ALGOL 68-R</a> became the first working compiler for ALGOL 68. </p><p>In the 1973 revision, certain features — such as <a href="/wiki/ALGOL_68-R#No_proceduring" title="ALGOL 68-R">proceduring</a>, gommas<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> and <a href="/wiki/ALGOL_68-R#No_formal_declarers" title="ALGOL 68-R">formal bounds</a> — were omitted.<sup id="cite_ref-a68r0-jmvdveer_14-0" class="reference"><a href="#cite_note-a68r0-jmvdveer-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> C.f. <a href="#The_language_of_the_unrevised_report">The language of the unrevised report.<sup>r0</sup></a> </p><p>Though European defence agencies (in Britain <a href="/wiki/Royal_Signals_and_Radar_Establishment" title="Royal Signals and Radar Establishment">Royal Signals and Radar Establishment</a> (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 <a href="/wiki/Ada_(programming_language)" title="Ada (programming language)">Ada</a>, making its use obligatory for US defense contracts. </p><p>ALGOL 68 also had a notable influence in the <a href="/wiki/Soviet_Union" title="Soviet Union">Soviet Union</a>, details of which can be found in <a href="/wiki/Andrey_Terekhov" title="Andrey Terekhov">Andrey Terekhov</a>'s 2014 paper: "ALGOL 68 and Its Impact on the USSR and Russian Programming",<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> and "Алгол 68 и его влияние на программирование в СССР и России".<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> </p><p><a href="/wiki/Steve_Bourne" class="mw-redirect" title="Steve Bourne">Steve Bourne</a>, who was on the ALGOL 68 revision committee, took some of its ideas to his <a href="/wiki/Bourne_shell" title="Bourne shell">Bourne shell</a> (and thereby, to descendant <a href="/wiki/Unix_shell" title="Unix shell">Unix shells</a> such as <a href="/wiki/Bash_(Unix_shell)" title="Bash (Unix shell)">Bash</a>) and to <a href="/wiki/C_(programming_language)" title="C (programming language)">C</a> (and thereby to descendants such as <a href="/wiki/C%2B%2B" title="C++">C++</a>). </p><p>The complete history of the project can be found in <a href="/wiki/Charles_H._Lindsey" title="Charles H. Lindsey">C. H. Lindsey</a>'s <i>A History of ALGOL 68</i>.<sup id="cite_ref-FOOTNOTELindsey1996_17-0" class="reference"><a href="#cite_note-FOOTNOTELindsey1996-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-ahoa68_18-0" class="reference"><a href="#cite_note-ahoa68-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> </p><p>For a full-length treatment of the language, see "Programming ALGOL 68 Made Easy"<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> by Dr. Sian Mountbatten, or "Learning ALGOL 68 Genie"<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> by Marcel van der Veer which includes the Revised Report. </p> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=2" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Origins">Origins</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=3" title="Edit section: Origins"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ALGOL 68, as the name implies, is a follow-on to the <a href="/wiki/ALGOL" title="ALGOL">ALGOL</a> language that was first formalized in 1960. That same year the <a href="/wiki/International_Federation_for_Information_Processing" title="International Federation for Information Processing">International Federation for Information Processing</a> (IFIP) formed and started the Working Group on ALGOL, or WG2.1. This group released an updated ALGOL 60 specification in Rome in April 1962. At a follow-up meeting in March 1964, it was agreed that the group should begin work on two follow-on standards, <a href="/wiki/ALGOL_X" title="ALGOL X">ALGOL X</a> which would be a redefinition of the language with some additions, and an <a href="/wiki/ALGOL_Y" title="ALGOL Y">ALGOL Y</a>, which would have the ability to modify its own programs in the style of the language <a href="/wiki/Lisp_(programming_language)" title="Lisp (programming language)">LISP</a>.<sup id="cite_ref-FOOTNOTELindsey19937_21-0" class="reference"><a href="#cite_note-FOOTNOTELindsey19937-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Definition_process">Definition process</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=4" title="Edit section: Definition process"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The first meeting of the ALGOL X group was held in <a href="/wiki/Princeton_University" title="Princeton University">Princeton University</a> in May 1965. A report of the meeting noted two broadly supported themes, the introduction of <a href="/wiki/Strong_typing" class="mw-redirect" title="Strong typing">strong typing</a> and interest in <a href="/wiki/Euler_programming_language" class="mw-redirect" title="Euler programming language">Euler's</a> concepts of 'trees' or 'lists' for handling collections.<sup id="cite_ref-FOOTNOTELindsey19939_22-0" class="reference"><a href="#cite_note-FOOTNOTELindsey19939-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> </p><p>At the second meeting in October in France, three formal proposals were presented, <a href="/wiki/Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a>'s <a href="/wiki/ALGOL_W" title="ALGOL W">ALGOL W</a> along with comments about record structures by <a href="/wiki/C.A.R._Hoare" class="mw-redirect" title="C.A.R. Hoare">C.A.R. (Tony) Hoare</a>, a similar language by Gerhard Seegmüller, and a paper by <a href="/wiki/Adriaan_van_Wijngaarden" title="Adriaan van Wijngaarden">Adriaan van Wijngaarden</a> on "Orthogonal design and description of a formal language". The latter, written in almost indecipherable "W-Grammar", proved to be a decisive shift in the evolution of the language. The meeting closed with an agreement that van Wijngaarden would re-write the Wirth/Hoare submission using his W-Grammar.<sup id="cite_ref-FOOTNOTELindsey19939_22-1" class="reference"><a href="#cite_note-FOOTNOTELindsey19939-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> </p><p>This seemingly simple task ultimately proved more difficult than expected, and the follow-up meeting had to be delayed six months. When it met in April 1966 in <a href="/wiki/Kootwijk" title="Kootwijk">Kootwijk</a>, van Wijngaarden's draft remained incomplete and Wirth and Hoare presented a version using more traditional descriptions. It was generally agreed that their paper was "the right language in the wrong formalism".<sup id="cite_ref-FOOTNOTELindsey199324_23-0" class="reference"><a href="#cite_note-FOOTNOTELindsey199324-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> As these approaches were explored, it became clear there was a difference in the way parameters were described that would have real-world effects, and while Wirth and Hoare protested that further delays might become endless, the committee decided to wait for van Wijngaarden's version. Wirth then implemented their current definition as ALGOL W.<sup id="cite_ref-FOOTNOTELindsey199310_24-0" class="reference"><a href="#cite_note-FOOTNOTELindsey199310-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> </p><p>At the next meeting in <a href="/wiki/Warsaw" title="Warsaw">Warsaw</a> in October 1966,<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> there was an initial report from the I/O Subcommittee who had met at the <a href="/wiki/Oak_Ridge_National_Laboratory" title="Oak Ridge National Laboratory">Oak Ridge National Laboratory</a> and the <a href="/wiki/University_of_Illinois" class="mw-redirect" title="University of Illinois">University of Illinois</a> but had not yet made much progress. The two proposals from the previous meeting were again explored, and this time a new debate emerged about the use of <a href="/wiki/Pointer_(computer_science)" class="mw-redirect" title="Pointer (computer science)">pointers</a>; ALGOL W used them only to refer to records, while van Wijngaarden's version could point to any object. To add confusion, <a href="/wiki/John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">John McCarthy</a> presented a new proposal for <a href="/wiki/Operator_overloading" title="Operator overloading">operator overloading</a> and the ability to string together and <i>or</i> constructs, and <a href="/wiki/Klaus_Samelson" title="Klaus Samelson">Klaus Samelson</a> wanted to allow <a href="/wiki/Anonymous_function" title="Anonymous function">anonymous functions</a>. In the resulting confusion, there was some discussion of abandoning the entire effort.<sup id="cite_ref-FOOTNOTELindsey199310_24-1" class="reference"><a href="#cite_note-FOOTNOTELindsey199310-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> The confusion continued through what was supposed to be the ALGOL Y meeting in <a href="/wiki/Zandvoort" title="Zandvoort">Zandvoort</a> in May 1967.<sup id="cite_ref-FOOTNOTELindsey19939_22-2" class="reference"><a href="#cite_note-FOOTNOTELindsey19939-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Publication">Publication</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=5" title="Edit section: Publication"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A draft report was finally published in February 1968. This was met by "shock, horror and dissent",<sup id="cite_ref-FOOTNOTELindsey19939_22-3" class="reference"><a href="#cite_note-FOOTNOTELindsey19939-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> mostly due to the hundreds of pages of unreadable grammar and odd terminology. <a href="/wiki/Charles_H._Lindsey" title="Charles H. Lindsey">Charles H. Lindsey</a> attempted to figure out what "language was hidden inside of it",<sup id="cite_ref-FOOTNOTELindsey199312_26-0" class="reference"><a href="#cite_note-FOOTNOTELindsey199312-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> a process that took six man-weeks of effort. The resulting paper, "ALGOL 68 with fewer tears",<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> was widely circulated. At a wider information processing meeting in <a href="/wiki/Z%C3%BCrich" class="mw-redirect" title="Zürich">Zürich</a> in May 1968, attendees complained that the language was being forced upon them and that IFIP was "the true villain of this unreasonable situation" as the meetings were mostly closed and there was no formal feedback mechanism. Wirth and <a href="/wiki/Peter_Naur" title="Peter Naur">Peter Naur</a> formally resigned their authorship positions in WG2.1 at that time.<sup id="cite_ref-FOOTNOTELindsey199312_26-1" class="reference"><a href="#cite_note-FOOTNOTELindsey199312-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> </p><p>The next WG2.1 meeting took place in <a href="/wiki/Tirrenia" title="Tirrenia">Tirrenia</a> in June 1968. It was supposed to discuss the release of compilers and other issues, but instead devolved into a discussion on the language. van Wijngaarden responded by saying (or threatening) that he would release only one more version of the report. By this point Naur, Hoare, and Wirth had left the effort, and several more were threatening to do so.<sup id="cite_ref-FOOTNOTELindsey199313_28-0" class="reference"><a href="#cite_note-FOOTNOTELindsey199313-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> Several more meetings followed, <a href="/wiki/North_Berwick" title="North Berwick">North Berwick</a> in August 1968, Munich in December which produced the release of the official Report in January 1969 but also resulted in a contentious Minority Report being written. Finally, at <a href="/wiki/Banff,_Alberta" title="Banff, Alberta">Banff, Alberta</a> in September 1969, the project was generally considered complete and the discussion was primarily on errata and a greatly expanded Introduction to the Report.<sup id="cite_ref-FOOTNOTELindsey199315_29-0" class="reference"><a href="#cite_note-FOOTNOTELindsey199315-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> </p><p>The effort took five years, burned out many of the greatest names in <a href="/wiki/Computer_science" title="Computer science">computer science</a>, and on several occasions became deadlocked over issues both in the definition and the group as a whole. Hoare released a "Critique of ALGOL 68" almost immediately,<sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> which has been widely referenced in many works. Wirth went on to further develop the ALGOL W concept and released this as Pascal in 1970. </p> <div class="mw-heading mw-heading3"><h3 id="Implementations">Implementations</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=6" title="Edit section: Implementations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading4"><h4 id="ALGOL_68-R">ALGOL 68-R</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=7" title="Edit section: ALGOL 68-R"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The first implementation of the standard, based on the late-1968 draft Report, was introduced by the <a href="/wiki/Royal_Radar_Establishment" title="Royal Radar Establishment">Royal Radar Establishment</a> in the UK as <a href="/wiki/ALGOL_68-R" title="ALGOL 68-R">ALGOL 68-R</a> in July 1970. This was, however, a subset of the full language, and <a href="/wiki/Barry_Mailloux" class="mw-redirect" title="Barry Mailloux">Barry Mailloux</a>, the final editor of the Report, joked that "It is a question of morality. We have a Bible and you are sinning!"<sup id="cite_ref-implement_31-0" class="reference"><a href="#cite_note-implement-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> This version nevertheless became very popular on the <a href="/wiki/International_Computers_Limited" title="International Computers Limited">ICL</a> machines, and became a widely-used language in military coding, especially in the UK.<sup id="cite_ref-shorter_32-0" class="reference"><a href="#cite_note-shorter-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> </p><p>Among the changes in 68-R was the requirement for all variables to be declared before their first use. This had a significant advantage that it allowed the compiler to be one-pass, as space for the variables in the <a href="/wiki/Activation_record" class="mw-redirect" title="Activation record">activation record</a> was set aside before it was used. However, this change also had the side-effect of demanding the <b>PROC</b>s be declared twice, once as a declaration of the types, and then again as the body of code. Another change was to eliminate the assumed <b>VOID</b> mode, an expression that returns no value (named a <i>statement</i> in other languages) and demanding the word <b>VOID</b> be added where it would have been assumed. Further, 68-R eliminated the explicit <a href="/wiki/Parallel_computing" title="Parallel computing">parallel processing</a> commands based on <b>PAR</b>.<sup id="cite_ref-implement_31-1" class="reference"><a href="#cite_note-implement-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading4"><h4 id="Others">Others</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=8" title="Edit section: Others"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The first full implementation of the language was introduced in 1974 by CDC Netherlands for the <a href="/wiki/Control_Data" class="mw-redirect" title="Control Data">Control Data</a> mainframe series. This saw limited use, mostly teaching in Germany and the Netherlands.<sup id="cite_ref-shorter_32-1" class="reference"><a href="#cite_note-shorter-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> </p><p>A version similar to 68-R was introduced from <a href="/wiki/Carnegie_Mellon_University" title="Carnegie Mellon University">Carnegie Mellon University</a> in 1976 as 68S, and was again a one-pass compiler based on various simplifications of the original and intended for use on smaller machines like the <a href="/wiki/DEC_PDP-11" class="mw-redirect" title="DEC PDP-11">DEC PDP-11</a>. It too was used mostly for teaching purposes.<sup id="cite_ref-shorter_32-2" class="reference"><a href="#cite_note-shorter-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> </p><p>A version for <a href="/wiki/IBM" title="IBM">IBM</a> mainframes did not become available until 1978, when one was released from <a href="/wiki/Cambridge_University" class="mw-redirect" title="Cambridge University">Cambridge University</a>. This was "nearly complete". Lindsey released a version for small machines including the <a href="/wiki/IBM_PC" class="mw-redirect" title="IBM PC">IBM PC</a> in 1984.<sup id="cite_ref-shorter_32-3" class="reference"><a href="#cite_note-shorter-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> </p><p>Three open source Algol 68 implementations are known:<sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> </p> <ul><li><b>a68g</b>, <a href="/wiki/GPLv3" class="mw-redirect" title="GPLv3">GPLv3</a>, written by Marcel van der Veer.</li> <li><b>algol68toc</b>, an <a href="/wiki/Open-source_software" title="Open-source software">open-source software</a> port of <a href="/wiki/ALGOL_68RS" title="ALGOL 68RS">ALGOL 68RS</a>.</li> <li>experimental Algol68 frontend for <a href="/wiki/GNU_Compiler_Collection" title="GNU Compiler Collection">GCC</a>, written by Jose E. Marchesi.<sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup></li></ul> <div class="mw-heading mw-heading3"><h3 id="Timeline">Timeline</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=9" title="Edit section: Timeline"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <tbody><tr> <th scope="col">Year</th> <th scope="col">Event</th> <th scope="col">Contributor </th></tr> <tr> <td style="text-align:right;">March 1959</td> <td><a href="/wiki/ALGOL_Bulletin" title="ALGOL Bulletin">ALGOL Bulletin</a> Issue 1 (First)</td> <td><a href="/wiki/Peter_Naur" title="Peter Naur">Peter Naur</a> / <a href="/wiki/Association_for_Computing_Machinery" title="Association for Computing Machinery">ACM</a> </td></tr> <tr> <td style="text-align:right;">February 1968</td> <td>Draft Report<sup>(DR)</sup> Published<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup></td> <td><a href="/wiki/IFIP" class="mw-redirect" title="IFIP">IFIP</a> <a href="/wiki/IFIP_Working_Group_2.1" title="IFIP Working Group 2.1">Working Group 2.1</a> </td></tr> <tr> <td style="text-align:right;">March 1968</td> <td>Algol 68 Final Report<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup> Presented at Munich Meeting</td> <td>IFIP Working Group 2.1 </td></tr> <tr> <td style="text-align:right;">June 1968</td> <td>Meeting in Tirrenia, Italy</td> <td>IFIP Working Group 2.1 </td></tr> <tr> <td style="text-align:right;">Aug 1968</td> <td>Meeting in North Berwick, Scotland</td> <td>IFIP Working Group 2.1 </td></tr> <tr> <td style="text-align:right;">December 1968</td> <td>ALGOL 68 Final Report<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup> Presented at Munich Meeting</td> <td>IFIP Working Group 2.1 </td></tr> <tr> <td style="text-align:right;">April 1970</td> <td><a href="/wiki/ALGOL_68-R" title="ALGOL 68-R">ALGOL 68-R</a> under <a href="/wiki/GEORGE_(operating_system)" title="GEORGE (operating system)">GEORGE 3</a> on an <a href="/wiki/International_Computers_Limited" title="International Computers Limited">ICL</a> <a href="/wiki/ICT_1900_series" title="ICT 1900 series">1907F</a></td> <td><a href="/wiki/RSRE" class="mw-redirect" title="RSRE">Royal Signals and Radar Est.</a> </td></tr> <tr> <td style="text-align:right;">July 1970</td> <td>ALGOL 68 for the <a href="/wiki/Dartmouth_Time-Sharing_System" title="Dartmouth Time-Sharing System">Dartmouth Time-Sharing System</a><sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup></td> <td>Sidney Marshall </td></tr> <tr> <td style="text-align:right;">September 1973</td> <td>Algol 68 Revised Report<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup><sup><a href="#Revisions">r1</a></sup> Published</td> <td>IFIP Working Group 2.1 </td></tr> <tr> <td style="text-align:right;">1975</td> <td><a href="/wiki/ALGOL_68C" title="ALGOL 68C">ALGOL 68C</a><sup>(C)</sup> – transportable compiler (zcode <a href="/wiki/Virtual_machine" title="Virtual machine">VM</a>)</td> <td><a href="/wiki/Stephen_R._Bourne" title="Stephen R. Bourne">S. Bourne</a>, <a href="/w/index.php?title=Andrew_Birrell&action=edit&redlink=1" class="new" title="Andrew Birrell (page does not exist)">Andrew Birrell</a>, and <a href="/wiki/Michael_Guy_(computer_scientist)" class="mw-redirect" title="Michael Guy (computer scientist)">Michael Guy</a> </td></tr> <tr> <td style="text-align:right;">June 1975</td> <td>G. E. Hedrick and Alan Robertson. The Oklahoma State ALGOL 68 Subset Compiler. 1975 International Conference on ALGOL 68. </td></tr> <tr> <td style="text-align:right;">June 1977</td> <td>Strathclyde ALGOL 68 conference, Scotland</td> <td>ACM </td></tr> <tr> <td style="text-align:right;">May 1978</td> <td>Proposals for ALGOL H – A Superlanguage of ALGOL 68<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup></td> <td>A. P. Black, V. J. Rayward-Smith </td></tr> <tr> <td style="text-align:right;">1984</td> <td>Full <a href="/wiki/ALGOL_68S" title="ALGOL 68S">ALGOL 68S</a><sup>(S)</sup> compiler for Sun, SPARC, and PCs</td> <td>C. H. Lindsey et al, Manchester </td></tr> <tr> <td style="text-align:right;">August 1988</td> <td><a href="/wiki/ALGOL_Bulletin" title="ALGOL Bulletin">ALGOL Bulletin</a> Issue 52 (last)</td> <td>Ed. C. H. Lindsey / ACM </td></tr> <tr> <td style="text-align:right;">May 1997</td> <td>Algol68 S<sup>(S)</sup> published on the internet<sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup></td> <td><a href="/wiki/Charles_H._Lindsey" title="Charles H. Lindsey">Charles H. Lindsey</a> </td></tr> <tr> <td style="text-align:right;">November 2001</td> <td>Algol 68 Genie<sup>(G)</sup> published on the internet<sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup> (GNU GPL open source licensing)</td> <td>Marcel van der Veer </td></tr></tbody></table> <ul><li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20071217203826/http://npt.cc.rsu.ru/user/wanderer/ODP/ALGOL68.txt">"A Shorter History of Algol 68"</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110514113912/http://hopl.murdoch.edu.au/showlanguage.prx?exp=311">ALGOL 68 – 3rd generation ALGOL</a></li></ul> <div class="mw-heading mw-heading3"><h3 id="The_Algorithmic_Language_ALGOL_68_Reports_and_Working_Group_members">The Algorithmic Language ALGOL 68 Reports and Working Group members</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=10" title="Edit section: The Algorithmic Language ALGOL 68 Reports and Working Group members"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>March 1968: Draft Report on the Algorithmic Language ALGOL 68<sup id="cite_ref-a68r-1_42-0" class="reference"><a href="#cite_note-a68r-1-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup> – Edited by: <a href="/wiki/Adriaan_van_Wijngaarden" title="Adriaan van Wijngaarden">Adriaan van Wijngaarden</a>, <a href="/wiki/Barry_J._Mailloux" title="Barry J. Mailloux">Barry J. Mailloux</a>, <a href="/wiki/John_E._L._Peck" title="John E. L. Peck">John Peck</a> and <a href="/wiki/Cornelis_H._A._Koster" title="Cornelis H. A. Koster">Cornelis H. A. Koster</a>.</li></ul> <style data-mw-deduplicate="TemplateStyles:r1023981488">@media all and (max-width:720px){.mw-parser-output .rquote{width:auto!important;float:none!important}}</style><style data-mw-deduplicate="TemplateStyles:r1244412712">.mw-parser-output .templatequote{overflow:hidden;margin:1em 0;padding:0 32px}.mw-parser-output .templatequotecite{line-height:1.5em;text-align:left;margin-top:0}@media(min-width:500px){.mw-parser-output .templatequotecite{padding-left:1.6em}}</style><blockquote class="templatequote rquote" style="float: right; width: 33%;"><p>"Van Wijngaarden once characterized the four authors, somewhat tongue-in-cheek, as: Koster: <a href="#transput:_Input_and_output">transputter</a>, Peck: syntaxer, Mailloux: implementer, Van Wijngaarden: party ideologist." – Koster.</p></blockquote> <ul><li>October 1968: Penultimate Draft Report on the Algorithmic Language ALGOL 68 — Chapters 1-9<sup id="cite_ref-a68r-1-9_43-0" class="reference"><a href="#cite_note-a68r-1-9-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup> Chapters 10-12<sup id="cite_ref-a68r-10-12_44-0" class="reference"><a href="#cite_note-a68r-10-12-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup> — Edited by: A. van Wijngaarden, B.J. Mailloux, J. E. L. Peck and C. H. A. Koster.</li> <li>December 1968: Report on the Algorithmic Language ALGOL 68 — Offprint from Numerische Mathematik, 14, 79-218 (1969); Springer-Verlag.<sup id="cite_ref-a68r0-kleine_45-0" class="reference"><a href="#cite_note-a68r0-kleine-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup> — Edited by: A. van Wijngaarden, B. J. Mailloux, J. E. L. Peck and C. H. A. Koster.</li> <li>March 1970: Minority report, ALGOL Bulletin AB31.1.1 — signed by <a href="/wiki/Edsger_Dijkstra" class="mw-redirect" title="Edsger Dijkstra">Edsger Dijkstra</a>, <a href="/w/index.php?title=Fraser_Duncan&action=edit&redlink=1" class="new" title="Fraser Duncan (page does not exist)">Fraser Duncan</a>, <a href="/w/index.php?title=Jan_Garwick&action=edit&redlink=1" class="new" title="Jan Garwick (page does not exist)">Jan Garwick</a>, <a href="/wiki/Tony_Hoare" title="Tony Hoare">Tony Hoare</a>, <a href="/wiki/Brian_Randell" title="Brian Randell">Brian Randell</a>, <a href="/w/index.php?title=Gerhard_Seegm%C3%BCller&action=edit&redlink=1" class="new" title="Gerhard Seegmüller (page does not exist)">Gerhard Seegmüller</a>, <a href="/w/index.php?title=W%C5%82adys%C5%82aw_M._Turski&action=edit&redlink=1" class="new" title="Władysław M. Turski (page does not exist)">Wlad Turski</a>, and <a href="/wiki/Mike_Woodger" title="Mike Woodger">Mike Woodger</a>.</li> <li>September 1973: Revised Report on the Algorithmic Language Algol 68 — Springer-Verlag 1976<sup id="cite_ref-a68r1-html_46-0" class="reference"><a href="#cite_note-a68r1-html-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup> — Edited by: A. van Wijngaarden, B. Mailloux, J. Peck, K. Koster, <a href="/wiki/Michel_Sintzoff" title="Michel Sintzoff">Michel Sintzoff</a>, <a href="/wiki/Charles_H._Lindsey" title="Charles H. Lindsey">Charles H. Lindsey</a>, <a href="/wiki/Lambert_Meertens" title="Lambert Meertens">Lambert Meertens</a> and <a href="/w/index.php?title=Richard_G._Fisker&action=edit&redlink=1" class="new" title="Richard G. Fisker (page does not exist)">Richard G. Fisker</a>.</li> <li>other WG 2.1 members active in ALGOL 68 design:<sup id="cite_ref-ahoa68_18-1" class="reference"><a href="#cite_note-ahoa68-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Friedrich_L._Bauer" title="Friedrich L. Bauer">Friedrich L. Bauer</a> • <a href="/w/index.php?title=Hans_Bekic&action=edit&redlink=1" class="new" title="Hans Bekic (page does not exist)">Hans Bekic</a> • <a href="https://de.wikipedia.org/wiki/Gerhard_Goos" class="extiw" title="de:Gerhard Goos">Gerhard Goos</a> • <a href="/w/index.php?title=Peter_Zilahy_Ingerman&action=edit&redlink=1" class="new" title="Peter Zilahy Ingerman (page does not exist)">Peter Zilahy Ingerman</a> • <a href="/wiki/Peter_Landin" title="Peter Landin">Peter Landin</a> • <a href="/wiki/John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">John McCarthy</a> • <a href="/w/index.php?title=Jack_N._Merner&action=edit&redlink=1" class="new" title="Jack N. Merner (page does not exist)">Jack Merner</a> • <a href="/wiki/Peter_Naur" title="Peter Naur">Peter Naur</a> • <a href="/w/index.php?title=Manfred_Paul&action=edit&redlink=1" class="new" title="Manfred Paul (page does not exist)">Manfred Paul</a> • <a href="/wiki/Willem_van_der_Poel" title="Willem van der Poel">Willem van der Poel</a> • <a href="/wiki/Douglas_T._Ross" title="Douglas T. Ross">Doug Ross</a> • <a href="/wiki/Klaus_Samelson" title="Klaus Samelson">Klaus Samelson</a> • <a href="/wiki/Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a> • <a href="/wiki/Nobuo_Yoneda" title="Nobuo Yoneda">Nobuo Yoneda</a>.</li></ul> <div class="mw-heading mw-heading3"><h3 id="Timeline_of_standardization">Timeline of standardization</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=11" title="Edit section: Timeline of standardization"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>1968: On 20 December 1968, the "Final Report" (MR 101) was adopted by the Working Group, then subsequently approved by the General Assembly of <a href="/wiki/UNESCO" title="UNESCO">UNESCO</a>'s <a href="/wiki/IFIP" class="mw-redirect" title="IFIP">IFIP</a> for publication. Translations of the standard were made for <a href="/wiki/Russian_language" title="Russian language">Russian</a>, <a href="/wiki/German_language" title="German language">German</a>, <a href="/wiki/French_language" title="French language">French</a> and <a href="/wiki/Bulgarian_language" title="Bulgarian language">Bulgarian</a>, and then later <a href="/wiki/Japanese_language" title="Japanese language">Japanese</a> and <a href="/wiki/Chinese_language" title="Chinese language">Chinese</a>.<sup id="cite_ref-abp33_47-0" class="reference"><a href="#cite_note-abp33-47"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup> The standard was also made available in <a href="/wiki/Braille" title="Braille">Braille</a>. </p><p>1984: <a href="/wiki/ISO/IEC_JTC_1#History" title="ISO/IEC JTC 1">TC 97</a> considered ALGOL 68 for standardisation as "New Work Item" TC97/N1642 <a rel="nofollow" class="external autonumber" href="http://www.open-std.org/JTC1/sc22/docs/docs0200.html">[2]</a><a rel="nofollow" class="external autonumber" href="http://std.dkuug.dk/JTC1/sc22/sc22arc1.txt">[3]</a>. West Germany, Belgium, Netherlands, USSR and Czechoslovakia willing to participate in preparing the standard but the USSR and Czechoslovakia "were not the right kinds of member of the right ISO committees"<a rel="nofollow" class="external autonumber" href="http://archive.computerhistory.org/resources/text/algol/algol_bulletin/A50/P1.HTM">[4]</a> and Algol 68's ISO standardisation stalled.<a rel="nofollow" class="external autonumber" href="http://www.open-std.org/jtc1/sc22/open/n0200.pdf">[5]</a> </p><p>1988: Subsequently ALGOL 68 became one of the <a href="/wiki/GOST" title="GOST">GOST</a> standards in Russia. </p> <ul><li>GOST 27974-88 Programming language ALGOL 68 — Язык программирования АЛГОЛ 68<sup id="cite_ref-a68ru_48-0" class="reference"><a href="#cite_note-a68ru-48"><span class="cite-bracket">[</span>48<span class="cite-bracket">]</span></a></sup></li> <li>GOST 27975-88 Programming language ALGOL 68 extended — Язык программирования АЛГОЛ 68 расширенный<sup id="cite_ref-a68ruext_49-0" class="reference"><a href="#cite_note-a68ruext-49"><span class="cite-bracket">[</span>49<span class="cite-bracket">]</span></a></sup></li></ul> <div class="mw-heading mw-heading2"><h2 id="Notable_language_elements">Notable language elements</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=12" title="Edit section: Notable language elements"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1235681985"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1092331828"><div class="side-box metadata side-box-right contains-special-characters noprint selfref"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1126788409"> <div class="side-box-flex"> <div class="side-box-text plainlist"><b>This article contains Unicode 6.0 "<a rel="nofollow" class="external text" href="https://www.unicode.org/charts/PDF/U2300.pdf">Miscellaneous Technical</a>" characters.</b> Without proper <a href="/wiki/Unicode#External_links" title="Unicode">rendering support</a>, you may see <a href="/wiki/Specials_(Unicode_block)#Replacement_character" title="Specials (Unicode block)">question marks, boxes, or other symbols</a> instead of something like "₁₀" (<a rel="nofollow" class="external text" href="http://mailcom.com/unicode/DecimalExponent.ttf">Decimal Exponent Symbol U+23E8 TTF</a>).</div></div> </div> <div class="mw-heading mw-heading3"><h3 id="Bold_symbols_and_reserved_words">Bold symbols and reserved words</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=13" title="Edit section: Bold symbols and reserved words"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The standard language contains about sixty reserved words, typically bolded in print, and some with "brief symbol" equivalents: </p> <pre><b>MODE</b>, <b>OP</b>, <b>PRIO</b>, <b>PROC</b>, <b>FLEX</b>, <b>HEAP</b>, <b>LOC</b>, <b>LONG</b>, <b>REF</b>, <b>SHORT</b>, <b>BITS</b>, <b>BOOL</b>, <b>BYTES</b>, <b>CHAR</b>, <b>COMPL</b>, <b>INT</b>, <b>REAL</b>, <b>SEMA</b>, <b>STRING</b>, <b>VOID</b>, <b>CHANNEL</b>, <b>FILE</b>, <b>FORMAT</b>, <b>STRUCT</b>, <b>UNION</b>, <b>AT</b> "@", <b>EITHER</b><sup><a href="#The_language_of_the_unrevised_report">r0</a></sup>, <b>IS</b> ":=:", <b>ISNT</b> <b>IS NOT</b><sup><a href="#The_language_of_the_unrevised_report">r0</a></sup> ":/=:" ":≠:", <b>OF</b> "→"<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup>, <b>TRUE</b>, <b>FALSE</b>, <b>EMPTY</b>, <b>NIL</b> "○", <b>SKIP</b> "~", <b>CO</b> "¢", <b>COMMENT</b> "¢", <b>PR</b>, <b>PRAGMAT</b>, <b>CASE</b> ~ <b>IN</b> ~ <b>OUSE</b> ~ <b>IN</b> ~ <b>OUT</b> ~ <b>ESAC</b> "( ~ | ~ |: ~ | ~ | ~ )", <b>FOR</b> ~ <b>FROM</b> ~ <b>TO</b> ~ <b>BY</b> ~ <b>WHILE</b> ~ <b>DO</b> ~ <b>OD</b>, <b>IF</b> ~ <b>THEN</b> ~ <b>ELIF</b> ~ <b>THEN</b> ~ <b>ELSE</b> ~ <b>FI</b> "( ~ | ~ |: ~ | ~ | ~ )", <b>PAR</b> <b>BEGIN</b> ~ <b>END</b> "( ~ )", <b>GO TO</b>, <b>GOTO</b>, <b>EXIT</b> "□"<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup>. </pre> <div class="mw-heading mw-heading3"><h3 id="Units:_Expressions">Units: Expressions</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=14" title="Edit section: Units: Expressions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The basic language construct is the <i>unit</i>. A unit may be a <i>formula</i>, an <i>enclosed clause</i>, a <i>routine text</i> or one of several technically needed constructs (assignation, jump, skip, nihil). The technical term <i>enclosed clause</i> unifies some of the inherently bracketing constructs known as <i>block</i>, <i>do statement</i>, <i>switch statement</i> in other contemporary languages. When keywords are used, generally the reversed character sequence of the introducing keyword is used for terminating the enclosure, e.g. ( <b>IF</b> ~ <b>THEN</b> ~ <b>ELSE</b> ~ <b>FI</b>, <b>CASE</b> ~ <b>IN</b> ~ <b>OUT</b> ~ <b>ESAC</b>, <b>FOR</b> ~ <b>WHILE</b> ~ <b>DO</b> ~ <b>OD</b> ). This <a href="/wiki/Guarded_Command_Language#Selection:_if" title="Guarded Command Language">Guarded Command</a> syntax was reused by <a href="/wiki/Stephen_R._Bourne" title="Stephen R. Bourne">Stephen Bourne</a> in the common <a href="/wiki/Unix" title="Unix">Unix</a> <a href="/wiki/Bourne_shell" title="Bourne shell">Bourne shell</a>. An expression may also yield a <i>multiple value</i>, which is constructed from other values by a <i>collateral clause</i>. This construct just looks like the parameter pack of a procedure call. </p> <div class="mw-heading mw-heading3"><h3 id="mode:_Declarations">mode: Declarations</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=15" title="Edit section: mode: Declarations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The basic <a href="/wiki/Data_type" title="Data type">data types</a> (called <code>mode</code>s in Algol 68 parlance) are <code>real</code>, <code>int</code>, <code>compl</code> (<a href="/wiki/Complex_number" title="Complex number">complex number</a>), <code>bool</code>, <code>char</code>, <code>bits</code> and <code>bytes</code>. For example: </p> <pre><b>INT</b> n = 2; <b>CO</b> n is fixed as a constant of 2. <b>CO</b> <b>INT</b> m := 3; <b>CO</b> m is a newly created local <i>variable</i> whose value is initially set to 3. <b>CO</b> <b>CO</b> This is short for <b>ref</b> <b>int</b> m = <b>loc</b> <b>int</b> := 3; <b>CO</b> <b>REAL</b> avogadro = 6.0221415⏨23; <b>CO</b> Avogadro number <b>CO</b> <b>long long real</b> long long pi = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510; <b>COMPL</b> square root of minus one = 0 ⊥ 1; </pre> <p>However, the declaration <code><b>REAL</b> x;</code> is just <a href="/wiki/Syntactic_sugar" title="Syntactic sugar">syntactic sugar</a> for <code><b>REF</b> <b>REAL</b> x = <b>LOC</b> <b>REAL</b>;</code>. That is, <code>x</code> is really the <i>constant identifier</i> for a <i>reference to</i> a newly generated local <b>REAL</b> variable. </p><p>Furthermore, instead of defining both <code>float</code> and <code>double</code>, or <code>int</code> and <code>long</code> and <code>short</code>, etc., ALGOL 68 provides <i>modifiers</i>, so that the presently common <code>double</code> would be written as <b>LONG</b> <b>REAL</b> or <b>LONG</b> <b>LONG</b> <b>REAL</b> instead, for example. The <i>prelude constants</i> <code>max real</code> and <code>min long int</code> are provided to adapt programs to different implementations. </p><p>All variables need to be declared, but declaration does not have to precede the first use. </p><p>primitive-declarer: <b>INT</b>, <b>REAL</b>, <b>COMPL</b>, <b>COMPLEX</b><sup>G</sup>, <b>BOOL</b>, <b>CHAR</b>, <b>STRING</b>, <b>BITS</b>, <b>BYTES</b>, <b>FORMAT</b>, <b>FILE</b>, <b>PIPE</b><sup>G</sup>, <b>CHANNEL</b>, <b>SEMA</b> </p> <ul><li><b>BITS</b> – a "packed vector" of <b>BOOL</b>.</li> <li><b>BYTES</b> – a "packed vector" of <b>CHAR</b>.</li> <li><b>STRING</b> – a <b>FLEX</b>ible array of <b>CHAR</b>.</li> <li><b>SEMA</b> – a <a href="/wiki/Semaphore_(programming)" title="Semaphore (programming)"><b>SEMA</b>phore</a> which can be initialised with the <b>OP</b>erator <b>LEVEL</b>.</li></ul> <p>Complex types can be created from simpler ones using various type constructors: </p> <ul><li><b>REF</b> <i>mode</i> – a reference to a value of type <i>mode</i>, similar to <b>&</b> in C/C++ and <b>REF</b> in Pascal</li> <li><b>STRUCT</b> – used to build structures, like <b>STRUCT</b> in C/C++ and <b>RECORD</b> in Pascal</li> <li><b>UNION</b> – used to build unions, like in C/C++ and Pascal</li> <li><b>PROC</b> – used to specify procedures, like functions in C/C++ and procedures/functions in Pascal</li></ul> <p>For some examples, see <a href="/wiki/Comparison_of_ALGOL_68_and_C%2B%2B" title="Comparison of ALGOL 68 and C++">Comparison of ALGOL 68 and C++</a>. </p><p>Other declaration symbols include: <b>FLEX</b>, <b>HEAP</b>, <b>LOC</b>, <b>REF</b>, <b>LONG</b>, <b>SHORT</b>, <b>EVENT</b><sup>S</sup> </p> <ul><li><b>FLEX</b> – declare the array to be flexible, i.e. it can grow in length on demand.</li> <li><b>HEAP</b> – allocate variable some free space from the global heap.</li> <li><b>LOC</b> – allocate variable some free space of the local stack.</li> <li><b>LONG</b> – declare an <b>INT</b>, <b>REAL</b> or <b>COMPL</b> to be of a <b>LONG</b>er size.</li> <li><b>SHORT</b> – declare an <b>INT</b>, <b>REAL</b> or <b>COMPL</b> to be of a <b>SHORT</b>er size.</li></ul> <p>A name for a mode (type) can be declared using a <b>MODE</b> declaration, which is similar to <b>TYPEDEF</b> in C/C++ and <b>TYPE</b> in Pascal: </p> <pre> <b>INT</b> max=99; <b>MODE</b> newmode = [0:9][0:max]<b>STRUCT</b> ( <b>LONG</b> <b>REAL</b> a, b, c, <b>SHORT</b> <b>INT</b> i, j, k, <b>REF</b> <b>REAL</b> r ); </pre> <p>This is similar to the following C code: </p> <div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">max</span><span class="o">=</span><span class="mi">99</span><span class="p">;</span> <span class="w"> </span><span class="k">typedef</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">,</span><span class="w"> </span><span class="n">c</span><span class="p">;</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="n">j</span><span class="p">,</span><span class="w"> </span><span class="n">k</span><span class="p">;</span><span class="w"> </span><span class="kt">float</span><span class="w"> </span><span class="o">*</span><span class="n">r</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="n">newmode</span><span class="p">[</span><span class="mi">9</span><span class="o">+</span><span class="mi">1</span><span class="p">][</span><span class="n">max</span><span class="o">+</span><span class="mi">1</span><span class="p">];</span> </pre></div> <p>For ALGOL 68, only the <b>NEWMODE</b> mode-indication appears to the left of the equals symbol, and most notably the construction is made, and can be read, from left to right without regard to priorities. Also, the <b>lower bound</b> of Algol 68 arrays is one by default, but can be any integer from -<i>max int</i> to <i>max int</i>. </p><p>Mode declarations allow types to be <a href="/wiki/Recursive_data_type" title="Recursive data type">recursive</a>: defined directly or indirectly in terms of themselves. This is subject to some restrictions – for instance, these declarations are illegal: </p> <pre> <b>MODE</b> <b>A</b> = <b>REF</b> <b>A</b> <b>MODE</b> <b>A</b> = <b>STRUCT</b> (<b>A</b> a, <b>B</b> b) <b>MODE</b> <b>A</b> = <b>PROC</b> (<b>A</b> a) <b>A</b> </pre> <p>while these are valid: </p> <pre> <b>MODE</b> <b>A</b> = <b>STRUCT</b> (<b>REF</b> <b>A</b> a, <b>B</b> b) <b>MODE</b> <b>A</b> = <b>PROC</b> (<b>REF</b> <b>A</b> a) <b>REF</b> <b>A</b> </pre> <div class="mw-heading mw-heading3"><h3 id="Coercions:_casting">Coercions: casting</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=16" title="Edit section: Coercions: casting"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The <a href="/wiki/Implicit_type_conversion" class="mw-redirect" title="Implicit type conversion">coercions</a> produce a coercee from a coercend according to three criteria: the a priori mode of the coercend before the application of any coercion, the a posteriori mode of the coercee required after those coercions, and the syntactic position or "sort" of the coercee. Coercions may be cascaded. </p><p>The six possible coercions are termed <i>deproceduring</i>, <i>dereferencing</i>, <i>uniting</i>, <i>widening</i>, <i>rowing</i>, and <i>voiding</i>. Each coercion, except for <i>uniting</i>, prescribes a corresponding dynamic effect on the associated values. Hence, many primitive actions can be programmed implicitly by coercions. </p><p>Context strength – allowed coercions: </p> <ul><li>soft – deproceduring</li> <li>weak – dereferencing or deproceduring, yielding a name</li> <li>meek – dereferencing or deproceduring</li> <li>firm – meek, followed by uniting</li> <li>strong – firm, followed by widening, rowing or voiding</li></ul> <div class="mw-heading mw-heading4"><h4 id="Coercion_hierarchy_with_examples">Coercion hierarchy with examples</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=17" title="Edit section: Coercion hierarchy with examples"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ALGOL 68 has a hierarchy of contexts which determine the kind of coercions available at a particular point in the program. These contexts are: </p> <table class="wikitable"> <tbody><tr> <th rowspan="2" class="nowrap ts-vertical-header is-valign-middle" style=""><div style=""><style data-mw-deduplicate="TemplateStyles:r1221560606">@supports(writing-mode:vertical-rl){.mw-parser-output .ts-vertical-header{line-height:1;max-width:1em;padding:0.4em;vertical-align:bottom;width:1em}html.client-js .mw-parser-output .sortable:not(.jquery-tablesorter) .ts-vertical-header:not(.unsortable),html.client-js .mw-parser-output .ts-vertical-header.headerSort{background-position:50%.4em;padding-right:0.4em;padding-top:21px}.mw-parser-output .ts-vertical-header.is-valign-top{vertical-align:top}.mw-parser-output .ts-vertical-header.is-valign-middle{vertical-align:middle}.mw-parser-output .ts-vertical-header.is-normal{font-weight:normal}.mw-parser-output .ts-vertical-header>*{display:inline-block;transform:rotate(180deg);writing-mode:vertical-rl}@supports(writing-mode:sideways-lr){.mw-parser-output .ts-vertical-header>*{transform:none;writing-mode:sideways-lr}}}</style>Context</div> </th> <th rowspan="2">Context location </th> <th colspan="5">Coercions available </th> <th rowspan="2">Coercion examples in the context </th></tr> <tr style="text-align:center"> <td bgcolor="#5555ff" style="" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"><b>Soft</b></span></div> </td> <td bgcolor="#00ee00" style="" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"><b>Weak</b></span></div> </td> <td bgcolor="#dddd00" style="" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:black;background: white;"><b>Meek</b></span></div> </td> <td bgcolor="#cc8800" style="" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"><b>Firm</b></span></div> </td> <td bgcolor="#bb0000" style="" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"><b>Strong</b></span></div> </td></tr> <tr> <td bgcolor="#bb0000" style="" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"><b>Strong</b></span></div> </td> <td>Right hand side of: <ul><li>Identity-declarations, as "~" in: <code><b>REAL</b> x = ~</code></li> <li>Initialisations, as "~" in: <code><b>REAL</b> x := ~</code></li></ul> <p>Also: </p> <ul><li>Actual-parameters of calls, as "~" in:<code><b>PROC</b>: sin(~)</code></li> <li>Enclosed clauses of casts, as "~" in: <code><b>REAL</b>(~)</code></li> <li>Units of routine-texts</li> <li>Statements yielding <b>VOID</b></li> <li>All parts (but one) of a balanced clause</li> <li>One side of an identity relation, as "~" in: <code> ~ <b>IS</b> ~</code></li></ul> </td> <td bgcolor="#5555ff" style="" rowspan="4" width="50px" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"> deproc​edur​ing</span></div> </td> <td bgcolor="#00ee00" style="" rowspan="3" width="50px" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"> All <b>SOFT</b> then weak derefer​encing (deref​erencing or deproc​eduring, yield​ing a name)</span></div> </td> <td bgcolor="#dddd00" style="" rowspan="2" width="50px" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:black;background: white;">All <b>WEAK</b> then derefer​enc​ing (deref​erenc​ing or deproc​edur​ing)</span></div> </td> <td bgcolor="#cc8800" style="" rowspan="1" width="50px" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"> All <b>MEEK</b> then unit​ing</span></div> </td> <td bgcolor="#bb0000" style="" width="50px" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"> All <b>FIRM</b> then widen​ing, rowing or voiding</span></div> </td> <td colspan="1" bgcolor="#bb0000" style="color:#ffffff;"> <p>Widening occurs if there is no loss of precision. For example: An <b>INT</b> will be coerced to a <b>REAL</b>, and a <b>REAL</b> will be coerced to a <b>LONG</b> <b>REAL</b>. But not vice versa. Examples: </p> <ul><li>to <b>LONG</b> <b>INT</b> from <b>INT</b></li> <li>to <b>REAL</b> from <b>INT</b></li> <li>to <b>COMPL</b> from <b>REAL</b></li> <li>to []<b>BOOL</b> from <b>BITS</b></li> <li>to <b>STRING</b> from <b>BYTES</b></li></ul> <p>A variable can also be coerced (rowed) to an array of length 1. </p><p>For example: </p> <ul><li>to [1]<b>INT</b> from <b>INT</b></li> <li>to [1]<b>REAL</b> from <b>REAL</b> etc.</li></ul> </td></tr> <tr> <td bgcolor="#cc8800" style="" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"><b>Firm</b></span></div> </td> <td> <ul><li>Operands of formulas as "~" in:<code>~ <b>OP</b> ~</code></li> <li>Parameters of transput calls</li></ul> </td> <td colspan="3" bgcolor="#cc8800" style="color:#ffffff;">Example: <p><code><b>UNION</b>(<b>INT</b>,<b>REAL</b>) var := 1</code> </p> </td></tr> <tr> <td bgcolor="#dddd00" style="" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:black;background: white;"><b>Meek</b></span></div> </td> <td> <ul><li>Trimscripts (yielding <b>INT</b>)</li> <li>Enquiries: e.g. as "~" in the following</li></ul> <p><code><b>IF</b> ~ <b>THEN</b> ... <b>FI</b></code> and <code><b>FROM</b> ~ <b>BY</b> ~ <b>TO</b> ~ <b>WHILE</b> ~ <b>DO</b> ... <b>OD</b> etc</code> </p> <ul><li>Primaries of calls (e.g. sin in sin(x))</li></ul> </td> <td colspan="4" bgcolor="#dddd00" style="color:#000000;">Examples: <ul><li>to <b>BOOL</b> from <b>REF</b> <b>REF</b> <b>BOOL</b></li> <li>to <b>INT</b> from <b>REF</b> <b>REF</b> <b>REF</b> <b>INT</b></li></ul> </td></tr> <tr> <td bgcolor="#00ee00" style="" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"><b>Weak</b></span></div> </td> <td> <ul><li>Primaries of slices, as in "~" in: <code>~[1:99]</code></li> <li>Secondaries of selections, as "~" in: <code>value <b>OF</b> ~</code></li></ul> </td> <td colspan="5" bgcolor="#00ee00" style="color:#ffffff;">Examples: <ul><li>to <b>REF</b> <b>INT</b> from <b>REF</b> <b>REF</b> <b>INT</b></li> <li>to <b>REF</b> <b>REAL</b> from <b>REF</b> <b>REF</b> <b>REF</b> <b>REAL</b></li> <li>to <b>REF</b> <b>STRUCT</b> from <b>REF</b> <b>REF</b> <b>REF</b> <b>REF</b> <b>STRUCT</b></li></ul> </td></tr> <tr> <td bgcolor="#5555ff" style="" class="nowrap ts-vertical-header is-valign-middle"><div style=""><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1221560606"><span style="color:white"><b>Soft</b></span></div> </td> <td>The LHS of assignments, as "~" in: <code>~ := ...</code> </td> <td colspan="6" bgcolor="#5555ff" style="color:#ffffff;">Example: <ul><li>deproceduring of: <code><b>PROC</b> <b>REAL</b> random: e.g. random</code></li></ul> </td></tr></tbody></table> <p>For more details about Primaries, Secondaries, Tertiary & Quaternaries refer to <a href="#Dyadic_operators_with_associated_priorities">Operator precedence</a>. </p> <div class="mw-heading mw-heading3"><h3 id="pr_&_co:_Pragmats_and_Comments"><span id="pr_.26_co:_Pragmats_and_Comments"></span>pr & co: Pragmats and Comments</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=18" title="Edit section: pr & co: Pragmats and Comments"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Pragmats are <a href="/wiki/Directive_(programming)" title="Directive (programming)">directives</a> in the program, typically hints to the compiler; in newer languages these are called "pragmas" (no 't'). e.g. </p> <pre><b>PRAGMAT</b> heap=32 <b>PRAGMAT</b> <b>PR</b> heap=32 <b>PR</b> </pre> <p>Comments can be inserted in a variety of ways: </p> <pre>¢ The original way of adding your 2 cents worth to a program ¢ <b>COMMENT</b> "bold" comment <b>COMMENT</b> <b>CO</b> Style i comment <b>CO</b> # Style ii comment # £ This is a hash/pound comment for a UK keyboard £ </pre> <p>Normally, comments cannot be nested in ALGOL 68. This restriction can be circumvented by using different comment delimiters (e.g. use hash only for temporary code deletions). </p> <div class="mw-heading mw-heading3"><h3 id="Expressions_and_compound_statements">Expressions and compound statements</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=19" title="Edit section: Expressions and compound statements"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ALGOL 68 being an <a href="/wiki/Expression-oriented_programming_languages" class="mw-redirect" title="Expression-oriented programming languages">expression-oriented programming language</a>, the value returned by an <a href="/wiki/Assignment_(programming)" class="mw-redirect" title="Assignment (programming)">assignment</a> statement is a reference to the destination. Thus, the following is valid ALGOL 68 code: </p> <pre> <b>REAL</b> half pi, one pi; one pi := 2 * ( half pi := 2 * arc tan(1) ) </pre> <p>This notion is present in <a href="/wiki/C_(programming_language)" title="C (programming language)">C</a> and <a href="/wiki/Perl" title="Perl">Perl</a>, among others. Note that as in earlier languages such as <a href="/wiki/Algol_60" class="mw-redirect" title="Algol 60">Algol 60</a> and <a href="/wiki/FORTRAN" class="mw-redirect" title="FORTRAN">FORTRAN</a>, spaces are allowed in identifiers, so that <code>half pi</code> is a <i>single</i> identifier (thus avoiding the <i>underscores</i> versus <i><a href="/wiki/Camel_case_(programming)" class="mw-redirect" title="Camel case (programming)">camel case</a></i> versus <i>all lower-case</i> issues). </p><p>As another example, to express the mathematical idea of a <i>sum</i> of <code>f(i)</code> from i=1 to n, the following ALGOL 68 <i>integer expression</i> suffices: </p> <pre> (<b>INT</b> sum := 0; <b>FOR</b> i <b>TO</b> n <b>DO</b> sum +:= f(i) <b>OD</b>; sum) </pre> <p>Note that, being an integer expression, the former block of code can be used in <i>any context where an integer value can be used</i>. A block of code returns the value of the last expression it evaluated; this idea is present in <a href="/wiki/Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a>, among other languages. </p><p>Compound statements are all terminated by distinctive closing brackets: </p> <ul><li><b>IF</b> choice clauses:</li></ul> <pre> <b>IF</b> condition <b>THEN</b> statements [ <b>ELSE</b> statements ] <b>FI</b> "brief" form: ( condition | statements | statements ) </pre> <pre> <b>IF</b> condition1 <b>THEN</b> statements <b>ELIF</b> condition2 <b>THEN</b> statements [ <b>ELSE</b> statements ] <b>FI</b> "brief" form: ( condition1 | statements |: condition2 | statements | statements ) </pre> <p>This scheme not only avoids the <a href="/wiki/Dangling_else" title="Dangling else">dangling else</a> problem but also avoids having to use <code><b>BEGIN</b></code> and <code><b>END</b></code> in embedded <a href="/wiki/Statement_(programming)" class="mw-redirect" title="Statement (programming)">statement</a> sequences. </p> <ul><li><b>CASE</b> choice clauses:</li></ul> <pre> <b>CASE</b> switch <b>IN</b> statements, statements,... [ <b>OUT</b> statements ] <b>ESAC</b> "brief" form: ( switch | statements,statements,... | statements ) </pre> <pre> <b>CASE</b> switch1 <b>IN</b> statements, statements,... <b>OUSE</b> switch2 <b>IN</b> statements, statements,... [ <b>OUT</b> statements ] <b>ESAC</b> "brief" form of <b>CASE</b> statement: ( switch1 | statements,statements,... |: switch2 | statements,statements,... | statements ) </pre> <p>Choice clause example with <i>Brief</i> symbols: </p> <pre><b>PROC</b> days in month = (<b>INT</b> year, month)<b>INT</b>: (month| 31, (year÷×4=0 ∧ year÷×100≠0 ∨ year÷×400=0 | 29 | 28 ), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ); </pre> <p>Choice clause example with <i>Bold</i> symbols: </p> <pre><b>PROC</b> days in month = (<b>INT</b> year, month)<b>INT</b>: <b>CASE</b> month <b>IN</b> 31, <b>IF</b> year <b>MOD</b> 4 <b>EQ</b> 0 <b>AND</b> year <b>MOD</b> 100 <b>NE</b> 0 <b>OR</b> year <b>MOD</b> 400 <b>EQ</b> 0 <b>THEN</b> 29 <b>ELSE</b> 28 <b>FI</b>, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 <b>ESAC</b>; </pre> <p>Choice clause example mixing <i>Bold</i> and <i>Brief</i> symbols: </p> <pre><b>PROC</b> days in month = (<b>INT</b> year, month)<b>INT</b>: <b>CASE</b> month <b>IN</b> ¢Jan¢ 31, ¢Feb¢ ( year <b>MOD</b> 4 = 0 <b>AND</b> year <b>MOD</b> 100 ≠ 0 <b>OR</b> year <b>MOD</b> 400 = 0 | 29 | 28 ), ¢Mar¢ 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ¢ to Dec. ¢ <b>ESAC</b>; </pre> <p>Algol68 allowed the switch to be of either type <b>INT</b> <i>or</i> (uniquely) <b>UNION</b>. The latter allows the enforcing <a href="/wiki/Strong_typing" class="mw-redirect" title="Strong typing">strong typing</a> onto <b>UNION</b> variables. c.f. <b><a href="#struct,_union_&_.5B:.5D:_Structures,_unions_and_arrays">union</a></b> below for example. </p> <ul><li><b><a href="/wiki/For_loop" title="For loop">do</a></b> loop clause:</li></ul> <pre> [ <b>FOR</b> index ] [ <b>FROM</b> first ] [ <b>BY</b> increment ] [ <b>TO</b> last ] [ <b>WHILE</b> condition ] <b>DO</b> statements <b>OD</b> The minimum form of a "loop clause" is thus: <b>DO</b> statements <b>OD</b> </pre> <p>This was considered <i>the</i> "universal" loop, the full syntax is: </p> <pre><b>FOR</b> i <b>FROM</b> 1 <b>BY</b> -22 <b>TO</b> -333 <b>WHILE</b> i×i≠4444 <b>DO</b> ~ <b>OD</b> </pre> <p>The construct have several unusual aspects: </p> <ul><li>only the <i><b>DO</b> ~ <b>OD</b></i> portion was compulsory, in which case the loop will iterate indefinitely.</li> <li>thus the clause <i><b>TO</b> 100 <b>DO</b> ~ <b>OD</b></i>, will iterate only 100 times.</li> <li>the <b>WHILE</b> "syntactic element" allowed a programmer to break from a <b>FOR</b> loop early. e.g.</li></ul> <pre><b>INT</b> sum sq:=0; <b>FOR</b> i <b>WHILE</b> print(("So far:",i,newline)); sum sq≠70↑2 <b>DO</b> sum sq+:=i↑2 <b>OD</b> </pre> <p>Subsequent "extensions" to the standard Algol68 allowed the <b>TO</b> syntactic element to be replaced with <b>UPTO</b> and <b>DOWNTO</b> to achieve a small optimisation. The same compilers also incorporated: </p> <ul><li><b>UNTIL</b><sup>(C)</sup> – for late loop termination.</li> <li><b>FOREACH</b><sup>(S)</sup> – for working on arrays in <a href="/wiki/Parallel_computing" title="Parallel computing">parallel</a>.</li></ul> <p>Further examples can be found in the code examples below. </p> <div class="mw-heading mw-heading3"><h3 id="struct,_union_&_[:]:_Structures,_unions_and_arrays"><span id="struct.2C_union_.26_.5B:.5D:_Structures.2C_unions_and_arrays"></span>struct, union & <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">[:]</code>: Structures, unions and arrays</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=20" title="Edit section: struct, union & [:]: Structures, unions and arrays"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ALGOL 68 supports <a href="/wiki/Array_data_structure" class="mw-redirect" title="Array data structure">arrays</a> with any number of dimensions, and it allows for the <i>slicing</i> of whole or partial rows or columns. </p> <pre> <b>MODE</b> <b>VECTOR</b> = [1:3] <b>REAL</b>; <i># vector <b>MODE</b> declaration (typedef) #</i> <b>MODE</b> <b>MATRIX</b> = [1:3,1:3]<b>REAL</b>; <i># matrix <b>MODE</b> declaration (typedef) #</i> <b>VECTOR</b> v1  := (1,2,3); <i># array variable initially (1,2,3) #</i> []<b>REAL</b> v2 = (4,5,6); <i># constant array, type equivalent to <b>VECTOR</b>, bounds are implied #</i> <b>OP</b> + = (<b>VECTOR</b> a,b) <b>VECTOR</b>: <i># binary <b>OP</b>erator definition #</i> (<b>VECTOR</b> out; <b>FOR</b> i <b>FROM</b> ⌊a <b>TO</b> ⌈a <b>DO</b> out[i] := a[i]+b[i] <b>OD</b>; out); <b>MATRIX</b> m := (v1, v2, v1+v2); print ((m[,2:])); <i># a slice of the 2nd and 3rd columns #</i> </pre> <p>Matrices can be sliced either way, e.g.: </p> <pre> <b>REF</b> <b>VECTOR</b> row = m[2,]; <i># define a <b>REF</b> (pointer) to the 2nd row #</i> <b>REF</b> <b>VECTOR</b> col = m[,2]; <i># define a <b>REF</b> (pointer) to the 2nd column #</i> </pre> <p>ALGOL 68 supports multiple field structures (<b>STRUCT</b>) and <b><a href="/wiki/United_modes" class="mw-redirect" title="United modes">united modes</a></b>. Reference variables may point to any <b>MODE</b> including array slices and structure fields. </p><p>For an example of all this, here is the traditional linked list declaration: </p> <pre> <b>MODE</b> <b>NODE</b> = <b>UNION</b> (<b>VOID</b>, <b>REAL</b>, <b>INT</b>, <b>COMPL</b>, <b>STRING</b>), <b>LIST</b> = <b>STRUCT</b> (<b>NODE</b> val, <b>REF</b> <b>LIST</b> next); </pre> <p>Usage example for <b>UNION</b> <b>CASE</b> of <i><b>NODE</b></i>: </p> <table border="1" style="border-collapse:collapse; border:5px double gray; float:left;" class="wikitable"> <tbody><tr> <th>Algol68<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup> as in the 1968 Final Report </th> <th>Algol68<sup><a href="#Revisions">r1</a></sup> as in the 1973 Revised Report </th></tr> <tr> <td> <pre> <b>NODE</b> n := "1234"; <b>REAL</b> r; <b>INT</b> i; <b>COMPL</b> c; <b>STRING</b> s <b>CASE</b> r,i,c,s::=n <b>IN</b> print(("real:", r)), print(("int:", i)), print(("compl:", c)), print(("string:", s)) <b>OUT</b> print(("?:", n)) <b>ESAC</b> </pre> </td> <td> <pre> <b>NODE</b> n := "1234"; # or n := EMPTY; # <b>CASE</b> n <b>IN</b> (<b>VOID</b>): print(("void:", "EMPTY")), (<b>REAL</b> r): print(("real:", r)), (<b>INT</b> i): print(("int:", i)), (<b>COMPL</b> c): print(("compl:", c)), (<b>STRING</b> s): print(("string:", s)) <b>OUT</b> print(("?:", n)) <b>ESAC</b> </pre> </td></tr></tbody></table> <div style="clear:both;" class=""></div> <div class="mw-heading mw-heading3"><h3 id="proc:_Procedures">proc: Procedures</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=21" title="Edit section: proc: Procedures"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Procedure (<b>PROC</b>) declarations require type specifications for both the parameters and the result (<b>VOID</b> if none): </p> <pre> <b>PROC</b> max of real = (<b>REAL</b> a, b) <b>REAL</b>: <b>IF</b> a > b <b>THEN</b> a <b>ELSE</b> b <b>FI</b>; </pre> <p>or, using the "brief" form of the conditional statement: </p> <pre> <b>PROC</b> max of real = (<b>REAL</b> a, b) <b>REAL</b>: (a>b | a | b); </pre> <p>The return value of a <code>proc</code> is the value of the last expression evaluated in the procedure. References to procedures (<b>ref proc</b>) are also permitted. <a href="/wiki/Call_by_reference" class="mw-redirect" title="Call by reference">Call-by-reference</a> parameters are provided by specifying references (such as <code><b>ref real</b></code>) in the formal argument list. The following example defines a procedure that applies a function (specified as a parameter) to each element of an array: </p> <pre> <b>PROC</b> apply = (<b>REF</b> [] <b>REAL</b> a, <b>PROC</b> (<b>REAL</b>) <b>REAL</b> f):   <b>FOR</b> i <b>FROM</b> <b>LWB</b> a <b>TO</b> <b>UPB</b> a <b>DO</b> a[i] := f(a[i]) <b>OD</b> </pre> <p>This simplicity of code was unachievable in ALGOL 68's predecessor <a href="/wiki/ALGOL_60" title="ALGOL 60">ALGOL 60</a>. </p> <div class="mw-heading mw-heading3"><h3 id="op:_Operators">op: Operators</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=22" title="Edit section: op: Operators"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The programmer may define new <b><a href="/wiki/Operator_(programming)" class="mw-redirect" title="Operator (programming)">operators</a></b> and <i>both</i> those and the pre-defined ones may be <a href="/wiki/Overloading_(programming)" class="mw-redirect" title="Overloading (programming)">overloaded</a> and their priorities may be changed by the coder. The following example defines operator <code><b>MAX</b></code> with both dyadic and monadic versions (scanning across the elements of an array). </p> <pre> <b>PRIO</b> <b>MAX</b> = 9;   <b>OP</b> <b>MAX</b> = (<b>INT</b> a,b) <b>INT</b>: ( a>b | a | b ); <b>OP</b> <b>MAX</b> = (<b>REAL</b> a,b) <b>REAL</b>: ( a>b | a | b ); <b>OP</b> <b>MAX</b> = (<b>COMPL</b> a,b) <b>COMPL</b>: ( <b>ABS</b> a > <b>ABS</b> b | a | b );   <b>OP</b> <b>MAX</b> = ([]<b>REAL</b> a) <b>REAL</b>: (<b>REAL</b> out := a[<b>LWB</b> a]; <b>FOR</b> i <b>FROM</b> <b>LWB</b> a + 1 <b>TO</b> <b>UPB</b> a <b>DO</b> ( a[i]>out | out:=a[i] ) <b>OD</b>; out) </pre> <div class="mw-heading mw-heading4"><h4 id="Array,_Procedure,_Dereference_and_coercion_operations"><span id="Array.2C_Procedure.2C_Dereference_and_coercion_operations"></span>Array, Procedure, Dereference and coercion operations</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=23" title="Edit section: Array, Procedure, Dereference and coercion operations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <tbody><tr> <th style="background:#ccc;"><b>PRIO</b>rity </th> <th style="background:#ccc;">Operation <sup><a href="#The_language_of_the_unrevised_report">r0</a>&<a href="#Revisions">r1</a></sup> </th> <th style="background:#ccc;">+Algol68<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup> </th> <th style="background:#ccc;">+Algol68<sup>G</sup> </th></tr> <tr> <td align="CENTER">Effectively 12<br />(Primary)</td> <td>dereferencing, deproceduring(~,~), subscripting[~], rowing[~,], slicing[~:~], size denotations <b>LONG</b> & <b>SHORT</b> </td> <td>proceduring </td> <td align="CENTER">currying(~,,,), <b>DIAG</b>, <b>TRNSP</b>, <b>ROW</b>, <b>COL</b> </td></tr> <tr> <td align="CENTER">Effectively 11<br />(Secondary)</td> <td><b>OF</b> (selection), <b>LOC</b> & <b>HEAP</b> (generators) </td> <td>→ (selection) </td> <td><b>NEW</b> (generators) </td></tr></tbody></table> <p>These are technically not operators, rather they are considered "<a rel="nofollow" class="external text" href="https://web.archive.org/web/20130101062456/http://jmvdveer.home.xs4all.nl/report.html#52">units associated with names</a>" </p> <div class="mw-heading mw-heading4"><h4 id="Monadic_operators">Monadic operators</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=24" title="Edit section: Monadic operators"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <tbody><tr> <th style="background:#ccc;"><b>PRIO</b>rity<br />(Tertiary) </th> <th style="background:#ccc;">Algol68 "Worthy characters<sup class="plainlinks nourlexpansion citation" id="ref_worthy"><a class="external autonumber" href="https://en.wikipedia.org/wiki/ALGOL_68#endnote_worthy">[6]</a></sup>"<sup><a href="#The_language_of_the_unrevised_report">r0</a>&<a href="#Revisions">r1</a></sup> </th> <th style="background:#ccc;">+Algol68<sup><a href="#The_language_of_the_unrevised_report">r0</a>&<a href="#Revisions">r1</a></sup> </th> <th style="background:#ccc;">+Algol68<sup>C,G</sup> </th> <th style="background:#ccc;">+Algol68<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup> </th></tr> <tr> <td align="CENTER">10</td> <td><b>NOT</b> ~, <b>UP</b>, <b>DOWN</b>, <b>LWB</b>, <b>UPB</b>, <p>-, <b>ABS</b>, <b>ARG</b>, <b>BIN</b>, <b>ENTIER</b>, <b>LENG</b>, <b>LEVEL</b>, <b>ODD</b>, <b>REPR</b>, <b>ROUND</b>, <b>SHORTEN</b> </p> </td> <td>¬, ↑, ↓, ⌊, ⌈ </td> <td><b>NORM</b>, <b>TRACE</b>, <b>T</b>, <b>DET</b>, <b>INV</b> </td> <td><b>LWS</b>, <b>UPS</b>, ⎩, ⎧, <b>BTB</b>, <b>CTB</b> </td></tr></tbody></table> <div class="mw-heading mw-heading4"><h4 id="Dyadic_operators_with_associated_priorities">Dyadic operators with associated priorities</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=25" title="Edit section: Dyadic operators with associated priorities"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <tbody><tr> <th style="background:#ccc;"><b>PRIO</b>rity<br />(Tertiary) </th> <th style="background:#ccc;">Algol68 "Worthy characters"<sup><a href="#The_language_of_the_unrevised_report">r0</a>&<a href="#Revisions">r1</a></sup> </th> <th style="background:#ccc;">+Algol68<sup><a href="#The_language_of_the_unrevised_report">r0</a>&<a href="#Revisions">r1</a></sup> </th> <th style="background:#ccc;">+Algol68<sup>C,G</sup> </th> <th style="background:#ccc;">+Algol68<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup> </th></tr> <tr style="font-family:monospace"> <td align="CENTER">9</td> <td>+*, <b>I</b></td> <td>+×, ⊥</td> <td></td> <td>! </td></tr> <tr style="font-family:monospace"> <td align="CENTER">8</td> <td><b>SHL</b>, <b>SHR</b>, **, <b>UP</b>, <b>DOWN</b>, <b>LWB</b>, <b>UPB</b></td> <td>↑, ↓, ⌊, ⌈</td> <td></td> <td>××, ^, <b>LWS</b>, <b>UPS</b>, ⎩, ⎧ </td></tr> <tr style="font-family:monospace"> <td align="CENTER">7</td> <td>*, /,  %, <b>OVER</b>,  %*, <b>MOD</b>, <b>ELEM</b></td> <td>×, ÷, ÷×, ÷*, %×, □</td> <td></td> <td>÷: </td></tr> <tr style="font-family:monospace"> <td align="CENTER">6</td> <td>-, +</td> <td></td> <td></td> <td> </td></tr> <tr style="font-family:monospace"> <td align="CENTER">5</td> <td><, <b>LT</b>, <=, <b>LE</b>, >=, <b>GE</b>, >, <b>GT</b></td> <td>≤, ≥</td> <td></td> <td> </td></tr> <tr style="font-family:monospace"> <td align="CENTER">4</td> <td><b>EQ</b> =, <b>NE</b> ~= /=</td> <td>≠, ¬=</td> <td></td> <td> </td></tr> <tr style="font-family:monospace"> <td align="CENTER">3</td> <td>&, <b>AND</b></td> <td>∧</td> <td></td> <td>/\ </td></tr> <tr style="font-family:monospace"> <td align="CENTER">2</td> <td><b>OR</b></td> <td>∨</td> <td></td> <td>\/ </td></tr> <tr style="font-family:monospace"> <td align="CENTER">1</td> <td><b>MINUSAB</b>, <b>PLUSAB</b>, <b>TIMESAB</b>, <b>DIVAB</b>, <b>OVERAB</b>, <b>MODAB</b>, <b>PLUSTO</b>, <p>-:=, +:=, *:=, /:=, %:=, %*:=, +=: </p> </td> <td>×:=, ÷:=, ÷×:=, ÷*:=,  %×:=</td> <td></td> <td><b>MINUS</b>, <b>PLUS</b>, <b>DIV</b>, <b>OVERB</b>, <b>MODB</b>, ÷::=, <b>PRUS</b> </td></tr></tbody></table> <p>Specific details: </p> <ul><li>Tertiaries include names <b>NIL</b> and ○.</li> <li><b>LWS</b>: In Algol68<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup> the operators <b>LWS</b> and ⎩ ... both return <b>TRUE</b> if the <i>lower state</i> of the dimension of an array is fixed.</li> <li>The <b>UPS</b> and ⎧ operators are similar on the <i>upper state</i>.</li> <li>The <b>LWB</b> and <b>UPB</b> operators are automatically available on <b>UNION</b>s of different orders (and <b>MODE</b>s) of arrays. eg. <b>UPB</b> of <b><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">union([]int, [,]real, flex[,,,]char)</code></b></li></ul> <div class="mw-heading mw-heading4"><h4 id="Assignation_and_identity_relations,_etc."><span id="Assignation_and_identity_relations.2C_etc."></span>Assignation and identity relations, etc.</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=26" title="Edit section: Assignation and identity relations, etc."><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>These are technically not operators, rather they are considered "<a rel="nofollow" class="external text" href="https://web.archive.org/web/20130101062456/http://jmvdveer.home.xs4all.nl/report.html#052">units associated with names</a>" </p> <table class="wikitable"> <tbody><tr> <th style="background:#ccc;"><b>PRIO</b>rity<br />(Quaternaries) </th> <th style="background:#ccc;">Algol68 "Worthy characters"<sup><a href="#The_language_of_the_unrevised_report">r0</a>&<a href="#Revisions">r1</a></sup> </th> <th style="background:#ccc;">+Algol68<sup><a href="#The_language_of_the_unrevised_report">r0</a>&<a href="#Revisions">r1</a></sup> </th> <th style="background:#ccc;">+Algol68<sup>C,G,R</sup> </th> <th style="background:#ccc;">+Algol68<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup> </th></tr> <tr> <td align="CENTER">Effectively 0</td> <td><style data-mw-deduplicate="TemplateStyles:r886049734">.mw-parser-output .monospaced{font-family:monospace,monospace}</style><span class="monospaced">:=, <b>IS</b> :=:, <b>ISNT</b> :/=: :~=:, <b>AT</b> @, ":", ";"</span></td> <td><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">:≠: :¬=:</span> </td> <td><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">:=:=<sup>C</sup>, =:=<sup>R</sup></span></td> <td><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">..=, .=, <b>CT</b>, ::, <b>CTAB</b>, ::=, .., <b>is not</b>, "..", ".,"</span> </td></tr></tbody></table> <p>Note: Quaternaries include names <b>SKIP</b> and ~. </p><p><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">:=:</code> (alternatively <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><b>IS</b></span>) tests if two pointers are equal; <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">:/=:</code> (alternatively <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><b>ISNT</b></span>) tests if they are unequal. </p> <div class="mw-heading mw-heading5"><h5 id="Why_:=:_and_:/=:_are_needed"><span id="Why_:.3D:_and_:.2F.3D:_are_needed"></span>Why <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">:=:</code> and <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">:/=:</code> are needed</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=27" title="Edit section: Why :=: and :/=: are needed"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Consider trying to compare two pointer values, such as the following variables, declared as pointers-to-integer: </p> <dl><dd><code><b>REF</b> <b>INT</b> ip, jp </code></dd></dl> <p>Now consider how to decide whether these two are pointing to the same location, or whether one of them is pointing to <b>NIL</b>. The following expression </p> <dl><dd><code>ip = jp </code></dd></dl> <p>will dereference both pointers down to values of type <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><b>INT</b></span>, and compare those, since the <span class="nounderlines" style="border: 1px solid var(--border-color-muted,#ddd); color: var(--color-base); background-color: var( --background-color-neutral-subtle, #fdfdfd); padding: 1px 1px;">=</span> operator is defined for <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><b>INT</b></span>, but not <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><b>REF</b> <b>INT</b></span>. It is <i>not legal</i> to define <span class="nounderlines" style="border: 1px solid var(--border-color-muted,#ddd); color: var(--color-base); background-color: var( --background-color-neutral-subtle, #fdfdfd); padding: 1px 1px;">=</span> for operands of type <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><b>REF</b> <b>INT</b></span> and <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><b>INT</b></span> at the same time, because then calls become ambiguous, due to the implicit coercions that can be applied: should the operands be left as <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><b>REF</b> <b>INT</b></span> and that version of the operator called? Or should they be dereferenced further to <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><b>INT</b></span> and that version used instead? Therefore the following expression can never be made legal: </p> <dl><dd><code>ip = <b>NIL</b> </code></dd></dl> <p>Hence the need for separate constructs not subject to the normal coercion rules for operands to operators. But there is a gotcha. The following expressions: </p> <dl><dd><code>ip :=: jp </code></dd> <dd><code>ip :=: <b>NIL</b> </code></dd></dl> <p>while legal, will probably not do what might be expected. They will always return <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><b>FALSE</b></span>, because they are comparing the <i>actual addresses of the variables </i><code>ip</code><i> and </i><code>jp</code><i>, rather than what they point to</i>. To achieve the right effect, one would have to write </p> <dl><dd><code>ip :=: <b>REF</b> <b>INT</b>(jp) </code></dd> <dd><code>ip :=: <b>REF</b> <b>INT</b>(<b>NIL</b>) </code></dd></dl> <div class="mw-heading mw-heading4"><h4 id="Special_characters">Special characters</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=28" title="Edit section: Special characters"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <dl><dd><figure typeof="mw:File/Thumb"><a href="/wiki/File:APL-keybd2.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/9/9f/APL-keybd2.svg/600px-APL-keybd2.svg.png" decoding="async" width="600" height="183" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/9/9f/APL-keybd2.svg/900px-APL-keybd2.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/9/9f/APL-keybd2.svg/1200px-APL-keybd2.svg.png 2x" data-file-width="410" data-file-height="125" /></a><figcaption><a href="/wiki/IBM_2741" title="IBM 2741">IBM 2741</a> keyboard with APL symbols</figcaption></figure></dd></dl> <p>Most of Algol's "special" characters (⊂, ≡, ␣, ×, ÷, ≤, ≥, ≠, ¬, ⊃, ≡, ∨, ∧, →, ↓, ↑, ⌊, ⌈, ⎩, ⎧, ⊥, ⏨, ¢, ○ and □) can be found on the <a href="/wiki/IBM_2741" title="IBM 2741">IBM 2741</a> keyboard with the <a href="/wiki/APL_(programming_language)#Hardware" title="APL (programming language)">APL</a> "golf-ball" print head inserted; these became available in the mid-1960s while ALGOL 68 was being drafted. These characters are also part of the <a href="/wiki/Unicode" title="Unicode">Unicode</a> standard and most of them are available in several popular <a href="/wiki/Font" title="Font">fonts</a>. </p> <div class="mw-heading mw-heading3"><h3 id="transput:_Input_and_output">transput: Input and output</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=29" title="Edit section: transput: Input and output"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><b>Transput</b> is the term used to refer to ALGOL 68's input and output facilities. It includes pre-defined procedures for unformatted, formatted and binary transput. Files and other transput devices are handled in a consistent and machine-independent manner. The following example prints out some unformatted output to the <b>standard output</b> device: </p> <pre> print ((newpage, "Title", newline, "Value of i is ", i, "and x[i] is ", x[i], newline)) </pre> <p>Note the predefined procedures <code>newpage</code> and <code>newline</code> passed as arguments. </p> <div class="mw-heading mw-heading4"><h4 id="Books,_channels_and_files"><span id="Books.2C_channels_and_files"></span>Books, channels and files</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=30" title="Edit section: Books, channels and files"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The <b>TRANSPUT</b> is considered to be of <b>BOOKS</b>, <b>CHANNELS</b> and <b>FILES</b>: </p> <ul><li><b>Books</b> are made up of pages, lines and characters, and may be backed up by files. <ul><li>A specific book can be located by name with a call to <code>match</code>.</li></ul></li> <li><b>CHANNEL</b>s correspond to physical devices. e.g. card punches and printers. <ul><li>Three standard channels are distinguished: <i>stand in</i> channel, <i>stand out</i> channel, <i>stand back</i> channel.</li></ul></li> <li>A <b>FILE</b> is a means of communicating between a program and a book that has been opened via some channel. <ul><li>The <b>MOOD</b> of a file may be read, write, char, bin, and opened.</li> <li>transput procedures include: <code>establish, create, open, associate, lock, close, scratch</code>.</li> <li>position enquires: <code>char number, line number, page number</code>.</li> <li>layout routines include: <ul><li><code>space</code>, <code>backspace</code>, <code>newline</code>, <code>newpage</code>.</li> <li><code>get good line, get good page, get good book</code>, and <code><b>PROC</b> set=(<b>REF</b> <b>FILE</b> f, <b>INT</b> page,line,char)<b>VOID</b>:</code></li></ul></li> <li>A file has <b>event routines</b>. e.g. <code>on logical file end, on physical file end, on page end, on line end, on format end, on value error, on char error</code>.</li></ul></li></ul> <div class="mw-heading mw-heading4"><h4 id="formatted_transput">formatted transput</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=31" title="Edit section: formatted transput"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>"Formatted transput" in ALGOL 68's transput has its own syntax and patterns (functions), with <b>FORMAT</b>s embedded between two $ characters.<sup id="cite_ref-50" class="reference"><a href="#cite_note-50"><span class="cite-bracket">[</span>50<span class="cite-bracket">]</span></a></sup> </p><p>Examples: </p> <pre> printf (($2l"The sum is:"x, g(0)$, m + n)); ¢ prints the same as: ¢ print ((new line, new line, "The sum is:", space, whole (m + n, 0)) </pre> <div class="mw-heading mw-heading3"><h3 id="par:_Parallel_processing">par: Parallel processing</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=32" title="Edit section: par: Parallel processing"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><i>ALGOL 68</i> supports programming of parallel processing. Using the keyword <b>PAR</b>, a <i>collateral clause</i> is converted to a <i>parallel clause</i>, where the synchronisation of actions is controlled using <a href="/wiki/Semaphore_(programming)" title="Semaphore (programming)">semaphores</a>. In A68G the parallel actions are mapped to threads when available on the hosting <a href="/wiki/Operating_system" title="Operating system">operating system</a>. In A68S a different paradigm of parallel processing was implemented (see below). </p> <pre><b>PROC</b> eat = <b>VOID</b>: ( muffins-:=1; print(("Yum!",new line))), speak = <b>VOID</b>: ( words-:=1; print(("Yak...",new line)));   <b>INT</b> muffins := 4, words := 8; <b>SEMA</b> mouth = <b>LEVEL</b> 1;   <b>PAR</b> <b>BEGIN</b> <b>WHILE</b> muffins > 0 <b>DO</b> <b>DOWN</b> mouth; eat; <b>UP</b> mouth <b>OD</b>, <b>WHILE</b> words > 0 <b>DO</b> <b>DOWN</b> mouth; speak; <b>UP</b> mouth <b>OD</b> <b>END</b> </pre> <div class="mw-heading mw-heading3"><h3 id="Miscellaneous">Miscellaneous</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=33" title="Edit section: Miscellaneous"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>For its technical intricacies, ALGOL 68 needs a cornucopia of methods to deny the existence of something: </p> <pre><b>SKIP</b>, "~" or "?"<sup>C</sup> – an undefined value always syntactically valid, <b>EMPTY</b> – the only value admissible to <b>VOID</b>, needed for selecting <b>VOID</b> in a <b>UNION</b>, <b>VOID</b> – syntactically like a <b>MODE</b>, but not one, <b>NIL</b> or "○" – a name not denoting anything, of an unspecified reference mode, () or specifically [1:0]<b>INT</b> – a <i>vacuum</i> is an empty array (here specifically of <b>MODE</b> []<b>INT</b>). <i>undefined</i> – a standards reports procedure raising an exception in the runtime system. ℵ – Used in the standards report to inhibit <a href="/wiki/Type_introspection" title="Type introspection">introspection</a> of certain types. e.g. <b>SEMA</b> </pre> <p>The term <b>NIL</b> <b>IS</b> <i>var</i> always evaluates to <b>TRUE</b> for any variable (but see above for correct use of <b>IS</b> :/=:), whereas it is not known to which value a comparison <i>x</i> < <b>SKIP</b> evaluates for any integer <i>x</i>. </p><p>ALGOL 68 leaves intentionally undefined what happens in case of <a href="/wiki/Integer_overflow" title="Integer overflow">integer overflow</a>, the integer bit representation, and the degree of numerical accuracy for floating point. </p><p>Both official reports included some advanced features that were not part of the standard language. These were indicated with an ℵ and considered effectively private. Examples include "≮" and "≯" for templates, the <b>OUTTYPE</b>/<b>INTYPE</b> for crude <a href="/wiki/Duck_typing" title="Duck typing">duck typing</a>, and the <b>STRAIGHTOUT</b> and <b>STRAIGHTIN</b> operators for "straightening" nested arrays and structures </p> <div class="mw-heading mw-heading2"><h2 id="Examples_of_use">Examples of use</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=34" title="Edit section: Examples of use"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Code_sample">Code sample</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=35" title="Edit section: Code sample"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>This sample program implements the <a href="/wiki/Sieve_of_Eratosthenes" title="Sieve of Eratosthenes">Sieve of Eratosthenes</a> to find all the <a href="/wiki/Prime_number" title="Prime number">prime numbers</a> that are less than 100. <b>NIL</b> is the ALGOL 68 analogue of the <i>null pointer</i> in other languages. The notation <i>x</i> <b>OF</b> <i>y</i> accesses a member <i>x</i> of a <b>STRUCT</b> <i>y</i>. </p> <pre><b>BEGIN</b> # Algol-68 prime number sieve, functional style #   <b>PROC</b> error = (<b>STRING</b> s) <b>VOID</b>: (print(( newline, " error: ", s, newline)); <b>GOTO</b> stop); <b>PROC</b> one to = (<b>INT</b> n) <b>LIST</b>: (<b>PROC</b> f = (<b>INT</b> m,n) <b>LIST</b>: (m>n | <b>NIL</b> | cons(m, f(m+1,n))); f(1,n));   <b>MODE</b> <b>LIST</b> = <b>REF</b> <b>NODE</b>; <b>MODE</b> <b>NODE</b> = <b>STRUCT</b> (<b>INT</b> h, <b>LIST</b> t); <b>PROC</b> cons = (<b>INT</b> n, <b>LIST</b> l) <b>LIST</b>: <b>HEAP</b> <b>NODE</b> := (n,l); <b>PROC</b> hd = (<b>LIST</b> l) <b>INT</b>: ( l <b>IS</b> <b>NIL</b> | error("hd <b>NIL</b>"); <b>SKIP</b> | h <b>OF</b> l ); <b>PROC</b> tl = (<b>LIST</b> l) <b>LIST</b>: ( l <b>IS</b> <b>NIL</b> | error("tl <b>NIL</b>"); <b>SKIP</b> | t <b>OF</b> l ); <b>PROC</b> show = (<b>LIST</b> l) <b>VOID</b>: ( l <b>ISNT</b> <b>NIL</b> | print((" ",whole(hd(l),0))); show(tl(l)));   <b>PROC</b> filter = (<b>PROC</b> (<b>INT</b>) <b>BOOL</b> p, <b>LIST</b> l) <b>LIST</b>: <b>IF</b> l <b>IS</b> <b>NIL</b> <b>THEN</b> <b>NIL</b> <b>ELIF</b> p(hd(l)) <b>THEN</b> cons(hd(l), filter(p,tl(l))) <b>ELSE</b> filter(p, tl(l)) <b>FI</b>;   <b>PROC</b> sieve = (<b>LIST</b> l) <b>LIST</b>: <b>IF</b> l <b>IS</b> <b>NIL</b> <b>THEN</b> <b>NIL</b> <b>ELSE</b> <b>PROC</b> not multiple = (<b>INT</b> n) <b>BOOL</b>: n <b>MOD</b> hd(l) ~= 0; cons(hd(l), sieve( filter( not multiple, tl(l) ))) <b>FI</b>;   <b>PROC</b> primes = (<b>INT</b> n) <b>LIST</b>: sieve( tl( one to(n) ));   show( primes(100) ) <b>END</b> </pre> <div class="mw-heading mw-heading3"><h3 id="Operating_systems_written_in_ALGOL_68">Operating systems written in ALGOL 68</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=36" title="Edit section: Operating systems written in ALGOL 68"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Cambridge_CAP_computer" class="mw-redirect" title="Cambridge CAP computer">Cambridge CAP computer</a> – All procedures constituting the operating system were written in <a href="/wiki/ALGOL_68C" title="ALGOL 68C">ALGOL 68C</a>, although several other closely associated protected procedures, such as a paginator, are written in <a href="/wiki/BCPL" title="BCPL">BCPL</a>.<sup id="cite_ref-51" class="reference"><a href="#cite_note-51"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup></li> <li>Eldon 3 – Developed at <a href="/wiki/Leeds_University" class="mw-redirect" title="Leeds University">Leeds University</a> for the <a href="/wiki/ICT_1900_series" title="ICT 1900 series">ICL 1900</a> was written in <a href="/wiki/ALGOL_68-R" title="ALGOL 68-R">ALGOL 68-R</a>.<sup id="cite_ref-eldon_52-0" class="reference"><a href="#cite_note-eldon-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup></li> <li><a href="/wiki/Flex_machine" title="Flex machine">Flex machine</a> – The hardware was custom and microprogrammable, with an operating system, (modular) compiler, editor, garbage collector and filing system all written in <a href="/wiki/ALGOL_68RS" title="ALGOL 68RS">ALGOL 68RS</a>. The command shell Curt<sup id="cite_ref-53" class="reference"><a href="#cite_note-53"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup> was designed to access typed data similar to Algol-68 modes.</li> <li><a href="/wiki/ICL_VME" title="ICL VME">VME</a> – <a href="/wiki/S3_(programming_language)" title="S3 (programming language)">S3</a> was the implementation language of the <a href="/wiki/Operating_system" title="Operating system">operating system</a> VME. S3 was based on ALGOL 68 but with data types and operators aligned to those offered by the <a href="/wiki/ICL_2900_Series" title="ICL 2900 Series">ICL 2900 Series</a>.</li></ul> <p>Note: The Soviet Era computers <a href="/wiki/Elbrus_(computer)" title="Elbrus (computer)">Эльбрус-1 (Elbrus-1)</a> and Эльбрус-2 were created using high-level language Эль-76 (AL-76), rather than the traditional assembly. Эль-76 resembles Algol-68, The main difference is the dynamic binding types in Эль-76 supported at the hardware level. Эль-76 is used for application, job control, system programming.<sup id="cite_ref-54" class="reference"><a href="#cite_note-54"><span class="cite-bracket">[</span>54<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Applications">Applications</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=37" title="Edit section: Applications"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Both <a href="/wiki/ALGOL_68C" title="ALGOL 68C">ALGOL 68C</a> and <a href="/wiki/ALGOL_68-R" title="ALGOL 68-R">ALGOL 68-R</a> are written in ALGOL 68, effectively making ALGOL 68 an application of itself. Other applications include: </p> <ul><li><a href="/wiki/ELLA_(programming_language)" title="ELLA (programming language)">ELLA</a> – a hardware description language and support toolset. Developed by the <a href="/wiki/Royal_Signals_and_Radar_Establishment" title="Royal Signals and Radar Establishment">Royal Signals and Radar Establishment</a> during the 1980s and 1990s.</li> <li><a href="/wiki/RAF_Strike_Command" title="RAF Strike Command">RAF Strike Command</a> System – "... 400K of error-free <a href="/wiki/ALGOL_68-RT" class="mw-redirect" title="ALGOL 68-RT">ALGOL 68-RT</a> code was produced with three man-years of work. ..."<sup id="cite_ref-55" class="reference"><a href="#cite_note-55"><span class="cite-bracket">[</span>55<span class="cite-bracket">]</span></a></sup></li></ul> <div class="mw-heading mw-heading3"><h3 id="Libraries_and_APIs">Libraries and APIs</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=38" title="Edit section: Libraries and APIs"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/NAG_Numerical_Libraries" class="mw-redirect" title="NAG Numerical Libraries">NAG Numerical Libraries</a> – a <a href="/wiki/Software_library" class="mw-redirect" title="Software library">software library</a> of <a href="/wiki/Numerical_analysis" title="Numerical analysis">numerical analysis</a> routines. Supplied in ALGOL 68 during the 1980s.</li> <li>TORRIX – a programming system for operations on vectors and matrices over arbitrary fields and of variable size by S. G. van der Meulen and M. Veldhorst.<sup id="cite_ref-torrix_56-0" class="reference"><a href="#cite_note-torrix-56"><span class="cite-bracket">[</span>56<span class="cite-bracket">]</span></a></sup></li></ul> <div class="mw-heading mw-heading2"><h2 id="Program_representation">Program representation</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=39" title="Edit section: Program representation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A feature of ALGOL 68, inherited from the <a href="/wiki/ALGOL" title="ALGOL">ALGOL</a> tradition, is its different representations. There is a <i>representation language</i> used to describe algorithms in printed work, a <i>strict language</i> (rigorously defined in the Report), and an official <i>reference language</i> intended to be used in compiler input. The examples contain <b>BOLD</b> typeface words, this is the <b>STRICT</b> language. ALGOL 68's reserved words are effectively in a different <a href="/wiki/Namespace" title="Namespace">namespace</a> from identifiers, and spaces are allowed in identifiers, so this next fragment is legal: </p> <pre> <b>INT</b> a real int = 3 ; </pre> <p>The programmer who writes executable code does not always have an option of <b>BOLD</b> typeface or <u>underlining</u> in the code as this may depend on hardware and cultural issues. Different methods to denote these identifiers have been devised. This is called a <i><a href="/wiki/Stropping_(programming)" class="mw-redirect" title="Stropping (programming)">stropping</a> regime</i>. For example, all or some of the following may be available <i>programming representations</i>: </p> <pre> <b>INT</b> a real int = 3; # the <b>STRICT</b> language # 'INT'A REAL INT = 3; # QUOTE stropping style # .INT A REAL INT = 3; # POINT stropping style # INT a real int = 3; # UPPER stropping style # int a_real_int = 3; # RES stropping style, there are 61 accepted reserved words # </pre> <p>All implementations must recognize at least POINT, UPPER and RES inside PRAGMAT sections. Of these, POINT and UPPER stropping are quite common, while RES stropping is a contradiction to the specification (as there are no reserved words). QUOTE (single apostrophe quoting) was the original recommendation, while matched apostrophe quoting, common in ALGOL 60, is not used much in ALGOL 68.<sup id="cite_ref-57" class="reference"><a href="#cite_note-57"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup> </p><p>The following characters were recommended for portability, and termed "worthy characters" in the <a rel="nofollow" class="external text" href="http://www.fh-jena.de/~kleine/history/languages/Algol68-RR-HardwareRepresentation.pdf">Report on the Standard Hardware Representation of Algol 68</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140102201013/http://www.fh-jena.de/~kleine/history/languages/Algol68-RR-HardwareRepresentation.pdf">Archived</a> 2014-01-02 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>: </p> <ul><li><style data-mw-deduplicate="TemplateStyles:r1041539562">.mw-parser-output .citation{word-wrap:break-word}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}</style><span class="citation wikicite" id="endnote_worthy"><b><a href="#ref_worthy">^</a></b></span> Worthy Characters: ABCDEFGHIJKLM<wbr />NOPQRSTUVWXYZ<wbr />0123456789 "#$%'()*+,-./:;<=>@[ ]_|</li></ul> <p>This reflected a problem in the 1960s where some hardware didn't support lower-case, nor some other non-<a href="/wiki/ASCII" title="ASCII">ASCII</a> characters, indeed in the 1973 report it was written: "Four worthy characters — "|", "_", "[", and "]" — are often coded differently, even at installations which nominally use the same character set." </p> <ul><li>Base characters: "Worthy characters" are a subset of "base characters".</li></ul> <div class="mw-heading mw-heading3"><h3 id="Example_of_different_program_representations">Example of different program representations</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=40" title="Edit section: Example of different program representations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable plainrowheaders"> <tbody><tr> <th scope="col">Representation </th> <th scope="col">Code </th></tr> <tr> <th scope="row">Algol68 "strict"<br />as typically published </th> <td><style data-mw-deduplicate="TemplateStyles:r1195917819">.mw-parser-output .pre-borderless{border:none}</style><pre class="pre"><i>¢ underline or </i> <i>bold typeface ¢</i> <b>MODE</b> <b>XINT</b> = <b>INT</b>; <b>XINT</b> sum sq:=0; <b>FOR</b> i <b>WHILE</b> sum sq≠70×70 <b>DO</b> sum sq+:=i↑2 <b>OD</b></pre> </td></tr> <tr> <th scope="row">Quote stropping<br />(like <a href="/wiki/Lightweight_markup_language#Text/font-face_formatting" title="Lightweight markup language">wikitext</a>) </th> <td><div class="mw-highlight mw-highlight-lang-text mw-content-ltr" dir="ltr"><pre><span></span>'pr' quote 'pr' 'mode' 'xint' = 'int'; 'xint' sum sq:=0; 'for' i 'while' sum sq≠70×70 'do' sum sq+:=i↑2 'od' </pre></div> </td></tr> <tr> <th scope="row">For a <a href="/wiki/List_of_binary_codes#Seven-bit_binary_codes" title="List of binary codes">7-bit</a> character code compiler </th> <td><div class="mw-highlight mw-highlight-lang-man mw-content-ltr" dir="ltr"><pre><span></span>.<span class="k">PR</span> <span class="s">UPPER</span> <span class="s">.PR</span> MODE XINT = INT; XINT sum sq:=0; FOR i WHILE sum sq/=70*70 DO sum sq+:=i**2 OD </pre></div> </td></tr> <tr> <th scope="row">For a <a href="/wiki/Six-bit_character_code" title="Six-bit character code">6-bit</a> character code compiler </th> <td><div class="mw-highlight mw-highlight-lang-man mw-content-ltr" dir="ltr"><pre><span></span>.<span class="k">PR</span> <span class="s">POINT</span> <span class="s">.PR</span> .<span class="k">MODE</span> <span class="s">.XINT</span> <span class="s">=</span> <span class="s">.INT;</span> .<span class="k">XINT</span> <span class="s">SUM</span> <span class="s">SQ:=0;</span> .<span class="k">FOR</span> <span class="s">I</span> <span class="s">.WHILE</span> SUM SQ .NE 70*70 .<span class="k">DO</span> SUM SQ .PLUSAB I .UP 2 .<span class="k">OD</span> </pre></div> </td></tr> <tr> <th scope="row">Algol68 using <b>RES</b> stropping<br />(reserved word) </th> <td><div class="mw-highlight mw-highlight-lang-man mw-content-ltr" dir="ltr"><pre><span></span>.<span class="k">PR</span> <span class="s">RES</span> <span class="s">.PR</span> mode .xint = int; .<span class="k">xint</span> <span class="s">sum</span> <span class="s">sq:=0;</span> for i while sum sq≠70×70 do sum sq+:=i↑2 od </pre></div> </td></tr></tbody></table> <p>ALGOL 68 allows for every natural language to define its own set of keywords Algol-68. As a result, programmers are able to write programs using keywords from their native language. Below is an example of a simple procedure that calculates "the day following", the code is in two languages: English and German.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (August 2011)">citation needed</span></a></i>]</sup> </p> <pre> # Next day date - English variant # <b>MODE</b> <b>DATE</b> = <b>STRUCT</b>(<b>INT</b> day, <b>STRING</b> month, <b>INT</b> year); <b>PROC</b> the day following = (<b>DATE</b> x) <b>DATE</b>: <b>IF</b> day <b>OF</b> x < length of month (month <b>OF</b> x, year <b>OF</b> x) <b>THEN</b> (day <b>OF</b> x + 1, month <b>OF</b> x, year <b>OF</b> x) <b>ELIF</b> month <b>OF</b> x = "December" <b>THEN</b> (1, "January", year <b>OF</b> x + 1) <b>ELSE</b> (1, successor of month (month <b>OF</b> x), year <b>OF</b> x) <b>FI</b>; </pre> <pre> # Nachfolgetag - Deutsche Variante # <b>MENGE</b> <b>DATUM</b> = <b>TUPEL</b>(<b>GANZ</b> tag, <b>WORT</b> monat, <b>GANZ</b> jahr); <b>FUNKTION</b> naechster tag nach = (<b>DATUM</b> x) <b>DATUM</b>: <b>WENN</b> tag <b>VON</b> x < monatslaenge(monat <b>VON</b> x, jahr <b>VON</b> x) <b>DANN</b> (tag <b>VON</b> x + 1, monat <b>VON</b> x, jahr <b>VON</b> x) <b>WENNABER</b> monat <b>VON</b> x = "Dezember" <b>DANN</b> (1, "Januar", jahr <b>VON</b> x + 1) <b>ANSONSTEN</b> (1, nachfolgemonat(monat <b>VON</b> x), jahr <b>VON</b> x) <b>ENDEWENN</b>; </pre> <p><i>Russian/Soviet example:</i> In English Algol68's case statement reads <b>CASE</b> ~ <b>IN</b> ~ <b>OUT</b> ~ <b>ESAC</b>, in <a href="/wiki/Cyrillic" class="mw-redirect" title="Cyrillic">Cyrillic</a> this reads <b>выб</b> ~ <b>в</b> ~ <b>либо</b> ~ <b>быв</b>. </p> <div class="mw-heading mw-heading2"><h2 id="Revisions">Revisions</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=41" title="Edit section: Revisions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Except where noted (with a <sup>superscript</sup>), the language described above is that of the "Revised Report<sup>(r1)</sup>". </p> <div class="mw-heading mw-heading3"><h3 id="The_language_of_the_unrevised_report">The language of the unrevised report</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=42" title="Edit section: The language of the unrevised report"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The original language (As per the "Final Report"<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup>) differs in syntax of the <i>mode cast</i>, and it had the feature of <i>proceduring</i>, i.e. coercing the value of a term into a procedure which evaluates the term. Proceduring would be intended to make evaluations <i>lazy</i>. The most useful application could have been the short-circuited evaluation of Boolean operators. In: </p> <pre><b>OP</b> <b>ANDF</b> = (<b>BOOL</b> a,<b>PROC</b> <b>BOOL</b> b)<b>BOOL</b>:(a | b | <b>FALSE</b>); <b>OP</b> <b>ORF</b> = (<b>BOOL</b> a,<b>PROC</b> <b>BOOL</b> b)<b>BOOL</b>:(a | <b>TRUE</b> | b); </pre> <p><i>b</i> is only evaluated if <i>a</i> is true. </p><p>As defined in ALGOL 68, it did not work as expected, for example in the code: </p> <pre><b>IF</b> <b>FALSE</b> <b>ANDF</b> <b>CO</b> proc bool: <b>CO</b> ( print ("Should not be executed"); <b>TRUE</b>) <b>THEN</b> ... </pre> <p>against the programmers naïve expectations the print <i>would</i> be executed as it is only the <i>value</i> of the elaborated enclosed-clause after <b>ANDF</b> that was procedured. Textual insertion of the commented-out <b>PROC</b> <b>BOOL</b>: makes it work. </p><p>Some implementations emulate the expected behaviour for this special case by extension of the language. </p><p>Before revision, the programmer could decide to have the arguments of a procedure evaluated serially instead of collaterally by using semicolons instead of commas (<i><a rel="nofollow" class="external text" href="https://groups.google.com/group/comp.lang.misc/msg/03af5063e1662d4d">gomma</a></i>s). </p><p>For example in: </p> <pre><b>PROC</b> test = (<b>REAL</b> a; <b>REAL</b> b) :... ... test (x <b>PLUS</b> 1, x); </pre> <p>The first argument to test is guaranteed to be evaluated before the second, but in the usual: </p> <pre><b>PROC</b> test = (<b>REAL</b> a, b) :... ... test (x <b>PLUS</b> 1, x); </pre> <p>then the compiler could evaluate the arguments in whatever order it felt like. </p> <div class="mw-heading mw-heading3"><h3 id="Extension_proposals_from_IFIP_WG_2.1">Extension proposals from IFIP WG 2.1</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=43" title="Edit section: Extension proposals from IFIP WG 2.1"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>After the revision of the report, some extensions to the language have been proposed to widen the applicability: </p> <ul><li><i>partial parametrisation</i> (aka <a href="/wiki/Currying#Motivation" title="Currying">Currying</a>): creation of functions (with fewer parameters) by specification of some, but not all parameters for a call, e.g. a function logarithm of two parameters, base and argument, could be specialised to natural, binary or decadic log,<sup id="cite_ref-58" class="reference"><a href="#cite_note-58"><span class="cite-bracket">[</span>58<span class="cite-bracket">]</span></a></sup></li> <li><i>module extension</i>: for support of external linkage, two mechanisms were proposed, bottom-up <i>definition modules</i>, a more powerful version of the facilities from <a href="/wiki/ALGOL_68-R" title="ALGOL 68-R">ALGOL 68-R</a> and top-down <i>holes</i>, similar to the <code>ENVIRON</code> and <code>USING</code> clauses from <a href="/wiki/ALGOL_68C" title="ALGOL 68C">ALGOL 68C</a><sup id="cite_ref-modules_59-0" class="reference"><a href="#cite_note-modules-59"><span class="cite-bracket">[</span>59<span class="cite-bracket">]</span></a></sup></li> <li><i>mode parameters</i>: for implementation of limited parametrical polymorphism (most operations on data structures like lists, trees or other data containers can be specified without touching the pay load).<sup id="cite_ref-60" class="reference"><a href="#cite_note-60"><span class="cite-bracket">[</span>60<span class="cite-bracket">]</span></a></sup></li></ul> <p>So far, only partial parametrisation has been implemented, in Algol 68 Genie. </p> <div class="mw-heading mw-heading3"><h3 id="True_ALGOL_68s_specification_and_implementation_timeline">True ALGOL 68s specification and implementation timeline</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=44" title="Edit section: True ALGOL 68s specification and implementation timeline"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable"> <tbody><tr style="background:#ccc;"> <th>Name</th> <th>Year</th> <th>Purpose</th> <th>State</th> <th>Description</th> <th>Target CPU</th> <th>Licensing</th> <th>Implementation language </th></tr> <tr> <td><a href="/w/index.php?title=Generalized_ALGOL&action=edit&redlink=1" class="new" title="Generalized ALGOL (page does not exist)">Generalized ALGOL</a></td> <td>1962</td> <td>Scientific</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/23px-Flag_of_the_Netherlands.svg.png" decoding="async" width="23" height="15" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/35px-Flag_of_the_Netherlands.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/45px-Flag_of_the_Netherlands.svg.png 2x" data-file-width="900" data-file-height="600" /></span></span> </span><a href="/wiki/Netherlands" title="Netherlands">NLD</a></td> <td>ALGOL for generalised grammars</td> <td></td> <td></td> <td> </td></tr> <tr> <td><a href="/wiki/ALGOL_Y" title="ALGOL Y">ALGOL Y</a><sup>Y</sup></td> <td>1966</td> <td>Draft proposal</td> <td>Intl</td> <td>First version of Algol 68</td> <td>Specification</td> <td><a href="/wiki/Association_for_Computing_Machinery" title="Association for Computing Machinery">ACM</a></td> <td> </td></tr> <tr> <td>ALGOL 68<sup>DR</sup></td> <td>1968</td> <td>Draft proposal</td> <td>Intl</td> <td>IFIP WG 2.1 Draft Report</td> <td>Specification – March</td> <td>ACM</td> <td> </td></tr> <tr> <td>ALGOL 68<sup><a href="#The_language_of_the_unrevised_report">r0</a></sup></td> <td>1968</td> <td>Standard</td> <td>Intl</td> <td>IFIP WG 2.1 Final Report</td> <td>Specification – August</td> <td>ACM</td> <td> </td></tr> <tr> <td><a href="/wiki/ALGOL_68-R" title="ALGOL 68-R">ALGOL 68-R</a><sup>R</sup></td> <td>1970</td> <td>Military</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/23px-Flag_of_the_United_Kingdom.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/35px-Flag_of_the_United_Kingdom.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/46px-Flag_of_the_United_Kingdom.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/United_Kingdom" title="United Kingdom">UK</a></td> <td></td> <td><a href="/wiki/ICT_1900_series" title="ICT 1900 series">ICL 1900</a></td> <td></td> <td>ALGOL 60 </td></tr> <tr> <td><a href="/w/index.php?title=EPOS_ALGOL&action=edit&redlink=1" class="new" title="EPOS ALGOL (page does not exist)">EPOS ALGOL</a><sup>E</sup></td> <td>1971</td> <td>Scientific</td> <td></td> <td></td> <td></td> <td></td> <td> </td></tr> <tr> <td><a href="/wiki/ALGOL_68RS" title="ALGOL 68RS">ALGOL 68RS</a><sup>RS</sup></td> <td>1972</td> <td>Military</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/23px-Flag_of_the_United_Kingdom.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/35px-Flag_of_the_United_Kingdom.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/46px-Flag_of_the_United_Kingdom.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/United_Kingdom" title="United Kingdom">UK</a></td> <td>Portable compiler system</td> <td>ICL 2900/Series 39, Multics, VMS & <span class="nowrap">C generator (1993)</span></td> <td><a href="/wiki/Crown_Copyright" class="mw-redirect" title="Crown Copyright">Crown Copyright</a></td> <td>ALGOL 68RS </td></tr> <tr> <td>Algol 68 with areas</td> <td>1972</td> <td>Experimental & other</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/23px-Flag_of_the_United_Kingdom.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/35px-Flag_of_the_United_Kingdom.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/46px-Flag_of_the_United_Kingdom.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/United_Kingdom" title="United Kingdom">UK</a></td> <td>Addition of areas to Algol 68</td> <td></td> <td></td> <td> </td></tr> <tr> <td>Mini ALGOL 68</td> <td>1973</td> <td>Research</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/23px-Flag_of_the_Netherlands.svg.png" decoding="async" width="23" height="15" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/35px-Flag_of_the_Netherlands.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/45px-Flag_of_the_Netherlands.svg.png 2x" data-file-width="900" data-file-height="600" /></span></span> </span><a href="/wiki/Netherlands" title="Netherlands">NLD</a></td> <td><a rel="nofollow" class="external text" href="http://oai.cwi.nl/oai/asset/9494/9494A.pdf">"An interpreter for simple Algol 68 Programs"</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110718172314/http://oai.cwi.nl/oai/asset/9494/9494A.pdf">Archived</a> 2011-07-18 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></td> <td>Portable interpreter</td> <td><a href="/wiki/Mathematisch_Centrum" class="mw-redirect" title="Mathematisch Centrum">Mathematisch Centrum</a></td> <td><a href="/wiki/ALGOL_60" title="ALGOL 60">ALGOL 60</a> </td></tr> <tr> <td><a href="/w/index.php?title=OREGANO&action=edit&redlink=1" class="new" title="OREGANO (page does not exist)">OREGANO</a></td> <td>1973</td> <td>Research</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/23px-Flag_of_the_United_States.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/35px-Flag_of_the_United_States.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/46px-Flag_of_the_United_States.svg.png 2x" data-file-width="1235" data-file-height="650" /></span></span> </span><a href="/wiki/United_States" title="United States">US</a></td> <td>"The importance of implementation models."</td> <td></td> <td><a href="/wiki/UCLA" class="mw-redirect" title="UCLA">UCLA</a></td> <td> </td></tr> <tr> <td><a href="/wiki/ALGOL_68C" title="ALGOL 68C">ALGOL 68C</a><sup>C</sup></td> <td>1975</td> <td>Scientific</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/23px-Flag_of_the_United_Kingdom.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/35px-Flag_of_the_United_Kingdom.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/46px-Flag_of_the_United_Kingdom.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/United_Kingdom" title="United Kingdom">UK</a></td> <td>Cambridge Algol 68</td> <td><a href="/wiki/International_Computers_Limited" title="International Computers Limited">ICL</a>, IBM 360, PDP 10 & Unix, <a href="/wiki/Telefunken" title="Telefunken">Telefunken</a>, Tesla & <a href="/wiki/Z80" class="mw-redirect" title="Z80">Z80</a> (1980)<sup id="cite_ref-61" class="reference"><a href="#cite_note-61"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup></td> <td>Cambridge</td> <td>ALGOL 68C </td></tr> <tr> <td><b>ALGOL 68 Revised Report</b><sup><a href="#Revisions">r1</a></sup></td> <td>1975</td> <td>Standard</td> <td>Intl</td> <td>IFIP WG 2.1 Revised Report</td> <td>Specification</td> <td>ACM</td> <td> </td></tr> <tr> <td><a href="/w/index.php?title=Algol_H&action=edit&redlink=1" class="new" title="Algol H (page does not exist)">Algol H</a><sup>H</sup></td> <td>1975</td> <td>Experimental & other</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/23px-Flag_of_the_United_Kingdom.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/35px-Flag_of_the_United_Kingdom.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/46px-Flag_of_the_United_Kingdom.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/United_Kingdom" title="United Kingdom">UK</a></td> <td>Proposed extensions to the mode system of Algol 68</td> <td>Specification</td> <td></td> <td><a href="/wiki/ALGOL_W" title="ALGOL W">ALGOL W</a> </td></tr> <tr> <td><a href="/wiki/Odra_(computer)" title="Odra (computer)">Odra</a> Algol 68</td> <td>1976</td> <td>practical uses</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Flag_of_the_Soviet_Union.svg/23px-Flag_of_the_Soviet_Union.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Flag_of_the_Soviet_Union.svg/35px-Flag_of_the_Soviet_Union.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Flag_of_the_Soviet_Union.svg/46px-Flag_of_the_Soviet_Union.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/Soviet_Union" title="Soviet Union">Soviet Union</a>/<span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/1/12/Flag_of_Poland.svg/23px-Flag_of_Poland.svg.png" decoding="async" width="23" height="14" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/1/12/Flag_of_Poland.svg/35px-Flag_of_Poland.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/1/12/Flag_of_Poland.svg/46px-Flag_of_Poland.svg.png 2x" data-file-width="1280" data-file-height="800" /></span></span> </span><a href="/wiki/Poland" title="Poland">Poland</a></td> <td></td> <td>Odra 1204/IL</td> <td><a href="/wiki/Copyright_law_of_the_Soviet_Union" title="Copyright law of the Soviet Union">Soviet</a></td> <td><a href="/wiki/ALGOL_60" title="ALGOL 60">ALGOL 60</a> </td></tr> <tr> <td>Oklahoma ALGOL 68</td> <td>1976</td> <td>programming instruction</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/23px-Flag_of_the_United_States.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/35px-Flag_of_the_United_States.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/46px-Flag_of_the_United_States.svg.png 2x" data-file-width="1235" data-file-height="650" /></span></span> </span><a href="/wiki/United_States" title="United States">USA</a></td> <td><a href="/wiki/Oklahoma_State_University" title="Oklahoma State University">Oklahoma State University</a> implementation<sup id="cite_ref-62" class="reference"><a href="#cite_note-62"><span class="cite-bracket">[</span>62<span class="cite-bracket">]</span></a></sup></td> <td><a href="/wiki/IBM_1130" title="IBM 1130">IBM 1130</a> and <a href="/wiki/System/370" class="mw-redirect" title="System/370">System/370</a>/158</td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">Unknown</td> <td>ANSI <a href="/wiki/Fortran_66" class="mw-redirect" title="Fortran 66">Fortran 66</a>. </td></tr> <tr> <td>Berlin ALGOL 68</td> <td>1977</td> <td>Research</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/b/ba/Flag_of_Germany.svg/23px-Flag_of_Germany.svg.png" decoding="async" width="23" height="14" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/b/ba/Flag_of_Germany.svg/35px-Flag_of_Germany.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/b/ba/Flag_of_Germany.svg/46px-Flag_of_Germany.svg.png 2x" data-file-width="1000" data-file-height="600" /></span></span> </span><a href="/wiki/Germany" title="Germany">DE</a></td> <td><a rel="nofollow" class="external text" href="http://doi.acm.org/10.1145/872738.807149">"The Berlin ALGOL 68 implementation"</a> &<sup id="cite_ref-63" class="reference"><a href="#cite_note-63"><span class="cite-bracket">[</span>63<span class="cite-bracket">]</span></a></sup></td> <td>An Abstract ALGOL 68 Machine – machine independent Compiler</td> <td><a href="/wiki/Technische_Universit%C3%A4t_Berlin" title="Technische Universität Berlin">Technische Universität Berlin</a></td> <td><a href="/wiki/Compiler_Description_Language" title="Compiler Description Language">CDL 2</a> </td></tr> <tr> <td><a href="/wiki/FLACC" title="FLACC">FLACC</a><sup>F</sup></td> <td>1977</td> <td>Multi-purpose</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Flag_of_Canada_%28Pantone%29.svg/23px-Flag_of_Canada_%28Pantone%29.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Flag_of_Canada_%28Pantone%29.svg/35px-Flag_of_Canada_%28Pantone%29.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Flag_of_Canada_%28Pantone%29.svg/46px-Flag_of_Canada_%28Pantone%29.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/Canada" title="Canada">CAN</a></td> <td>Revised Report complete implementation with debug features</td> <td>System/370</td> <td>lease, Chion Corporation</td> <td>Assembler </td></tr> <tr> <td><a href="/wiki/ALGOL_68-RT" class="mw-redirect" title="ALGOL 68-RT">ALGOL 68-RT</a><sup>RT</sup></td> <td>1979</td> <td>Scientific</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/23px-Flag_of_the_United_Kingdom.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/35px-Flag_of_the_United_Kingdom.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/46px-Flag_of_the_United_Kingdom.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/United_Kingdom" title="United Kingdom">UK</a></td> <td>Parallel ALGOL 68-R</td> <td></td> <td></td> <td> </td></tr> <tr> <td><a href="/w/index.php?title=RS_Algol&action=edit&redlink=1" class="new" title="RS Algol (page does not exist)">RS Algol</a><sup>rs</sup></td> <td>1979</td> <td>Scientific</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/23px-Flag_of_the_United_Kingdom.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/35px-Flag_of_the_United_Kingdom.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/46px-Flag_of_the_United_Kingdom.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/United_Kingdom" title="United Kingdom">UK</a></td> <td></td> <td></td> <td></td> <td> </td></tr> <tr> <td>ALGOL 68+</td> <td>1980</td> <td>Scientific</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/23px-Flag_of_the_Netherlands.svg.png" decoding="async" width="23" height="15" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/35px-Flag_of_the_Netherlands.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/45px-Flag_of_the_Netherlands.svg.png 2x" data-file-width="900" data-file-height="600" /></span></span> </span><a href="/wiki/Netherlands" title="Netherlands">NLD</a></td> <td>Proposed superlanguage of ALGOL 68<sup id="cite_ref-64" class="reference"><a href="#cite_note-64"><span class="cite-bracket">[</span>64<span class="cite-bracket">]</span></a></sup></td> <td></td> <td></td> <td> </td></tr> <tr> <td><a href="/wiki/M-220" class="mw-redirect" title="M-220">M-220</a> ALGOL 68</td> <td></td> <td></td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Flag_of_the_Soviet_Union.svg/23px-Flag_of_the_Soviet_Union.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Flag_of_the_Soviet_Union.svg/35px-Flag_of_the_Soviet_Union.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Flag_of_the_Soviet_Union.svg/46px-Flag_of_the_Soviet_Union.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/Soviet_Union" title="Soviet Union">Soviet Union</a></td> <td></td> <td>M-220</td> <td><a href="/wiki/Copyright_law_of_the_Soviet_Union" title="Copyright law of the Soviet Union">Soviet</a></td> <td><a href="/wiki/EPSILON_(programming_language)" title="EPSILON (programming language)">EPSILON</a> </td></tr> <tr> <td><a href="/w/index.php?title=Leningrad_ALGOL_68&action=edit&redlink=1" class="new" title="Leningrad ALGOL 68 (page does not exist)">Leningrad ALGOL 68</a><sup>L</sup></td> <td>1980</td> <td>Telecommunications</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Flag_of_the_Soviet_Union.svg/23px-Flag_of_the_Soviet_Union.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Flag_of_the_Soviet_Union.svg/35px-Flag_of_the_Soviet_Union.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Flag_of_the_Soviet_Union.svg/46px-Flag_of_the_Soviet_Union.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/Soviet_Union" title="Soviet Union">Soviet Union</a></td> <td>Full language + modules</td> <td>IBM, DEC, CAMCOH, PS 1001 & PC</td> <td><a href="/wiki/Copyright_law_of_the_Soviet_Union" title="Copyright law of the Soviet Union">Soviet</a></td> <td> </td></tr> <tr> <td><a href="/wiki/Interactive_ALGOL_68" title="Interactive ALGOL 68">Interactive ALGOL 68</a><sup>I</sup></td> <td>1983</td> <td></td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/23px-Flag_of_the_United_Kingdom.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/35px-Flag_of_the_United_Kingdom.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/46px-Flag_of_the_United_Kingdom.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/United_Kingdom" title="United Kingdom">UK</a></td> <td><a href="/wiki/Incremental_compilation" class="mw-redirect" title="Incremental compilation">Incremental compilation</a></td> <td>PC</td> <td>Noncommercial <a href="/wiki/Shareware" title="Shareware">shareware</a></td> <td> </td></tr> <tr> <td><a href="/wiki/ALGOL_68S" title="ALGOL 68S">ALGOL 68S</a><sup>S</sup></td> <td>1985</td> <td>Scientific</td> <td>Intl</td> <td>Sun version of ALGOL 68</td> <td><a href="/wiki/Sun-3" title="Sun-3">Sun-3</a>, Sun <a href="/wiki/SPARC" title="SPARC">SPARC</a> (under <a href="/wiki/SunOS" title="SunOS">SunOS</a> 4.1 & <a href="/wiki/Solaris_(operating_system)" class="mw-redirect" title="Solaris (operating system)">Solaris</a> 2), <a href="/wiki/Atari" title="Atari">Atari</a> ST (under <a href="/wiki/Atari_ST" title="Atari ST">GEMDOS</a>), <a href="/wiki/Acorn_Archimedes" title="Acorn Archimedes">Acorn Archimedes</a> (under <a href="/wiki/RISC_OS" title="RISC OS">RISC OS</a>), <a href="/wiki/VAX-11" title="VAX-11">VAX-11</a> under <a href="/wiki/Ultrix-32" class="mw-redirect" title="Ultrix-32">Ultrix-32</a></td> <td></td> <td> </td></tr> <tr> <td>Algol68toC<sup id="cite_ref-65" class="reference"><a href="#cite_note-65"><span class="cite-bracket">[</span>65<span class="cite-bracket">]</span></a></sup> (ctrans)</td> <td>1985</td> <td>Electronics</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/23px-Flag_of_the_United_Kingdom.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/35px-Flag_of_the_United_Kingdom.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/46px-Flag_of_the_United_Kingdom.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/United_Kingdom" title="United Kingdom">UK</a></td> <td>ctrans from <a href="/wiki/ELLA_(programming_language)" title="ELLA (programming language)">ELLA</a> <a href="/wiki/ALGOL_68RS" title="ALGOL 68RS">ALGOL 68RS</a></td> <td>Portable C generator  </td> <td style="background: #9EFF9E; color:black; vertical-align: middle; text-align: center;" class="active table-active"><a href="/wiki/Open-source_software" title="Open-source software">Open-source software</a> 1995</td> <td>ALGOL 68RS </td></tr> <tr> <td>MK2 <a href="/wiki/Interactive_ALGOL_68" title="Interactive ALGOL 68">Interactive ALGOL 68</a></td> <td>1992</td> <td></td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/23px-Flag_of_the_United_Kingdom.svg.png" decoding="async" width="23" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/35px-Flag_of_the_United_Kingdom.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/ae/Flag_of_the_United_Kingdom.svg/46px-Flag_of_the_United_Kingdom.svg.png 2x" data-file-width="1200" data-file-height="600" /></span></span> </span><a href="/wiki/United_Kingdom" title="United Kingdom">UK</a></td> <td><a href="/wiki/Incremental_compilation" class="mw-redirect" title="Incremental compilation">Incremental compilation</a></td> <td>PC</td> <td>Noncommercial shareware<sup id="cite_ref-66" class="reference"><a href="#cite_note-66"><span class="cite-bracket">[</span>66<span class="cite-bracket">]</span></a></sup></td> <td> </td></tr> <tr> <td>Algol 68 Genie<sup>G</sup></td> <td>2001</td> <td>Full language</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/23px-Flag_of_the_Netherlands.svg.png" decoding="async" width="23" height="15" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/35px-Flag_of_the_Netherlands.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/45px-Flag_of_the_Netherlands.svg.png 2x" data-file-width="900" data-file-height="600" /></span></span> </span><a href="/wiki/Netherlands" title="Netherlands">NLD</a></td> <td>Includes standard collateral clause</td> <td>Portable interpreter </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/GNU_General_Public_License" title="GNU General Public License">GNU GPL</a> </td> <td><a href="/wiki/C_(programming_language)" title="C (programming language)">C</a> </td></tr> <tr> <td>Algol 68 Genie version 2.0.0</td> <td>2010</td> <td>Full language</td> <td><span class="flagicon"><span class="mw-image-border" typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/23px-Flag_of_the_Netherlands.svg.png" decoding="async" width="23" height="15" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/35px-Flag_of_the_Netherlands.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/20/Flag_of_the_Netherlands.svg/45px-Flag_of_the_Netherlands.svg.png 2x" data-file-width="900" data-file-height="600" /></span></span> </span><a href="/wiki/Netherlands" title="Netherlands">NLD</a></td> <td></td> <td>Portable interpreter; optional compilation of selected units </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/GNU_General_Public_License" title="GNU General Public License">GNU GPL</a> </td> <td><a href="/wiki/C_(programming_language)" title="C (programming language)">C</a> </td></tr></tbody></table> <p>The <a href="/wiki/S3_(programming_language)" title="S3 (programming language)">S3 language</a> that was used to write the <a href="/wiki/ICL_VME" title="ICL VME">ICL VME</a> operating system and much other system software on the <a href="/wiki/ICL_2900_Series" title="ICL 2900 Series">ICL 2900 Series</a> was a direct derivative of Algol 68. However, it omitted many of the more complex features, and replaced the basic modes with a set of data types that mapped directly to the 2900 Series hardware architecture. </p> <div class="mw-heading mw-heading3"><h3 id="Implementation_specific_extensions">Implementation specific extensions</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=45" title="Edit section: Implementation specific extensions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ALGOL 68R from <a href="/wiki/Royal_Radar_Establishment" title="Royal Radar Establishment">RRE</a> was the first ALGOL 68 subset implementation, running on the <a href="/wiki/ICT_1900_series" title="ICT 1900 series">ICL 1900</a>. Based on the original language, the main subset restrictions were <i>definition before use</i> and no parallel processing. This compiler was popular in <a href="/wiki/United_Kingdom" title="United Kingdom">UK</a> universities in the 1970s, where many <a href="/wiki/Computer_science" title="Computer science">computer science</a> students learnt ALGOL 68 as their first programming language; the compiler was renowned for good error messages. </p><p>ALGOL 68RS<sup>(RS)</sup> from <a href="/wiki/Royal_Signals_and_Radar_Establishment" title="Royal Signals and Radar Establishment">RSRE</a> was a portable compiler system written in ALGOL 68RS (bootstrapped from ALGOL 68R), and implemented on a variety of systems including the <a href="/wiki/ICL_2900_Series" title="ICL 2900 Series">ICL 2900</a>/<a href="/wiki/ICL_Series_39" title="ICL Series 39">Series 39</a>, <a href="/wiki/Multics" title="Multics">Multics</a> and <a href="/wiki/VAX" title="VAX">DEC VAX/VMS</a>. The language was based on the Revised Report, but with similar subset restrictions to ALGOL 68R. This compiler survives in the form of an Algol68-to-C compiler. </p><p>In ALGOL 68S<sup>(S)</sup> from <a href="/wiki/Carnegie_Mellon_University" title="Carnegie Mellon University">Carnegie Mellon University</a> the power of parallel processing was improved by adding an orthogonal extension, <i>eventing</i>. Any variable declaration containing keyword <b>EVENT</b> made assignments to this variable eligible for parallel evaluation, i.e. the right hand side was made into a procedure which was moved to one of the processors of the <a href="/wiki/C.mmp" title="C.mmp">C.mmp</a> multiprocessor system. Accesses to such variables were delayed after termination of the assignment. </p><p><a href="/wiki/University_of_Cambridge" title="University of Cambridge">Cambridge</a> <a href="/wiki/ALGOL_68C" title="ALGOL 68C">ALGOL 68C</a><sup>(C)</sup> was a portable compiler that implemented a subset of ALGOL 68, restricting operator definitions and omitting garbage collection, flexible rows and formatted transput. </p><p>Algol 68 Genie<sup>(G)</sup> by M. van der Veer is an ALGOL 68 implementation for today's computers and operating systems. </p><p>"Despite good intentions, a programmer may violate portability by inadvertently employing a local extension. To guard against this, each implementation should provide a PORTCHECK pragmat option. While this option is in force, the compiler prints a message for each construct that it recognizes as violating some portability constraint."<sup id="cite_ref-67" class="reference"><a href="#cite_note-67"><span class="cite-bracket">[</span>67<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Quotes">Quotes</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=46" title="Edit section: Quotes"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><i>... The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of. The central notion I captured from Algol was a type structure based on atomic types (including structures), composed into arrays, pointers (references), and functions (procedures). Algol 68's concept of unions and casts also had an influence that appeared later.</i> <a href="/wiki/Dennis_Ritchie" title="Dennis Ritchie">Dennis Ritchie</a> Apr 1993.<sup id="cite_ref-a68-c1_2-1" class="reference"><a href="#cite_note-a68-c1-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></li> <li><i>... C does not descend from Algol 68 is true, yet there was influence, much of it so subtle that it is hard to recover even when I think hard. In particular, the union type (a late addition to C) does owe to A68, not in any details, but in the idea of having such a type at all. More deeply, the type structure in general and even, in some strange way, the declaration syntax (the type-constructor part) was inspired by A68. And yes, of course, "long".</i> <a href="/wiki/Dennis_Ritchie" title="Dennis Ritchie">Dennis Ritchie</a>, 18 June 1988<sup id="cite_ref-a68-c2_4-1" class="reference"><a href="#cite_note-a68-c2-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li> <li>"Congratulations, your Master has done it" – <a href="/wiki/Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a><sup id="cite_ref-68" class="reference"><a href="#cite_note-68"><span class="cite-bracket">[</span>68<span class="cite-bracket">]</span></a></sup></li> <li><i>The more I see of it, the more unhappy I become</i> – E. W. Dijkstra, 1968<sup id="cite_ref-69" class="reference"><a href="#cite_note-69"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup></li> <li><i>[...] it was said that A68's popularity was inversely proportional to [...] the distance from Amsterdam</i> – <a href="/wiki/Guido_van_Rossum" title="Guido van Rossum">Guido van Rossum</a><sup id="cite_ref-70" class="reference"><a href="#cite_note-70"><span class="cite-bracket">[</span>70<span class="cite-bracket">]</span></a></sup></li> <li><i>[...] The best we could do was to send with it a minority report, stating our considered view that, "... as a tool for the reliable creation of sophisticated programs, the language was a failure." [...] </i> – <a href="/wiki/Tony_Hoare" title="Tony Hoare">C. A. R. Hoare</a> in his Oct 1980 <a href="/wiki/Turing_Award" title="Turing Award">Turing Award</a> Lecture<sup id="cite_ref-71" class="reference"><a href="#cite_note-71"><span class="cite-bracket">[</span>71<span class="cite-bracket">]</span></a></sup></li> <li><i>"[...] More than ever it will be required from an adequate programming tool that it assists, by structure, the programmer in the most difficult aspects of his job, viz. in the reliable creation of sophisticated programs. In this respect we fail to see how the language proposed here is a significant step forward: on the contrary, we feel that its implicit view of the programmer's task is very much the same as, say, ten years ago. This forces upon us the conclusion that, regarded as a programming tool, the language must be regarded as obsolete. [...]"</i> 1968 Working Group minority report on 23 December 1968.<sup id="cite_ref-72" class="reference"><a href="#cite_note-72"><span class="cite-bracket">[</span>72<span class="cite-bracket">]</span></a></sup></li></ul> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=47" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1184024115">.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}</style><div class="div-col" style="column-width: 22em;"> <ul><li><a href="/wiki/ALGOL_60" title="ALGOL 60">ALGOL 60</a></li> <li><a href="/wiki/ALGOL_Y" title="ALGOL Y">ALGOL Y</a></li> <li><a href="/wiki/ALGOL_N" title="ALGOL N">ALGOL N</a></li> <li><a href="/wiki/ALGOL_68C" title="ALGOL 68C">ALGOL 68C</a></li> <li><a href="/wiki/C_(programming_language)" title="C (programming language)">C (programming language)</a></li> <li><a href="/wiki/C%2B%2B" title="C++">C++</a></li> <li><a href="/wiki/Comparison_of_ALGOL_68_and_C%2B%2B" title="Comparison of ALGOL 68 and C++">Comparison of ALGOL 68 and C++</a></li> <li><a href="/wiki/Bourne_shell" title="Bourne shell">Bourne shell</a></li> <li><a href="/wiki/Bash_(Unix_shell)" title="Bash (Unix shell)">Bash (Unix shell)</a></li> <li><a href="/wiki/Steelman_language_requirements" title="Steelman language requirements">Steelman language requirements</a></li> <li><a href="/wiki/Ada_(programming_language)" title="Ada (programming language)">Ada (programming language)</a></li> <li><a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python (programming language)</a></li></ul> </div> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=48" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Citations">Citations</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=49" title="Edit section: Citations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-Wijngaarden_1976-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-Wijngaarden_1976_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite id="CITEREFvan_WijngaardenMaillouxPeckKoster1976" class="citation book cs1 cs1-prop-interwiki-linked-name"><a href="/wiki/Adriaan_van_Wijngaarden" title="Adriaan van Wijngaarden">van Wijngaarden, Adriaan</a>; <a href="/wiki/Barry_James_Mailloux" class="mw-redirect" title="Barry James Mailloux">Mailloux, Barry James</a>; <a href="/wiki/John_Edward_Lancelot_Peck" class="mw-redirect" title="John Edward Lancelot Peck">Peck, John Edward Lancelot</a>; <a href="/wiki/Cornelis_Hermanus_Antonius_Koster" class="mw-redirect" title="Cornelis Hermanus Antonius Koster">Koster, Cornelis Hermanus Antonius</a>; <a href="https://fr.wikipedia.org/wiki/Michel_Sintzoff" class="extiw" title="fr:Michel Sintzoff">Sintzoff, Michel</a> <span class="cs1-format">[in French]</span>; <a href="/wiki/Charles_Hodgson_Lindsey" class="mw-redirect" title="Charles Hodgson Lindsey">Lindsey, Charles Hodgson</a>; <a href="/wiki/Lambert_Guillaume_Louis_Th%C3%A9odore_Meertens" class="mw-redirect" title="Lambert Guillaume Louis Théodore Meertens">Meertens, Lambert Guillaume Louis Théodore</a>; Fisker, Richard G., eds. (1976). <a rel="nofollow" class="external text" href="http://web.eah-jena.de/~kleine/history/languages/algol68-revisedreport.pdf"><i>Revised Report on the Algorithmic Language ALGOL 68</i></a> <span class="cs1-format">(PDF)</span>. <a href="/wiki/Springer-Verlag" class="mw-redirect" title="Springer-Verlag">Springer-Verlag</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0-387-07592-1" title="Special:BookSources/978-0-387-07592-1"><bdi>978-0-387-07592-1</bdi></a>. <a href="/wiki/OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/1991170">1991170</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190419223929/http://web.eah-jena.de/~kleine/history/languages/algol68-revisedreport.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2019-04-19<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-05-11</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Revised+Report+on+the+Algorithmic+Language+ALGOL+68&rft.pub=Springer-Verlag&rft.date=1976&rft_id=info%3Aoclcnum%2F1991170&rft.isbn=978-0-387-07592-1&rft_id=http%3A%2F%2Fweb.eah-jena.de%2F~kleine%2Fhistory%2Flanguages%2Falgol68-revisedreport.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-a68-c1-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-a68-c1_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-a68-c1_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDennis_Ritchie1993" class="citation web cs1"><a href="/wiki/Dennis_Ritchie" title="Dennis Ritchie">Dennis Ritchie</a> (April 1993). <a rel="nofollow" class="external text" href="http://wayback.vefsafn.is/wayback/20051106120954/http://cm.bell-labs.com/cm/cs/who/dmr/chist.pdf">"The Development of the C Language"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="http://cm.bell-labs.com/cm/cs/who/dmr/chist.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2005-11-06<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-04-26</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+Development+of+the+C+Language&rft.date=1993-04&rft.au=Dennis+Ritchie&rft_id=http%3A%2F%2Fcm.bell-labs.com%2Fcm%2Fcs%2Fwho%2Fdmr%2Fchist.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">Influence on C: types, structures, arrays, pointers and procedures – Dennis Ritchie<sup id="cite_ref-a68-c1_2-0" class="reference"><a href="#cite_note-a68-c1-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></span> </li> <li id="cite_note-a68-c2-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-a68-c2_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-a68-c2_4-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDennis_Ritchie1988" class="citation web cs1"><a href="/wiki/Dennis_Ritchie" title="Dennis Ritchie">Dennis Ritchie</a> (June 1988). <a rel="nofollow" class="external text" href="http://groups.google.co.uk/group/comp.lang.misc/browse_thread/thread/1e6d4bb30659b78d/f57b6f5c81502cf5">"C and Algol 68"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2006-09-15</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=C+and+Algol+68&rft.date=1988-06&rft.au=Dennis+Ritchie&rft_id=http%3A%2F%2Fgroups.google.co.uk%2Fgroup%2Fcomp.lang.misc%2Fbrowse_thread%2Fthread%2F1e6d4bb30659b78d%2Ff57b6f5c81502cf5&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text">Influence on C: union, structure, syntax and long precision – Dennis Ritchie<sup id="cite_ref-a68-c2_4-0" class="reference"><a href="#cite_note-a68-c2-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></span> </li> <li id="cite_note-a68-c++-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-a68-c++_6-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.research.att.com/~bs/hopl2.pdf">"A History of C++: 1979−1991"</a> <span class="cs1-format">(PDF)</span>. March 1993. Page 12, 2nd paragraph: Algol68 [gave] operator overloading(§3.3.3), references (§3.3.4), and the ability to declare variables anywhere in a block (§3.3.1)<span class="reference-accessdate">. Retrieved <span class="nowrap">2008-05-06</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=A+History+of+C%2B%2B%3A+1979%E2%88%921991&rft.pages=Page+12%2C+2nd+paragraph%3A+Algol68+gave+operator+overloading%28%C2%A73.3.3%29%2C+references+%28%C2%A73.3.4%29%2C+and+the+ability+to+declare+variables+anywhere+in+a+block+%28%C2%A73.3.1%29&rft.date=1993-03&rft_id=http%3A%2F%2Fwww.research.att.com%2F~bs%2Fhopl2.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-a68-python-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-a68-python_7-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20070501105422/http://www.amk.ca/python/writing/gvr-interview">"Interview with Guido van Rossum"</a>. July 1998. Archived from <a rel="nofollow" class="external text" href="http://www.amk.ca/python/writing/gvr-interview">the original</a> on 2007-05-01<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-04-29</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Interview+with+Guido+van+Rossum&rft.date=1998-07&rft_id=http%3A%2F%2Fwww.amk.ca%2Fpython%2Fwriting%2Fgvr-interview&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-ashoa68-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-ashoa68_8-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20060810103448/http://npt.cc.rsu.ru/user/wanderer/ODP/ALGOL68.txt">"A Shorter History of ALGOL 68"</a>. Archived from <a rel="nofollow" class="external text" href="http://npt.cc.rsu.ru/user/wanderer/ODP/ALGOL68.txt">the original</a> on 2006-08-10<span class="reference-accessdate">. Retrieved <span class="nowrap">2006-09-15</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=A+Shorter+History+of+ALGOL+68&rft_id=http%3A%2F%2Fnpt.cc.rsu.ru%2Fuser%2Fwanderer%2FODP%2FALGOL68.txt&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-completeness-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-completeness_9-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVeer2023" class="citation web cs1">Veer, Marcel van der (2023-04-05). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130317015548/http://jmvdveer.home.xs4all.nl/report.html#011">"Revised Report on the Algorithmic Language Algol 68"</a>. <i>jmvdveer.home.xs4all.nl/</i>. Archived from <a rel="nofollow" class="external text" href="https://jmvdveer.home.xs4all.nl//en.post.algol-68-revised-report.html">the original</a> on 2013-03-17.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=jmvdveer.home.xs4all.nl%2F&rft.atitle=Revised+Report+on+the+Algorithmic+Language+Algol+68&rft.date=2023-04-05&rft.aulast=Veer&rft.aufirst=Marcel+van+der&rft_id=https%3A%2F%2Fjmvdveer.home.xs4all.nl%2F%2Fen.post.algol-68-revised-report.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-orthogonality-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-orthogonality_10-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVeer2023" class="citation web cs1">Veer, Marcel van der (2023-04-05). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130317015548/http://jmvdveer.home.xs4all.nl/report.html#012">"Revised Report on the Algorithmic Language Algol 68"</a>. <i>jmvdveer.home.xs4all.nl/</i>. Archived from <a rel="nofollow" class="external text" href="https://jmvdveer.home.xs4all.nl//en.post.algol-68-revised-report.html">the original</a> on 2013-03-17.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=jmvdveer.home.xs4all.nl%2F&rft.atitle=Revised+Report+on+the+Algorithmic+Language+Algol+68&rft.date=2023-04-05&rft.aulast=Veer&rft.aufirst=Marcel+van+der&rft_id=https%3A%2F%2Fjmvdveer.home.xs4all.nl%2F%2Fen.post.algol-68-revised-report.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-security-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-security_11-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVeer2023" class="citation web cs1">Veer, Marcel van der (2023-04-05). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130317015548/http://jmvdveer.home.xs4all.nl/report.html#013">"Revised Report on the Algorithmic Language Algol 68"</a>. <i>jmvdveer.home.xs4all.nl/</i>. Archived from <a rel="nofollow" class="external text" href="https://jmvdveer.home.xs4all.nl//en.post.algol-68-revised-report.html">the original</a> on 2013-03-17.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=jmvdveer.home.xs4all.nl%2F&rft.atitle=Revised+Report+on+the+Algorithmic+Language+Algol+68&rft.date=2023-04-05&rft.aulast=Veer&rft.aufirst=Marcel+van+der&rft_id=https%3A%2F%2Fjmvdveer.home.xs4all.nl%2F%2Fen.post.algol-68-revised-report.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-efficiency-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-efficiency_12-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVeer2023" class="citation web cs1">Veer, Marcel van der (2023-04-05). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130317015548/http://jmvdveer.home.xs4all.nl/report.html#014">"Revised Report on the Algorithmic Language Algol 68"</a>. <i>jmvdveer.home.xs4all.nl/</i>. Archived from <a rel="nofollow" class="external text" href="https://jmvdveer.home.xs4all.nl//en.post.algol-68-revised-report.html">the original</a> on 2013-03-17.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=jmvdveer.home.xs4all.nl%2F&rft.atitle=Revised+Report+on+the+Algorithmic+Language+Algol+68&rft.date=2023-04-05&rft.aulast=Veer&rft.aufirst=Marcel+van+der&rft_id=https%3A%2F%2Fjmvdveer.home.xs4all.nl%2F%2Fen.post.algol-68-revised-report.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://groups.google.com/group/comp.lang.misc/msg/03af5063e1662d4d">"Gommas?"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Gommas%3F&rft_id=https%3A%2F%2Fgroups.google.com%2Fgroup%2Fcomp.lang.misc%2Fmsg%2F03af5063e1662d4d&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-a68r0-jmvdveer-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-a68r0-jmvdveer_14-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://jmvdveer.home.xs4all.nl/report.html#03B">Revised Report on the Algorithmic Language Algol 68</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130317015548/http://jmvdveer.home.xs4all.nl/report.html#03B">Archived</a> 2013-03-17 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>. jmvdveer.home.xs4all.nl (1968-12-20). Retrieved on 2013-07-21.</span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFTerekhov2014" class="citation book cs1">Terekhov, Andrey (2014). "ALGOL 68 and Its Impact on the USSR and Russian Programming". <i>2014 Third International Conference on Computer Technology in Russia and in the Former Soviet Union</i>. pp. 97–106. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FSoRuCom.2014.29">10.1109/SoRuCom.2014.29</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-4799-1799-0" title="Special:BookSources/978-1-4799-1799-0"><bdi>978-1-4799-1799-0</bdi></a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:16097093">16097093</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=ALGOL+68+and+Its+Impact+on+the+USSR+and+Russian+Programming&rft.btitle=2014+Third+International+Conference+on+Computer+Technology+in+Russia+and+in+the+Former+Soviet+Union&rft.pages=97-106&rft.date=2014&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A16097093%23id-name%3DS2CID&rft_id=info%3Adoi%2F10.1109%2FSoRuCom.2014.29&rft.isbn=978-1-4799-1799-0&rft.aulast=Terekhov&rft.aufirst=Andrey&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external free" href="http://toc.proceedings.com/25445webtoc.pdf">http://toc.proceedings.com/25445webtoc.pdf</a> "Алгол 68 и его влияние на программирование в СССР и России" – pages: 336 & 342</span> </li> <li id="cite_note-FOOTNOTELindsey1996-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTELindsey1996_17-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFLindsey1996">Lindsey 1996</a>.</span> </li> <li id="cite_note-ahoa68-18"><span class="mw-cite-backlink">^ <a href="#cite_ref-ahoa68_18-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-ahoa68_18-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLindsey1996" class="citation book cs1"><a href="/wiki/Charles_H._Lindsey" title="Charles H. Lindsey">Lindsey, Charles H.</a> (1996). Bergin, T. J.; Gibson, R. G. (eds.). <i>A history of ALGOL 68</i>. <a href="/wiki/History_of_Programming_Languages#HOPL_II" class="mw-redirect" title="History of Programming Languages">History of Programming Languages-II</a>. Vol. 28. also in ACM SIGPLAN Notices 28(3), March 1993 (includes a comprehensive bibliography of the meetings and discussions before, during and after development of ALGOL 68). <a href="/wiki/ACM_Press" class="mw-redirect" title="ACM Press">ACM Press</a>. pp. 97–132. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F155360.155365">10.1145/155360.155365</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0-201-89502-5" title="Special:BookSources/978-0-201-89502-5"><bdi>978-0-201-89502-5</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=A+history+of+ALGOL+68&rft.series=History+of+Programming+Languages-II&rft.pages=97-132&rft.pub=ACM+Press&rft.date=1996&rft_id=info%3Adoi%2F10.1145%2F155360.155365&rft.isbn=978-0-201-89502-5&rft.aulast=Lindsey&rft.aufirst=Charles+H.&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_book" title="Template:Cite book">cite book</a>}}</code>: </span><span class="cs1-visible-error citation-comment"><code class="cs1-code">|journal=</code> ignored (<a href="/wiki/Help:CS1_errors#periodical_ignored" title="Help:CS1 errors">help</a>)</span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.nunan.myzen.co.uk/algol68/pame.pdf">Programming Algol 68 Made Easy</a></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVeer" class="citation web cs1">Veer, Marcel van der. <a rel="nofollow" class="external text" href="https://jmvdveer.home.xs4all.nl//en.algol-68-genie.html">"Marcel van der Veer - Algol 68 Genie"</a>. <i>jmvdveer.home.xs4all.nl/</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=jmvdveer.home.xs4all.nl%2F&rft.atitle=Marcel+van+der+Veer+-+Algol+68+Genie&rft.aulast=Veer&rft.aufirst=Marcel+van+der&rft_id=https%3A%2F%2Fjmvdveer.home.xs4all.nl%2F%2Fen.algol-68-genie.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-FOOTNOTELindsey19937-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTELindsey19937_21-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFLindsey1993">Lindsey 1993</a>, p. 7.</span> </li> <li id="cite_note-FOOTNOTELindsey19939-22"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTELindsey19939_22-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTELindsey19939_22-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-FOOTNOTELindsey19939_22-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-FOOTNOTELindsey19939_22-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFLindsey1993">Lindsey 1993</a>, p. 9.</span> </li> <li id="cite_note-FOOTNOTELindsey199324-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTELindsey199324_23-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFLindsey1993">Lindsey 1993</a>, p. 24.</span> </li> <li id="cite_note-FOOTNOTELindsey199310-24"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTELindsey199310_24-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTELindsey199310_24-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFLindsey1993">Lindsey 1993</a>, p. 10.</span> </li> <li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://archive.computerhistory.org/resources/text/algol/algol_bulletin/">"The Algol Bulletin"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+Algol+Bulletin&rft_id=http%3A%2F%2Farchive.computerhistory.org%2Fresources%2Ftext%2Falgol%2Falgol_bulletin%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-FOOTNOTELindsey199312-26"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTELindsey199312_26-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTELindsey199312_26-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFLindsey1993">Lindsey 1993</a>, p. 12.</span> </li> <li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLindsey1972" class="citation journal cs1">Lindsey, C. H. (1972). <a rel="nofollow" class="external text" href="https://academic.oup.com/comjnl/article-pdf/15/2/176/1002964/15-2-176.pdf">"ALGOL 68 with fewer tears"</a> <span class="cs1-format">(PDF)</span>. <i>The Computer Journal</i>. <b>15</b> (1): 176–188. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1093%2Fcomjnl%2F15.2.176">10.1093/comjnl/15.2.176</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=The+Computer+Journal&rft.atitle=ALGOL+68+with+fewer+tears&rft.volume=15&rft.issue=1&rft.pages=176-188&rft.date=1972&rft_id=info%3Adoi%2F10.1093%2Fcomjnl%2F15.2.176&rft.aulast=Lindsey&rft.aufirst=C.+H.&rft_id=https%3A%2F%2Facademic.oup.com%2Fcomjnl%2Farticle-pdf%2F15%2F2%2F176%2F1002964%2F15-2-176.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-FOOTNOTELindsey199313-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTELindsey199313_28-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFLindsey1993">Lindsey 1993</a>, p. 13.</span> </li> <li id="cite_note-FOOTNOTELindsey199315-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTELindsey199315_29-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFLindsey1993">Lindsey 1993</a>, p. 15.</span> </li> <li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHoare1968" class="citation journal cs1"><a href="/wiki/Tony_Hoare" title="Tony Hoare">Hoare, C. a. R.</a> (November 1968). <a rel="nofollow" class="external text" href="https://ora.ox.ac.uk/objects/uuid:ebdf9c6b-b548-4102-a283-e949acb67a3e">"Critique of ALGOL 68"</a>. <i>ALGOL Bulletin</i>. <b>29</b>: 27–29.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=ALGOL+Bulletin&rft.atitle=Critique+of+ALGOL+68&rft.volume=29&rft.pages=27-29&rft.date=1968-11&rft.aulast=Hoare&rft.aufirst=C.+a.+R.&rft_id=https%3A%2F%2Fora.ox.ac.uk%2Fobjects%2Fuuid%3Aebdf9c6b-b548-4102-a283-e949acb67a3e&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-implement-31"><span class="mw-cite-backlink">^ <a href="#cite_ref-implement_31-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-implement_31-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFPeck1970" class="citation cs2">Peck, J. E. L., ed. (1970), <i>Proceedings of the IFIP working conference on ALGOL 68 Implementation</i>, Munich: North-Holland, <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-7204-2045-8" title="Special:BookSources/0-7204-2045-8"><bdi>0-7204-2045-8</bdi></a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Proceedings+of+the+IFIP+working+conference+on+ALGOL+68+Implementation&rft.place=Munich&rft.pub=North-Holland&rft.date=1970&rft.isbn=0-7204-2045-8&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-shorter-32"><span class="mw-cite-backlink">^ <a href="#cite_ref-shorter_32-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-shorter_32-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-shorter_32-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-shorter_32-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKoster" class="citation web cs1">Koster, C. H. A. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20071217203826/http://npt.cc.rsu.ru/user/wanderer/ODP/ALGOL68.txt">"A Shorter History of Algol 68"</a>. Archived from <a rel="nofollow" class="external text" href="http://npt.cc.rsu.ru/user/wanderer/ODP/ALGOL68.txt">the original</a> on 2007-12-17.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=A+Shorter+History+of+Algol+68&rft.aulast=Koster&rft.aufirst=C.+H.+A.&rft_id=http%3A%2F%2Fnpt.cc.rsu.ru%2Fuser%2Fwanderer%2FODP%2FALGOL68.txt&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFvan_der_Veer" class="citation web cs1">van der Veer, Marcel. <a rel="nofollow" class="external text" href="http://algol68.sourceforge.net/">"Open source Algol 68 implementations"</a>. <i>algol68.sourceforge.net</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=algol68.sourceforge.net&rft.atitle=Open+source+Algol+68+implementations&rft.aulast=van+der+Veer&rft.aufirst=Marcel&rft_id=http%3A%2F%2Falgol68.sourceforge.net%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFE._Marchesi" class="citation web cs1">E. Marchesi, Jose. <a rel="nofollow" class="external text" href="https://www.jemarch.net/algol.html">"Algol68 frontend for GCC"</a>. <i>jemarch.net</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=jemarch.net&rft.atitle=Algol68+frontend+for+GCC&rft.aulast=E.+Marchesi&rft.aufirst=Jose&rft_id=https%3A%2F%2Fwww.jemarch.net%2Falgol.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVan_WijngaardenMaillouxPeckKoster1968" class="citation journal cs1">Van Wijngaarden, A.; Mailloux, B. J.; Peck, J.; Koster, C. H. A. (1968-03-01). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.5555/1064072.1064073">"Draft Report on the Algorithmic Language ALGOL 68"</a>. <i>ALGOL Bulletin</i> (Sup 26): 1–84<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-04-07</span></span> – via Mar. 1968.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=ALGOL+Bulletin&rft.atitle=Draft+Report+on+the+Algorithmic+Language+ALGOL+68&rft.issue=Sup+26&rft.pages=1-84&rft.date=1968-03-01&rft.aulast=Van+Wijngaarden&rft.aufirst=A.&rft.au=Mailloux%2C+B.+J.&rft.au=Peck%2C+J.&rft.au=Koster%2C+C.+H.+A.&rft_id=https%3A%2F%2Fdl.acm.org%2Fdoi%2F10.5555%2F1064072.1064073&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-36">^</a></b></span> <span class="reference-text">Sidney Marshall, "ALGOL 68 Implementation", <i>Proceedings of the IFIP Working Conference on ALGOL 68 Implementation</i>, Munich, July 20–24, 1970, J. E. L. Peck, editor, North Holland, pages 239–243.</span> </li> <li id="cite_note-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</a></b></span> <span class="reference-text">Sidney Marshall, <i>On the implementation of ALGOL 68</i>, PhD Thesis, Dartmouth College, 1972.</span> </li> <li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130101062456/http://jmvdveer.home.xs4all.nl/report.html">Algol 68 Revised Report</a></span> </li> <li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBlackRayward-Smith1978" class="citation journal cs1">Black, A. P.; Rayward-Smith, V. J. (1978-05-01). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.5555/1061701.1061711">"Proposals for ALGOL H - A Superlanguage of ALGOL 68"</a>. <i>ALGOL Bulletin</i> (42): 36–49<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-04-07</span></span> – via May. 1978.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=ALGOL+Bulletin&rft.atitle=Proposals+for+ALGOL+H+-+A+Superlanguage+of+ALGOL+68&rft.issue=42&rft.pages=36-49&rft.date=1978-05-01&rft.aulast=Black&rft.aufirst=A.+P.&rft.au=Rayward-Smith%2C+V.+J.&rft_id=https%3A%2F%2Fdl.acm.org%2Fdoi%2F10.5555%2F1061701.1061711&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-40">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20051203193706/http://www.cs.man.ac.uk/~chl/index.html#ALGOL%2068">"Algol68 S<sup>(S)</sup> published on the internet"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.cs.man.ac.uk/~chl/index.html#ALGOL%2068">the original</a> on 2005-12-03<span class="reference-accessdate">. Retrieved <span class="nowrap">2004-08-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Algol68+S%3Csup%3E%28S%29%3C%2Fsup%3E+published+on+the+internet&rft_id=http%3A%2F%2Fwww.cs.man.ac.uk%2F~chl%2Findex.html%23ALGOL%252068&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVeer" class="citation web cs1">Veer, Marcel van der. <a rel="nofollow" class="external text" href="https://jmvdveer.home.xs4all.nl//en.index.html">"Marcel van der Veer - Algol 68 Genie"</a>. <i>jmvdveer.home.xs4all.nl/</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-04-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=jmvdveer.home.xs4all.nl%2F&rft.atitle=Marcel+van+der+Veer+-+Algol+68+Genie&rft.aulast=Veer&rft.aufirst=Marcel+van+der&rft_id=https%3A%2F%2Fjmvdveer.home.xs4all.nl%2F%2Fen.index.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-a68r-1-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-a68r-1_42-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://archive.computerhistory.org/resources/text/algol/algol_bulletin/AS26/">"Draft Report on the Algorithmic Language ALGOL 68"</a>. March 1968. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070930181523/http://archive.computerhistory.org/resources/text/algol/algol_bulletin/AS26/">Archived</a> from the original on 2007-09-30<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-06-22</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Draft+Report+on+the+Algorithmic+Language+ALGOL+68&rft.date=1968-03&rft_id=http%3A%2F%2Farchive.computerhistory.org%2Fresources%2Ftext%2Falgol%2Falgol_bulletin%2FAS26%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-a68r-1-9-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-a68r-1-9_43-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://repos.project.cwi.nl:8888/cwi_repository/docs/I/09/9180A.pdf">"Penultimate Draft Report on the Algorithmic Language ALGOL 68 – Chapters 1-9"</a> <span class="cs1-format">(PDF)</span>. October 1968<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-06-22</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Penultimate+Draft+Report+on+the+Algorithmic+Language+ALGOL+68+%E2%80%93+Chapters+1-9&rft.date=1968-10&rft_id=http%3A%2F%2Frepos.project.cwi.nl%3A8888%2Fcwi_repository%2Fdocs%2FI%2F09%2F9180A.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span><sup class="noprint Inline-Template"><span style="white-space: nowrap;">[<i><a href="/wiki/Wikipedia:Link_rot" title="Wikipedia:Link rot"><span title=" Dead link tagged November 2016">permanent dead link</span></a></i><span style="visibility:hidden; color:transparent; padding-left:2px">‍</span>]</span></sup></span> </li> <li id="cite_note-a68r-10-12-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-a68r-10-12_44-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://repos.project.cwi.nl:8888/cwi_repository/docs/I/09/9179A.pdf">"Penultimate Draft Report on the Algorithmic Language ALGOL 68 – Chapters 10-12"</a> <span class="cs1-format">(PDF)</span>. October 1968<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-06-22</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Penultimate+Draft+Report+on+the+Algorithmic+Language+ALGOL+68+%E2%80%93+Chapters+10-12&rft.date=1968-10&rft_id=http%3A%2F%2Frepos.project.cwi.nl%3A8888%2Fcwi_repository%2Fdocs%2FI%2F09%2F9179A.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span><sup class="noprint Inline-Template"><span style="white-space: nowrap;">[<i><a href="/wiki/Wikipedia:Link_rot" title="Wikipedia:Link rot"><span title=" Dead link tagged November 2016">permanent dead link</span></a></i><span style="visibility:hidden; color:transparent; padding-left:2px">‍</span>]</span></sup></span> </li> <li id="cite_note-a68r0-kleine-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-a68r0-kleine_45-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20080406061108/http://www.fh-jena.de/~kleine/history/languages/Algol68-Report.pdf">"Report on the Algorithmic Language ALGOL 68"</a> <span class="cs1-format">(PDF)</span>. December 1968. Archived from <a rel="nofollow" class="external text" href="http://www.fh-jena.de/~kleine/history/languages/Algol68-Report.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2008-04-06<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-12-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Report+on+the+Algorithmic+Language+ALGOL+68&rft.date=1968-12&rft_id=http%3A%2F%2Fwww.fh-jena.de%2F~kleine%2Fhistory%2Flanguages%2FAlgol68-Report.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-a68r1-html-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-a68r1-html_46-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://burks.brighton.ac.uk/burks/language/other/a68rr/rrtoc.htm">"Revised Report on the Algorithmic Language Algol 68"</a>. September 1973. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070927191700/http://burks.brighton.ac.uk/burks/language/other/a68rr/rrtoc.htm">Archived</a> from the original on 2007-09-27<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-04-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Revised+Report+on+the+Algorithmic+Language+Algol+68&rft.date=1973-09&rft_id=http%3A%2F%2Fburks.brighton.ac.uk%2Fburks%2Flanguage%2Fother%2Fa68rr%2Frrtoc.htm&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-abp33-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-abp33_47-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLu_Hu-quan1971" class="citation web cs1">Lu Hu-quan (1971). <a rel="nofollow" class="external text" href="http://archive.computerhistory.org/resources/text/algol/ACM_Algol_bulletin/1061739/p33-ru_ian.pdf">"The Translation of Algol 68 into Chinese"</a> <span class="cs1-format">(PDF)</span>. Peking, China: Institute of Mathematics, Academia Sinica<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-08-17</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+Translation+of+Algol+68+into+Chinese&rft.place=Peking%2C+China&rft.pub=Institute+of+Mathematics%2C+Academia+Sinica&rft.date=1971&rft.au=Lu+Hu-quan&rft_id=http%3A%2F%2Farchive.computerhistory.org%2Fresources%2Ftext%2Falgol%2FACM_Algol_bulletin%2F1061739%2Fp33-ru_ian.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-a68ru-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-a68ru_48-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1 cs1-prop-foreign-lang-source"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20081115035038/http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27974-88.pdf">"GOST 27974-88 Programming language ALGOL 68 – Язык программирования АЛГОЛ 68"</a> <span class="cs1-format">(PDF)</span> (in Russian). <a href="/wiki/GOST" title="GOST">GOST</a>. 1988. Archived from <a rel="nofollow" class="external text" href="http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27974-88.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2008-11-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2008-11-15</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=GOST+27974-88+Programming+language+ALGOL+68+%E2%80%93+%D0%AF%D0%B7%D1%8B%D0%BA+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F+%D0%90%D0%9B%D0%93%D0%9E%D0%9B+68&rft.pub=GOST&rft.date=1988&rft_id=http%3A%2F%2Fvak.ru%2Flib%2Fexe%2Ffetch.php%2Fbook%2Fgost%2Fpdf%2Fgost-27974-88.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-a68ruext-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-a68ruext_49-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1 cs1-prop-foreign-lang-source"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110429001243/http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27975-88.pdf">"GOST 27975-88 Programming language ALGOL 68 extended – Язык программирования АЛГОЛ 68 расширенный"</a> <span class="cs1-format">(PDF)</span> (in Russian). <a href="/wiki/GOST" title="GOST">GOST</a>. 1988. Archived from <a rel="nofollow" class="external text" href="http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27975-88.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2011-04-29<span class="reference-accessdate">. Retrieved <span class="nowrap">2008-11-15</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=GOST+27975-88+Programming+language+ALGOL+68+extended+%E2%80%93+%D0%AF%D0%B7%D1%8B%D0%BA+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F+%D0%90%D0%9B%D0%93%D0%9E%D0%9B+68+%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9&rft.pub=GOST&rft.date=1988&rft_id=http%3A%2F%2Fvak.ru%2Flib%2Fexe%2Ffetch.php%2Fbook%2Fgost%2Fpdf%2Fgost-27975-88.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-50">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20080109161728/http://www.xs4all.nl/~jmvdveer/syntax.html#formats">"Format syntax in ALGOL 68G"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.xs4all.nl/~jmvdveer/syntax.html#formats">the original</a> on 2008-01-09<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-04-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Format+syntax+in+ALGOL+68G&rft_id=http%3A%2F%2Fwww.xs4all.nl%2F~jmvdveer%2Fsyntax.html%23formats&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-51">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFNeedhamWilkes1979" class="citation journal cs1">Needham, R. M.; Wilkes, M. V. (January 1979). <a rel="nofollow" class="external text" href="http://research.microsoft.com/pubs/72418/cap.pdf">"The Cambridge CAP Computer and its Operating System"</a> <span class="cs1-format">(PDF)</span>. <i>Microsoft Research</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Microsoft+Research&rft.atitle=The+Cambridge+CAP+Computer+and+its+Operating+System&rft.date=1979-01&rft.aulast=Needham&rft.aufirst=R.+M.&rft.au=Wilkes%2C+M.+V.&rft_id=http%3A%2F%2Fresearch.microsoft.com%2Fpubs%2F72418%2Fcap.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-eldon-52"><span class="mw-cite-backlink"><b><a href="#cite_ref-eldon_52-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDavid_Holdsworth2009–2010" class="citation web cs1">David Holdsworth (Winter 2009–2010). <a rel="nofollow" class="external text" href="http://www.cs.man.ac.uk/CCS/res/res49.htm#e">"KDF9 Time Sharing: Eldon 2 is not EGDON!"</a>. <i>Computer Resurrection – Number 49</i>. <a href="/wiki/Computer_Conservation_Society" title="Computer Conservation Society">Computer Conservation Society</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2010-10-03</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Computer+Resurrection+%E2%80%93+Number+49&rft.atitle=KDF9+Time+Sharing%3A+Eldon+2+is+not+EGDON%21&rft.ssn=winter&rft.date=2009%2F2010&rft.au=David+Holdsworth&rft_id=http%3A%2F%2Fwww.cs.man.ac.uk%2FCCS%2Fres%2Fres49.htm%23e&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-53">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFI_F_CurrieJ_M_Foster1982" class="citation web cs1">I F Currie; J M Foster (September 1982). <a rel="nofollow" class="external text" href="http://www.vitanuova.com/dist/doc/rsre-3522-curt.pdf">"RSRE Memorandum"</a> <span class="cs1-format">(PDF)</span>. <i>vitanuova.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-04-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=vitanuova.com&rft.atitle=RSRE+Memorandum&rft.date=1982-09&rft.au=I+F+Currie&rft.au=J+M+Foster&rft_id=http%3A%2F%2Fwww.vitanuova.com%2Fdist%2Fdoc%2Frsre-3522-curt.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-54"><span class="mw-cite-backlink"><b><a href="#cite_ref-54">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.ixbt.com/cpu/e2k-spec.html">Эльбрус Бабаяна и Pentium Пентковского</a>. Ixbt.com. Retrieved 21 July 2013.</span> </li> <li id="cite_note-55"><span class="mw-cite-backlink"><b><a href="#cite_ref-55">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFOliverNewton1979" class="citation journal cs1">Oliver, J. R.; Newton, R. S. (1979). <a rel="nofollow" class="external text" href="https://doi.org/10.1093%2Fcomjnl%2F22.2.114">"Practical experience with ALGOL 68-RT"</a>. <i>The Computer Journal</i>. <b>22</b> (2): 114–118. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1093%2Fcomjnl%2F22.2.114">10.1093/comjnl/22.2.114</a></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=The+Computer+Journal&rft.atitle=Practical+experience+with+ALGOL+68-RT&rft.volume=22&rft.issue=2&rft.pages=114-118&rft.date=1979&rft_id=info%3Adoi%2F10.1093%2Fcomjnl%2F22.2.114&rft.aulast=Oliver&rft.aufirst=J.+R.&rft.au=Newton%2C+R.+S.&rft_id=https%3A%2F%2Fdoi.org%2F10.1093%252Fcomjnl%252F22.2.114&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-torrix-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-torrix_56-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/ALGOL/applications#ALGOL_68_Libraries">Applications, libraries, and test suites — Software Preservation Group</a>. Softwarepreservation.org. Retrieved 21 July 2013.</span> </li> <li id="cite_note-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-57">^</a></b></span> <span class="reference-text">Revised Report, page 123, footnote</span> </li> <li id="cite_note-58"><span class="mw-cite-backlink"><b><a href="#cite_ref-58">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLindsey1974" class="citation journal cs1">Lindsey, C. H. (July 1974). <a rel="nofollow" class="external text" href="https://archive.computerhistory.org/resources/text/algol/algol_bulletin/A37/P42.HTM">"Partial Parametrization"</a>. <i>ALGOL Bulletin</i> (37): 24–26<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-09-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=ALGOL+Bulletin&rft.atitle=Partial+Parametrization&rft.issue=37&rft.pages=24-26&rft.date=1974-07&rft.aulast=Lindsey&rft.aufirst=C.+H.&rft_id=https%3A%2F%2Farchive.computerhistory.org%2Fresources%2Ftext%2Falgol%2Falgol_bulletin%2FA37%2FP42.HTM&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-modules-59"><span class="mw-cite-backlink"><b><a href="#cite_ref-modules_59-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLindseyBoom1978" class="citation journal cs1">Lindsey, C. H.; Boom, H. J. (December 1978). <a rel="nofollow" class="external text" href="https://archive.computerhistory.org/resources/text/algol/algol_bulletin/A43/P32.HTM">"A Modules and Separate Compilation facility for ALGOL 68"</a>. <i>ALGOL Bulletin</i> (43): 19–53<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-01-29</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=ALGOL+Bulletin&rft.atitle=A+Modules+and+Separate+Compilation+facility+for+ALGOL+68&rft.issue=43&rft.pages=19-53&rft.date=1978-12&rft.aulast=Lindsey&rft.aufirst=C.+H.&rft.au=Boom%2C+H.+J.&rft_id=https%3A%2F%2Farchive.computerhistory.org%2Fresources%2Ftext%2Falgol%2Falgol_bulletin%2FA43%2FP32.HTM&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span> <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.5555/1061751.1061757">Comments</a> <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.5555/1061760.1061764">errata</a></span> </li> <li id="cite_note-60"><span class="mw-cite-backlink"><b><a href="#cite_ref-60">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLindsey1974" class="citation journal cs1">Lindsey, C. H. (July 1974). <a rel="nofollow" class="external text" href="https://archive.computerhistory.org/resources/text/algol/algol_bulletin/A37/P43.HTM">"Modals"</a>. <i>ALGOL Bulletin</i> (37): 26–29<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-09-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=ALGOL+Bulletin&rft.atitle=Modals&rft.issue=37&rft.pages=26-29&rft.date=1974-07&rft.aulast=Lindsey&rft.aufirst=C.+H.&rft_id=https%3A%2F%2Farchive.computerhistory.org%2Fresources%2Ftext%2Falgol%2Falgol_bulletin%2FA37%2FP43.HTM&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-61"><span class="mw-cite-backlink"><b><a href="#cite_ref-61">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20100415194813/http://www.80bus.co.uk/publications/magazines/LSG3.pdf">"Archived copy"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="http://www.80bus.co.uk/publications/magazines/LSG3.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2010-04-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-03-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Archived+copy&rft_id=http%3A%2F%2Fwww.80bus.co.uk%2Fpublications%2Fmagazines%2FLSG3.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span><span class="cs1-maint citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_web" title="Template:Cite web">cite web</a>}}</code>: CS1 maint: archived copy as title (<a href="/wiki/Category:CS1_maint:_archived_copy_as_title" title="Category:CS1 maint: archived copy as title">link</a>)</span></span> </li> <li id="cite_note-62"><span class="mw-cite-backlink"><b><a href="#cite_ref-62">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external free" href="http://htportal.acm.org/ft_gateway.cfm?id=803425&type=pdf">http://htportal.acm.org/ft_gateway.cfm?id=803425&type=pdf</a><sup class="noprint Inline-Template"><span style="white-space: nowrap;">[<i><a href="/wiki/Wikipedia:Link_rot" title="Wikipedia:Link rot"><span title=" Dead link tagged October 2016">permanent dead link</span></a></i><span style="visibility:hidden; color:transparent; padding-left:2px">‍</span>]</span></sup></span> </li> <li id="cite_note-63"><span class="mw-cite-backlink"><b><a href="#cite_ref-63">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://archive.today/20130203000933/http://www.springerlink.com/content/7v453r50u0782903/">An abstract ALGOL 68 machine and its application in a machine independent compiler – Springer</a>. Springerlink.com. Retrieved on 2013-07-21.</span> </li> <li id="cite_note-64"><span class="mw-cite-backlink"><b><a href="#cite_ref-64">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110310110439/http://hopl.murdoch.edu.au/showlanguage2.prx?exp=4351">"The Encyclopedia of Computer Languages"</a>. Archived from <a rel="nofollow" class="external text" href="http://hopl.murdoch.edu.au/showlanguage2.prx?exp%3D4351">the original</a> on 2011-03-10<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-03-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+Encyclopedia+of+Computer+Languages&rft_id=http%3A%2F%2Fhopl.murdoch.edu.au%2Fshowlanguage2.prx%3Fexp%253D4351&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-65"><span class="mw-cite-backlink"><b><a href="#cite_ref-65">^</a></b></span> <span class="reference-text"><a href="https://sourceforge.net/projects/algol68/files/" class="extiw" title="sourceforge:projects/algol68/files/">Open source Algol 68 implementations – Browse Files at</a>. Sourceforge.net. Retrieved on 2013-07-21.</span> </li> <li id="cite_note-66"><span class="mw-cite-backlink"><b><a href="#cite_ref-66">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external autonumber" href="http://www.nunan.fsnet.co.uk/algol68/a68mk2.zip">[1]</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20060829235643/http://www.nunan.fsnet.co.uk/algol68/a68mk2.zip">Archived</a> 2006-08-29 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span> </li> <li id="cite_note-67"><span class="mw-cite-backlink"><b><a href="#cite_ref-67">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20140102201013/http://www.fh-jena.de/~kleine/history/languages/Algol68-RR-HardwareRepresentation.pdf">"Archived copy"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="http://www.fh-jena.de/~kleine/history/languages/Algol68-RR-HardwareRepresentation.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2014-01-02<span class="reference-accessdate">. Retrieved <span class="nowrap">2005-08-27</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Archived+copy&rft_id=http%3A%2F%2Fwww.fh-jena.de%2F~kleine%2Fhistory%2Flanguages%2FAlgol68-RR-HardwareRepresentation.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span><span class="cs1-maint citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_web" title="Template:Cite web">cite web</a>}}</code>: CS1 maint: archived copy as title (<a href="/wiki/Category:CS1_maint:_archived_copy_as_title" title="Category:CS1 maint: archived copy as title">link</a>)</span></span> </li> <li id="cite_note-68"><span class="mw-cite-backlink"><b><a href="#cite_ref-68">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFC._H._A._Koster1993" class="citation book cs1">C. H. A. Koster (1993). <i>The Making of Algol 68</i>. Lecture Notes in Computer Science. <a href="/wiki/CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.76.2072">10.1.1.76.2072</a></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=The+Making+of+Algol+68&rft.series=Lecture+Notes+in+Computer+Science&rft.date=1993&rft_id=https%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fsummary%3Fdoi%3D10.1.1.76.2072%23id-name%3DCiteSeerX&rft.au=C.+H.+A.+Koster&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-69"><span class="mw-cite-backlink"><b><a href="#cite_ref-69">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDijkstra" class="citation web cs1"><a href="/wiki/Edsger_Dijkstra" class="mw-redirect" title="Edsger Dijkstra">Dijkstra, E. W.</a> <a rel="nofollow" class="external text" href="http://www.cs.utexas.edu/users/EWD/transcriptions/EWD02xx/EWD230.html">"To the Editor ALGOL 68 Mathematische Centrum"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070421193554/http://www.cs.utexas.edu/users/EWD/transcriptions/EWD02xx/EWD230.html">Archived</a> from the original on 2007-04-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-04-28</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=To+the+Editor+ALGOL+68+Mathematische+Centrum&rft.aulast=Dijkstra&rft.aufirst=E.+W.&rft_id=http%3A%2F%2Fwww.cs.utexas.edu%2Fusers%2FEWD%2Ftranscriptions%2FEWD02xx%2FEWD230.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-70"><span class="mw-cite-backlink"><b><a href="#cite_ref-70">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFvan_Rossum2005" class="citation web cs1"><a href="/wiki/Guido_van_Rossum" title="Guido van Rossum">van Rossum, Guido</a> (June 2005). <a rel="nofollow" class="external text" href="http://mail.python.org/pipermail/python-dev/2005-June/054225.html">"Python-Dev Wishlist: dowhile"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-04-28</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Python-Dev+Wishlist%3A+dowhile&rft.date=2005-06&rft.aulast=van+Rossum&rft.aufirst=Guido&rft_id=http%3A%2F%2Fmail.python.org%2Fpipermail%2Fpython-dev%2F2005-June%2F054225.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> <li id="cite_note-71"><span class="mw-cite-backlink"><b><a href="#cite_ref-71">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHoare1981" class="citation journal cs1"><a href="/wiki/Tony_Hoare" title="Tony Hoare">Hoare, C. A. R.</a> (February 1981) [based on his 1980 <a href="/wiki/Turing_Award" title="Turing Award">Turing Award</a> lecture]. <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F358549.358561">"The emperor's old clothes"</a>. <i><a href="/wiki/Communications_of_the_ACM" title="Communications of the ACM">Communications of the ACM</a></i>. <b>24</b> (2): 75–83. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F358549.358561">10.1145/358549.358561</a></span>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:97895">97895</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=Communications+of+the+ACM&rft.atitle=The+emperor%27s+old+clothes&rft.volume=24&rft.issue=2&rft.pages=75-83&rft.date=1981-02&rft_id=info%3Adoi%2F10.1145%2F358549.358561&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A97895%23id-name%3DS2CID&rft.aulast=Hoare&rft.aufirst=C.+A.+R.&rft_id=https%3A%2F%2Fdoi.org%2F10.1145%252F358549.358561&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span> <a rel="nofollow" class="external text" href="http://zoo.cs.yale.edu/classes/cs422/2011/bib/hoare81emperor.pdf">Alt URL</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20171002195604/http://zoo.cs.yale.edu/classes/cs422/2011/bib/hoare81emperor.pdf">Archived</a> 2017-10-02 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span> </li> <li id="cite_note-72"><span class="mw-cite-backlink"><b><a href="#cite_ref-72">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://archive.computerhistory.org/resources/text/algol/algol_bulletin/A31/P111.HTM">"ALGOL Bulletin (referred to in AB30.1.1.1)"</a>. March 1970. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070930230048/http://archive.computerhistory.org/resources/text/algol/algol_bulletin/A31/P111.HTM">Archived</a> from the original on 2007-09-30<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-03-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=ALGOL+Bulletin+%28referred+to+in+AB30.1.1.1%29&rft.date=1970-03&rft_id=http%3A%2F%2Farchive.computerhistory.org%2Fresources%2Ftext%2Falgol%2Falgol_bulletin%2FA31%2FP111.HTM&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></span> </li> </ol></div></div> <div class="mw-heading mw-heading3"><h3 id="Works_cited">Works cited</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=50" title="Edit section: Works cited"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239549316">.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}</style><div class="refbegin" style=""> <ul><li>Brailsford, D. F. and Walker, A. N., <i>Introductory ALGOL 68 Programming</i>, Ellis Horwood/Wiley, 1979</li> <li>Lindsey, C. H. and van der Meulen, S. G., <i>Informal Introduction to ALGOL 68</i>, North-Holland, 1971</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLindsey1993" class="citation journal cs1">Lindsey, C. H. (1993-03-02). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F155360.155365">"A History of ALGOL 68"</a>. <i>ACM SIGPLAN Notices</i>. <b>28</b> (3): 97–132. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F155360.155365">10.1145/155360.155365</a></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=ACM+SIGPLAN+Notices&rft.atitle=A+History+of+ALGOL+68&rft.volume=28&rft.issue=3&rft.pages=97-132&rft.date=1993-03-02&rft_id=info%3Adoi%2F10.1145%2F155360.155365&rft.aulast=Lindsey&rft.aufirst=C.+H.&rft_id=https%3A%2F%2Fdoi.org%2F10.1145%252F155360.155365&rfr_id=info%3Asid%2Fen.wikipedia.org%3AALGOL+68" class="Z3988"></span></li> <li>McGettrick, A. D., <i>ALGOL 68, A First and Second Course</i>, Cambridge Univ. Press, 1978</li> <li>Peck, J. E. L., <i>An ALGOL 68 Companion</i>, Univ. of British Columbia, October 1971</li> <li>Tanenbaum, A. S., <i>A Tutorial on ALGOL 68</i>, Computing Surveys <b>8</b>, 155-190, June 1976 and <b>9</b>, 255-256, September 1977, <a rel="nofollow" class="external autonumber" href="http://vestein.arb-phys.uni-dortmund.de/~wb/RR/tanenbaum.pdf">[7]</a><sup class="noprint Inline-Template"><span style="white-space: nowrap;">[<i><a href="/wiki/Wikipedia:Link_rot" title="Wikipedia:Link rot"><span title=" Dead link tagged June 2017">permanent dead link</span></a></i><span style="visibility:hidden; color:transparent; padding-left:2px">‍</span>]</span></sup></li> <li>Woodward, P. M. and Bond, S. G., <i>ALGOL 68-R Users<sup><a href="/wiki/Sic" title="Sic">sic</a></sup> Guide</i>, London, Her Majesty's Stationery Office, 1972</li></ul> </div> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=ALGOL_68&action=edit&section=51" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/ALGOL/report/Algol68_revised_report-AB.pdf">Revised Report on the Algorithmic Language ALGOL 68</a> The official reference for users and implementors of the language (large pdf file, scanned from Algol Bulletin)</li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150906170502/http://jmvdveer.home.xs4all.nl/algol68/report.html">Revised Report on the Algorithmic Language ALGOL 68</a> Hyperlinked HTML version of the Revised Report</li> <li><a rel="nofollow" class="external text" href="http://portal.acm.org/citation.cfm?id=356671"><i>A Tutorial on Algol 68</i></a>, by <a href="/wiki/Andrew_S._Tanenbaum" title="Andrew S. Tanenbaum">Andrew S. Tanenbaum</a>, in <i>Computing Surveys</i>, Vol. 8, No. 2, June 1976, with <a rel="nofollow" class="external text" href="http://portal.acm.org/citation.cfm?id=356706">Corrigenda</a> (Vol. 9, No. 3, September 1977)</li> <li><a rel="nofollow" class="external text" href="https://jmvdveer.home.xs4all.nl/en.algol-68-genie.html">Algol 68 Genie – a GNU GPL Algol 68 compiler-interpreter</a></li> <li><a rel="nofollow" class="external text" href="http://algol68.sourceforge.net/">Open source ALGOL 68 implementations, on SourceForge</a></li> <li><a rel="nofollow" class="external text" href="http://www.fh-jena.de/~kleine/history/languages/Algol68-RR-HardwareRepresentation.pdf">Algol68 Standard Hardware representation (.pdf)</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140102201013/http://www.fh-jena.de/~kleine/history/languages/Algol68-RR-HardwareRepresentation.pdf">Archived</a> 2014-01-02 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="http://www.computer-museum.ru/histsoft/algol68.htm">Из истории создания компилятора с Алгол 68</a></li> <li><a rel="nofollow" class="external text" href="http://www.computer-museum.ru/english/algol68.htm">Algol 68 – 25 Years in the USSR</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20060310003954/http://ant.tepkom.ru/newsite/disser/doc/Ruchlin.htm">Система программ динамической поддержки для транслятора с Алгол 68</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/19980220175804/http://cm.bell-labs.com/cm/cs/who/dmr/chist.html">C history with Algol68 heritage</a></li> <li>McJones, Paul, <a rel="nofollow" class="external text" href="http://www.softwarepreservation.org/projects/ALGOL/algol68impl">"Algol 68 implementations and dialects"</a>, <i>Software Preservation Group</i>, <a href="/wiki/Computer_History_Museum" title="Computer History Museum">Computer History Museum</a>, 2011-07-05</li> <li><a rel="nofollow" class="external text" href="https://archive.today/20150416164933/http://vintagebigblue.org/Compilerator/ALGOL68C/mvsAlgol68CCompile.php">Web enabled ALGOL 68 compiler for small experiments</a></li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="ALGOL_programming" style="padding:3px"><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:ALGOL_programming" title="Template:ALGOL programming"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:ALGOL_programming" title="Template talk:ALGOL programming"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:ALGOL_programming" title="Special:EditPage/Template:ALGOL programming"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="ALGOL_programming" style="font-size:114%;margin:0 4em"><a href="/wiki/ALGOL" title="ALGOL">ALGOL</a> programming</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Programming_language_implementation" title="Programming language implementation">Implementations</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Technical_standard" title="Technical standard">Technical<br />standards</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ALGOL_58" title="ALGOL 58">ALGOL 58</a></li> <li><a href="/wiki/ALGOL_60" title="ALGOL 60">ALGOL 60</a></li> <li><a class="mw-selflink selflink">ALGOL 68</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Dialect_(computing)" class="mw-redirect" title="Dialect (computing)">Dialects</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ABC_ALGOL" title="ABC ALGOL">ABC ALGOL</a></li> <li><a href="/wiki/ALCOR" title="ALCOR">ALCOR</a></li> <li><a href="/wiki/ALGO" title="ALGO">ALGO</a></li> <li><a href="/wiki/ALGOL_68C" title="ALGOL 68C">ALGOL 68C</a></li> <li><a href="/wiki/ALGOL_68-R" title="ALGOL 68-R">ALGOL 68-R</a></li> <li><a href="/wiki/ALGOL_68RS" title="ALGOL 68RS">ALGOL 68RS</a> (<a href="/wiki/ELLA_(programming_language)" title="ELLA (programming language)">ELLA</a>)</li> <li><a href="/wiki/ALGOL_68S" title="ALGOL 68S">ALGOL 68S</a></li> <li><a href="/wiki/ALGOL_N" title="ALGOL N">ALGOL N</a></li> <li><a href="/wiki/ALGOL_W" title="ALGOL W">ALGOL W</a></li> <li><a href="/wiki/ALGOL_X" title="ALGOL X">ALGOL X</a></li> <li><a href="/wiki/Atlas_Autocode" title="Atlas Autocode">Atlas Autocode</a> (<a href="/wiki/Edinburgh_IMP" title="Edinburgh IMP">Edinburgh IMP</a>)</li> <li><a href="/wiki/Burroughs_Large_Systems#ALGOL" title="Burroughs Large Systems">Burroughs ALGOL</a></li> <li><a href="/wiki/CORAL" title="CORAL">CORAL</a> 66</li> <li><a href="/wiki/Dartmouth_ALGOL_30" title="Dartmouth ALGOL 30">Dartmouth ALGOL 30</a></li> <li><a href="/wiki/DASK" title="DASK">DASK</a> ALGOL</li> <li><a href="/wiki/DG/L" title="DG/L">DG/L</a></li> <li><a href="/wiki/Elliott_ALGOL" title="Elliott ALGOL">Elliott ALGOL</a></li> <li><a href="/wiki/Executive_Systems_Problem_Oriented_Language" title="Executive Systems Problem Oriented Language">Executive Systems Problem Oriented Language</a> (ESPOL) → New Executive Programming Language (<a href="/wiki/NEWP" title="NEWP">NEWP</a>)</li> <li><a href="/wiki/FLACC" title="FLACC">FLACC</a></li> <li><a href="/wiki/IMP_(programming_language)" title="IMP (programming language)">IMP</a></li> <li><a href="/wiki/JOVIAL" title="JOVIAL">JOVIAL</a></li> <li><a href="/wiki/English_Electric_KDF9" title="English Electric KDF9">Kidsgrove</a> Algol</li> <li><a href="/wiki/MAD_(programming_language)" title="MAD (programming language)">MAD</a></li> <li><a href="/wiki/Mary_(programming_language)" title="Mary (programming language)">Mary</a></li> <li><a href="/wiki/NELIAC" title="NELIAC">NELIAC</a></li> <li><a href="/wiki/RTL/2" title="RTL/2">RTL/2</a></li> <li><a href="/wiki/S-algol" title="S-algol">S-algol</a>, <a href="/wiki/PS-algol" title="PS-algol">PS-algol</a>, <a href="/wiki/Napier88" title="Napier88">Napier88</a></li> <li><a href="/wiki/Simula" title="Simula">Simula</a></li> <li>Small Machine ALGOL Like Language (<a href="/wiki/SMALL" title="SMALL">SMALL</a>)</li> <li><a href="/wiki/SMIL_(computer)" title="SMIL (computer)">SMIL</a> ALGOL</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Formalism_(philosophy_of_mathematics)" title="Formalism (philosophy of mathematics)">Formalisms</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Jensen%27s_device" title="Jensen's device">Jensen's device</a></li> <li><a href="/wiki/Van_Wijngaarden_grammar" title="Van Wijngaarden grammar">Van Wijngaarden grammar</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Community_of_practice" title="Community of practice">Community</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Organizations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Professional_association" title="Professional association">Professional<br />associations</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ALCOR" title="ALCOR">ALCOR</a> Group</li> <li><a href="/wiki/Association_for_Computing_Machinery" title="Association for Computing Machinery">Association for Computing Machinery</a> (ACM)</li> <li><a href="/wiki/BSI_Group" title="BSI Group">BSI Group</a></li> <li><a href="/wiki/GOST" title="GOST">Euro-Asian Council for Standardization, Metrology and Certification</a> (EASC)</li> <li><a href="/wiki/International_Federation_for_Information_Processing" title="International Federation for Information Processing">International Federation for Information Processing</a> (IFIP) <a href="/wiki/IFIP_Working_Group_2.1" title="IFIP Working Group 2.1">IFIP Working Group 2.1</a></li> <li><a href="/wiki/Gesellschaft_f%C3%BCr_Angewandte_Mathematik_und_Mechanik" title="Gesellschaft für Angewandte Mathematik und Mechanik">Society of Applied Mathematics and Mechanics</a> (GAMM)</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Business</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Burroughs_Corporation" title="Burroughs Corporation">Burroughs Corporation</a></li> <li><a href="/wiki/Elliott_Brothers_(computer_company)" title="Elliott Brothers (computer company)">Elliott Brothers</a></li> <li><a href="/wiki/Regnecentralen" title="Regnecentralen">Regnecentralen</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Education</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Case_Western_Reserve_University" title="Case Western Reserve University">Case Institute of Technology</a></li> <li><a href="/wiki/University_of_Edinburgh" title="University of Edinburgh">University of Edinburgh</a></li> <li><a href="/wiki/University_of_St_Andrews" title="University of St Andrews">University of St Andrews</a></li> <li><a href="/wiki/Manchester_University" class="mw-redirect" title="Manchester University">Manchester University</a></li> <li><a href="/wiki/Massachusetts_Institute_of_Technology" title="Massachusetts Institute of Technology">Massachusetts Institute of Technology</a> (MIT)</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Government</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Royal_Radar_Establishment" title="Royal Radar Establishment">Royal Radar Establishment</a> (RRE)</li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">People</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/ALGOL_58" title="ALGOL 58">ALGOL 58</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/John_Backus" title="John Backus">John Backus</a></li> <li><a href="/wiki/Friedrich_L._Bauer" title="Friedrich L. Bauer">Friedrich L. Bauer</a></li> <li><a href="/wiki/Hermann_Bottenbruch" title="Hermann Bottenbruch">Hermann Bottenbruch</a></li> <li><a href="/wiki/Charles_Katz" title="Charles Katz">Charles Katz</a></li> <li><a href="/wiki/Alan_Perlis" title="Alan Perlis">Alan Perlis</a></li> <li><a href="/wiki/Heinz_Rutishauser" title="Heinz Rutishauser">Heinz Rutishauser</a></li> <li><a href="/wiki/Klaus_Samelson" title="Klaus Samelson">Klaus Samelson</a></li> <li><a href="/wiki/Joseph_Henry_Wegstein" title="Joseph Henry Wegstein">Joseph Henry Wegstein</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/MAD_(programming_language)" title="MAD (programming language)">MAD</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Bruce_Arden" title="Bruce Arden">Bruce Arden</a></li> <li><a href="/wiki/Bernard_Galler" title="Bernard Galler">Bernard Galler</a></li> <li><a href="/wiki/Robert_M._Graham_(computer_scientist)" title="Robert M. Graham (computer scientist)">Robert M. Graham</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/ALGOL_60" title="ALGOL 60">ALGOL 60</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li>Backus^</li> <li><a href="/wiki/Roland_Carl_Backhouse" title="Roland Carl Backhouse">Roland Carl Backhouse</a></li> <li>Bauer^</li> <li><a href="/wiki/Richard_Bird_(computer_scientist)" title="Richard Bird (computer scientist)">Richard Bird</a></li> <li><a href="/wiki/Stephen_R._Bourne" title="Stephen R. Bourne">Stephen R. Bourne</a></li> <li><a href="/wiki/Edsger_W._Dijkstra" title="Edsger W. Dijkstra">Edsger W. Dijkstra</a></li> <li><a href="/wiki/Andrey_Ershov" class="mw-redirect" title="Andrey Ershov">Andrey Ershov</a></li> <li><a href="/wiki/Robert_W._Floyd" title="Robert W. Floyd">Robert W. Floyd</a></li> <li><a href="/wiki/Jeremy_Gibbons" title="Jeremy Gibbons">Jeremy Gibbons</a></li> <li>Julien Green</li> <li><a href="/wiki/David_Gries" title="David Gries">David Gries</a></li> <li><a href="/wiki/Eric_Hehner" title="Eric Hehner">Eric Hehner</a></li> <li><a href="/wiki/Tony_Hoare" title="Tony Hoare">Tony Hoare</a></li> <li><a href="/wiki/J%C3%B8rn_Jensen" title="Jørn Jensen">Jørn Jensen</a></li> <li>Katz^</li> <li><a href="/wiki/Peter_Landin" title="Peter Landin">Peter Landin</a></li> <li><a href="/wiki/Tom_Maibaum" title="Tom Maibaum">Tom Maibaum</a></li> <li><a href="/wiki/Conor_McBride" title="Conor McBride">Conor McBride</a></li> <li><a href="/wiki/John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">John McCarthy</a></li> <li><a href="/wiki/Carroll_Morgan_(computer_scientist)" title="Carroll Morgan (computer scientist)">Carroll Morgan</a></li> <li><a href="/wiki/Peter_Naur" title="Peter Naur">Peter Naur</a></li> <li><a href="/wiki/Maurice_Nivat" title="Maurice Nivat">Maurice Nivat</a></li> <li><a href="/wiki/John_E._L._Peck" title="John E. L. Peck">John E. L. Peck</a></li> <li>Perlis^</li> <li><a href="/wiki/Brian_Randell" title="Brian Randell">Brian Randell</a></li> <li>Rutishauser^</li> <li>Samelson^</li> <li><a href="/wiki/Jacob_T._Schwartz" title="Jacob T. Schwartz">Jacob T. Schwartz</a></li> <li><a href="/wiki/Micha_Sharir" title="Micha Sharir">Micha Sharir</a></li> <li><a href="/wiki/David_Turner_(computer_scientist)" title="David Turner (computer scientist)">David Turner</a></li> <li><a href="/wiki/Bernard_Vauquois" title="Bernard Vauquois">Bernard Vauquois</a></li> <li><a href="/wiki/Eiiti_Wada" title="Eiiti Wada">Eiiti Wada</a></li> <li>Wegstein^</li> <li><a href="/wiki/Adriaan_van_Wijngaarden" title="Adriaan van Wijngaarden">Adriaan van Wijngaarden</a></li> <li><a href="/wiki/Mike_Woodger" title="Mike Woodger">Mike Woodger</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Simula" title="Simula">Simula</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Ole-Johan_Dahl" title="Ole-Johan Dahl">Ole-Johan Dahl</a></li> <li><a href="/wiki/Kristen_Nygaard" title="Kristen Nygaard">Kristen Nygaard</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a class="mw-selflink selflink">ALGOL 68</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li>Bauer^</li> <li><a href="/wiki/Susan_G._Bond" title="Susan G. Bond">Susan G. Bond</a></li> <li>Bourne^</li> <li><a href="/wiki/Robert_Dewar" title="Robert Dewar">Robert Dewar</a></li> <li>Dijkstra^</li> <li><a href="https://de.wikipedia.org/wiki/Gerhard_Goos" class="extiw" title="de:Gerhard Goos">Gerhard Goos</a></li> <li><a href="/wiki/Michael_Guy" title="Michael Guy">Michael Guy</a></li> <li>Hoare^</li> <li><a href="/wiki/Cornelis_H._A._Koster" title="Cornelis H. A. Koster">Cornelis H. A. Koster</a></li> <li><a href="/wiki/Peter_Landin" title="Peter Landin">Peter Landin</a></li> <li><a href="/wiki/Charles_H._Lindsey" title="Charles H. Lindsey">Charles H. Lindsey</a></li> <li><a href="/wiki/Barry_J._Mailloux" title="Barry J. Mailloux">Barry J. Mailloux</a></li> <li>McCarthy^</li> <li><a href="/wiki/Lambert_Meertens" title="Lambert Meertens">Lambert Meertens</a></li> <li>Naur^</li> <li>Peck^</li> <li><a href="/wiki/Willem_van_der_Poel" title="Willem van der Poel">Willem van der Poel</a></li> <li>Randell^</li> <li><a href="/wiki/Douglas_T._Ross" title="Douglas T. Ross">Douglas T. Ross</a></li> <li>Samelson^</li> <li><a href="/wiki/Michel_Sintzoff" title="Michel Sintzoff">Michel Sintzoff</a></li> <li>van Wijngaarden^</li> <li><a href="/wiki/Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a></li> <li>Woodger^</li> <li><a href="/wiki/Philip_Woodward" title="Philip Woodward">Philip Woodward</a></li> <li><a href="/wiki/Nobuo_Yoneda" title="Nobuo Yoneda">Nobuo Yoneda</a></li></ul> </div></td></tr></tbody></table><div> <ul><li><a href="/wiki/Hal_Abelson" title="Hal Abelson">Hal Abelson</a></li> <li><a href="/wiki/John_Barnes_(computer_scientist)" title="John Barnes (computer scientist)">John Barnes</a></li> <li><a href="/wiki/Tony_Brooker" title="Tony Brooker">Tony Brooker</a></li> <li><a href="/wiki/Ron_Morrison" title="Ron Morrison">Ron Morrison</a></li> <li><a href="/wiki/Peter_O%27Hearn" title="Peter O'Hearn">Peter O'Hearn</a></li> <li><a href="/wiki/John_C._Reynolds" title="John C. Reynolds">John C. Reynolds</a></li></ul></div></td></tr></tbody></table><div> <ul><li><a href="/wiki/ALGOL_Bulletin" title="ALGOL Bulletin">ALGOL Bulletin</a></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Comparison</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <li><a href="/wiki/ALGOL_58#ALGOL_58's_influence_on_ALGOL_60" title="ALGOL 58">ALGOL 58 influence on ALGOL 60</a></li> <li><a class="mw-selflink-fragment" href="#Comparisons_with_other_languages">ALGOL 68 to other languages</a></li> <li><a href="/wiki/Comparison_of_ALGOL_68_and_C%2B%2B" title="Comparison of ALGOL 68 and C++">ALGOL 68 to C++</a></li> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><b>^ = full name and link in prior ALGOL version above</b><br /><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/Category:Algol_programming_language_family" title="Category:Algol programming language family">Category: ALGOL</a></b> <span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/Category:ALGOL_60" title="Category:ALGOL 60">Category: ALGOL 60</a></b></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235"></div><div role="navigation" class="navbox authority-control" aria-label="Navbox" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Help:Authority_control" title="Help:Authority control">Authority control databases</a>: National <span class="mw-valign-text-top noprint" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q2166735#identifiers" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4141871-2">Germany</a></span></li></ul></div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.eqiad.main‐75c465f4c6‐6p885 Cached time: 20241125135028 Cache expiry: 468586 Reduced expiry: true Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 1.226 seconds Real time usage: 1.483 seconds Preprocessor visited node count: 10921/1000000 Post‐expand include size: 212979/2097152 bytes Template argument size: 18627/2097152 bytes Highest expansion depth: 22/100 Expensive parser function count: 19/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 231045/5000000 bytes Lua time usage: 0.610/10.000 seconds Lua memory usage: 8603716/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 1227.474 1 -total 33.85% 415.554 1 Template:Reflist 12.58% 154.392 34 Template:Cite_web 10.57% 129.771 7 Template:Navbox 9.85% 120.958 2 Template:Infobox 9.36% 114.933 4 Template:Cite_book 9.33% 114.495 1 Template:ALGOL_programming 8.47% 103.990 13 Template:Sfn 7.94% 97.482 1 Template:Infobox_programming_language 6.23% 76.443 1 Template:Short_description --> <!-- Saved in parser cache with key enwiki:pcache:idhash:692880-0!canonical and timestamp 20241125135028 and revision id 1257674219. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=ALGOL_68&oldid=1257674219">https://en.wikipedia.org/w/index.php?title=ALGOL_68&oldid=1257674219</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:ALGOL_68" title="Category:ALGOL 68">ALGOL 68</a></li><li><a href="/wiki/Category:Algol_programming_language_family" title="Category:Algol programming language family">Algol programming language family</a></li><li><a href="/wiki/Category:Academic_programming_languages" title="Category:Academic programming languages">Academic programming languages</a></li><li><a href="/wiki/Category:Computer-related_introductions_in_1968" title="Category:Computer-related introductions in 1968">Computer-related introductions in 1968</a></li><li><a href="/wiki/Category:Procedural_programming_languages" title="Category:Procedural programming languages">Procedural programming languages</a></li><li><a href="/wiki/Category:Programming_languages_created_in_1968" title="Category:Programming languages created in 1968">Programming languages created in 1968</a></li><li><a href="/wiki/Category:Systems_programming_languages" title="Category:Systems programming languages">Systems programming languages</a></li><li><a href="/wiki/Category:Programming_languages" title="Category:Programming languages">Programming languages</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:CS1_interwiki-linked_names" title="Category:CS1 interwiki-linked names">CS1 interwiki-linked names</a></li><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li><li><a href="/wiki/Category:CS1_errors:_periodical_ignored" title="Category:CS1 errors: periodical ignored">CS1 errors: periodical ignored</a></li><li><a href="/wiki/Category:All_articles_with_dead_external_links" title="Category:All articles with dead external links">All articles with dead external links</a></li><li><a href="/wiki/Category:Articles_with_dead_external_links_from_November_2016" title="Category:Articles with dead external links from November 2016">Articles with dead external links from November 2016</a></li><li><a href="/wiki/Category:Articles_with_permanently_dead_external_links" title="Category:Articles with permanently dead external links">Articles with permanently dead external links</a></li><li><a href="/wiki/Category:CS1_Russian-language_sources_(ru)" title="Category:CS1 Russian-language sources (ru)">CS1 Russian-language sources (ru)</a></li><li><a href="/wiki/Category:CS1_maint:_archived_copy_as_title" title="Category:CS1 maint: archived copy as title">CS1 maint: archived copy as title</a></li><li><a href="/wiki/Category:Articles_with_dead_external_links_from_October_2016" title="Category:Articles with dead external links from October 2016">Articles with dead external links from October 2016</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li><li><a href="/wiki/Category:Use_dmy_dates_from_May_2019" title="Category:Use dmy dates from May 2019">Use dmy dates from May 2019</a></li><li><a href="/wiki/Category:All_articles_with_unsourced_statements" title="Category:All articles with unsourced statements">All articles with unsourced statements</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_August_2011" title="Category:Articles with unsourced statements from August 2011">Articles with unsourced statements from August 2011</a></li><li><a href="/wiki/Category:Articles_with_dead_external_links_from_June_2017" title="Category:Articles with dead external links from June 2017">Articles with dead external links from June 2017</a></li><li><a href="/wiki/Category:Articles_with_example_ALGOL_68_code" title="Category:Articles with example ALGOL 68 code">Articles with example ALGOL 68 code</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 16 November 2024, at 03:16<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=ALGOL_68&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-565f7699fc-n9w55","wgBackendResponseTime":172,"wgPageParseReport":{"limitreport":{"cputime":"1.226","walltime":"1.483","ppvisitednodes":{"value":10921,"limit":1000000},"postexpandincludesize":{"value":212979,"limit":2097152},"templateargumentsize":{"value":18627,"limit":2097152},"expansiondepth":{"value":22,"limit":100},"expensivefunctioncount":{"value":19,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":231045,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 1227.474 1 -total"," 33.85% 415.554 1 Template:Reflist"," 12.58% 154.392 34 Template:Cite_web"," 10.57% 129.771 7 Template:Navbox"," 9.85% 120.958 2 Template:Infobox"," 9.36% 114.933 4 Template:Cite_book"," 9.33% 114.495 1 Template:ALGOL_programming"," 8.47% 103.990 13 Template:Sfn"," 7.94% 97.482 1 Template:Infobox_programming_language"," 6.23% 76.443 1 Template:Short_description"]},"scribunto":{"limitreport-timeusage":{"value":"0.610","limit":"10.000"},"limitreport-memusage":{"value":8603716,"limit":52428800},"limitreport-logs":"anchor_id_list = table#1 {\n [\"CITEREFBlackRayward-Smith1978\"] = 1,\n [\"CITEREFC._H._A._Koster1993\"] = 1,\n [\"CITEREFDavid_Holdsworth2009–2010\"] = 1,\n [\"CITEREFDennis_Ritchie1988\"] = 1,\n [\"CITEREFDennis_Ritchie1993\"] = 1,\n [\"CITEREFDijkstra\"] = 1,\n [\"CITEREFE._Marchesi\"] = 1,\n [\"CITEREFHoare1968\"] = 1,\n [\"CITEREFHoare1981\"] = 1,\n [\"CITEREFI_F_CurrieJ_M_Foster1982\"] = 1,\n [\"CITEREFKoster\"] = 1,\n [\"CITEREFLindsey1972\"] = 1,\n [\"CITEREFLindsey1974\"] = 2,\n [\"CITEREFLindsey1993\"] = 1,\n [\"CITEREFLindsey1996\"] = 1,\n [\"CITEREFLindseyBoom1978\"] = 1,\n [\"CITEREFLu_Hu-quan1971\"] = 1,\n [\"CITEREFNeedhamWilkes1979\"] = 1,\n [\"CITEREFOliverNewton1979\"] = 1,\n [\"CITEREFPeck1970\"] = 1,\n [\"CITEREFTerekhov2014\"] = 1,\n [\"CITEREFVan_WijngaardenMaillouxPeckKoster1968\"] = 1,\n [\"CITEREFVeer\"] = 2,\n [\"CITEREFVeer2023\"] = 4,\n [\"CITEREFvan_Rossum2005\"] = 1,\n [\"CITEREFvan_WijngaardenMaillouxPeckKoster1976\"] = 1,\n [\"CITEREFvan_der_Veer\"] = 1,\n}\ntemplate_list = table#1 {\n [\"=\"] = 2,\n [\"ALGOL programming\"] = 1,\n [\"Authority control\"] = 1,\n [\"Black\"] = 3,\n [\"Char\"] = 2,\n [\"Citation\"] = 1,\n [\"Citation needed\"] = 1,\n [\"Cite book\"] = 4,\n [\"Cite journal\"] = 11,\n [\"Cite web\"] = 34,\n [\"Clear\"] = 1,\n [\"Code\"] = 6,\n [\"DEFAULTSORT:Algol 68\"] = 1,\n [\"Dead link\"] = 4,\n [\"Div col\"] = 1,\n [\"Div col end\"] = 1,\n [\"Flag\"] = 23,\n [\"GPL-lic\"] = 2,\n [\"Infobox programming language\"] = 1,\n [\"Note\"] = 1,\n [\"Nowrap\"] = 1,\n [\"Open source\"] = 1,\n [\"Pre\"] = 1,\n [\"Quote box\"] = 1,\n [\"Ref\"] = 1,\n [\"Refbegin\"] = 1,\n [\"Refend\"] = 1,\n [\"Reflist\"] = 1,\n [\"Refn\"] = 2,\n [\"Rquote\"] = 1,\n [\"Sfn\"] = 13,\n [\"Short description\"] = 1,\n [\"SpecialChars\"] = 2,\n [\"Start date and age\"] = 2,\n [\"Sxhl\"] = 4,\n [\"Tt\"] = 14,\n [\"Unknown\"] = 1,\n [\"Use dmy dates\"] = 1,\n [\"Verth\"] = 16,\n [\"Webarchive\"] = 6,\n [\"White\"] = 12,\n}\narticle_whitelist = table#1 {\n}\n"},"cachereport":{"origin":"mw-web.eqiad.main-75c465f4c6-6p885","timestamp":"20241125135028","ttl":468586,"transientcontent":true}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"ALGOL 68","url":"https:\/\/en.wikipedia.org\/wiki\/ALGOL_68","sameAs":"http:\/\/www.wikidata.org\/entity\/Q2166735","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q2166735","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2004-05-31T02:11:50Z","dateModified":"2024-11-16T03:16:01Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/en\/3\/35\/Algol68RevisedReportCover.jpg","headline":"programming language"}</script> </body> </html>