Niklaus Wirthi elu ja saavutused. Wirth N. Kompilaatorite ehitus Millise programmeerimiskeele leiutas Niklaus Wirth

Astus Šveitsi föderaalliidu elektroonikateaduskonda Tehnoloogiainstituut(ETH) Zürichis, kus ta sai nelja aastaga bakalaureusekraadi elektrotehnika erialal. Ta jätkas õpinguid Lavali ülikoolis (Quebec, Kanada) ja sai 1960. aastal magistrikraadi. Seejärel kutsuti ta California ülikooli Berkeleysse (USA), kus 1963. aastal kaitses ta professor Husky juhendamisel väitekirja, mille teemaks oli programmeerimiskeel Euler – Algoli laiendus, mis kasutab Lisp keelt.

Wirthi lõputöö märkas programmeerimiskeelte arendajate kogukond ja samal 1963. aastal kutsuti ta IFIP-i (International Federation of Informatics) Algoli standardimiskomiteesse, mis töötas välja algoli keele uut standardit, millest hiljem sai ALGOL. -68. Koos Charles Hoare'iga toetas Wirth komitees Algoli mõõdukalt muudetud versiooni väljatöötamist, mis oleks vaba algkeele puudustest ja mida oleks täiendatud minimaalsete tõeliselt vajalike tööriistadega. Wirth ja Hoar esitasid komisjonile keele Algol-W (W Wirth), mis oli just selline Algoli ümbertöötlemine, kuid see ei leidnud toetust. Komisjoni töö lõppedes 1968. aastal oli Wirth nende seas, kes kritiseeris ALGOL-68, rääkides selle töökindluse puudumisest ja äärmuslikust koondamisest. Paralleelselt töötas Wirth aastate jooksul USA-s Stanfordi ülikoolis assistendina. Koos Jim Walesiga töötas ta välja ja juurutas IBM/360 platvormil programmeerimiseks mõeldud keele PL/360 – algoritmitaolise keele, millesse viidi sisse mitmeid IBM/360 arhitektuuriga seotud süsteemist sõltuvaid funktsioone.

Auhinnad ja auhinnad

  • IEEE Emanuel Piore'i auhind (1983)
  • ACM Turingi auhind (1984)
  • ACM-i auhind silmapaistva panuse eest arvutiteaduse haridusse (1987, 1989)
  • IEEE Computer Pioneer (1988)
  • Prix ​​​​Max Petitpierre (1989)
  • IBM Euroopa teaduse ja tehnoloogia auhind (1989)
  • Marcel Benoit auhind (1990)
  • Orden Pour le Merite (1996)
  • Leonardo da Vinci medal (1999)
  • ACM tarkvaratehnika väljapaistva teadustöö auhind (1999).

Saavutused

Wirth töötas välja või osales programmeerimiskeelte arendamisel: Euler, Algol-W, PL/360, Pascal, Modula, Modula-2, Oberon, Oberon-2, Component Pascal. Tema kuulsaim arendus on loomulikult Pascali programmeerimiskeel, mis avaldas tohutut mõju mitmele programmeerijate põlvkonnale ja sai loomise aluseks. suur number programmeerimiskeeled. Teine fundamentaalne töö, milles Wirth osales, oli struktureeritud programmeerimistehnoloogia väljatöötamine, millest sai vähemalt 1970.–1980. aastatel programmeerimise kõige võimsam formalisatsioon. Selle tehnoloogia töötasid välja, valideerisid ja rakendasid vaid kolm silmapaistvat inimest – Wirth, Dijkstra ja Hoare.

Kommentaatorid on korduvalt märkinud, et Wirthi ideed olid sageli arvutitööstuse arengust ees aastaid, mõnikord aastakümneid. 1970. aastate alguses välja töötatud Pascal-P süsteem hõlmab Pascali programmide kompileerimist universaalseks "pi-koodiks" ja pi-koodi tõlgi mis tahes platvormil rakendamist (üks selle kuulsatest rakendustest on ülikooli UCSD-Pascal San Diego), mis võimaldas Pascali süsteeme minimaalsete kuludega portida uutele riistvaraplatvormidele, oli rohkem kui kaks aastakümmet ees vahepealse kooditõlgi ideedest, mida rakendatakse süsteemides, mis toetavad programmide täitmist .NET-keeles. Idee kombineerida programmeerimissüsteem prügikogujaga, vabastades programmeerija vajadusest jälgida mällu dünaamiliselt eraldatud objektide eluiga, viidi ellu 1988. aastal Oberoni keeles ja operatsioonisüsteemis. Mõlemaid ideid kasutati (ja reklaamiti laialdaselt kui täiesti uut sõna tehnoloogias ja enneolematut saavutust!) Ameerika arendajad sama Java ja .NET 1990. aastate teisel poolel.

Teaduslikud põhimõtted

Võib-olla üks täpsemaid väljendeid põhimõtetele, millest Wirth kõigi oma projektide väljatöötamisel kinni peab, on Einsteini fraas "Oberoni keele sõnumi" epigraafis: "Tehke see võimalikult lihtsaks, kuid mitte lihtsamaks. .” Kõigis tema töödes võib jälgida tema esialgset keskendumist konkreetse inseneriprobleemi efektiivseima lahenduse elluviimisele garanteeritud töötavate, matemaatiliselt põhinevate tööriistade baasil. Wirth usub kindlalt, et programmeerimine peaks olema tavaline inseneriteadus, mis tagab selle arenduste piisava usaldusväärsuse. Töökindluse saavutamine on Wirthi sõnul võimalik vaid ühel viisil: nii süsteeme endid kui ka nende loomisel kasutatavaid tööriistu maksimaalselt lihtsustades. Selle põhimõtte kohaselt on Wirthi välja töötatud keeled ja programmeerimissüsteemid alati olnud "mõistliku piisavuse", isegi omamoodi askeesi näide - need nägid ette ainult seda, ilma milleta ei saa.

