Život i postignuća Niklausa Wirtha. Wirth N. Konstrukcija kompajlera Koji programski jezik je izmislio Niklaus Wirth

Upisao Elektronski fakultet Švajcarske savezne države Institut za tehnologiju(ETH) u Cirihu, gdje je za četiri godine diplomirao elektrotehniku. Nastavio je studije na Univerzitetu Laval (Kvebek, Kanada), a magistrirao 1960. godine. Potom je pozvan na Univerzitet Kalifornije u Berkliju (SAD), gdje je 1963. godine, pod vodstvom profesora Huskyja, odbranio disertaciju čija je tema bila programski jezik Euler - proširenje Algola koristeći jezik Lisp.

Wirthovu tezu primijetila je zajednica programera programskih jezika, te je iste 1963. godine pozvan u Algol standardizacijski komitet IFIP-a (International Federation of Informatics), koji je razvijao novi standard za jezik Algol, koji je kasnije postao ALGOL. -68. Zajedno sa Charlesom Hoareom, Wirth je u komitetu zagovarao razvoj umjereno modificirane verzije Algola, oslobođene nedostataka originalnog jezika i dopunjene minimumom zaista potrebnih alata. Wirth i Hoar su predstavili Algol-W jezik (W za Wirth), koji je bio upravo takva prerada Algola, komitetu, ali nije dobio podršku. Na kraju rada komiteta 1968. godine, Wirth je bio među onima koji su kritikovali ALGOL-68, govoreći o njegovoj nepouzdanosti i ekstremnoj redundantnosti. Paralelno, tokom godina, Wirth je radio kao asistent na Univerzitetu Stanford, SAD. Zajedno sa Jimom Walesom razvio je i implementirao jezik PL/360, namijenjen za programiranje na platformi IBM/360 - algoritamskom jeziku u koji je uveden niz sistemski zavisnih karakteristika vezanih za IBM/360 arhitekturu.

Nagrade i priznanja

  • IEEE nagrada Emanuel Piore (1983.)
  • ACM Turing nagrada (1984.)
  • ACM nagrada za izuzetan doprinos obrazovanju u oblasti računarstva (1987, 1989)
  • IEEE Computer Pioneer (1988)
  • Prix ​​Max Petitpierre (1989.)
  • IBM evropska nagrada za nauku i tehnologiju (1989.)
  • Nagrada Marcel Benoit (1990.)
  • Orden Pour le Merite (1996.)
  • Medalja Leonardo da Vinci (1999.)
  • ACM nagrada za izvanredno istraživanje u softverskom inženjerstvu (1999).

Dostignuća

Wirth je razvio ili učestvovao u razvoju programskih jezika: Euler, Algol-W, PL/360, Pascal, Modula, Modula-2, Oberon, Oberon-2, Component Pascal. Njegov najpoznatiji razvoj je, naravno, programski jezik Pascal, koji je imao ogroman uticaj na nekoliko generacija programera i postao osnova za stvaranje veliki broj programski jezici. Još jedan temeljni rad u kojem je Wirth postao učesnik bio je razvoj tehnologije strukturiranog programiranja, koja je postala daleko najmoćnija formalizacija u programiranju barem u 1970-im - 1980-im. Ovu tehnologiju su razvila, potvrdila i implementirala samo tri izvanredna čovjeka - Wirth, Dijkstra i Hoare.

Komentatori su više puta primijetili da su Wirthove ideje često bile godinama ispred razvoja kompjuterske industrije, ponekad i decenijama. Pascal-P sistem, razvijen početkom 1970-ih, uključuje kompilaciju Pascal programa u univerzalni "pi-kod" i implementaciju na bilo koju platformu interpretatora pi-koda (jedna od njegovih poznatih implementacija je UCSD-Pascal sa Univerziteta iz San Diega), koji je omogućio da se Pascal sistemi prenesu na nove hardverske platforme uz minimalne troškove, bio je više od dve decenije ispred ideja o intermedijarnom tumaču koda implementiranog u sistemima koji podržavaju izvršavanje programa na .NET jeziku. Ideja o kombinovanju programskog sistema sa sakupljačem smeća, oslobađajući programera od potrebe da prati životni vek objekata koji se dinamički dodeljuju u memoriji, implementirana je 1988. godine u jeziku i operativnom sistemu Oberon. Obje ove ideje su korištene (i naširoko reklamirane kao potpuno nova riječ u tehnologiji i dostignuće bez presedana!) Američki programeri ista Java i .NET u drugoj polovini 1990-ih.

Naučni principi

Možda jedan od najtačnijih izraza principa kojih se Wirth pridržava u razvoju svih svojih projekata je Ajnštajnova fraza u epigrafu „Poruke o jeziku Oberon”: „Učinite to što jednostavnijim, ali ne jednostavnijim od toga. .” U svim njegovim radovima može se pratiti njegov početni fokus na implementaciji najefikasnijeg rješenja specifičnog inženjerskog problema na osnovu zagarantovanih radnih, matematički zasnovanih alata. Wirth čvrsto vjeruje da bi programiranje trebalo biti normalna inženjerska disciplina koja garantuje dovoljan nivo pouzdanosti njegovog razvoja. Postizanje pouzdanosti moguće je, prema Wirthu, samo na jedan način: maksimalnim pojednostavljenjem i samih sistema i alata koji se koriste za njihovo kreiranje. U skladu s ovim principom, jezici i programski sistemi koje je razvio Wirth oduvijek su bili primjer „razumne dovoljnosti“, čak i neka vrsta asketizma - oni su predviđali samo ono bez čega se ne može.

