Niklaus Wirth vytvoril programovací jazyk Pascal. Niklaus Wirth je patriarcha spoľahlivého programovania. Pedagogická a spoločenská činnosť

Materiál z Wikipédie – voľnej encyklopédie

(nem. Niklaus Wirth, narodený 15. 2. 1934) – švajčiarsky vedec, špecialista v oblasti informatiky, jeden z najznámejších teoretikov v oblasti vývoja programovacích jazykov, profesor informatiky (ETH), víťaz Turingovho ocenenia z roku 1984 Cena. Popredný vývojár jazykov Pascal, Modula-2, Oberon.

Životopis

Niklaus Wirth sa narodil 15. februára 1934 vo Winterthure na predmestí Zürichu (Švajčiarsko). Rodičia: Walter a Hedwig Wirthovci. Nicklausov otec bol školský učiteľ.

Ako dieťa sa Niklaus Wirth zaujímal o modelovanie lietadiel a stavbu rakiet, jeho vášeň pre elektroniku a softvérové ​​riadiace systémy začala vývojom zariadení na diaľkové ovládanie modelov. V roku 1954 nastúpil na Fakultu elektroniky Švajčiarskeho federálneho technologického inštitútu (ETH) v Zürichu, kde za štyri roky získal bakalársky titul v odbore elektrotechnika. V štúdiu pokračoval na University of Laval (Quebec, Kanada) a v roku 1960 získal magisterský titul. Potom bol pozvaný na Kalifornskú univerzitu v Berkeley (USA), kde v roku 1963 pod vedením profesora Huskyho obhájil dizertačnú prácu, ktorej témou bol programovací jazyk Euler – rozšírenie Algolu pomocou jazyka Lisp.

Wirthovu prácu si všimla komunita vývojárov programovacích jazykov a v tom istom roku 1963 bol pozvaný do Algolského štandardizačného výboru IFIP (Medzinárodná federácia informatiky), ktorý vyvíjal nový štandard pre jazyk Algol, z ktorého sa neskôr stal ALGOL. -68. Spolu s Charlesom Hoareom sa Wirth vo výbore zasadzoval za vývoj mierne upravenej verzie Algolu, zbavenej nedostatkov pôvodného jazyka a doplnenej o minimum skutočne potrebných nástrojov. Wirth a Hoar predložili výboru jazyk Algol-W (W pre Wirtha), ktorý bol len takým prerobením Algolu, no nezískal podporu. Na konci práce výboru v roku 1968 bol Wirth medzi tými, ktorí kritizovali ALGOL-68, hovoriac o jeho nedostatočnej spoľahlivosti a extrémnej nadbytočnosti. Súčasne od roku 1963 do roku 1967 pracoval Wirth ako asistent na Stanfordskej univerzite v USA. Spolu s Jimom Walesom vyvinul a implementoval jazyk PL/360, určený na programovanie na platforme IBM/360 – algolovom jazyku, do ktorého sa zaviedlo množstvo systémovo závislých funkcií súvisiacich s architektúrou IBM/360.

V roku 1967 sa vrátil s hodnosťou docenta na univerzitu v Zürichu a v roku 1968 získal titul profesora informatiky na ETH. V ETH pracoval 31 rokov. Podieľal sa na mnohých organizačných aktivitách, zlepšoval systém výučby svojej univerzity.

V roku 1970 vytvoril programovací jazyk Pascal. V 70. rokoch vyvinul spolu s C. Hoareom a E. Dijkstrom technológiu štruktúrovaného programovania. Wirthov článok z roku 1971 „Vývoj programu postupným zdokonaľovaním“ opísal a zdôvodnil dnes už klasickú metodiku vývoja softvéru zhora nadol. Na prenos systému Pascal na rôzne počítačové platformy bol v roku 1973 za účasti spoločnosti Wirth vyvinutý prototyp virtuálneho stroja, ktorý by vykonával prechodný „pi-kód“ na akejkoľvek platforme, do ktorej sa mali skompilovať všetky programy. .

V roku 1975 vyvinul jazyk Modula, v ktorom implementoval myšlienky vývoja modulárnych programov s dobre definovanými intermodulárnymi rozhraniami a paralelným programovaním. Okrem toho bola v Module zmenená syntax jazyka – Wirth sa zbavil potreby, zdedenej z Algol-60, používať zložené operátory vo vetviacich štruktúrach a slučkách. Modul nebol všeobecne známy a mal iba jednu experimentálnu implementáciu, ale jeho upravená verzia - Modula-2, ktorej vývoj začal v roku 1977 a skončil v roku 1980, určená na implementáciu systémového softvéru systému Lilith vyvinutého na ETH - 16. -bitový osobný počítač, sa stal známym a pomerne populárnym, aj keď v popularite neprekonal Pascal [zdroj neuvedený 1091 dní], najmä jeho komerčné implementácie. Systém Lilith predbehol trendy v počítačovom priemysle o niekoľko rokov. Wirth neskôr ľutoval, že tým, že si švajčiarsky počítačový priemysel neuvedomil potenciál tohto systému, premárnil svoju historickú šancu. Vývoj Modula-2 bol jazyk Modula-3, vyvinutý spoločne spoločnosťami DEC a Olivetti; Wirth sa na jeho tvorbe nepodieľal.