Ühtlane laienemine olemasolevaid keeli ja süsteemidega on alati kaasnenud lihtsustamine. Sergei Sverdlovi artiklis "Süntaksi aritmeetika" avaldatud arvutuste kohaselt on "Wirthi rida", nagu ta seda nimetas - keelte rida, sealhulgas Pascal, Modula-2, Oberon ja Oberon2 - ainus näide "geneetilisest". rida" Algol-60 järeltulijate keelte rida", milles keele keerukus, mis on määratletud selle kirjelduses olevate lekseemide arvuna, on pidevalt vähenenud ja on praegu madalam kui selle ühisel "eellasel" - ALGOL-60. Kõik Wirthi rea keeled on lihtsamad kui Algol-60 ja iga järgmine keel selles reas on eelmisest lihtsam. Samal ajal on Ada rohkem kui kaks korda keerulisem kui tema eelkäija - Pascal, C++ on umbes 1,7 korda keerulisem kui C ja Pascal - Turbo Pascal erinevate versioonide reas - Object Pascal, keerukus kasvab eksponentsiaalselt versioonist teise. versioon.

Wirth kritiseerib sageli programmeerimisvahendite arendamisel “ameerikalikku lähenemist”, kus turunduskaalutlused prevaleerivad matemaatilise harmoonia ja garanteeritud töökindluse nõuetest ning iga uue moehullusega kaasneb kriitikavaba uute juurutamine programmeerimiskeeltesse. süntaktilised elemendid. See toob kaasa mõne idee rolli ebaõige hinnangu ja lõppkokkuvõttes vale prioriseerimise tarkvaraarenduses. Eelkõige OOP-ist rääkides märkis Wirth korduvalt, et see on sama struktuurse lähenemise üsna triviaalne laiendus, mis on maitsestatud uue terminoloogiaga ja vaevalt võib nõuda "revolutsioonilise programmeerimismetoodika" tiitlit. Wirth tegi kuulsalt alatu märkuse ameeriklaste antropotsentrismi harjumuse kohta terminoloogias: "Nad kutsuvad laiendeid pärimise tüüpi, kuid tegelikult läheb pärand tavaliselt järeltulijale alles siis, kui esivanem sureb."

Veel ühe põhimõtte, mis Wirthi alati juhtis, võib sõnastada järgmiselt: „Tööriist peab vastama ülesandele. Kui tööriist ülesandega ei sobi, peate leidma uue, mis sellele sobiks, selle asemel, et proovida olemasolevat kohandada. Ta ei tervita "üldiselt universaalsete keelte" arendamist. Igal Wirthi väljatöötatud süsteemil oli selgelt sõnastatud eesmärk, ulatus ja ta jättis alati kõhklemata välja arendusest kõik, mida selleks konkreetseks otstarbeks vaja ei läinud.

Raamatud

Avaldatud vene keeles:

  • Süstemaatiline programmeerimine. Sissejuhatus. M.: Mir, 1977;
  • Pascal. Kasutusjuhend ja keelekirjeldus. M.: Rahandus ja statistika, 1982 (kaasautor K. Jenseniga);
  • Algoritmid + andmestruktuurid = programmid. M.: Mir, 1985;
  • Programmeerimine Modula-2 keeles. M.: Mir, 1987;
  • Algoritmid ja andmestruktuurid. M.:Mir, 1989. ISBN 5-03-001045-9 (raamatu versioon Modula-2 keeles)
  • Algoritmid ja andmestruktuurid. SPb.: Nevski murre. 2001.

Wirthi raamat "Algoritmid + andmestruktuurid = programmid" ilmus vene keeles mitu korda erinevates versioonides ja seda peetakse esimeseks kolmest klassikalisest struktureeritud programmeerimise õpikust.

Praegu on tema õpilased tõlkinud kogu Wirthi klassikalise triloogia oberoni keelde ja see on Internetist allalaadimiseks saadaval kujul

Märkmed

Lingid

  • N. Wirthi artikli “Head ideed: pilk läbi klaasi” tõlge

15. veebruar pöördeid 80 aastat vana silmapaistvale Šveitsi teadlasele ja insenerile Niklaus Wirthile, kes sai Turingi auhinna – kõige mainekama autasu arvutiteaduses, analoogselt Nobeli preemiaga.

Kuulus professor ETH-s Zürichist, kus õppisid Albert Einstein (1896) ja John von Neumann (1923).

Teda teatakse kui klassikalise Pascali (1970) autorit, kuid paljudel pole aimugi, mis juhtus aastakümneid hiljem. Et tema arendused algatasid suuresti Java ja C# loomise. Et praegused kosmosesatelliidid, uusimad droonid ja laitmatu Šveitsi kvaliteet raudteed töö tänu oma suurepärasele inseneritööle.

Just tema näitas kogu oma elu teed, kuidas võidelda väljamõeldud keerukusega, mis mitte ainult ei ümbritse meid kõikjal, vaid on muutunud ka praeguse tsivilisatsiooni surmavaks haiguseks.

Meie ajastu on sõjakate amatööride diktatuuri aeg. Ja programmeerimises annavad klassika teed ka kaubanduslikult moonutatud tööstuslikule "popile".

Tänu Felix Mendelssohnile hindas inimkond J. S. Bachi tõelist suurust peaaegu sada aastat pärast tema surma. Loodan, et inimesed hindavad tarka professorit Niklaus Wirthi – arvuti Bachi – veidi varem.

Niklaus Wirthi juubel on väga hea proovikivi mitte ainult Venemaa, vaid ka maailma meedia kompetentsusele.

Ruslan Bogatõrev. 15.02.2014, Moskva

Pascali keele autor professor Niklaus K. Wirth on lõpetanud Šveitsi Föderaalse Tehnoloogiainstituudi ETH (Eidgenoessische Technische Hochschule) oma kodukohas Zürichis (1958). Magistrikraadi omandas Lavali ülikoolis Quebecis (Kanadas) (1960). 1963. aastal rakendas Wirth California ülikoolis Berkeleys (USA) professor Harry Huskey juhendamisel ALGOL-60 (Euleri keel) laienduse ja kaitses väitekirja. Aastatel 1963–1967 Wirth õpetas Stanfordi ülikoolis (USA). Samal ajal kutsuti ta rahvusvahelisse ekspertgruppi IFIP Working Group 2.1, mis tegeles ALGOL-68 keele kujundamisega.