Čak i proširenje postojećim jezicima a sisteme je oduvijek pratilo pojednostavljenje. Prema proračunima objavljenim u članku Sergeja Sverdlova "Aritmetika sintakse", "Wirthova linija", kako ju je nazvao - linija jezika uključujući Pascal, Modula-2, Oberon i Oberon2 - jedini je primjer "genetskog linija” jezika potomaka Algola-60 , u kojem je složenost jezika, definirana kao broj leksema u njegovom opisu, stalno opadala i trenutno je niža od složenosti njegovog zajedničkog „pretnika” - ALGOL-60. Svi jezici "Wirth linije" su jednostavniji od Algol-60, a svaki sljedeći jezik u ovoj liniji je jednostavniji od prethodnog. Istovremeno, Ada je više nego dvostruko složenija od svog prethodnika - Pascal, C++ je otprilike 1,7 puta složeniji od C, a u Pascal - Turbo Pascal liniji različitih verzija - Object Pascal, složenost raste eksponencijalno od verzije do verzije. verzija.

Wirth često kritizira “američki pristup” razvoju programskih alata, u kojem marketinška razmatranja prevladavaju nad zahtjevima matematičke harmonije i zagarantovane pouzdanosti, a svaki novi pomodni hir je praćen nekritičkim uvođenjem novih u programske jezike. sintaksičkih elemenata. To dovodi do pogrešne procjene uloge nekih ideja i, na kraju, do pogrešnog određivanja prioriteta u razvoju softvera. Konkretno, govoreći o OOP-u, Wirth je u više navrata primijetio da je to prilično trivijalno proširenje istog strukturalnog pristupa, začinjeno novom terminologijom i teško da može dobiti naziv „revolucionarne metodologije programiranja“. Wirth je slavno iznio podsmjehljivu primjedbu o američkoj navici antropocentrizma u terminologiji: „Oni nazivaju proširenja tipa 'nasljeđe', ali, u stvari, nasljeđe obično prelazi na potomka samo kada predak umre.

Još jedan princip koji je uvijek vodio Wirtha može se formulirati na sljedeći način: „Alat mora odgovarati zadatku. Ako alat ne odgovara zadatku, morate smisliti novi koji bi mu odgovarao, umjesto da pokušavate prilagoditi postojeći.” On ne pozdravlja razvoj „jezika koji su općenito univerzalni“. Svaki sistem koji je razvio Wirth imao je jasno formulisanu svrhu, obim, a on je uvek, bez oklijevanja, isključivao iz razvoja sve što nije bilo potrebno za tu konkretnu svrhu.

Knjige

Objavljeno na ruskom:

  • Sistematsko programiranje. Uvod. M.: Mir, 1977;
  • Pascal. Korisnički vodič i opis jezika. M.: Finansije i statistika, 1982 (u koautorstvu sa K. Jensen);
  • Algoritmi + strukture podataka = programi. M.: Mir, 1985;
  • Programiranje na jeziku Modula-2. M.: Mir, 1987;
  • Algoritmi i strukture podataka. M.:Mir, 1989. ISBN 5-03-001045-9 (verzija knjige na jeziku Modula-2)
  • Algoritmi i strukture podataka. SPb.: Nevski dijalekt. 2001.

Book of Wirth “Algoritmi + strukture podataka = programi” objavljen je na ruskom nekoliko puta u različitim verzijama i smatra se prvim od tri klasična udžbenika strukturiranog programiranja.

Trenutno su čitavu klasičnu trilogiju Wirtha njegovi studenti preveli na jezik Oberon i dostupna je za preuzimanje sa interneta u obliku

Bilješke

Linkovi

  • Prijevod članka N. Virta “Dobre ideje: pogled iz ogledala”

15. februar se okreće 80 godina izuzetnom švajcarskom naučniku i inženjeru Niklausu Virtu, dobitniku Turingove nagrade - najprestižnije nagrade u kompjuterskoj nauci, analogno Nobelovoj nagradi.

Poznati profesor na ETH iz Ciriha, gde su studirali Albert Ajnštajn (1896) i Džon fon Nojman (1923).

Poznat je kao autor klasičnog Pascala (1970), ali mnogi nemaju pojma šta se desilo decenijama kasnije. Da je njegov razvoj u velikoj mjeri inicirao stvaranje Jave i C#. To su trenutni svemirski sateliti, najnoviji dronovi i besprijekorna švicarska kvaliteta željeznice radi zahvaljujući njegovom briljantnom inženjeringu.

On je bio taj koji je kroz svoj život pokazivao način borbe protiv izmišljene složenosti koja ne samo da nas svuda okružuje, već je postala i smrtonosna bolest sadašnje civilizacije.

Naše doba je vrijeme diktature militantnih amatera. A u programiranju, klasici također ustupaju mjesto komercijalno osakaćenom industrijskom "popu".

Zahvaljujući Felixu Mendelssohnu, čovječanstvo je cijenilo pravu veličinu J. S. Bacha skoro sto godina nakon njegove smrti. Nadam se da će ljudi malo ranije cijeniti mudrog profesora Niklausa Wirtha - kompjutera Bacha.

Godišnjica Niklausa Virta je veoma dobra provera kompetentnosti ne samo ruskih medija, već i svetskih.

Ruslan Bogatyrev. 15.02.2014, Moskva

Profesor Niklaus K. Wirth, autor jezika Pascal, diplomirao je na Švicarskom federalnom institutu za tehnologiju ETH (Eidgenoessische Technische Hochschule) u svom rodnom Cirihu (1958). Magistrirao je na Univerzitetu Laval u Kvebeku (Kanada) (1960). Godine 1963., na Univerzitetu Kalifornije u Berkliju (SAD), Wirth je, pod vodstvom profesora Harryja Huskeya, implementirao proširenje ALGOL-60 (Eulerov jezik) i odbranio svoju disertaciju. Godine 1963–1967 Wirth je predavao na Univerzitetu Stanford (SAD). Istovremeno je pozvan u međunarodnu ekspertsku grupu IFIP Working Group 2.1, koja je bila uključena u dizajn jezika ALGOL-68.