V druhej polovici 70. rokov sa Wirth zúčastnil súťaže amerického ministerstva obrany na vývoj nového jazyka pre programovanie vstavaných systémov, čo vyústilo do vytvorenia jazyka Ada. Príbeh sa zopakoval s ALGOL-68 - projekt skupiny, v ktorej pôsobili Wirth a Hoare, jazyková komisia neschválila. Výsledkom bolo, že súťaž vyhral projekt založený na Pascalovi, ale oveľa zložitejší a objemnejší.

V rokoch 1982 až 1984 a 1988 až 1990 viedol Wirth Fakultu informatiky ETH a od roku 1990 Ústav počítačových systémov ETH.

V roku 1988 v spolupráci s Jurgom Gutknechtom vyvinul Wirth programovací jazyk Oberon. Cieľom vývoja bolo vytvorenie jazyka pre implementáciu systémového softvéru navrhovanej novej pracovnej stanice. Základom pre Oberon bola Modula-2, ktorá bola výrazne zjednodušená, no zároveň doplnená o nové schopnosti.

V roku 1992 Wirth a Mössenböck vydali správu o novom programovacom jazyku Oberon 2, minimálne rozšírenej verzii Oberonu. V tom istom roku vznikla dcérska spoločnosť ETH, Oberon microsystems, ktorá začala s vývojom systémov Oberon. Wirth sa stal jedným z členov jej predstavenstva. V roku 1999 táto spoločnosť vydala ďalšiu verziu Oberonu - Component Pascal, vhodnejšiu na programovanie komponentov. V roku 1996 Wirth vyvinul ďalší originálny programovací jazyk Lola, jednoduchý učebný jazyk na formálny popis a simuláciu digitálnych elektrických obvodov.

1. apríla 1999 odišiel Wirth do dôchodku po dosiahnutí vekovej hranice pre štátneho zamestnanca vo Švajčiarsku (ETH je štátna univerzita, jej zamestnanci sú štátnymi zamestnancami a ich práca podlieha príslušným právnym predpisom).

Virtovi bol dňa 19. júna 2007 uznesením Prezídia Ruskej akadémie vied č. 141 udelený akademický titul Doctor honoris causa (podľa odporúčania Katedry informačných technológií a počítačových systémov). Iniciátorom prezentácie bol ruský vedec v oblasti IT technológií Igor Shagaev, profesor London Metropolitan University, ktorý v rokoch 2005-2008 spolupracoval s Niklausom Wirthom na európskom projekte ONBASS.

Člen národných akadémií: Swiss Academy of Engineering (Švajčiarsko), U.S. Akadémia inžinierstva (USA), akadémia Berlín-Brandenburg (Nemecko).
[upraviť] Ceny a ocenenia
Cena IEEE Emanuela Piorea (1983)
ACM Turing Award (1984)
Cena ACM za mimoriadny prínos pre vzdelávanie v oblasti informatiky (1987, 1989)
IEEE Computer Pioneer (1988)
Prix ​​​​Max Petitpierre (1989)
Cena IBM Europe Science and Technology (1989)
Cena Marcela Benoita (1990)
Orden Pour le Merite (1996)
Medaila Leonarda da Vinciho (1999)
Cena ACM za výnimočný výskum v softvérovom inžinierstve (1999).

Úspechy

Wirth vyvinul alebo sa podieľal na vývoji programovacích jazykov: Euler, Algol-W, PL/360, Pascal, Modula-2, Oberon, Oberon-2, Component Pascal. Jeho najznámejším vývojom je samozrejme programovací jazyk Pascal, ktorý mal obrovský vplyv na niekoľko generácií programátorov a stal sa základom pre vznik veľkého množstva programovacích jazykov. Ďalším zásadným dielom, ktorého sa Wirth stal účastníkom, bol vývoj technológie štruktúrovaného programovania, ktorá sa, samozrejme, stala najsilnejšou formalizáciou v programovaní minimálne v 70. – 80. rokoch 20. storočia. Túto technológiu vyvinuli, overili a implementovali iba traja vynikajúci ľudia – Wirth, Dijkstra a Hoar.

Komentátori opakovane poznamenali, že Wirthove myšlienky boli často roky pred rozvojom počítačového priemyslu, niekedy aj desaťročia. Systém Pascal-P, vyvinutý na začiatku 70-tych rokov, zahŕňa kompiláciu programov Pascal do univerzálneho „pi-kódu“ a implementáciu na ľubovoľnú platformu tlmočníka pi-kódu (jednou z jeho slávnych implementácií je UCSD-Pascal univerzity of San Diego), ktorý umožnil portovať systémy Pascal na nové hardvérové ​​platformy s minimálnymi nákladmi, bol o viac ako dve desaťročia pred myšlienkami intermediárneho interpretera kódu implementovaného v systémoch, ktoré podporujú vykonávanie programov v jazyku Java a v jazyku . NET platforma. Myšlienka skombinovať programovací systém s garbage collectorom, oslobodiť programátora od potreby sledovať životnosť objektov dynamicky alokovaných v pamäti, bola implementovaná v roku 1988 v jazyku a operačnom systéme Oberon. Obidva tieto nápady používali vývojári v Jave a .NET v druhej polovici 90. rokov.
[upraviť] Vedecké princípy