1967. aastal naasis Wirth kodumaale ja temast sai Zürichi ülikooli abiprofessor. 1968. aastal kolis ta ETH Zürichi, kus hakkas arendama Pascali keelt. 1970. aastal valmis esimene Pascali kompilaator. Ajavahemikul 1978–1981. Wirth juhtis projekti, mille tulemusel töötati välja Modula-2 keel, 16-bitine personaalarvuti Lilith ja Medos OS. Kogu tarkvara, sealhulgas süsteemitarkvara, rakendati täielikult moodulis 2. 1984. aastal pälvis Niklaus Wirth oma suure panuse eest programmeerimiskeelte arendamisse ja Lilithi personaalarvuti loomise eest Alan Turingi auhinna (The ACM A.M.Turing Award) - kõige mainekama ja auväärseima arvutimaailmas. mis on oma olulisuselt samaväärne Nobeli preemia boonusega.

Ajavahemikul 1986–1989. Wirth juhtis projekti, et luua uus Oberoni keel, laiendatav objektorienteeritud Oberon OS ja 32-bitine Cerese tööjaam. Sun Labsi töötajad kasutasid paljusid selle projekti ideid Java keele ja tehnoloogia alusena.

Alates 1990. aastast on professor Wirth juhtinud ETH Zürichi arvutisüsteemide instituuti. 1999. aastal läks ta pensionile ja temast sai oma kodumaise ETH Zürichi auprofessor.

Soovitatavad materjalid
1. (PDF, 2004)
2. Niklaus Wirth filmis Akademgorodok (2009)
3. Arvutiteaduse õpetamine: kadunud tee (2002)
4. Kronos (ühe projekti ajalugu) (2005-2014)
5. Projekt Oberon2005 (Wirthi suur ringreis Venemaal) (2005)
6. Legendaarne professor Wirth Teadus- ja Tootmiskeskuse “Novik-XXI sajand” harjutusväljakul (2005)
7. Head ideed: läbi vaateklaasi (2006)
8. Niklaus Wirth: tee tõeni (2014)
9. Jää oma juurte juurde (Niklaus Wirthi 80. sünnipäeva puhul) (2014)

Videointervjuu
1. Niklaus Wirth arvutiteaduse õpetamisest. IEEE Computer Society, 2012.

2. Google Tech Talk, 2009.

3. Intervjuu Niklaus Wirthiga, 2010. Osa 1/3

4. Intervjuu Niklaus Wirthiga, 2010. Osa 2/3

5. Intervjuu Niklaus Wirthiga, 2010. Osa 3/3

Materjal Wikipediast – vabast entsüklopeediast

(saksa Niklaus Wirth, sündinud 15. veebruaril 1934) – Šveitsi teadlane, arvutiteaduse valdkonna spetsialist, programmeerimiskeele arendamise valdkonna üks kuulsamaid teoreetikuid, arvutiteaduse (ETH) professor, 1984. aasta Turingi auhinna võitja Auhind. Juhtiv keelte arendaja Pascal, Modula-2, Oberon.

Biograafia

Niklaus Wirth sündis 15. veebruaril 1934 Zürichi (Šveits) äärelinnas Winterthuris. Vanemad: Walter ja Hedwig Wirth. Nicklausi isa oli kooliõpetaja.

Lapsena oli Niklaus Wirth huvitatud lennukite modelleerimisest ja rakettide ehitamisest. Tema kirg elektroonika ja programmide juhtimissüsteemide vastu sai alguse mudelite kaugjuhtimisseadmete väljatöötamisest. 1954. aastal astus ta Zürichis Šveitsi Föderaalse Tehnoloogiainstituudi (ETH) elektroonikateaduskonda, kus sai nelja aastaga bakalaureusekraadi elektrotehnika alal. Ta jätkas õpinguid Lavali ülikoolis (Quebec, Kanada) ja sai 1960. aastal magistrikraadi. Seejärel kutsuti ta California ülikooli Berkeleysse (USA), kus 1963. aastal kaitses ta professor Husky juhendamisel väitekirja, mille teemaks oli programmeerimiskeel Euler – Algoli laiendus, mis kasutab Lisp keelt.

Wirthi lõputöö märkas programmeerimiskeelte arendajate kogukond ja samal 1963. aastal kutsuti ta IFIP-i (International Federation of Informatics) Algoli standardimiskomiteesse, mis töötas välja algoli keele uut standardit, millest hiljem sai ALGOL. -68. Koos Charles Hoare'iga toetas Wirth komitees Algoli mõõdukalt muudetud versiooni väljatöötamist, mis oleks vaba algkeele puudustest ja mida oleks täiendatud minimaalsete tõeliselt vajalike tööriistadega. Wirth ja Hoar esitasid komisjonile keele Algol-W (W Wirth), mis oli just selline Algoli ümbertöötlemine, kuid see ei leidnud toetust. Komisjoni töö lõppedes 1968. aastal oli Wirth nende seas, kes kritiseeris ALGOL-68, rääkides selle töökindluse puudumisest ja äärmuslikust koondamisest. Paralleelselt töötas Wirth aastatel 1963–1967 USA-s Stanfordi ülikoolis assistendina. Koos Jim Walesiga töötas ta välja ja juurutas IBM/360 platvormil programmeerimiseks mõeldud keele PL/360 – algolilaadse keele, millesse viidi sisse hulk süsteemist sõltuvaid IBM/360 arhitektuuriga seotud funktsioone.

1967. aastal naasis ta Zürichi ülikooli dotsendi ametikohaga ja 1968. aastal sai ETH arvutiteaduse professori tiitli. Ta töötas ETH-s 31 aastat. Ta osales paljudes organisatsioonilistes tegevustes, täiustades oma ülikooli õppesüsteemi.