Godine 1967. Wirth se vratio u domovinu i postao docent na Univerzitetu u Cirihu. Godine 1968. preselio se na ETH Cirih, gdje je počeo razvijati Pascal jezik. Godine 1970. završen je prvi Pascal kompajler. U periodu 1978–1981. Wirth je vodio projekat koji je rezultirao razvojem jezika Modula-2, 16-bitnog personalnog računara Lilith i Medos OS-a. Sav softver, uključujući sistemski softver, u potpunosti je implementiran na Modulu-2. Godine 1984. Niklaus Wirth za veliki doprinos razvoju programskih jezika i za stvaranje Lilith personalnog računara nagrađen je nagradom Alan Turing (The ACM A.M. Turing Award) - najprestižnijom i najčasnijom u kompjuterskom svijetu, koja je po svom značaju u rangu sa bonusom Nobelove nagrade.

U periodu 1986–1989. Wirth je vodio projekat za kreiranje novog jezika Oberon, proširivog objektno orijentisanog Oberon OS-a i 32-bitne Ceres radne stanice. Mnoge ideje iz tog projekta su zaposlenici Sun Labsa koristili kao osnovu za Java jezik i tehnologiju.

Od 1990. godine profesor Wirth vodi Institut za kompjuterske sisteme na ETH Cirihu. Godine 1999. otišao je u penziju i postao počasni profesor na svom rodnom ETH Cirihu.

Preporučeni materijali
1. (PDF, 2004.)
2. Niklaus Wirth u Akademgorodoku (2009.)
3. Nastava informatike: Izgubljeni put (2002.)
4. Kronos (istorija jednog projekta) (2005-2014)
5. Projekat Oberon 2005 (Wirthova velika turneja po Rusiji) (2005)
6. Legendarni profesor Wirth na poligonu Naučno-proizvodnog centra “Novik-XXI vijek” (2005.)
7. Dobre ideje: Kroz ogledalo (2006.)
8. Niklaus Wirth: put do istine (2014.)
9. Držite se svojih korijena (za 80. rođendan Niklausa Wirtha) (2014.)

Video intervju
1. Niklaus Wirth o nastavi informatike. IEEE Computer Society, 2012.

2. Google Tech Talk, 2009.

3. Intervju s Niklausom Wirthom, 2010. Dio 1/3

4. Intervju s Niklausom Wirthom, 2010. Dio 2/3

5. Intervju s Niklausom Wirthom, 2010. Dio 3/3

Materijal sa Wikipedije - slobodne enciklopedije

(Njemac Niklaus Wirth, rođen 15. februara 1934.) - švicarski naučnik, specijalista u oblasti računarstva, jedan od najpoznatijih teoretičara u oblasti razvoja programskog jezika, profesor računarstva (ETH), dobitnik Turingove nagrade 1984. Nagrada. Vodeći programer jezika Pascal, Modula-2, Oberon.

Biografija

Niklaus Wirth je rođen 15. februara 1934. godine u Winterthuru, na periferiji Ciriha (Švajcarska). Roditelji: Walter i Hedwig Wirth. Nicklausov otac je bio školski učitelj.

Kao dijete, Niklaus Wirth je bio zainteresiran za modeliranje aviona i izgradnju raketa, njegova strast prema elektronici i softverskim upravljačkim sistemima započela je razvojem uređaja za daljinsko upravljanje za modele. Godine 1954. upisao je Elektronski fakultet pri Švicarskom saveznom institutu za tehnologiju (ETH) u Cirihu, gdje je za četiri godine diplomirao elektrotehniku. Nastavio je studije na Univerzitetu Laval (Kvebek, Kanada), a magistrirao 1960. godine. Potom je pozvan na Univerzitet Kalifornije u Berkliju (SAD), gdje je 1963. godine, pod vodstvom profesora Huskyja, odbranio disertaciju čija je tema bila programski jezik Euler - proširenje Algola koristeći jezik Lisp.

Wirthovu tezu primijetila je zajednica programera programskih jezika, te je iste 1963. godine pozvan u Algol standardizacijski komitet IFIP-a (International Federation of Informatics), koji je razvijao novi standard za jezik Algol, koji je kasnije postao ALGOL. -68. Zajedno sa Charlesom Hoareom, Wirth je u komitetu zagovarao razvoj umjereno modificirane verzije Algola, oslobođene nedostataka originalnog jezika i dopunjene minimumom zaista potrebnih alata. Wirth i Hoar su predstavili Algol-W jezik (W za Wirth), koji je bio upravo takva prerada Algola, komitetu, ali nije dobio podršku. Na kraju rada komiteta 1968. godine, Wirth je bio među onima koji su kritikovali ALGOL-68, govoreći o njegovoj nepouzdanosti i ekstremnoj redundantnosti. Paralelno, od 1963. do 1967. Wirth je radio kao asistent na Univerzitetu Stanford, SAD. Zajedno sa Jimom Walesom razvio je i implementirao jezik PL/360, namijenjen za programiranje na platformi IBM/360 - jezik sličan algolu u koji su uvedene brojne sistemske karakteristike vezane za IBM/360 arhitekturu.

Godine 1967. vratio se u zvanje vanrednog profesora na Univerzitetu u Cirihu, a 1968. dobio je zvanje profesora računarstva na ETH. Radio je u ETH 31 godinu. Bio je uključen u mnoge organizacione aktivnosti, unapređujući nastavni sistem svog univerziteta.

Godine 1970. kreirao je programski jezik Pascal. Sedamdesetih godina prošlog vijeka razvio je, zajedno sa C. Hoareom i E. Dijkstrom, tehnologiju strukturiranog programiranja. Wirthov članak iz 1971. godine, “Razvoj programa inkrementalnim prečišćavanjem”, opisao je i potkrijepio sada klasičnu metodologiju razvoja softvera od vrha prema dolje. Da bi se Pascal sistem preneo na različite računarske platforme, 1973. godine, uz učešće Wirtha, razvijen je prototip virtuelne mašine koja bi na bilo kojoj platformi izvršavala srednji „pi-kod“, u koji su svi programi trebalo da budu kompajlirani. .