Snáď jedným z najpresnejších vyjadrení princípov, ktorých sa Wirth pri vývoji všetkých svojich projektov drží, je Einsteinova fráza v epigrafe k „Posolstvu o jazyku Oberon“: „Urob to čo najjednoduchšie, ale nie jednoduchšie. .“ Vo všetkých jeho prácach možno vysledovať jeho počiatočné zameranie na implementáciu čo najefektívnejšieho riešenia konkrétneho inžinierskeho problému na základe zaručene fungujúcich, matematicky založených nástrojov. Wirth pevne verí, že programovanie by malo byť bežnou inžinierskou disciplínou, ktorá zaručuje dostatočnú úroveň spoľahlivosti jeho vývoja. Dosiahnutie spoľahlivosti je možné podľa Wirtha jediným spôsobom: maximálnym zjednodušením ako samotných systémov, tak aj nástrojov, ktoré sa na ich vytváranie používajú. V súlade s týmto princípom boli jazyky a programovacie systémy vyvinuté Wirthom vždy príkladom „primeranej dostatočnosti“, dokonca istým druhom asketizmu – poskytovali len to, bez čoho sa nezaobídeme.

Aj rozširovanie existujúcich jazykov a systémov vždy sprevádzalo zjednodušenie. Podľa výpočtov uverejnených v článku Sergeja Sverdlova „Aritmetika syntaxe“ je „línia Wirth“, ako ju nazval – rad jazykov vrátane Pascal, Modula-2, Oberon a Oberon2 – jediným príkladom „genetického línia“ potomkov jazyka Algol-60, v ktorom zložitosť jazyka, definovaná ako počet lexém v jeho popise, neustále klesá a v súčasnosti je nižšia ako v prípade jeho spoločného „predchodcu“ – ALGOL-60. Všetky jazyky „riadku Wirth“ sú jednoduchšie ako Algol-60 a každý nasledujúci jazyk v tomto riadku je jednoduchší ako predchádzajúci. Ada je zároveň viac ako dvakrát zložitejšia ako jej predchodca - Pascal, C++ je približne 1,7-krát zložitejšia ako C a v rade rôznych verzií Pascal - Turbo Pascal - Object Pascal zložitosť neustále rastie od verzie. do verzie.

Wirth často kritizuje „americký prístup“ k vývoju programovacích nástrojov, v ktorom marketingové hľadiská prevažujú nad požiadavkami matematickej harmónie a zaručenej spoľahlivosti a každý nový módny výstrelok je sprevádzaný nekritickým zavádzaním nových syntaktických prvkov do programovacích jazykov. To vedie k nesprávnemu posúdeniu úlohy niektorých nápadov a v konečnom dôsledku k nesprávnemu stanoveniu priorít pri vývoji softvéru. Konkrétne, keď hovoríme o OOP, Wirth opakovane poznamenal, že ide o dosť triviálne rozšírenie toho istého štrukturálneho prístupu, ochutené novou terminológiou a sotva si môže nárokovať titul „revolučná metodológia programovania“. Wirth preslávil úškľabkovú poznámku o americkom zvyku antropocentrizmu v terminológii: „Nazývajú rozšírenia typu ‚dedičnosť‘, ale v skutočnosti dedičstvo zvyčajne prechádza na potomka, až keď predok zomrie.

Ďalší princíp, ktorý Wirtha vždy viedol, možno formulovať takto: „Nástroj musí zodpovedať úlohe. Ak nástroj nevyhovuje danej úlohe, musíte vymyslieť nový, ktorý by mu vyhovoval, namiesto toho, aby ste sa pokúšali prispôsobiť existujúci.“ Nevíta rozvoj „jazykov, ktoré sú všeobecne univerzálne“. Každý Wirth vyvinutý systém mal jasne formulovaný účel, rozsah a vždy bez váhania vylúčil z vývoja všetko, čo na tento konkrétny účel nebolo potrebné. Tu je však potrebné objasniť: „špecifickým účelom“ napríklad Oberonu je zabezpečiť mimoriadne ľahkú a bezpečnú rozšíriteľnosť systému, preto, hoci nejde o „univerzálny jazyk vo všeobecnosti“, teda nie vrátane všetkých možných nástrojov pre všetky predstaviteľné aplikácie, Oberon je stále univerzálny – „univerzálny vďaka rozšíriteľnosti“.

