Кіріспе
ALGOL 68 (Алгоритмдік тіл 1968) – ALGOL 60 бағдарламалау тілінің жалғасы ретінде жасалған, қолдану саласы кеңейтілген және синтаксисі мен семантикасы қатаң анықталған императивті бағдарламалау тілі. Тілдің анықтамасының күрделілігі, ол стандартты емес терминологиямен толтырылған жүздерше беттерді құрайды, компиляторды жасауды қиындатты және оның «жұмыс істемейтіні және пайдаланушылары жоқ» делінді. Бұл тек ішінара ғана шындық еді; ALGOL 68 бірнеше арнайы салаларда қолданыс тапты, әсіресе Ұлыбританияда International Computers Limited (ICL) машиналарында және оқыту саласында танымал болды. Бұл салалардан тыс қолданылуы салыстырмалы түрде шектеулі болды. Дегенмен, ALGOL 68 компьютерлік ғылым саласына жасаған үлесі терең, кең және ұзаққа созылған, бірақ осы үлес көптеген жағдайда кейіннен жасалған бағдарламалау тілдерінде қайта пайда болғанда ғана жұртшылыққа мәлім болды. Көптеген тілдер тілдің күрделілігіне жауап ретінде әзірленді, ең танымалдары – Паскаль, немесе Ада сияқты нақты міндеттер үшін қайта іске асырылды. 1970-ші жылдардағы көптеген тілдер өз дизайнын ALGOL 68-ге тікелей байланыстырып, кейбір мүмкіндіктерін таңдап алды, ал қалғандары тым күрделі немесе берілген міндеттерге сәйкес емес деп саналды. Олардың ішінде C тілі бар, ол ALGOL 68-дің күшті типтеуі мен құрылымдары арқылы тікелей әсер етті. Көптеген қазіргі тілдер өздерінің синтаксисінің бір бөлегін C немесе Паскаль тілінен, демек тікелей немесе жанама түрде ALGOL 68-ден алған.
ALGOL 68 (short for Algorithmic Language 1968) is an imperative programming language that was conceived as a successor to the ALGOL 60 programming language, designed with the goal of a much wider scope of application and more rigorously defined syntax and semantics. The complexity of the language's definition, which runs to several hundred pages filled with non standard terminology, made compiler 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 United Kingdom where it was popular on International Computers Limited (ICL) machines, and in teaching roles. Outside these fields, use was relatively limited. Nevertheless, the contributions of ALGOL 68 to the field of computer science 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 Pascal, or were reimplementations for specific roles, like Ada. 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 C, which was directly influenced by ALGOL 68, especially by its strong typing 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.
Шығу тегі
ALGOL 68, атынан көрініп тұрғандай, 1960 жылы алғаш рет ресми түрде қалыптастырылған ALGOL тілінің жалғасы болып табылады. Сол жылы Халықаралық ақпаратты өңдеу федерациясы (IFIP) құрылып, ALGOL жұмыс тобын, немесе WG2.1-ді бастады. Бұл топ 1962 жылдың сәуір айында Римде ALGOL 60 ережелерін жаңартты. 1964 жылдың наурыз айында өткен келесі кездесуде топ екі жаңа стандартты әзірлеуге кірісу керек екеніне келісті: ALGOL X, ол тілді кейбір қосымшалармен қайта анықтау болар еді, және ALGOL Y, ол LISP тілінің стилінде өзінің бағдарламаларын өзгертуге қабілетті болар еді.
Анықтау процесі
ALGOL X тобының алғашқы кездесуі 1965 жылдың мамыр айында Принстон университетінде өтті. Кездесудің баяндамасында екі кең қолдау тапқан тақырып атап өтілді: күшті типтеуді енгізу және жиынтарды өңдеу үшін Эйлердің «ағаштар» немесе «тізімдер» тұжырымдамаларына деген қызығушылық. Қазан айында Францияда өткен екінші кездесуде Niklaus Wirth-тің ALGOL W, C. A. R. (Tony) Hoare-дың жазбалық құрылымдарға қатысты түсініктемелерімен бірге Gerhard Seegmüller-дің ұқсас тілі және Adriaan van Wijngaarden-нің «Ортогональды жобалау және формальды тілдің сипаттамасы» тақырыбындағы үш ресми ұсыныс таныстырылды. Бұл еңбек, дерлік түсінілмейтін «W грамматикасымен» жазылған, тілдің эволюциясындағы шешуші өзгеріс болды. Кездесу van Wijngaarden-нің Wirth/Hoare ұсынысын өзінің W грамматикасын қолдана отырып қайта жазуы туралы келісіммен аяқталды. Бұл сырттай қарағанда оңай тапсырма күткеннен қиын болды, сондықтан келесі кездесу алты айға кейінге жылдырылды. 1966 жылдың сәуір айында Kootwijk қаласында өткен кездесуде van Wijngaarden-нің жобасы толыққан жоқ еді, ал Wirth және Hoare дәстүрлі сипаттамаларды қолдана отырып өз нұсқаларын ұсынды. Жалпы, олардың мақаласы «дұрыс тіл, бірақ қате формализмде» деген пікірге келді. Бұл тәсілдер зерттелген кезде параметрлерді сипаттаудағы айырмашылықтардың нақты әсер ететіні анық болды. Wirth және Hoare одан әрі кешігудің соңы болмайтынынан қорқыныш білдіргенімен, комитет van Wijngaarden-нің нұсқасын күтуге шешім қабылдады. Содан кейін Wirth олардың ағымдағы анықтамасын ALGOL W ретінде іске асырды. 1966 жылдың қазан айында Варшавада өткен келесі кездесуде Oak Ridge ұлттық зертханасы мен Иллинойс университетінде кездескен, бірақ әлі көп жетістікке қол жеткізбеген I/O кіші комитетінің алғашқы есебі тыңдалды. Алдыңғы кездесудегі екі ұсыныс қайта қарастырылды, және бұл жолы көрсеткіштерді қолдану туралы жаңа пікірталас туды: ALGOL W оларды тек жазбаларға сілтеме жасау үшін пайдаланды, ал van Wijngaarden-нің нұсқасы кез келген нысанға сілтеме жасай алатын болды. Жағдайды одан оқыс қылған Джон Маккарти операторларды жүктеу және «және» немесе конструкцияларын біріктіру мүмкіндігі туралы жаңа ұсыныс жасады, ал Клаус Сэмэльсон анонимді функцияларға рұқсат беруді қалады. Туындаған шатасудың салдарынан жобаны тоқтату туралы да пікірлер айтылды. Шатасу 1967 жылдың мамыр айында Zandvoort қаласында өткен ALGOL Y кездесуі деп есептелетін шарада да жалғасты.
At the next meeting in Warsaw in October 1966, there was an initial report from the I/O Subcommittee who had met at the Oak Ridge National Laboratory and the University of Illinois 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 pointers; ALGOL W used them only to refer to records, while van Wijngaarden's version could point to any object. To add confusion, John McCarthy presented a new proposal for operator overloading and the ability to string together and or constructs, and Klaus Samelson wanted to allow anonymous functions. In the resulting confusion, there was some discussion of abandoning the entire effort. The confusion continued through what was supposed to be the ALGOL Y meeting in Zandvoort in May 1967.
Жарияланым
Ақыры, 1968 жылдың ақпан айында есеп жобасы жарияланды. Бұл "таңсыққа түсіру, үрей және наразылық" тудырды, себебі жүздеген беттерде түсініксіз грамматика мен ерекше терминология болды. Чарльз Х. Линдси "оның ішінде қандай тіл жасырынғанын" анықтауға тырысты, бұл процеске алты адам-апта жұмсалды. "АЛГОЛ 68 – азырақ көз жасы" деген мақала кеңінен таратылды. 1968 жылдың мамырында Цюрихте өткен кең ауқымды ақпаратты өңдеу жиынында қатысушылар оларға тілді күштеп таңуға шағымданып, IFIP-ті "осы ақылға сыймас жағдайдың нағыз кінәлісі" деп атады, себебі жиындар көбінесе жабық өтті және ресми кері байланыс механизмі болмады. Вирт пен Питер Наур сол кезде WG2.1 тобындағы авторлық қызметтерінен ресми түрде бас тартты. Келесі WG2.1 жиыны 1968 жылдың маусым айында Тирренияда өтті. Онда компиляторларды шығару және басқа да мәселелер талқылануы тиіс еді, бірақ оның орнына тіл туралы пікірталасқа ұласты. Ван Вийнгаарден жауап ретінде (немесе угроза ретінде) есептің тек бір ғана нұсқасын жариялайтынын мәлімдеді. Осы кезде Наур, Хоар және Вирт жұмыстан кетіп, тағы бірнеше адам да солай етуге дайын еді. Содан кейін бірнеше жиын өтті: 1968 жылдың тамызында Солтүстік Бервик, желтоқсанда Мюнхен, нәтижесінде 1969 жылдың қаңтарында ресми есеп жарияланды, бірақ сонымен қатар даулы азшылық есебі де жазылды. Ақырында, 1969 жылдың қыркүйегінде Альберта провинциясының Банф қаласында жоба аяқталған деп есептелді және пікірталас негізінен қателер туралы және есепке кеңейтілген кіріспе жазуға қатысты болды. Бұл жұмыс бес жылға созылды, компьютерлік ғылымның көптеген көрнекті өкілдерін шаршатып, бірнеше рет анықтамадағы және топтың жалпы мәселелеріне байланысты дауға түсті. Хоар дерлік бірден "АЛГОЛ 68-ге сын" жариялады, ол көптеген еңбектерде кеңінен сілтеме жасалды. Вирт ALGOL W тұжырымын одан әрі дамытып, 1970 жылы оны Pascal ретінде жариялады.
ALGOL 68-R
1968 жылдың соңына таман жасалған жобалық баяндамаға негізделген стандарттың алғашқы нұсқасын Ұлыбританиядағы Royal Radar Establishment 1970 жылдың шілдесінде ALGOL 68 R ретінде енгізді. Бұл, алайда, толық тілдің кіші жиынтығы болды, ал Бари Майлу, баяндаманың соңғы редакторы, әзілдеп: «Бұл моральдық мәселе. Бізде Құдай сөзі бар, ал сіздер күнә жасап жатырсыз!» деді. Бұл нұсқа ICL машиналарында өте танымал болды және әсіресе Ұлыбританияда әскери бағдарламалауда кеңінен қолданылатын тілге айналды. 68 R-дегі өзгерістердің бірі – барлық айнымалыларды алғашқы қолданудан бұрын жариялау қажеттігі болды. Бұл компилятордың бір рет өтуіне мүмкіндік берді, себебі айнымалыларға арналған орын белсендіру жазбасында оларды пайдалану алдында бөлінді. Алайда, бұл өзгеріс PROC-терді екі рет жариялауды талап етудің қосымша салдарына да әкелді: бір рет типтерді жариялау ретінде, ал екінші рет – кодтың өзі ретінде. Тағы бір өзгеріс – мән қайтармайтын өрнекті (басқа тілдерде оператор деп аталады) білдіретін болжамды VOID режимін жою және оның орнына VOID сөзін қосуды талап ету болды. Сонымен қатар, 68 R PAR негізіндегі нақты параллель өңдеу командаларын жойды. a68g, GPLv3, Марсель ван дер Вир жазған. algol68toc, ALGOL 68RS ашық кодты бағдарламалық өнімге портталған нұсқасы. GCC үшін тәжірибелік Algol68 интерфейсі, Жозе Э. Маркеси жазған.
Бірліктер: Экспрессиялар
Тілдің негізгі құрылымы – бірлік. Бірлік – формула, жабық түйін, процедуралық мәтін немесе техникалық тұрғыдан қажетті бірнеше конструкциялардың (тапсыру, секіру, өткізіп жіберу, бос) бірі болуы мүмкін. "Жабық түйін" термині, басқа заманауи тілдерде блок, do операторы, switch операторы деп аталатын, ішкі құрылымдарды біріктіреді. Егер кілт сөздер қолданылса, әдетте қоршауды аяқтау үшін кілт сөздің кері әріптер тізбегі қолданылады, мысалы (IF ~ THEN ~ ELSE ~ FI, CASE ~ IN ~ OUT ~ ESAC, FOR ~ WHILE ~ DO ~ OD). Осы Guarded Command синтаксисін Стивен Борн Unix Bourne shell-інде қайта пайдаланды. Өрнек бірнеше мәнді де беруі мүмкін, ол басқа мәндерден қосымша түйін арқылы құралады. Бұл конструкция процедура шақыруының параметрлер жинағына ұқсайды.
Арнайы таңбалар
Алгольдің "ерекше" таңбаларының көпшілігі (⊂, ≡, ␣, ×, ÷, ≤, ≥, ≠, ¬, ⊃, ≡, ∨, ∧, →, ↓, ↑, ⌊, ⌈, ⎩, ⎧, ⊥, ⏨, ¢, ○ және □) APL "гольф доп" баспа баспен жабдықталған IBM 2741 пернетақтасында табылуы мүмкін; олар 1960 жылдардың ортасында ALGOL 68 жобаланып жатқан кезде қолжетімді болды. Бұл таңбалар сондай-ақ Юникод стандартының құрамына кіреді және олардың көпшілігі бірнеше танымал шрифттерде қолжетімді.
ALGOL 68-де жазылған операциялық жүйелер
Кембридж CAP компьютері – Операциялық жүйені құрайтын барлық процедуралар ALGOL 68C тілінде жазылған, бірақ бірнеше тығыз байланысты қорғалған процедуралар, мысалы, беттеу құрылғысы (пагинатор), BCPL тілінде жазылған. Eldon 3 – ICL 1900 үшін Лидс университетінде ALGOL 68 R тілінде жазылған. Flex машинасы – Аппараттық бөлігі арнайы және микробағдарламаланатын, операциялық жүйе, (модульдік) компилятор, редактор, қоқыс жинаушы және файлдық жүйе ALGOL 68RS тілінде жазылған. Curt командалық қабығы Algol 68 режимдеріне ұқсас типтелген деректерге қол жеткізу үшін жобаланған. VME – S3 операциялық жүйенің іске асырылу тілі болды. S3 ALGOL 68 тіліне негізделген, бірақ ICL 2900 сериясы ұсынған дерек түрлері мен операторларымен үйлесімді болды. Ескерту: Кеңес дәуіріндегі Эльбрус 1 (Elbrus 1) және Эльбрус 2 компьютерлері дәстүрлі тілдердің орнына жоғары деңгейдегі Эль 76 (AL 76) тілінде жасалды. Эль 76 Algol 68 тіліне ұқсас, басты айырмашылығы – Эль 76 тіліндегі динамикалық байланыс түрлері аппараттық деңгейде қолдау тапқан. Эль 76 қолданбаларды, жұмысты басқаруды және жүйелік бағдарламалауды жүзеге асыру үшін қолданылады.
Flex machine – The hardware was custom and microprogrammable, with an operating system, (modular) compiler, editor, garbage collector and filing system all written in ALGOL 68RS. The command shell Curt was designed to access typed data similar to Algol 68 modes. VME – S3 was the implementation language of the operating system VME. S3 was based on ALGOL 68 but with data types and operators aligned to those offered by the ICL 2900 Series. Note: The Soviet Era computers Эльбрус 1 (Elbrus 1) 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.
Қолданбалар
ALGOL 68C және ALGOL 68 R екеуі де ALGOL 68 тілінде жазылған, бұл ALGOL 68-ді өзінің өзіне қолданбаға айналдырады. Басқа қолданбалар: ELLA – аппараттық сипаттама тілі және қолдау құралдары жиынтығы. 1980 және 1990 жылдары Корольдік сигналдар және радарлар мекемесімен әзірленген. RAF Strike Command System – "үш адамдық еңбек жыл ішінде 400 мың қатесіз ALGOL 68 RT коды жасалды".
ELLA – a hardware description language and support toolset. Developed by the Royal Signals and Radar Establishment during the 1980s and 1990s. RAF Strike Command System – " 400K of error free ALGOL 68 RT code was produced with three man years of work. "
Кітапханалар мен API-лер
NAG сандық кітапханалары – сандық талдау алгоритмдерінің бағдарламалық кітапханасы. 1980-ші жылдары ALGOL 68 форматында ұсынылған. TORRIX – S. G. van der Meulen және M. Veldhorst жасаған, кез келген өрістерде және өзгермелі өлшемдегі векторлар мен матрицалармен жұмыс істеуге арналған бағдарламалау жүйесі.
Қайта қаралулары
Егер басқаша көрсетілмесе (үстін сызылған белгімен), жоғарыда сипатталған тіл "Түзетілген есептің (r1)" тілі болып табылады.
True ALGOL 68s спецификациясы және іске асыру кестесі
Атауы Жыл Мақсаты Мемлекет Сипаттамасы Мақсат CPU Лицензиялау Іске асыру тілі Жалпыландырылған ALGOL 1962 Ғылыми Жалпыландырылған грамматика үшін ALGOL YY 1966 Алғашында Algol 68 нұсқасы ACM ALGOL 68DR 1968 Алғашында Intl IFIP WG 2.1 Есеп жобасының ерекшелігі – наурыз ACM ALGOL 68r0 1968 Стандарт Intl IFIP WG 2.1 Қорытынды есептің ерекшелігі – тамыз ACM ALGOL 68 RR 1970 Әскери ICL 1900 ALGOL 60EPOS ALGOLE 1971 Ғылыми ALGOL 68RSRS 1972 Әскери Портативті компилятор жүйесі ICL 2900/Series 39, Multics, VMS & C генераторы (1993) Құпиялы құқықтар ALGOL 68RS Algol 68 аудандарымен 1972 Эксперименталды және басқа да Algol 68-ге аудандардың қосылуы Mini ALGOL 68 1973 Зерттеу "Жай Algol 68 бағдарламалары үшін интерпретатор" Портативті интерпретатор Mathematisch Centrum ALGOL 60OREGANO 1973 Зерттеу "Іске асыру модельдерінің маңыздылығы" UCLA ALGOL 68CC 1975 Ғылыми Кембридж Algol 68 ICL, IBM 360, PDP 10 & Unix, Telefunken, Tesla & Z80 (1980) Cambridge ALGOL 68CALGOL 68 Revised Reportr1 1975 Стандарт Intl IFIP WG 2.1 Revised Report Ерекшелігі ACM Algol HH 1975 Эксперименталды және басқа да Algol 68 режимдік жүйесіне ұсынылған кеңейтімдер Ерекшелігі ALGOL WOdra Algol 68 1976 Практикалық қолданыс / Odra 1204/IL Совет ALGOL 60Oklahoma ALGOL 68 1976 Бағдарламалау нұсқаулығы Оклахома мемлекеттік университеті IBM 1130 және System/370/158 ANSI Fortran 66 іске асыру Berlin ALGOL 68 1977 Зерттеу "The Berlin ALGOL 68 implementation" & Абстракті Algol 68 машинасы – машинадан тәуелсіз компилятор Техникалық университеті Берлин CDL 2FLACCF 1977 Көп мақсатты Revised Report толыққанды іске асыру, дебаг мүмкіндіктерімен System/370 жалдау, Chion Corporation AssemblerALGOL 68 RTRT 1979 Ғылыми Параллель ALGOL 68 R RS Algolrs 1979 Ғылыми ALGOL 68+ 1980 Ғылыми ALGOL 68 жоғары тілі M 220 ALGOL 68 M 220 Совет EPSILONLeningrad ALGOL 68L 1980 Телекоммуникациялар Толық тіл + модульдер IBM, DEC, CAMCOH, PS 1001 & PC Совет Interactive ALGOL 68I 1983 Ішкі компиляция PC Коммерциялық емес бөлісу ALGOL 68SS 1985 Ғылыми Intl Sun нұсқасы ALGOL 68 Sun 3, Sun SPARC (SunOS 4.1 & Solaris 2), Atari ST (GEMDOS), Acorn Archimedes (RISC OS), VAX 11 (Ultrix 32) Algol68toC (ctrans) 1985 Электроника ctrans ELLA ALGOL 68RS Портативті C генераторы 1995 ALGOL 68RSMK2 Interactive ALGOL 68 1992 Ішкі компиляция PC Коммерциялық емес бөлісу Algol 68 GenieG 2001 Толық тіл Стандартты қосымша шарттарды қамтиды Портативті интерпретатор CAlgol 68 Genie version 2.0.0 2010 Толық тіл Портативті интерпретатор; таңдалған бөлімдерді міндетті түрде компиляциялау C
ICL 2900 Series опералық жүйесін және көптеген басқа жүйелік бағдарламаларды жазу үшін қолданылған S3 тілі Algol 68-дің тікелей туындысы болды. Алайда, ол көптеген күрделі мүмкіндіктерді алып тастады және негізгі режимдерді 2900 Series аппараттық архитектурасына тікелей сәйкес келетін деректер түрлерінің жиынтығымен алмастырды.
Қолданысқа енгізілуіне байланысты кеңейтулер
RRE-ден шыққан ALGOL 68R(R) – ICL 1900 компьютерінде жұмыс істейтін ALGOL 68-дің алғашқы ішкі жиынтығының іске асырылуы болды. Тілдің түпнұсқалық нұсқасына сүйене отырып, негізгі шектеулер пайдалану алдында анықтама беру және параллель өңдеуді қолдану болды. Бұл компилятор 1970-ші жылдарда Ұлыбритания университеттерінде кең таралды, онда көптеген компьютерлік ғылым студенттері ALGOL 68-ді алғашқы бағдарламалау тілі ретінде оқыды; компилятор жақсы қате туралы хабарламаларымен әйгілі болды. RSRE-ден шыққан ALGOL 68RS(RS) – ALGOL 68RS тілінде жазылған (ALGOL 68R-ден бастап құрылған) портативті компилятор жүйесі болды және ICL 2900/Series 39, Multics және DEC VAX/VMS сияқты түрлі жүйелерде іске асырылды. Тіл қайта қарастырылған есепке негізделген, бірақ ALGOL 68R-ге ұқсас кіші жиынтық шектеулерімен. Бұл компилятор Algol68-ден C тіліне компилятор түрінде сақталды. Карнеги Меллон университетінің ALGOL 68S(S) жүйесінде параллель өңдеу мүмкіндігі ортогональді кеңейту, яғни оқиғалар (eventing) арқылы жақсартылды. EVENT түйін сөзін қамтитын кез келген айнымалы жариялануы осы айнымалыға параллель бағалауға жарамды тапсырмаларды жасады, яғни оң жағы C.mmp көппроцессорлық жүйесінің процессорларының біріне көшірілген процедураға айналдырылды. Мұндай айнымалыларға қол жеткізу тапсырма аяқталғаннан кейін кешіктірілді. Кембридждің ALGOL 68C(C) – ALGOL 68-дің кіші жиынтығын іске асырған, оператор анықтамаларын, қоқыс жинауды, икемді қатарларды және форматталған транспаутті алып тастаған портативті компилятор. М. ван дер Вирдің Algol 68 Genie(G) – қазіргі заманғы компьютерлер мен операциялық жүйелер үшін ALGOL 68 іске асырылуы. "Жақсы ниетпен болғанымен, бағдарламашы әдейілеместен жергілікті кеңейтуді қолданып, портативтілікті бұзуы мүмкін. Осыған қарсы әрбір іске асыру PORTCHECK прагма опциясын ұсынуы керек. Бұл опция қолданылып жатқанда компилятор тасымалдану шектеуін бұзатын әрбір құрылым үшін хабарлама шығарады."
Пайдаланылған әдебиеттер
Брейлсфорд, Д. Ф. және Уокер, А. Н., ALGOL 68 бағдарламалауға кіріспе, Эллис Хорвуд / Уайли, 1979
Линдси, Ч. Х. және ван дер Мюлен, С. Г., ALGOL 68-ге бейресми кіріспе, Солтүстік Голландия, 1971
МакГетрик, А. Д., ALGOL 68, Бірінші және екінші курс, Кембридж университеті Баспасөзі, 1978
Пек, Дж. Е. Л., ALGOL 68 серігі, Британдық Колумбия университеті, 1971 жылғы қазан
Таненбаум, А. С., ALGOL 68 бойынша оқулық, Компьютерлік шолулар 8, 155–190, 1976 жылғы маусым және 9, 255–256, 1977 жылғы қыркүйек
Вудворд, П. М. және Бонд, С. Г., ALGOL 68 R пайдаланушы нұсқаулығы, Лондон, Оның Ұлылық кеңсесі, 1972
Lindsey, C. H. and van der Meulen, S. G., Informal Introduction to ALGOL 68, North Holland, 1971
McGettrick, A. D., ALGOL 68, A First and Second Course, Cambridge Univ. Press, 1978
Peck, J. E. L., An ALGOL 68 Companion, Univ. of British Columbia, October 1971
Tanenbaum, A. S., A Tutorial on ALGOL 68, Computing Surveys 8, 155 190, June 1976 and 9, 255 256, September 1977,
Woodward, P. M. and Bond, S. G., ALGOL 68 R Userssic Guide, London, Her Majesty's Stationery Office, 1972