Godine 1975. razvio je jezik Modula, u kojem je implementirao ideje razvoja modularnih programa sa dobro definisanim intermodularnim interfejsima i paralelnim programiranjem. Osim toga, sintaksa jezika je promijenjena u Modulu - Wirth se riješio potrebe, naslijeđene od Algola-60, za korištenjem složenih operatora u strukturama grananja i petljama. Modul nije bio nadaleko poznat i imao je samo jednu eksperimentalnu implementaciju, ali njegovu modifikovanu verziju - Modula-2, čiji je razvoj započeo 1977. i završio 1980. godine, dizajniran za implementaciju sistemskog softvera Lilith sistema razvijenog na ETH - a 16 -bit personalni računar, postao je poznat i prilično popularan, iako nije nadmašio Pascal po popularnosti [izvor nije naveden 1091 dan], posebno njegove komercijalne implementacije. Lilit sistem je bio ispred trendova u kompjuterskoj industriji za nekoliko godina. Wirth je kasnije požalio što je švajcarska kompjuterska industrija propustila svoju istorijsku šansu neshvatanjem potencijala ovog sistema. Razvoj Module-2 bio je jezik Modula-3, koji su zajednički razvili DEC i Olivetti; Wirth nije učestvovao u njegovom stvaranju.

U drugoj polovini 1970-ih, Wirth je učestvovao na takmičenju američkog Ministarstva odbrane za razvoj novog jezika za programiranje ugrađenih sistema, što je rezultiralo stvaranjem jezika Ada. Priča se ponovila i sa ALGOL-om-68 - projekat grupe u kojoj su Wirth i Hoare radili nije odobren od strane jezičke komisije. Kao rezultat toga, u konkurenciji je pobijedio projekt zasnovan na Pascalu, ali mnogo složeniji i obimniji.

Od 1982. do 1984. i od 1988. do 1990. Wirth je bio na čelu Fakulteta računarskih nauka na ETH, a od 1990. godine Instituta za računarske sisteme na ETH.

Godine 1988, u saradnji sa Jurgom Gutknechtom, Wirth je razvio programski jezik Oberon. Cilj razvoja bio je kreiranje jezika za implementaciju sistemskog softvera nove radne stanice koja se dizajnira. Osnova za Oberon bila je Modula-2, koja je znatno pojednostavljena, ali u isto vrijeme dopunjena novim mogućnostima.

Godine 1992. Wirth i Mössenböck objavili su izvještaj o novom programskom jeziku, Oberon 2, minimalno proširenoj verziji Oberona. Iste godine formirana je podružnica ETH-a, Oberon microsystems, koja je započela razvoj Oberon sistema. Wirth je postao jedan od članova njegovog upravnog odbora. Ova kompanija je 1999. godine objavila sledeću verziju Oberona - Component Pascal, pogodniju za programiranje komponenti. Godine 1996. Wirth je razvio još jedan originalni programski jezik, Lola, jednostavan jezik za učenje za formalno opisivanje i simulaciju digitalnih električnih kola.

1. aprila 1999. Wirth je otišao u penziju, pošto je dostigao starosnu granicu za državnog službenika u Švicarskoj (ETH je državni univerzitet, njegovi zaposlenici su državni službenici i njihov rad podliježe relevantnim zakonima).

19. juna 2007. godine Odlukom Predsjedništva Ruska akademija nauka br. 141 Virtu je nagrađen fakultetska diploma doktor honoris causa (prema preporuci Odjeljenja informacione tehnologije i računarski sistemi). Inicijator prezentacije bio je ruski naučnik iz oblasti IT tehnologija Igor Šagajev, profesor na Londonskom univerzitetu Metropolitan, koji je sarađivao sa Niklausom Virtom 2005-2008 na evropskom projektu ONBASS.

Član nacionalnih akademija: Swiss Academy of Engineering (Švicarska), U.S. Inženjerska akademija (SAD), Akademija Berlin-Brandenburg (Njemačka).
[uredi] Nagrade i priznanja
IEEE nagrada Emanuel Piore (1983.)
ACM Turing nagrada (1984.)
ACM nagrada za izuzetan doprinos obrazovanju u oblasti računarstva (1987, 1989)
IEEE Computer Pioneer (1988)
Prix ​​Max Petitpierre (1989.)
IBM evropska nagrada za nauku i tehnologiju (1989.)
Nagrada Marcel Benoit (1990.)
Orden Pour le Merite (1996.)
Medalja Leonardo da Vinci (1999.)
ACM nagrada za izvanredno istraživanje u softverskom inženjerstvu (1999).

Dostignuća

Wirth je razvio ili učestvovao u razvoju programskih jezika: Euler, Algol-W, PL/360, Pascal, Modula-2, Oberon, Oberon-2, Component Pascal. Njegov najpoznatiji razvoj je, naravno, programski jezik Pascal, koji je imao ogroman uticaj na nekoliko generacija programera i postao osnova za stvaranje velikog broja programskih jezika. Još jedan temeljni rad u kojem je Wirth postao učesnik bio je razvoj tehnologije strukturiranog programiranja, koja je postala, naravno, najmoćnija formalizacija u programiranju barem u 1970-im - 1980-im. Ovu tehnologiju su razvila, potvrdila i implementirala samo tri izvanredna čovjeka - Wirth, Dijkstra i Hoare.