1970. aastal lõi ta Pascali programmeerimiskeele. 1970. aastatel töötas ta koos C. Hoare'i ja E. Dijkstraga välja struktureeritud programmeerimise tehnoloogia. Wirthi 1971. aasta artikkel “Programme arendamine järkjärgulise täiustamise teel” kirjeldas ja põhjendas nüüdseks klassikalist ülalt-alla tarkvaraarenduse metoodikat. Pascali süsteemi ülekandmiseks erinevatele arvutusplatvormidele töötati 1973. aastal Wirthi osalusel välja virtuaalmasina prototüüp, mis käivitaks mis tahes platvormil vahepealse "pi-koodi", millesse pidid olema kompileeritud kõik programmid. .

1975. aastal töötas ta välja Modula keele, milles viis ellu ideid arendada moodulprogramme hästi määratletud intermodulaarsete liidestega ja paralleelprogrammeerimisega. Lisaks muudeti moodulis keele süntaksit – Wirth vabanes Algol-60-lt päritud vajadusest kasutada hargnevates struktuurides ja tsüklites liitoperaatoreid. Moodul polnud laialt tuntud ja sellel oli ainult üks eksperimentaalne teostus, kuid selle modifitseeritud versioon - Modula-2, mille arendus algas 1977. aastal ja lõppes 1980. aastal, oli mõeldud ETH-s välja töötatud Lilithi süsteemi süsteemitarkvara juurutamiseks - a 16. -bitine personaalarvuti, sai tuntuks ja üsna populaarseks, kuigi see pole Pascali populaarsuselt ületanud [allikas täpsustamata 1091 päeva], eriti selle kommertsrakendused. Lilithi süsteem oli arvutitööstuse suundumustest mitme aasta võrra ees. Modula-2 arendus oli Modula-3 keel, mille töötasid välja ühiselt DEC ja Olivetti; Wirth selle loomises ei osalenud.

1970. aastate teisel poolel osales Wirth USA kaitseministeeriumi konkursil, et töötada välja uus manustatud süsteemide programmeerimiskeel, mille tulemusena loodi Ada keel. Lugu kordus ALGOL-68-ga - grupi projekt, milles Wirth ja Hoare töötasid, ei saanud keelekomisjoni heakskiitu. Selle tulemusena võitis konkursi Pascalil põhinev, kuid palju keerulisem ja mahukam projekt.

Aastatel 1982–1984 ja 1988–1990 juhtis Wirth ETH arvutiteaduste teaduskonda ja alates 1990. aastast ETH arvutisüsteemide instituuti.

1988. aastal töötas Wirth koostöös Jurg Gutknechtiga välja Oberoni programmeerimiskeele. Arendustöö eesmärgiks oli luua keel uue projekteeritava tööjaama süsteemitarkvara realiseerimiseks. Oberoni aluseks oli Modula-2, mida oluliselt lihtsustati, kuid samal ajal täiendati uute võimalustega.

1992. aastal avaldasid Wirth ja Mössenböck raporti uue programmeerimiskeele Oberon 2 kohta, mis on Oberoni minimaalselt laiendatud versioon. Samal aastal moodustati ETH tütarettevõte Oberon microsystems, mis alustas Oberoni süsteemide arendamist. Wirthist sai üks selle direktorite nõukogu liikmeid. 1999. aastal andis see ettevõte välja Oberoni järgmise versiooni - Component Pascal, mis sobib rohkem komponentide programmeerimiseks. 1996. aastal töötas Wirth välja teise originaalse programmeerimiskeele Lola, lihtsa õppekeele digitaalsete elektriahelate formaalseks kirjeldamiseks ja simuleerimiseks.

1. aprillil 1999 läks Wirth pensionile, olles saanud Šveitsis riigiteenistuja vanusepiirangu (ETH on riigiülikool, selle töötajad on riigiteenistujad ja nende töö suhtes kehtivad vastavad õigusaktid).

19. juuni 2007 Presiidiumi otsusega Vene akadeemia Teaduste nr 141 Virtu sai auhinna akadeemiline kraad doktor honoris causa (nagu on soovitanud osakond infotehnoloogiad ja arvutisüsteemid). Ettekande algatajaks oli Venemaa IT-tehnoloogiate valdkonna teadlane Igor Šagajev, Londoni Metropolitani ülikooli professor, kes aastatel 2005-2008 tegi Niklaus Wirthiga koostööd Euroopa ONBASS projekti kallal.

Riiklike akadeemiate liige: Swiss Academy of Engineering (Šveits), U.S. Tehnikaakadeemia (USA), Berliini-Brandenburgi akadeemia (Saksamaa).
[redigeeri] Auhinnad ja auhinnad
IEEE Emanuel Piore'i auhind (1983)
ACM Turingi auhind (1984)
ACM-i auhind silmapaistva panuse eest arvutiteaduse haridusse (1987, 1989)
IEEE Computer Pioneer (1988)
Prix ​​​​Max Petitpierre (1989)
IBM Euroopa teaduse ja tehnoloogia auhind (1989)
Marcel Benoit auhind (1990)
Orden Pour le Merite (1996)
Leonardo da Vinci medal (1999)
ACM tarkvaratehnika väljapaistva teadustöö auhind (1999).

Saavutused

Wirth töötas välja või osales programmeerimiskeelte arendamisel: Euler, Algol-W, PL/360, Pascal, Modula-2, Oberon, Oberon-2, Component Pascal. Tema kuulsaim arendus on loomulikult Pascali programmeerimiskeel, mis avaldas tohutut mõju mitmele programmeerijate põlvkonnale ja sai aluseks suure hulga programmeerimiskeelte loomisele. Teine fundamentaalne töö, milles Wirth osaliseks sai, oli struktureeritud programmeerimistehnoloogia väljatöötamine, millest sai loomulikult vähemalt 1970-1980ndatel programmeerimise võimsaim formalisatsioon. Selle tehnoloogia töötasid välja, valideerisid ja rakendasid vaid kolm silmapaistvat inimest – Wirth, Dijkstra ja Hoare.

