ALGOL W. ALGOL W — bu dasturlash tili. U Niklaus Wirth va Tony Hoare tomonidan ALGOL 60 ning vorisi sifatida ALGOL X taklifiga asoslanadi. ALGOL W asl ALGOL 60 ga nisbatan sodda yangilanishi boʻlib, unda qator, murakkab raqam va yozuv maʼlumotlar turlariga havola qoʻshiladi va parametrlarni qoʻngʻiroqlar boʻyicha oʻtkazish, codice_1 operatorini kiritish, codice_2 codice_3 bayonoti bilan almashtirish va umuman olganda tilni mustahkamlash kiradi. Wirthning kirishi ALGOL 60 dan juda oz avans deb hisoblandi va Adriaan van Wijngaardendan murakkabroq kirish juda bahsli uchrashuvda boʻldi. Keyinchalik Wirth oʻz versiyasini "ALGOL rivojlanishiga hissa" sifatida nashr etdi. Bir qator kichik qoʻshimchalar bilan bu oxir-oqibat ALGOL W ga aylandi. Wirth keng tarqalgan Stenford universitetida IBM System/360 uchun yuqori sifatli dasturni nazorat qildi. Amalga oshirish Wirth tomonidan ishlab chiqilgan ALGOL-ga o'xshash assembly tili bo'lgan PL360 da yozilgan. Amalga oshirish nufuzli disk raskadrovka va profil yaratish qobiliyatlarini o'z ichiga oladi. ALGOL W Paskal tili uchun asos boʻlib xizmat qildi va ALGOL W sintaksisi Paskal tajribasiga ega boʻlgan har bir kishiga qiyinchilik tugʻdirmaydi. Asosiy farqlar Paskalda yozuvlar bilan ishlashning yaxshilanishi va ALGOL W ning ish vaqtida massiv uzunligini aniqlash qobiliyatini yoʻqotishidir, bu Paskalning eng koʻp shikoyat qiladigan xususiyatlaridan biridir. Sintaksis va semantika. ALGOL W sintaksisi EBCDIC belgilar kodlash toʻplamining kichik toʻplamiga qurilgan. ALGOL 60 da ajratilgan soʻzlar alohida leksik birliklardir, lekin ALGOL W da ular faqat belgilar ketma-ketligi boʻlib, ularni kesish shart emas. Zaxiralangan soʻzlar va identifikatorlar boʻsh joylar bilan ajratiladi. Shu jihatdan ALGOL W sintaksisi Paskal va keyingi tillarnikiga oʻxshaydi. "ALGOL W til tavsifi" ALGOL W ni Backus-Naur shakliga (BNF) oʻxshash affiks grammatikasida belgilaydi. Bu rasmiy grammatika Van Wijngaarden grammatikasining kashshofi edi. ALGOL W semantikasining katta qismi grammatik jihatdan aniqlanadi: Bu ALGOL W ning rekord turdagi uskunasini namoyish etadi. RECORD PERSON ( STRING(20) NAME; INTEGER AGE; LOGICAL MALE; REFERENCE(PERSON) FATHER, MOTHER, YOUNGESTOFFSPRING, ELDERSIBLING REFERENCE(PERSON) PROCEDURE YOUNGESTUNCLE (REFERENCE(PERSON) R); BEGIN REFERENCE(PERSON) P, M; P := YOUNGESTOFFSPRING(FATHER(FATHER(R))); WHILE (P ¬= NULL) AND (¬ MALE(P)) OR (P = FATHER(R)) DO P := ELDERSIBLING(P); M := YOUNGESTOFFSPRING(MOTHER(MOTHER(R))); WHILE (M ¬= NULL) AND (¬ MALE(M)) DO M := ELDERSIBLING(M); IF P = NULL THEN M ELSE IF M = NULL THEN P ELSE IF AGE(P) < AGE(M) THEN P ELSE M END Amalga oshirish. ALGOL W ning katta qismi, taxminan 2700 ta karta Wirth’s PL360 da yozilgan. Amaldagi IBM operatsion tizimi (OS) uchun interfeys moduli (OS, DOS, MTS, ORVYL) IBM assembler tilida yozilgan boʻlib, 250 ta kartadan kam.360/67 operatsion tizimida kirish va chiqish fayllari biriktirilganda, kompilyator taxminan 25 soniya ichida oʻzini qayta kompilyatsiya qiladi. Kompilyator taxminan 2700 ta karta tasviridir. Shunday qilib, yuqorida keltirilgan bajarilish vaqtidan OS rejalashtiruvchi vaqti ayirilsa, kompilyator sekundiga 100 ta kartadan yuqori tezlikda ishlayotgani koʻrinadi (zich kod uchun). 360/30 da DOS muhitida kompilyator faqat kartani o'quvchi tezligi bilan cheklanadi. Kompilyator o'zini 64K 360/30 da daqiqasiga 1200 ta karta (kartani o'quvchi tezligi) tezligida muvaffaqiyatli qayta kompilyatsiya qildi. Bu DOS Assembler uchun 250 ta kartadan iborat interfeys modulini yig'ish uchun zarur bo'lgan vaqt bilan solishtirganda ta'sirchan. Ibratli ko'rsatmalar kengaytirilganda, DOS interfeysi 972 ta karta tasviriga ega va Assembler yig'ish uchun 15 daqiqa vaqt oladi.