Moskva: DMK Press, 2010. - 192 s.
Kniha slávneho informatika Niklausa Wirtha vychádza z jeho prednášok na úvodnom kurze dizajnu kompilátorov. Na príklade jednoduchého jazyka Oberon-0 sa berú do úvahy všetky prvky prekladača vrátane optimalizácie a generovania kódu. Uvádza sa úplný text kompilátora v programovacom jazyku Oberon. Pre programátorov, učiteľov a študentov študujúcich systémové programovanie a metódy prekladu.
Obsah
Úvod
Jazyk a syntax
Cvičenia
Bežné jazyky
Cvičenie
Analýza bezkontextových jazykov
Metóda rekurzívneho zostupu;
Tabuľková analýza zhora nadol
Analýza zdola nahor
Cvičenia
Atribútová gramatika a sémantika
Typ Pravidlá
Pravidlá výpočtu
Pravidlá vysielania
Cvičenie
Programovací jazyk Oberon-0
Cvičenie
Analyzátor pre Oberon-0
Lexikálny analyzátor
Syntaktický analyzátor
Riešenie problémov s chybami syntaxe
Cvičenia
Berúc do úvahy kontext daný deklaráciami
reklamy
Položky typu údajov
Prezentácia údajov za behu
Cvičenia
Architektúra RISC ako cieľ
Zdroje a registre
Výrazy a priradenia
Priame generovanie kódu na princípe zásobníka
Oneskorené generovanie kódu
Indexované premenné a polia záznamov
Cvičenia
Podmienené a cyklické príkazy a logické výrazy
Porovnania a prechody
Podmienené a cyklické príkazy
Logické operácie
Priradenie k booleovským premenným
Cvičenia
Postupy a koncepcia lokalizácie
Organizácia pamäte za behu
Adresovanie premenných
možnosti
Vyhlásenia a výzvy na konanie
Štandardné postupy
Funkčné postupy
Cvičenia
Základné dátové typy
Typy REAL a LONGREAL
Kompatibilita medzi numerickými dátovými typmi
SET typ údajov
Cvičenia
Verejné polia, ukazovatele a procedurálne typy
Otvorte polia
Dynamické dátové štruktúry a ukazovatele
Procedurálne typy
Cvičenia
Moduly a samostatná kompilácia
Princíp skrývania informácií
Samostatná kompilácia
Implementácia súborov symbolov
Oslovovanie vonkajších objektov
Kontrola kompatibility konfigurácie
Cvičenia
Optimalizácia a štruktúra pre/post procesora
Všeobecné úvahy
Jednoduché optimalizácie
Vyhnite sa duplicitným výpočtom
Registrovať pridelenie
Štruktúra pre/post procesorového kompilátora
Cvičenia
Príloha A.
Syntax
Oberon-0
Oberon
Súbory znakov
Príloha B
Sada znakov ASCII
Príloha C
Kompilátor Oberon-0
Lexikálny analyzátor
Syntaktický analyzátor
Generátor kódu
Literatúra

Stiahnuť súbor

  • 2,16 MB
  • pridané 19.09.2009

Kniha známeho anglického autora skúma problémy navrhovania a zostavovania kompilátorov pre programovacie jazyky na vysokej úrovni, najmä ALGOL 60, PL/1, ALGOL 68, Pascal a Ada. Dôraz je kladený na ciele navrhovania spoľahlivých kompilátorov a prostriedkov na ich dosiahnutie. Vysvetlené praktické otázky...

  • 1,57 MB
  • pridané 17.12.2008

Prednášky o zostavovaní kompilátora v jazyku Pascal. 255 str.
Táto séria článkov je sprievodcom teóriou a praxou vývoja syntaktických analyzátorov a kompilátorov pre programovacie jazyky. Skôr než dočítate túto knihu, preberieme každý aspekt návrhu kompilátora, vytvoríme nový programovací jazyk a...

  • 1,25 MB
  • pridané 16.05.2009

Táto séria článkov je sprievodcom teóriou a praxou vývoja syntaktických analyzátorov a kompilátorov pre programovacie jazyky. Pred vami
Keď dočítate túto knihu, preberieme všetky aspekty návrhu kompilátora, vytvoríme nový programovací jazyk a zostavíme funkčný kompilátor.

  • 5,49 MB
  • pridané 10.10.2007

M.: Williams Publishing House, 2003. - 768 s.: ill.

Každý, kto sa zaujíma o vývoj kompilátorov, nepochybne počul o slávnej Dragon Book, Aho a Ullmanových klasických Principles of Compiler Design. Rýchly rozvoj kompilačných technológií viedol k zrodu nového draka – knihy „K...

  • 1,22 MB
  • pridané 16.05.2009

Predmety: lexikálna a syntaktická analýza, organizácia pamäte, generovanie kódu. Počas celej prezentácie bol urobený pokus zachovať jednotný „atribútový“ pohľad na proces vývoja kompilátora. Kniha sa nezaoberá mimoriadne dôležitými otázkami globálnej optimalizácie a vývoja kompilátorov pre stroje s paralelným...

  • 59,93 MB
  • pridané 12.7.2010

Táto útla, ale obsiahla kniha je úvodom do teórie tvorby kompilátorov, ako aj stručným popisom princípov ich fungovania. Materiál je prezentovaný pre čitateľa, ktorý nie je oboznámený s témou. Text ponúka odporúčania pre ďalšiu literatúru a poskytuje tipy na inštrumentálnu podporu.