Komentatori su više puta primijetili da su Wirthove ideje često bile godinama ispred razvoja kompjuterske industrije, ponekad i decenijama. Pascal-P sistem, razvijen početkom 1970-ih, uključuje kompilaciju Pascal programa u univerzalni "pi-kod" i implementaciju na bilo koju platformu interpretatora pi-koda (jedna od njegovih poznatih implementacija je UCSD-Pascal sa Univerziteta iz San Diega), koji je omogućio da se Pascal sistemi prenesu na nove hardverske platforme uz minimalne troškove, bio je više od dve decenije ispred ideja o intermedijarnom tumaču koda implementiranog u sistemima koji podržavaju izvršavanje programa u jeziku Java i u . NET platforma. Ideja o kombinovanju programskog sistema sa sakupljačem smeća, oslobađajući programera od potrebe da prati životni vek objekata koji se dinamički dodeljuju u memoriji, implementirana je 1988. godine u jeziku i operativnom sistemu Oberon. Obje ove ideje koristili su Java i .NET programeri u drugoj polovini 1990-ih.
[uredi] Naučni principi

Možda jedan od najtačnijih izraza principa kojih se Wirth pridržava u razvoju svih svojih projekata je Ajnštajnova fraza u epigrafu „Poruke o jeziku Oberon”: „Učinite to što jednostavnijim, ali ne jednostavnijim od toga. .” U svim njegovim radovima može se pratiti njegov početni fokus na implementaciji najefikasnijeg rješenja specifičnog inženjerskog problema na osnovu zagarantovanih radnih, matematički zasnovanih alata. Wirth čvrsto vjeruje da bi programiranje trebalo biti normalna inženjerska disciplina koja garantuje dovoljan nivo pouzdanosti njegovog razvoja. Postizanje pouzdanosti moguće je, prema Wirthu, samo na jedan način: maksimalnim pojednostavljenjem i samih sistema i alata koji se koriste za njihovo kreiranje. U skladu s ovim principom, jezici i programski sistemi koje je razvio Wirth oduvijek su bili primjer „razumne dovoljnosti“, čak i neka vrsta asketizma - oni su predviđali samo ono bez čega se ne može.

Čak je i širenje postojećih jezika i sistema uvijek bilo praćeno pojednostavljenjem. Prema proračunima objavljenim u članku Sergeja Sverdlova "Aritmetika sintakse", "Wirthova linija", kako ju je nazvao - linija jezika uključujući Pascal, Modula-2, Oberon i Oberon2 - jedini je primjer "genetskog linija” jezika potomaka Algola-60 , u kojem je složenost jezika, definirana kao broj leksema u njegovom opisu, stalno opadala i trenutno je niža od složenosti njegovog zajedničkog „pretnika” - ALGOL-60. Svi jezici "Wirth linije" su jednostavniji od Algol-60, a svaki sljedeći jezik u ovoj liniji je jednostavniji od prethodnog. Istovremeno, Ada je više nego dvostruko složenija od svog prethodnika - Pascal, C++ je otprilike 1,7 puta složeniji od C, a u Pascal - Turbo Pascal liniji različitih verzija - Object Pascal, složenost stalno raste od verzije na verziju.

Wirth često kritizira “američki pristup” razvoju programskih alata, u kojem marketinška razmatranja prevladavaju nad zahtjevima matematičke harmonije i zajamčene pouzdanosti, a svaki novi pomodni hir prati nekritičko uvođenje novih sintaksičkih elemenata u programske jezike. To dovodi do pogrešne procjene uloge nekih ideja i, na kraju, do pogrešnog određivanja prioriteta u razvoju softvera. Konkretno, govoreći o OOP-u, Wirth je u više navrata primijetio da je to prilično trivijalno proširenje istog strukturalnog pristupa, začinjeno novom terminologijom i teško da može dobiti naziv „revolucionarne metodologije programiranja“. Wirth je slavno iznio podsmjehljivu primjedbu o američkoj navici antropocentrizma u terminologiji: „Oni nazivaju proširenja tipa 'nasljeđe', ali, u stvari, nasljeđe obično prelazi na potomka samo kada predak umre.

Još jedan princip koji je uvijek vodio Wirtha može se formulirati na sljedeći način: „Alat mora odgovarati zadatku. Ako alat ne odgovara zadatku, morate smisliti novi koji bi mu odgovarao, umjesto da pokušavate prilagoditi postojeći.” On ne pozdravlja razvoj „jezika koji su općenito univerzalni“. Svaki sistem koji je razvio Wirth imao je jasno formulisanu svrhu, obim, a on je uvek, bez oklijevanja, isključivao iz razvoja sve što nije bilo potrebno za tu konkretnu svrhu. Ovdje je, međutim, potrebno pojasniti: “specifična svrha” npr. Oberona je da obezbijedi izuzetno laku i sigurnu proširivost sistema, dakle, iako nije “univerzalni jezik uopšte”, tj. uključujući sve moguće alate za sve zamislive aplikacije, Oberon je sve – još uvijek je univerzalan – “univerzalan kroz proširivost”.

Niklaus Virt (njem. Niklaus Wirth, rođen 15. februara 1934.) je švajcarski naučnik, informatičar, jedan od najpoznatijih teoretičara u oblasti razvoja programskog jezika. Vodeći programer jezika Pascal, Modula-2, Oberon, profesor računarstva (ETH), dobitnik Turingove nagrade 1984.

Niklaus Wirth je rođen 15. februara 1934. godine u Winterthuru, na periferiji Ciriha (Švajcarska). Roditelji: Walter i Hedwig Wirth. Nicklausov otac je bio školski učitelj.

Programi nikada ne sadrže tako malo grešaka kao u nedostatku alata za otklanjanje grešaka.

Wirth Nicklaus

Kao dijete, Niklaus Wirth je bio zainteresiran za modeliranje aviona i izgradnju raketa, njegova strast prema elektronici i softverskim upravljačkim sistemima započela je razvojem uređaja za daljinsko upravljanje za modele. Godine 1954. upisao je Elektronski fakultet pri Švicarskom saveznom institutu za tehnologiju (ETH) u Cirihu, gdje je za četiri godine diplomirao elektrotehniku.