Kommentaatorid on korduvalt märkinud, et Wirthi ideed olid sageli arvutitööstuse arengust ees aastaid, mõnikord aastakümneid. 1970. aastate alguses välja töötatud Pascal-P süsteem hõlmab Pascali programmide kompileerimist universaalseks "pi-koodiks" ja pi-koodi tõlgi mis tahes platvormil rakendamist (üks selle kuulsatest rakendustest on ülikooli UCSD-Pascal San Diego), mis võimaldas Pascali süsteeme minimaalsete kuludega portida uutele riistvaraplatvormidele, oli enam kui kaks aastakümmet ees vahepealse kooditõlgi ideedest, mida rakendatakse süsteemides, mis toetavad Java-keeles ja . NET platvorm. Idee kombineerida programmeerimissüsteem prügikogujaga, vabastades programmeerija vajadusest jälgida mällu dünaamiliselt eraldatud objektide eluiga, viidi ellu 1988. aastal Oberoni keeles ja operatsioonisüsteemis. Mõlemat ideed kasutasid Java ja .NET arendajad 1990. aastate teisel poolel.
[redigeeri] Teaduslikud põhimõtted

Võib-olla üks täpsemaid väljendeid põhimõtetele, millest Wirth kõigi oma projektide väljatöötamisel kinni peab, on Einsteini fraas "Oberoni keele sõnumi" epigraafis: "Tehke see võimalikult lihtsaks, kuid mitte lihtsamaks. .” Kõigis tema töödes võib jälgida tema esialgset keskendumist konkreetse inseneriprobleemi efektiivseima lahenduse elluviimisele garanteeritud töötavate, matemaatiliselt põhinevate tööriistade baasil. Wirth usub kindlalt, et programmeerimine peaks olema tavaline inseneriteadus, mis tagab selle arenduste piisava usaldusväärsuse. Töökindluse saavutamine on Wirthi sõnul võimalik vaid ühel viisil: nii süsteeme endid kui ka nende loomisel kasutatavaid tööriistu maksimaalselt lihtsustades. Selle põhimõtte kohaselt on Wirthi välja töötatud keeled ja programmeerimissüsteemid alati olnud "mõistliku piisavuse", isegi omamoodi askeesi näide - need nägid ette ainult seda, ilma milleta ei saa.

Isegi olemasolevate keelte ja süsteemide laiendamisega on alati kaasnenud lihtsustamine. Sergei Sverdlovi artiklis "Süntaksi aritmeetika" avaldatud arvutuste kohaselt on "Wirthi rida", nagu ta seda nimetas - keelte rida, sealhulgas Pascal, Modula-2, Oberon ja Oberon2 - ainus näide "geneetilisest". rida" Algol-60 järeltulijate keelte rida", milles keele keerukus, mis on määratletud selle kirjelduses olevate lekseemide arvuna, on pidevalt vähenenud ja on praegu madalam kui selle ühisel "eellasel" - ALGOL-60. Kõik Wirthi rea keeled on lihtsamad kui Algol-60 ja iga järgmine keel selles reas on eelmisest lihtsam. Samal ajal on Ada rohkem kui kaks korda keerulisem kui tema eelkäija - Pascal, C++ on umbes 1,7 korda keerulisem kui C ja Pascal - Turbo Pascal erinevate versioonide reas - Object Pascal, keerukus kasvab pidevalt versioonist. versiooni juurde.

Wirth kritiseerib sageli programmeerimisvahendite arendamisel “ameerikalikku lähenemist”, mille puhul turunduskaalutlused prevaleerivad matemaatilise harmoonia ja garanteeritud töökindluse nõuetest ning iga uue moehullusega kaasneb uute süntaktiliste elementide kriitikavaba juurutamine programmeerimiskeeltesse. See toob kaasa mõne idee rolli ebaõige hinnangu ja lõppkokkuvõttes vale prioriseerimise tarkvaraarenduses. Eelkõige OOP-ist rääkides märkis Wirth korduvalt, et see on sama struktuurse lähenemise üsna triviaalne laiendus, mis on maitsestatud uue terminoloogiaga ja vaevalt võib nõuda "revolutsioonilise programmeerimismetoodika" tiitlit. Wirth tegi kuulsalt alatu märkuse ameeriklaste antropotsentrismi harjumuse kohta terminoloogias: "Nad kutsuvad laiendeid pärimise tüüpi, kuid tegelikult läheb pärand tavaliselt järeltulijale alles siis, kui esivanem sureb."

Veel ühe põhimõtte, mis Wirthi alati juhtis, võib sõnastada järgmiselt: „Tööriist peab vastama ülesandele. Kui tööriist ülesandega ei sobi, peate leidma uue, mis sellele sobiks, selle asemel, et proovida olemasolevat kohandada. Ta ei tervita "üldiselt universaalsete keelte" arendamist. Igal Wirthi väljatöötatud süsteemil oli selgelt sõnastatud eesmärk, ulatus ja ta jättis alati kõhklemata välja arendusest kõik, mida selleks konkreetseks otstarbeks vaja ei läinud. Siin on aga vaja täpsustada: näiteks Oberoni “spetsiifiliseks otstarbeks” on tagada süsteemi ülilihtne ja turvaline laiendatavus, mistõttu ei ole tegemist “universaalse keelega üldiselt”, st mitte. kaasa arvatud kõik võimalikud tööriistad kõigi mõeldavate rakenduste jaoks, on Oberon kõik- on endiselt universaalne - "universaalne laiendatavuse kaudu".

Niklaus Wirth (saksa keeles Niklaus Wirth, sündinud 15. veebruaril 1934) on Šveitsi teadlane, arvutiteadlane, programmeerimiskeele arendamise alal üks tuntumaid teoreetikuid. Keelte juhtiv arendaja Pascal, Modula-2, Oberon, arvutiteaduse professor (ETH), Turingi auhinna võitja 1984.

Niklaus Wirth sündis 15. veebruaril 1934 Zürichi (Šveits) äärelinnas Winterthuris. Vanemad: Walter ja Hedwig Wirth. Nicklausi isa oli kooliõpetaja.

Programmid ei sisalda kunagi nii vähe vigu kui silumistööriistade puudumisel.

Wirth Nicklaus