Niklaus Wirth sa narodil 15. februára 1934 v malom mestečku Winterthur na predmestí Zürichu (Švajčiarsko). Niklaus sa narodil v rodine Waltera a Hedwig Wirthovcov. Býval neďaleko školy, kde učil jeho otec. Ich dom mal dobrú knižnicu, kde Wirth našiel veľa zaujímavých kníh o železniciach, turbínach a telegrafoch.

Mestečko Winterthur má dlhú históriu a je známe vďaka strojárstvu: vyrábajú sa tu lokomotívy a dieselové motory. Od detstva sa Wirth zaujímal o techniku, najmä letecké modelovanie. Doslova sníval o oblohe. Na odpálenie rakiet však bolo potrebné získať palivo, a tak sa dal na chémiu. Mladý Wirt zriadil „tajné“ laboratórium v ​​suteréne školy.

Jeho vášeň pre elektroniku a systémy riadenia programov začala vývojom zariadení na diaľkové ovládanie modelov. V roku 1954 nastúpil na Fakultu elektroniky Švajčiarskeho federálneho technologického inštitútu (ETH) v Zürichu, kde za štyri roky získal bakalársky titul v odbore elektrotechnika. V štúdiu pokračoval na University of Laval (Quebec, Kanada) a v roku 1960 získal magisterský titul. Potom bol pozvaný na Kalifornskú univerzitu v Berkeley (USA), kde v roku 1963 pod vedením profesora Huskyho obhájil dizertačnú prácu, ktorej témou bol programovací jazyk Euler – rozšírenie Algolu pomocou jazyka Lisp.

Wirthovu prácu si všimla komunita vývojárov programovacích jazykov a v tom istom roku 1963 bol pozvaný do Algolského štandardizačného výboru IFIP (Medzinárodná federácia informatiky), ktorý vyvíjal nový štandard pre jazyk Algol, z ktorého sa neskôr stal ALGOL. -68. Spolu s Charlesom Hoareom sa Wirth vo výbore zasadzoval za vývoj mierne upravenej verzie Algolu, zbavenej nedostatkov pôvodného jazyka a doplnenej o minimum skutočne potrebných nástrojov. Wirth a Hoar predložili komisii jazyk ALGOL-W (W pre Wirtha), čo bolo len také prepracovanie Algolu, no nezískali podporu. Na konci práce výboru v roku 1968 bol Wirth medzi tými, ktorí kritizovali ALGOL-68, hovoriac o jeho nedostatočnej spoľahlivosti a extrémnej nadbytočnosti. Zároveň v rokoch 1963 až 1967 pôsobil Wirth ako asistent na Stanfordskej univerzite (USA). Spolu s Jimom Walesom vyvinul a implementoval jazyk PL/360, určený na programovanie na platforme IBM/360 – jazyk podobný algolu, ktorý zaviedol množstvo systémovo závislých funkcií súvisiacich s architektúrou IBM/360.

V roku 1967 sa vrátil s hodnosťou docenta na univerzitu v Zürichu a v roku 1968 získal titul profesora informatiky. V ETH pracoval 31 rokov. Podieľal sa na mnohých organizačných aktivitách, zlepšoval systém výučby svojej univerzity.

V roku 1970 vytvoril programovací jazyk Pascal. V 70. rokoch vyvinul spolu s Hoare a Dijkstrou technológiu štruktúrovaného programovania. Wirthov článok z roku 1971 „Vývoj programu postupným zdokonaľovaním“ opísal a zdôvodnil dnes už klasickú metodiku vývoja softvéru zhora nadol. Na prenos systému Pascal na rôzne počítačové platformy bol v roku 1973 za účasti spoločnosti Wirth vyvinutý prototyp virtuálneho stroja, ktorý by vykonával prechodný „P-kód“ (P pre Pascal) na akejkoľvek platforme, do ktorej boli začlenené všetky programy. má byť zostavený.

V roku 1975 vyvinul jazyk Modula, v ktorom implementoval myšlienky vývoja modulárnych programov s dobre definovanými intermodulárnymi rozhraniami a paralelným programovaním. Okrem toho bola v Module zmenená syntax jazyka - Wirth sa zbavil potreby používať zložené operátory vo vetviacich štruktúrach a slučkách. Modul nebol všeobecne známy a mal iba jednu experimentálnu implementáciu, ale jeho upravená verzia - Modula-2, ktorej vývoj sa začal v roku 1977 a skončil v roku 1980, určená na implementáciu systémového softvéru systému Lilith vyvíjaného na ETH - a 16-bitový osobný počítač sa stal známym a pomerne populárnym, aj keď v popularite neprekonal Pascal, najmä jeho komerčné implementácie. Systém Lilith predbehol trendy v počítačovom priemysle o niekoľko rokov neskôr s poľutovaním povedal, že švajčiarsky počítačový priemysel premeškal svoju historickú šancu.

Za projekt Lilith a jazyk Modula-2 získal Wirth v roku 1984 cenu Alana Turinga. Cena Alana Turinga je obdobou Nobelovej ceny za informatiku, bola založená už v roku 1966 a každoročne ju udeľuje Asociácia pre výpočtové stroje za vynikajúce výsledky v oblasti informatiky.