Nastavio je studije na Univerzitetu Laval (Kvebek, Kanada), a magistrirao 1960. godine. Potom je pozvan na Univerzitet Kalifornije u Berkliju (SAD), gdje je 1963. godine, pod vodstvom profesora Huskyja, odbranio disertaciju čija je tema bila programski jezik Euler - proširenje Algola koristeći jezik Lisp.

Wirthovu tezu primijetila je zajednica programera programskih jezika, te je iste 1963. godine pozvan u Algol standardizacijski komitet IFIP-a (International Federation of Informatics), koji je razvijao novi standard za jezik Algol, koji je kasnije postao ALGOL. -68.

Zajedno sa Charlesom Hoareom, Wirth je u komitetu zagovarao razvoj umjereno modificirane verzije Algola, oslobođene nedostataka originalnog jezika i dopunjene minimumom zaista potrebnih alata. Wirth i Hoar su predstavili Algol-W jezik (W za Wirth), koji je bio upravo takva prerada Algola, komitetu, ali nije dobio podršku.

Na kraju rada komiteta 1968. godine, Wirth je bio među onima koji su kritikovali ALGOL-68, govoreći o njegovoj nepouzdanosti i ekstremnoj redundantnosti. Paralelno, od 1963. do 1967. Wirth je radio kao asistent na Univerzitetu Stanford, SAD.

Zajedno sa Jimom Walesom razvio je i implementirao jezik PL/360, namijenjen za programiranje na platformi IBM/360 - jezik sličan algolu u koji su uvedene brojne sistemske karakteristike vezane za IBM/360 arhitekturu.

Godine 1967. vratio se u zvanje vanrednog profesora na Univerzitetu u Cirihu, a 1968. dobio je zvanje profesora računarstva na ETH. Radio je u ETH 31 godinu. Bio je uključen u mnoge organizacione aktivnosti, unapređujući nastavni sistem svog univerziteta.

Godine 1970. kreirao je programski jezik Pascal. Sedamdesetih godina prošlog vijeka razvio je, zajedno sa C. Hoareom i E. Dijkstrom, tehnologiju strukturiranog programiranja. Wirthov članak iz 1971. godine, “Razvoj programa inkrementalnim prečišćavanjem”, opisao je i potkrijepio sada klasičnu metodologiju razvoja softvera od vrha prema dolje.

Da bi se Pascal sistem preneo na različite računarske platforme, 1973. godine, uz učešće Wirtha, razvijen je prototip virtuelne mašine koja bi na bilo kojoj platformi izvršavala srednji „pi-kod“, u koji su svi programi trebalo da budu kompajlirani. .

Godine 1975. razvio je jezik Modula, u kojem je implementirao ideje razvoja modularnih programa sa dobro definisanim intermodularnim interfejsima i paralelnim programiranjem. Osim toga, sintaksa jezika je promijenjena u Modulu - Wirth se riješio potrebe, naslijeđene od Algola-60, za korištenjem složenih operatora u strukturama grananja i petljama.

Modul nije bio nadaleko poznat i imao je samo jednu eksperimentalnu implementaciju, ali njegovu modifikovanu verziju - Modula-2, čiji je razvoj započeo 1977. i završio 1980. godine, dizajniran za implementaciju sistemskog softvera Lilith sistema razvijenog na ETH - a 16 -bit personalni računar, postao je poznat i prilično popularan, iako po popularnosti nije nadmašio Pascal, posebno njegove komercijalne implementacije.

Lilit sistem je bio ispred trendova u kompjuterskoj industriji za nekoliko godina. Wirth je kasnije požalio što je švajcarska kompjuterska industrija propustila svoju istorijsku šansu neshvatanjem potencijala ovog sistema. Razvoj Module-2 bio je jezik Modula-3, koji su zajednički razvili DEC i Olivetti; Wirth nije učestvovao u njegovom stvaranju.

U drugoj polovini 1970-ih, Wirth je učestvovao na takmičenju američkog Ministarstva odbrane za razvoj novog jezika za programiranje ugrađenih sistema, što je rezultiralo stvaranjem jezika Ada. Priča se ponovila i sa ALGOL-om-68 - projekat grupe u kojoj su Wirth i Hoare radili nije odobren od strane jezičke komisije. Kao rezultat toga, u konkurenciji je pobijedio projekt zasnovan na Pascalu, ali mnogo složeniji i obimniji.

Od 1982. do 1984. i od 1988. do 1990. Wirth je bio na čelu Fakulteta računarskih nauka na ETH, a od 1990. godine Instituta za računarske sisteme na ETH.

Godine 1988, u saradnji sa Jurgom Gutknechtom, Wirth je razvio programski jezik Oberon. Cilj razvoja bio je kreiranje jezika za implementaciju sistemskog softvera nove radne stanice koja se dizajnira. Osnova za Oberon bila je Modula-2, koja je znatno pojednostavljena, ali u isto vrijeme dopunjena novim mogućnostima.

Godine 1992. Wirth i Mössenböck objavili su izvještaj o novom programskom jeziku, Oberon 2, minimalno proširenoj verziji Oberona. Iste godine formirana je podružnica ETH-a, Oberon microsystems, koja je započela razvoj Oberon sistema. Wirth je postao jedan od članova njegovog upravnog odbora.

Ova kompanija je 1999. godine objavila sledeću verziju Oberona - Component Pascal, pogodniju za programiranje komponenti. Godine 1996. Wirth je razvio još jedan originalni programski jezik, Lola, dizajniran za razvoj prilagođenih elektronskih kola.