Lapsena oli Niklaus Wirth huvitatud lennukite modelleerimisest ja rakettide ehitamisest. Tema kirg elektroonika ja programmide juhtimissüsteemide vastu sai alguse mudelite kaugjuhtimisseadmete väljatöötamisest. 1954. aastal astus ta Zürichis Šveitsi Föderaalse Tehnoloogiainstituudi (ETH) elektroonikateaduskonda, kus sai nelja aastaga bakalaureusekraadi elektrotehnika alal.

Ta jätkas õpinguid Lavali ülikoolis (Quebec, Kanada) ja sai 1960. aastal magistrikraadi. Seejärel kutsuti ta California ülikooli Berkeleysse (USA), kus 1963. aastal kaitses ta professor Husky juhendamisel väitekirja, mille teemaks oli programmeerimiskeel Euler – Algoli laiendus, mis kasutab Lisp keelt.

Wirthi lõputöö märkas programmeerimiskeelte arendajate kogukond ja samal 1963. aastal kutsuti ta IFIP-i (International Federation of Informatics) Algoli standardimiskomiteesse, mis töötas välja algoli keele uut standardit, millest hiljem sai ALGOL. -68.

Koos Charles Hoare'iga toetas Wirth komitees Algoli mõõdukalt muudetud versiooni väljatöötamist, mis oleks vaba algkeele puudustest ja mida oleks täiendatud minimaalsete tõeliselt vajalike tööriistadega. Wirth ja Hoar esitasid komisjonile keele Algol-W (W Wirth), mis oli just selline Algoli ümbertöötlemine, kuid see ei leidnud toetust.

Komisjoni töö lõppedes 1968. aastal oli Wirth nende seas, kes kritiseeris ALGOL-68, rääkides selle töökindluse puudumisest ja äärmuslikust koondamisest. Paralleelselt töötas Wirth aastatel 1963–1967 USA-s Stanfordi ülikoolis assistendina.

Koos Jim Walesiga töötas ta välja ja juurutas IBM/360 platvormil programmeerimiseks mõeldud keele PL/360 – algolilaadse keele, millesse viidi sisse hulk süsteemist sõltuvaid IBM/360 arhitektuuriga seotud funktsioone.

1967. aastal naasis ta Zürichi ülikooli dotsendi ametikohaga ja 1968. aastal sai ETH arvutiteaduse professori tiitli. Ta töötas ETH-s 31 aastat. Ta osales paljudes organisatsioonilistes tegevustes, täiustades oma ülikooli õppesüsteemi.

1970. aastal lõi ta Pascali programmeerimiskeele. 1970. aastatel töötas ta koos C. Hoare'i ja E. Dijkstraga välja struktureeritud programmeerimise tehnoloogia. Wirthi 1971. aasta artikkel “Programme arendamine järkjärgulise täiustamise teel” kirjeldas ja põhjendas nüüdseks klassikalist ülalt-alla tarkvaraarenduse metoodikat.

Pascali süsteemi ülekandmiseks erinevatele arvutusplatvormidele töötati 1973. aastal Wirthi osalusel välja virtuaalmasina prototüüp, mis käivitaks mis tahes platvormil vahepealse "pi-koodi", millesse pidid olema kompileeritud kõik programmid. .

1975. aastal töötas ta välja Modula keele, milles viis ellu ideid arendada moodulprogramme hästi määratletud intermodulaarsete liidestega ja paralleelprogrammeerimisega. Lisaks muudeti moodulis keele süntaksit – Wirth vabanes Algol-60-lt päritud vajadusest kasutada hargnevates struktuurides ja tsüklites liitoperaatoreid.

Moodul polnud laialt tuntud ja sellel oli ainult üks eksperimentaalne teostus, kuid selle modifitseeritud versioon - Modula-2, mille arendus algas 1977. aastal ja lõppes 1980. aastal, oli mõeldud ETH-s välja töötatud Lilithi süsteemi süsteemitarkvara juurutamiseks - a 16. -bitine personaalarvuti, sai tuntuks ja üsna populaarseks, kuigi see pole Pascali populaarsuselt ületanud, eriti selle kommertsrakendused.

Lilithi süsteem oli arvutitööstuse suundumustest mitme aasta võrra ees. Modula-2 arendus oli Modula-3 keel, mille töötasid välja ühiselt DEC ja Olivetti; Wirth selle loomises ei osalenud.

1970. aastate teisel poolel osales Wirth USA kaitseministeeriumi konkursil, et töötada välja uus manustatud süsteemide programmeerimiskeel, mille tulemusena loodi Ada keel. Lugu kordus ALGOL-68-ga - grupi projekt, milles Wirth ja Hoare töötasid, ei saanud keelekomisjoni heakskiitu. Selle tulemusena võitis konkursi Pascalil põhinev, kuid palju keerulisem ja mahukam projekt.

Aastatel 1982–1984 ja 1988–1990 juhtis Wirth ETH arvutiteaduste teaduskonda ja alates 1990. aastast ETH arvutisüsteemide instituuti.

1988. aastal töötas Wirth koostöös Jurg Gutknechtiga välja Oberoni programmeerimiskeele. Arendustöö eesmärgiks oli luua keel uue projekteeritava tööjaama süsteemitarkvara realiseerimiseks. Oberoni aluseks oli Modula-2, mida oluliselt lihtsustati, kuid samal ajal täiendati uute võimalustega.

1992. aastal avaldasid Wirth ja Mössenböck raporti uue programmeerimiskeele Oberon 2 kohta, mis on Oberoni minimaalselt laiendatud versioon. Samal aastal moodustati ETH tütarettevõte Oberon microsystems, mis alustas Oberoni süsteemide arendamist. Wirthist sai üks selle direktorite nõukogu liikmeid.

1999. aastal andis see ettevõte välja Oberoni järgmise versiooni - Component Pascal, mis sobib rohkem komponentide programmeerimiseks. 1996. aastal töötas Wirth välja teise originaalse programmeerimiskeele Lola, mis oli mõeldud kohandatud elektrooniliste vooluringide arendamiseks.

1. aprillil 1999 läks Wirth pensionile, olles saanud Šveitsis riigiteenistuja vanusepiirangu (ETH on riigiülikool, selle töötajad on riigiteenistujad ja nende töö suhtes kehtivad vastavad õigusaktid).