V druhej polovici 70. rokov sa Wirth zúčastnil súťaže amerického ministerstva obrany na vývoj nového jazyka pre programovanie vstavaných systémov, čo vyústilo do vytvorenia jazyka Ada. Príbeh sa zopakoval s ALGOL-68 - projekt skupiny, v ktorej pôsobili Wirth a Hoare, jazyková komisia neschválila. Výsledkom bolo, že súťaž vyhral projekt založený na Pascalovi, ale oveľa zložitejší a objemnejší.

V rokoch 1982 až 1984 a 1988 až 1990 viedol Wirth Fakultu informatiky ETH a od roku 1990 Ústav počítačových systémov ETH.

V roku 1988 v spolupráci s Jürgom Gutknechtom vyvinul Wirth programovací jazyk Oberon. Cieľom vývoja bolo vytvorenie jazyka pre implementáciu systémového softvéru navrhovanej novej pracovnej stanice. Základom pre Oberon bola Modula-2, ktorá bola výrazne zjednodušená, no zároveň doplnená o nové schopnosti.

V roku 1992 Wirth a Mössenböck vydali správu o novom programovacom jazyku Oberon 2, minimálne rozšírenej verzii Oberonu. V tom istom roku vznikla dcérska spoločnosť ETH Oberonmicrosystems, ktorá začala s vývojom systémov Oberon.

Wirth sa stal jedným z členov jej predstavenstva. V roku 1999 táto spoločnosť vydala ďalšiu verziu Oberonu - Component Pascal, vhodnejšiu na programovanie komponentov. V roku 1996 Wirth vyvinul ďalší originálny programovací jazyk Lola, jednoduchý učebný jazyk na formálny popis a simuláciu digitálnych elektrických obvodov.

1. apríla 1999 odišiel Wirth do dôchodku, keď dosiahol vekovú hranicu 65 rokov pre štátneho zamestnanca vo Švajčiarsku.

Wirthovi bol 19. júna 2007 udelený čestný doktorát Ruskej akadémie vied. Iniciátorom prezentácie bol ruský informatik Igor Shagaev, profesor Londýnskej Metropolitnej univerzity, ktorý je spojený s Niklausom Wirthom spoločnou prácou v rokoch 2005–2008 na európskom projekte ONBASS.

Niklaus Wirth je členom národných akadémií: SwissAcademyofEngineering (Švajčiarsko), U.S. AcademyofEngineering (USA), Berlin-BrandenburgAcademy (Nemecko).

Wirth sa vždy snažil o harmóniu, organickú jednotu hardvérových a softvérových komponentov a jeho vytrvalosť a talent nepochybne neoceniteľne prispeli k rozvoju informatiky.

Nastúpil na Fakultu elektroniky Švajčiarskeho federálneho technologického inštitútu (ETH) v Zürichu, kde za štyri roky získal bakalársky titul v odbore elektrotechnika. V štúdiu pokračoval na University of Laval (Quebec, Kanada) a v roku 1960 získal magisterský titul. Potom bol pozvaný na Kalifornskú univerzitu v Berkeley (USA), kde v roku 1963 pod vedením profesora Huskyho obhájil dizertačnú prácu, ktorej témou bol programovací jazyk Euler – rozšírenie Algolu pomocou jazyka Lisp.

Wirthovu prácu si všimla komunita vývojárov programovacích jazykov a v tom istom roku 1963 bol pozvaný do Algolského štandardizačného výboru IFIP (Medzinárodná federácia informatiky), ktorý vyvíjal nový štandard pre jazyk Algol, z ktorého sa neskôr stal ALGOL. -68. Spolu s Charlesom Hoareom sa Wirth vo výbore zasadzoval za vývoj mierne upravenej verzie Algolu, zbavenej nedostatkov pôvodného jazyka a doplnenej o minimum skutočne potrebných nástrojov. Wirth a Hoar predložili výboru jazyk Algol-W (W pre Wirtha), ktorý bol len takým prerobením Algolu, no nezískal podporu. Na konci práce výboru v roku 1968 bol Wirth medzi tými, ktorí kritizovali ALGOL-68, hovoriac o jeho nedostatočnej spoľahlivosti a extrémnej nadbytočnosti. Súčasne Wirth v priebehu rokov pôsobil ako asistent na Stanfordskej univerzite v USA. Spolu s Jimom Walesom vyvinul a implementoval jazyk PL/360, určený na programovanie na platforme IBM/360 – jazyk podobný algoritmu, do ktorého sa zaviedlo množstvo systémovo závislých funkcií súvisiacich s architektúrou IBM/360.

Ceny a ocenenia

  • Cena IEEE Emanuela Piorea (1983)
  • ACM Turing Award (1984)
  • Cena ACM za mimoriadny prínos pre vzdelávanie v oblasti informatiky (1987, 1989)
  • IEEE Computer Pioneer (1988)
  • Prix ​​​​Max Petitpierre (1989)
  • Cena IBM Europe Science and Technology (1989)
  • Cena Marcela Benoita (1990)
  • Orden Pour le Merite (1996)
  • Medaila Leonarda da Vinciho (1999)
  • Cena ACM za výnimočný výskum v softvérovom inžinierstve (1999).

Úspechy