1. aprila 1999. Wirth je otišao u penziju, pošto je dostigao starosnu granicu za državnog službenika u Švicarskoj (ETH je državni univerzitet, njegovi zaposlenici su državni službenici i njihov rad podliježe relevantnim zakonima).

Član nacionalnih akademija: Švicarska inženjerska akademija (Švicarska), Američka inženjerska akademija (SAD), Berlin-Brandenburg akademija (Njemačka).

Wirthov akademski ugled dugo je otežavao prepoznavanje činjenice da je on jedan od prvih pravih štrebera u istoriji informacionih tehnologija. Pravda je trijumfovala samo deset godina nakon njegovog penzionisanja.

Nagrade i priznanja

IEEE nagrada Emanuel Piore (1983.)
ACM Turing nagrada (1984.)
ACM nagrada za izuzetan doprinos obrazovanju u oblasti računarstva (1987, 1989)
IEEE Computer Pioneer (1988)
Prix ​​Max Petitpierre (1989.)
IBM evropska nagrada za nauku i tehnologiju (1989.)
Nagrada Marcel Benoit (1990.)
Orden Pour le Merite (1996.)
Medalja Leonardo da Vinci (1999.)
ACM nagrada za izvanredno istraživanje u softverskom inženjerstvu (1999).

Dostignuća

Wirth je razvio ili učestvovao u razvoju programskih jezika: Euler, Algol-W, PL/360, Pascal, Modula, Modula-2, Oberon, Oberon-2, Component Pascal. Njegov najpoznatiji razvoj je, naravno, programski jezik Pascal, koji je imao ogroman uticaj na nekoliko generacija programera i postao osnova za stvaranje velikog broja programskih jezika.

Još jedan temeljni rad u kojem je Wirth postao učesnik bio je razvoj tehnologije strukturiranog programiranja, koja je postala, naravno, najmoćnija formalizacija u programiranju barem u 1970-im - 1980-im. Ovu tehnologiju su razvila, potvrdila i implementirala samo tri izvanredna čovjeka - Wirth, Dijkstra i Hoare.

Komentatori su više puta primijetili da su Wirthove ideje često bile godinama ispred razvoja kompjuterske industrije, ponekad i decenijama.

Pascal-P sistem, razvijen početkom 1970-ih, uključuje kompilaciju Pascal programa u univerzalni "pi-kod" i implementaciju na bilo koju platformu interpretatora pi-koda (jedna od njegovih poznatih implementacija je UCSD-Pascal sa Univerziteta iz San Dijega), koji je omogućio da se Pascal sistemi prenesu na nove hardverske platforme uz minimalne troškove, bio je više od dve decenije ispred ideja o intermedijarnom tumaču koda implementiranog u sistemima koji podržavaju izvršavanje programa na Java jeziku i platformi. NET.

Ideja o kombinovanju programskog sistema sa sakupljačem smeća, oslobađajući programera od potrebe da prati životni vek objekata koji se dinamički dodeljuju u memoriji, implementirana je 1988. godine u jeziku i operativnom sistemu Oberon. Obje ove ideje koristili su Java programeri i. NET u drugoj polovini 1990-ih.

Naučni principi

Možda jedan od najtačnijih izraza principa kojih se Wirth pridržava u razvoju svih svojih projekata je Ajnštajnova fraza u epigrafu „Poruke o jeziku Oberon”: „Učinite to što jednostavnijim, ali ne jednostavnijim od toga. .”

U svim njegovim radovima može se pratiti njegov početni fokus na implementaciji najefikasnijeg rješenja specifičnog inženjerskog problema na osnovu zagarantovanih radnih, matematički zasnovanih alata. Wirth čvrsto vjeruje da bi programiranje trebalo biti normalna inženjerska disciplina koja garantuje dovoljan nivo pouzdanosti njegovog razvoja.

Postizanje pouzdanosti moguće je, prema Wirthu, samo na jedan način: maksimalnim pojednostavljenjem i samih sistema i alata koji se koriste za njihovo kreiranje. U skladu s ovim principom, jezici i programski sistemi koje je razvio Wirth oduvijek su bili primjer „razumne dovoljnosti“, čak i neka vrsta asketizma - oni su predviđali samo ono bez čega se ne može.

Čak je i širenje postojećih jezika i sistema uvijek bilo praćeno pojednostavljenjem.

Prema proračunima objavljenim u članku Sergeja Sverdlova "Aritmetika sintakse", "Wirthova linija", kako ju je nazvao - linija jezika uključujući Pascal, Modula-2, Oberon i Oberon2 - jedini je primjer "genetskog linija” jezika potomaka Algola-60 , u kojem je složenost jezika, definirana kao broj leksema u njegovom opisu, stalno opadala i trenutno je niža od složenosti njegovog zajedničkog „pretnika” - ALGOL-60.

Svi jezici "Wirth linije" su jednostavniji od Algol-60, a svaki sljedeći jezik u ovoj liniji je jednostavniji od prethodnog. Istovremeno, Ada je više nego dvostruko složenija od svog prethodnika - Pascal, C++ je otprilike 1,7 puta složeniji od C, a u Pascal - Turbo Pascal liniji različitih verzija - Object Pascal, složenost raste eksponencijalno od verzije do verzije. verzija.

Wirth često kritizira “američki pristup” razvoju programskih alata, u kojem marketinška razmatranja prevladavaju nad zahtjevima matematičke harmonije i zajamčene pouzdanosti, a svaki novi pomodni hir prati nekritičko uvođenje novih sintaksičkih elemenata u programske jezike.

To dovodi do pogrešne procjene uloge nekih ideja i, na kraju, do pogrešnog određivanja prioriteta u razvoju softvera. Konkretno, govoreći o OOP-u, Wirth je u više navrata primijetio da je to prilično trivijalno proširenje istog strukturalnog pristupa, začinjeno novom terminologijom i teško da može dobiti naziv „revolucionarne metodologije programiranja“.