Riiklike akadeemiate liige: Šveitsi Tehnikaakadeemia (Šveits), USA Tehnikaakadeemia (USA), Berliini-Brandenburgi Akadeemia (Saksamaa).

Wirthi akadeemiline lugupidamine on pikka aega raskendanud tõsiasja äratundmist, et ta on infotehnoloogia ajaloos üks esimesi tõelisi geeke. Õiglus võitis vaid kümme aastat pärast tema pensionile jäämist.

Auhinnad ja auhinnad

IEEE Emanuel Piore'i auhind (1983)
ACM Turingi auhind (1984)
ACM-i auhind silmapaistva panuse eest arvutiteaduse haridusse (1987, 1989)
IEEE Computer Pioneer (1988)
Prix ​​​​Max Petitpierre (1989)
IBM Euroopa teaduse ja tehnoloogia auhind (1989)
Marcel Benoit auhind (1990)
Orden Pour le Merite (1996)
Leonardo da Vinci medal (1999)
ACM tarkvaratehnika väljapaistva teadustöö auhind (1999).

Saavutused

Wirth töötas välja või osales programmeerimiskeelte arendamisel: Euler, Algol-W, PL/360, Pascal, Modula, Modula-2, Oberon, Oberon-2, Component Pascal. Tema kuulsaim arendus on loomulikult Pascali programmeerimiskeel, mis avaldas tohutut mõju mitmele programmeerijate põlvkonnale ja sai aluseks suure hulga programmeerimiskeelte loomisele.

Teine fundamentaalne töö, milles Wirth osaliseks sai, oli struktureeritud programmeerimistehnoloogia väljatöötamine, millest sai loomulikult vähemalt 1970-1980ndatel programmeerimise võimsaim formalisatsioon. Selle tehnoloogia töötasid välja, valideerisid ja rakendasid vaid kolm silmapaistvat inimest – Wirth, Dijkstra ja Hoare.

Kommentaatorid on korduvalt märkinud, et Wirthi ideed olid sageli arvutitööstuse arengust ees aastaid, mõnikord aastakümneid.

1970. aastate alguses välja töötatud Pascal-P süsteem hõlmab Pascali programmide kompileerimist universaalseks "pi-koodiks" ja pi-koodi tõlgi mis tahes platvormil rakendamist (üks selle kuulsatest rakendustest on ülikooli UCSD-Pascal San Diego), mis võimaldas Pascali süsteeme minimaalsete kuludega portida uutele riistvaraplatvormidele, oli enam kui kaks aastakümmet ees vahepealse kooditõlgi ideedest, mida rakendatakse süsteemides, mis toetavad Java-keeles ja -platvormis programmide täitmist. NET.

Idee kombineerida programmeerimissüsteem prügikogujaga, vabastades programmeerija vajadusest jälgida mällu dünaamiliselt eraldatud objektide eluiga, viidi ellu 1988. aastal Oberoni keeles ja operatsioonisüsteemis. Mõlemaid ideid kasutasid Java arendajad ja. NET 1990. aastate teisel poolel.

Teaduslikud põhimõtted

Võib-olla üks täpsemaid väljendeid põhimõtetele, millest Wirth kõigi oma projektide väljatöötamisel kinni peab, on Einsteini fraas "Oberoni keele sõnumi" epigraafis: "Tehke see võimalikult lihtsaks, kuid mitte lihtsamaks. .”

Kõigis tema töödes võib jälgida tema esialgset keskendumist konkreetse inseneriprobleemi efektiivseima lahenduse elluviimisele garanteeritud töötavate, matemaatiliselt põhinevate tööriistade baasil. Wirth usub kindlalt, et programmeerimine peaks olema tavaline inseneriteadus, mis tagab selle arenduste piisava usaldusväärsuse.

Töökindluse saavutamine on Wirthi sõnul võimalik vaid ühel viisil: nii süsteeme endid kui ka nende loomisel kasutatavaid tööriistu maksimaalselt lihtsustades. Selle põhimõtte kohaselt on Wirthi välja töötatud keeled ja programmeerimissüsteemid alati olnud "mõistliku piisavuse", isegi omamoodi askeesi näide - need nägid ette ainult seda, ilma milleta ei saa.

Isegi olemasolevate keelte ja süsteemide laiendamisega on alati kaasnenud lihtsustamine.

Sergei Sverdlovi artiklis "Süntaksi aritmeetika" avaldatud arvutuste kohaselt on "Wirthi rida", nagu ta seda nimetas - keelte rida, sealhulgas Pascal, Modula-2, Oberon ja Oberon2 - ainus näide "geneetilisest". rida" Algol-60 järeltulijate keelte rida", milles keele keerukus, mis on määratletud selle kirjelduses olevate lekseemide arvuna, on pidevalt vähenenud ja on praegu madalam kui selle ühisel "eellasel" - ALGOL-60.

Kõik Wirthi rea keeled on lihtsamad kui Algol-60 ja iga järgmine keel selles reas on eelmisest lihtsam. Samal ajal on Ada rohkem kui kaks korda keerulisem kui tema eelkäija - Pascal, C++ on umbes 1,7 korda keerulisem kui C ja Pascal - Turbo Pascal erinevate versioonide reas - Object Pascal, keerukus kasvab eksponentsiaalselt versioonist teise. versioon.

Wirth kritiseerib sageli programmeerimisvahendite arendamisel “ameerikalikku lähenemist”, mille puhul turunduskaalutlused prevaleerivad matemaatilise harmoonia ja garanteeritud töökindluse nõuetest ning iga uue moehullusega kaasneb uute süntaktiliste elementide kriitikavaba juurutamine programmeerimiskeeltesse.

See toob kaasa mõne idee rolli ebaõige hinnangu ja lõppkokkuvõttes vale prioriseerimise tarkvaraarenduses. Eelkõige OOP-ist rääkides märkis Wirth korduvalt, et see on sama struktuurse lähenemise üsna triviaalne laiendus, mis on maitsestatud uue terminoloogiaga ja vaevalt võib nõuda "revolutsioonilise programmeerimismetoodika" tiitlit.