Wirth vyvinul alebo sa podieľal na vývoji programovacích jazykov: Euler, Algol-W, PL/360, Pascal, Modula, Modula-2, Oberon, Oberon-2, Component Pascal. Jeho najznámejším vývojom je samozrejme programovací jazyk Pascal, ktorý mal obrovský vplyv na niekoľko generácií programátorov a stal sa základom pre vznik veľkého množstva programovacích jazykov. Ďalšou zásadnou prácou, ktorej sa Wirth stal účastníkom, bol vývoj technológie štruktúrovaného programovania, ktorá sa stala zďaleka najsilnejšou formalizáciou v programovaní prinajmenšom v 70. - 80. rokoch 20. storočia. Túto technológiu vyvinuli, overili a implementovali iba traja vynikajúci ľudia – Wirth, Dijkstra a Hoar.

Komentátori opakovane poznamenali, že Wirthove myšlienky boli často roky pred rozvojom počítačového priemyslu, niekedy aj desaťročia. Systém Pascal-P, vyvinutý na začiatku 70-tych rokov, zahŕňa kompiláciu programov Pascal do univerzálneho „pi-kódu“ a implementáciu na ľubovoľnú platformu tlmočníka pi-kódu (jednou z jeho slávnych implementácií je UCSD-Pascal univerzity zo San Diega), ktorý umožnil portovať systémy Pascal na nové hardvérové ​​platformy s minimálnymi nákladmi, o viac ako dve desaťročia predbehol myšlienky intermediárneho interpretera kódu implementovaného v systémoch, ktoré podporujú vykonávanie programov v jazyku .NET. Myšlienka skombinovať programovací systém s garbage collectorom, oslobodiť programátora od potreby sledovať životnosť objektov dynamicky alokovaných v pamäti, bola implementovaná v roku 1988 v jazyku a operačnom systéme Oberon. Obidva tieto nápady boli použité (a široko propagované ako úplne nové slovo v technológii a bezprecedentný úspech!) americkými vývojármi rovnakej Java a .NET v druhej polovici 90. rokov.

Vedecké princípy

Snáď jedným z najpresnejších vyjadrení princípov, ktorých sa Wirth pri vývoji všetkých svojich projektov drží, je Einsteinova fráza v epigrafe k „Posolstvu o jazyku Oberon“: „Urob to čo najjednoduchšie, ale nie jednoduchšie. .“ Vo všetkých jeho prácach možno vysledovať jeho počiatočné zameranie na implementáciu čo najefektívnejšieho riešenia konkrétneho inžinierskeho problému na základe zaručene fungujúcich, matematicky založených nástrojov. Wirth pevne verí, že programovanie by malo byť bežnou inžinierskou disciplínou, ktorá zaručuje dostatočnú úroveň spoľahlivosti jeho vývoja. Dosiahnutie spoľahlivosti je možné podľa Wirtha jediným spôsobom: maximálnym zjednodušením ako samotných systémov, tak aj nástrojov, ktoré sa na ich vytváranie používajú. V súlade s týmto princípom boli jazyky a programovacie systémy vyvinuté Wirthom vždy príkladom „primeranej dostatočnosti“, dokonca istým druhom asketizmu – poskytovali len to, bez čoho sa nezaobídeme.

Aj rozširovanie existujúcich jazykov a systémov vždy sprevádzalo zjednodušenie. Podľa výpočtov uverejnených v článku Sergeja Sverdlova „Aritmetika syntaxe“ je „línia Wirth“, ako ju nazval – rad jazykov vrátane Pascal, Modula-2, Oberon a Oberon2 – jediným príkladom „genetického línia“ potomkov jazyka Algol-60, v ktorom zložitosť jazyka, definovaná ako počet lexém v jeho popise, neustále klesá a v súčasnosti je nižšia ako v prípade jeho spoločného „predchodcu“ – ALGOL-60. Všetky jazyky „riadku Wirth“ sú jednoduchšie ako Algol-60 a každý nasledujúci jazyk v tomto riadku je jednoduchší ako predchádzajúci. Ada je zároveň viac ako dvakrát zložitejšia ako jej predchodca - Pascal, C++ je približne 1,7-krát zložitejšia ako C a v rade rôznych verzií Pascal - Turbo Pascal - Object Pascal zložitosť rastie exponenciálne od verzie k druhej. verzia.

Wirth často kritizuje „americký prístup“ k vývoju programovacích nástrojov, v ktorom marketingové hľadiská prevažujú nad požiadavkami matematickej harmónie a zaručenej spoľahlivosti a každý nový módny výstrelok je sprevádzaný nekritickým zavádzaním nových syntaktických prvkov do programovacích jazykov. To vedie k nesprávnemu posúdeniu úlohy niektorých nápadov a v konečnom dôsledku k nesprávnemu stanoveniu priorít pri vývoji softvéru. Konkrétne, keď hovoríme o OOP, Wirth opakovane poznamenal, že ide o dosť triviálne rozšírenie toho istého štrukturálneho prístupu, ochutené novou terminológiou a sotva si môže nárokovať titul „revolučná metodológia programovania“. Wirth preslávil úškľabkovú poznámku o americkom zvyku antropocentrizmu v terminológii: „Nazývajú rozšírenia typu ‚dedičnosť‘, ale v skutočnosti dedičstvo zvyčajne prechádza na potomka, až keď predok zomrie.