Wirth je dao zajedljivu primjedbu o američkoj navici antropocentrizma u terminologiji: „Oni nazivaju proširenja tipa „nasljeđe“, ali, općenito, nasljeđe obično prelazi na potomka samo kada predak umre.“

Još jedan princip koji je uvijek vodio Wirtha može se formulirati na sljedeći način: „Alat mora odgovarati zadatku. Ako alat ne odgovara zadatku, morate smisliti novi koji bi mu odgovarao, umjesto da pokušavate prilagoditi postojeći.” On ne pozdravlja razvoj „jezika koji su općenito univerzalni“.

Svaki sistem koji je razvio Wirth imao je jasno formulisanu svrhu, obim, a on je uvek, bez oklijevanja, isključivao iz razvoja sve što nije bilo potrebno za tu konkretnu svrhu.

Ovdje je, međutim, potrebno pojasniti: “specifična svrha” npr. Oberona je da obezbijedi izuzetno laku i sigurnu proširivost sistema, dakle, iako nije “univerzalni jezik uopšte”, odnosno ne uključuje sve mogući alati za sve zamislive aplikacije, Oberon je ipak univerzalan – “univerzalan kroz proširivost”.

Objavljeno na ruskom:
Sistematsko programiranje. Uvod. M.: Mir, 1977;
Pascal. Korisnički vodič i opis jezika. M.: Finansije i statistika, 1982 (u koautorstvu sa K. Jensen);
Algoritmi + strukture podataka = programi. M.: Mir, 1985;
Programiranje na jeziku Modula-2. M.: Mir, 1987;
Algoritmi i strukture podataka. M.:Mir, 1989. ISBN 5-03-001045-9 (verzija knjige na jeziku Modula-2)
Algoritmi i strukture podataka. SPb.: Nevski dijalekt. 2001.

Virthova knjiga “Algoritmi + strukture podataka = programi” objavljena je na ruskom nekoliko puta u različitim verzijama i smatra se prvim od tri klasična udžbenika strukturiranog programiranja.

Niklaus Wirth - fotografija

Niklaus Wirth - citati

Programi postaju sporiji brže nego što računari postaju brži.

Programi nikada ne sadrže tako malo grešaka kao u nedostatku alata za otklanjanje grešaka.

Wirth je doktorirao elektrotehniku ​​i računarstvo na Univerzitetu Kalifornije u Berkliju (SAD); U zidovima ove obrazovne ustanove 1963. godine odbranio je disertaciju napisanu pod rukovodstvom slavnog profesora Harija Haskija, pionira grafičkog dizajna.


Niklaus Emil Wirth rođen je 1934. godine u švajcarskom gradu Winterthuru (Švajcarska). Poznato je da je njegov otac radio kao učitelj u školi, a sam Niklaus je od djetinjstva volio avionsko modelarstvo. Upravo ta strast ga je kasnije navela da se zainteresuje za elektroniku i sisteme upravljanja programom.

Godine 1954. Wirth je postao student na odsjeku za elektroniku na Švicarskom saveznom institutu za tehnologiju u Zürichu, gdje je diplomirao elektrotehniku. Uslijedile su studije na Univerzitetu Laval u Kvebeku, Kanada (Université Laval, Canada), gdje je Wirth magistrirao 1960. godine.

Wirth je doktorirao elektrotehniku ​​i računarstvo na Univerzitetu Kalifornije u Berkliju (SAD); U zidovima ove obrazovne ustanove 1963. godine odbranio je disertaciju napisanu pod rukovodstvom slavnog profesora Harry Huskeyja, pionira grafičkog dizajna.

Yina. Njegova disertacija je zapažena u zainteresovanom svijetu, a Wirth je pozvan u Algol standardizacijski komitet Međunarodne federacije za obradu informacija (IFIP); Komitet je upravo radio na razvoju novog standarda za jezik ALGOL, koji je kasnije postao poznat kao ALGOL-68. Wirthova verzija je bila poboljšani jezik, takozvani Algol-W, ali njegov razvoj nije prihvaćen.

Od 1963. do 1967. Nicklaus je istovremeno radio kao docent na Univerzitetu Stanford, nakon čega je uslijedio rad na Univerzitetu u Cirihu. Poznato je da je Wirth pored samog naučnog istraživanja uložio mnogo napora da unapredi obrazovni sistem na univerzitetu.

Godine 1970. Wirth je razvio programski jezik Pascal, 1975. je razvio jezik Modula, a kasnih 1970-ih Niklaus Wirth je učestvovao na takmičenju američkog Ministarstva odbrane, postajući jedan od programera novog programskog jezika.

jezik ugrađenih sistema, koji je postao poznat kao jezik pakla. Njegov projekat, međutim, nije prihvaćen, kao što je bio slučaj sa jezikom Algol 1960-ih.

Osamdesetih godina 20. vijeka Wirth je bio na čelu Visoke tehničke škole u Cirihu (Eidgenössische Technische Hochschule, ETH), a od 1990. radio je u Institutu za kompjuterske sisteme koji je osnovan pri istoj obrazovnoj instituciji.

Tokom 1990-ih, Wirth je učestvovao u razvoju jezika Oberon-2, malo proširene verzije Oberona.

U proljeće 1999. Niklaus Wirth se penzionisao sa 65 godina. Do tada je bio jedan od svjetski cijenjenih programera, koji je radio na najmanje osam programskih jezika, a bio je i programer tehnologije strukturiranog programiranja.

Poznato je da je Wirth dobitnik nekoliko veoma prestižnih nagrada ("Turing Award", "SIGPLAN Programming Languages ​​Achievement Award"), kao i nekoliko počasnih diploma obrazovne institucije.

"U našoj profesiji preciznost i savršenstvo nisu neobavezni luksuz, već jednostavno potreba", rekao je jednom naučnik