Wirth tegi kuulsalt söövitava märkuse ameeriklaste antropotsentrismi harjumuse kohta terminoloogias: "Nad kutsuvad laiendeid pärimise tüüpi, kuid üldiselt läheb pärand tavaliselt järeltulijale alles siis, kui esivanem sureb."

Veel ühe põhimõtte, mis Wirthi alati juhtis, võib sõnastada järgmiselt: „Tööriist peab vastama ülesandele. Kui tööriist ülesandega ei sobi, peate leidma uue, mis sellele sobiks, selle asemel, et proovida olemasolevat kohandada. Ta ei tervita "üldiselt universaalsete keelte" arendamist.

Igal Wirthi väljatöötatud süsteemil oli selgelt sõnastatud eesmärk, ulatus ja ta jättis alati kõhklemata välja arendusest kõik, mida selleks konkreetseks otstarbeks vaja ei läinud.

Siinkohal tuleb aga täpsustada: näiteks Oberoni “spetsiifiliseks eesmärgiks” on tagada süsteemi ülilihtne ja turvaline laiendatavus, olles seega “üldine universaalne keel”, s.t mitte hõlmata kõiki. võimalikud tööriistad kõigi kujuteldavate rakenduste jaoks, Oberon on ju universaalne - "universaalne laiendatavuse kaudu".

Avaldatud vene keeles:
Süstemaatiline programmeerimine. Sissejuhatus. M.: Mir, 1977;
Pascal. Kasutusjuhend ja keelekirjeldus. M.: Rahandus ja statistika, 1982 (kaasautor K. Jenseniga);
Algoritmid + andmestruktuurid = programmid. M.: Mir, 1985;
Programmeerimine Modula-2 keeles. M.: Mir, 1987;
Algoritmid ja andmestruktuurid. M.:Mir, 1989. ISBN 5-03-001045-9 (raamatu versioon Modula-2 keeles)
Algoritmid ja andmestruktuurid. SPb.: Nevski murre. 2001.

Wirthi raamat “Algoritmid + andmestruktuurid = programmid” ilmus vene keeles mitu korda erinevates versioonides ja seda peetakse esimeseks kolmest klassikalisest struktureeritud programmeerimise õpikust.

Niklaus Wirth – foto

Niklaus Wirth – tsitaadid

Programmid muutuvad aeglasemaks kiiremini kui arvutid.

Programmid ei sisalda kunagi nii vähe vigu kui silumistööriistade puudumisel.

Wirth sai doktorikraadi elektrotehnika ja arvutiteaduse alal California ülikoolist Berkeleys (USA); selle konkreetse õppeasutuse seinte vahel kaitses ta 1963. aastal väitekirja, mis on kirjutatud kuulsa professori Harry Huskey, graafilise disaini pioneeri juhendamisel.


Niklaus Emil Wirth sündis 1934. aastal Šveitsi linnas Winterthuris (Šveits). On teada, et tema isa töötas kooliõpetajana ja Niklaus ise oli lapsepõlvest saati lennukimudelismile kiindunud. Just see kirg viis teda hiljem huvi tundma elektroonika ja programmijuhtimissüsteemide vastu.

1954. aastal sai Wirthist Šveitsi Zürichi Föderaalse Tehnoloogiainstituudi elektroonikaosakonna üliõpilane, kus ta omandas bakalaureusekraadi elektrotehnika alal. Sellele järgnesid õpingud Kanadas Quebecis Lavali ülikoolis (Université Laval, Kanada), kust Wirth sai 1960. aastal magistrikraadi.

Wirth sai doktorikraadi elektrotehnika ja arvutiteaduse alal California ülikoolist Berkeleys (USA); selle konkreetse õppeasutuse seinte vahel kaitses ta 1963. aastal väitekirja, mis on kirjutatud kuulsa professori Harry Huskey, graafilise disaini pioneeri juhendamisel.

Yina. Tema lõputöö jäi huvilises maailmas silma ja Wirth kutsuti Rahvusvahelise Infotöötlusliidu (IFIP) Algoli standardimiskomisjoni; Komitee töötas just ALGOL-keele uue standardi väljatöötamisega, mis hiljem sai tuntuks kui ALGOL-68. Wirthi versioon oli täiustatud keel, nn Algol-W, kuid tema arendusi ei aktsepteeritud.

Aastatel 1963–1967 töötas Nicklaus samal ajal dotsendina Stanfordi ülikoolis, millele järgnes töö Zürichi ülikoolis. Teadaolevalt tegi Wirth lisaks teaduslikule uurimistööle ka palju pingutusi ülikooli haridussüsteemi parandamiseks.

1970. aastal töötas Wirth välja Pascali programmeerimiskeele, 1975. aastal Modula keele ning 1970. aastate lõpus osales Niklaus Wirth USA kaitseministeeriumi konkursil, kellest sai üks uue programmeerimiskeele arendajaid.

manustatud süsteemide keel, mis sai tuntuks põrgu keelena. Tema projekti aga ei aktsepteeritud, nagu algoli keele puhul 1960. aastatel.

1980. aastatel juhtis Wirth Zürichi tehnikagümnaasiumi (Eidgenössische Technische Hochschule, ETH) ning alates 1990. aastast töötas ta sama õppeasutuse juurde loodud arvutisüsteemide instituudis.

1990. aastatel osales Wirth Oberon-2 keele, Oberoni veidi laiendatud versiooni väljatöötamises.

1999. aasta kevadel läks Niklaus Wirth pensionile 65-aastaselt. Selleks ajaks oli ta üks tunnustatumaid arendajaid maailmas, olles töötanud vähemalt kaheksa programmeerimiskeele kallal, samuti oli ta struktureeritud programmeerimistehnoloogia arendaja.

On teada, et Wirth on mitmete väga mainekate auhindade ("Turing Award", "SIGPLAN Programming Languages ​​Achievement Award") ja mitmete aukirjade võitja. õppeasutused.

"Meie erialal ei ole täpsus ja täiuslikkus valikuline luksus, vaid lihtsalt vajadus," ütles üks teadlane.