Ďalší princíp, ktorý Wirtha vždy viedol, možno formulovať takto: „Nástroj musí zodpovedať úlohe. Ak nástroj nevyhovuje danej úlohe, musíte vymyslieť nový, ktorý by mu vyhovoval, namiesto toho, aby ste sa pokúšali prispôsobiť existujúci.“ Nevíta rozvoj „jazykov, ktoré sú všeobecne univerzálne“. Každý Wirth vyvinutý systém mal jasne formulovaný účel, rozsah a vždy bez váhania vylúčil z vývoja všetko, čo na tento konkrétny účel nebolo potrebné.

knihy

Publikované v ruštine:

  • Systematické programovanie. Úvod. M.: Mir, 1977;
  • Pascal. Používateľská príručka a popis jazyka. M.: Financie a štatistika, 1982 (spoluautor s K. Jensenom);
  • Algoritmy + dátové štruktúry = programy. M.: Mir, 1985;
  • Programovanie v jazyku Modula-2. M.: Mir, 1987;
  • Algoritmy a dátové štruktúry. M.:Mir, 1989. ISBN 5-03-001045-9 (verzia knihy v jazyku Modula-2)
  • Algoritmy a dátové štruktúry. SPb.: Nevsky dialekt. 2001.

Kniha Wirth „Algoritmy + dátové štruktúry = programy“ vyšla v ruštine niekoľkokrát v rôznych verziách a je považovaná za prvú z troch klasických učebníc o štruktúrovanom programovaní.

V súčasnosti je celá klasická trilógia Wirtha preložená jeho študentmi do jazyka Oberon a je k dispozícii na stiahnutie z internetu vo forme

Poznámky

Odkazy

  • Preklad článku N. Virta „Dobré nápady: pohľad zo zrkadla“

Niklaus Emil Wirth sa narodil v roku 1934 vo švajčiarskom meste Winterthur (Švajčiarsko). Je známe, že jeho otec pracoval ako školský učiteľ a sám Niklaus mal od detstva rád modelovanie lietadiel. Práve táto vášeň ho neskôr priviedla k tomu, že sa začal zaujímať o elektroniku a systémy riadenia programov.

V roku 1954 sa Wirth stal študentom Fakulty elektroniky Švajčiarskeho federálneho technologického inštitútu v Zürichu, kde získal bakalársky titul v odbore elektrotechnika. Nasledovalo štúdium na Lavalskej univerzite v kanadskom Quebecu (Université Laval, Kanada), z ktorej Wirth v roku 1960 získal magisterský titul.



Wirth získal doktorát z elektrotechniky a informatiky na Kalifornskej univerzite v Berkeley (USA); v múroch tejto konkrétnej vzdelávacej inštitúcie v roku 1963 obhájil svoju dizertačnú prácu, ktorú napísal pod vedením slávneho profesora Harryho Huskeyho, priekopníka grafického dizajnu. Jeho dizertačnú prácu si všimol zainteresovaný svet a Wirth bol pozvaný do výboru pre štandardizáciu Algol Medzinárodnej federácie pre spracovanie informácií (IFIP); Výbor práve pracoval na vývoji nového štandardu pre jazyk ALGOL, ktorý sa neskôr stal známym ako ALGOL-68. Wirthova verzia bola vylepšený jazyk, takzvaný Algol-W, ale jeho vývoj nebol prijatý.

V rokoch 1963 až 1967 Nicklaus súčasne pôsobil ako odborný asistent na Stanfordskej univerzite, po čom nasledovala práca na univerzite v Zürichu. Je známe, že okrem samotného vedeckého výskumu Wirth vynaložil veľa úsilia na zlepšenie vzdelávacieho systému na univerzite.

V roku 1970 Wirth vyvinul programovací jazyk Pascal, v roku 1975 vyvinul jazyk Modula a koncom 70. rokov sa Niklaus Wirth zúčastnil súťaže amerického ministerstva obrany a stal sa jedným z vývojárov nového jazyka pre programovanie vstavaných systémov, ktorý sa stal známym ako jazyk pekla. Jeho projekt však nebol prijatý, ako to bolo v prípade jazyka Algol v 60. rokoch.

V 80. rokoch viedol Wirth Technickú strednú školu v Zürichu (Eidgenössische Technische Hochschule, ETH) a od roku 1990 pôsobil v Inštitúte počítačových systémov vytvorenom v tej istej vzdelávacej inštitúcii.

V 90. rokoch sa Wirth podieľal na vývoji jazyka Oberon-2, mierne rozšírenej verzie Oberonu.

Na jar 1999 odišiel Niklaus Wirth do dôchodku vo veku 65 rokov. V tom čase bol jedným z uznávaných svetových vývojárov, pracoval najmenej na ôsmich programovacích jazykoch a bol tiež vývojárom technológie štruktúrovaného programovania.

Nejlepšie z dňa


Navštívené: 4919
Igor Khirjak. Čierny likvidátor černobyľskej havárie