Niklaus Wirth stvorio je programski jezik Pascal. Niklaus Wirth je patrijarh pouzdanog programiranja. Pedagoške i društvene djelatnosti

Materijal iz Wikipedije - slobodne enciklopedije

(njem. Niklaus Wirth, rođen 15. veljače 1934.) - švicarski znanstvenik, specijalist u području računalnih znanosti, jedan od najpoznatijih teoretičara u području razvoja programskih jezika, profesor informatike (ETH), dobitnik Turingove nagrade 1984. Dodijeliti. Vodeći programer jezika Pascal, Modula-2, Oberon.

Biografija

Niklaus Wirth rođen je 15. veljače 1934. u Winterthuru, na periferiji Züricha (Švicarska). Roditelji: Walter i Hedwig Wirth. Nicklausov otac bio je školski učitelj.

Kao dijete, Niklaus Wirth bio je zainteresiran za modeliranje zrakoplova i izradu raketa; njegova strast prema elektronici i sustavima upravljanja softverom započela je s razvojem uređaja za daljinsko upravljanje modelima. Godine 1954. upisao je Elektronički fakultet na Švicarskom saveznom institutu za tehnologiju (ETH) u Zürichu, gdje je za četiri godine stekao diplomu prvostupnika elektrotehnike. Studij je nastavio na Sveučilištu Laval (Quebec, Kanada), a magistrirao je 1960. godine. Potom je pozvan na Kalifornijsko sveučilište u Berkeleyu (SAD), gdje je 1963. pod vodstvom profesora Huskyja obranio disertaciju, čija je tema bila programski jezik Euler - proširenje Algola pomoću jezika Lisp.

Wirthova teza je zamijećena od strane zajednice razvijača programskih jezika, te je iste 1963. pozvan u Komitet za standardizaciju Algola IFIP-a (International Federation of Informatics), koji je razvijao novi standard za jezik Algol, koji je kasnije postao ALGOL -68. Zajedno s Charlesom Hoareom, Wirth je u odboru zagovarao razvoj umjereno modificirane verzije Algola, oslobođene nedostataka izvornog jezika i dopunjene minimumom uistinu potrebnih alata. Wirth i Hoar predstavili su odboru jezik Algol-W (W za Wirth), koji je bio upravo takva prerada Algola, ali nije dobio podršku. Na kraju rada odbora 1968., Wirth je bio među onima koji su kritizirali ALGOL-68, govoreći o njegovoj nepouzdanosti i ekstremnoj redundanciji. Paralelno, od 1963. do 1967., Wirth je radio kao asistent na Sveučilištu Stanford, SAD. Zajedno s Jimom Walesom razvio je i implementirao jezik PL/360, namijenjen programiranju na platformi IBM/360 - jezik sličan algolu u koji je uveden niz značajki ovisnih o sustavu vezanih uz arhitekturu IBM/360.

Godine 1967. vraća se u zvanju izvanrednog profesora na Sveučilištu u Zürichu, a 1968. dobiva titulu profesora informatike na ETH. U ETH-u je radio 31 godinu. Bio je uključen u mnoge organizacijske aktivnosti, unaprjeđujući nastavni sustav svog sveučilišta.

Godine 1970. stvorio je programski jezik Pascal. Sedamdesetih godina 20. stoljeća zajedno s C. Hoareom i E. Dijkstrom razvio je tehnologiju strukturnog programiranja. Wirthov članak iz 1971., “Razvoj programa inkrementalnim usavršavanjem,” opisao je i potkrijepio sada već klasičnu metodologiju razvoja softvera odozgo prema dolje. Da bi se sustav Pascal prenio na različite računalne platforme, 1973. godine, uz sudjelovanje Wirtha, razvijen je prototip virtualnog stroja koji bi izvršavao posredni "pi-kod" na bilo kojoj platformi, u koji su se trebali sastaviti svi programi. .

Godine 1975. razvio je jezik Modula u kojem je implementirao ideje razvoja modularnih programa s dobro definiranim intermodularnim sučeljima i paralelnim programiranjem. Osim toga, sintaksa jezika je promijenjena u Modulu - Wirth se riješio potrebe, naslijeđene od Algol-60, za korištenjem složenih operatora u strukturama grananja i petljama. Modul nije bio široko poznat i imao je samo jednu eksperimentalnu implementaciju, ali njegova modificirana verzija - Modula-2, čiji je razvoj započeo 1977. i završio 1980., dizajnirana je za implementaciju sistemskog softvera sustava Lilith razvijenog u ETH - 16. -bitno osobno računalo, postalo je poznato i prilično popularno, iako nije nadmašilo Pascal u popularnosti [izvor nije naveden 1091 dana], osobito njegove komercijalne implementacije. Sustav Lilith bio je nekoliko godina ispred trendova u računalnoj industriji, a Wirth je kasnije žalio što je švicarska računalna industrija propustila svoju povijesnu priliku neshvaćanjem potencijala ovog sustava. Razvoj Module-2 bio je jezik Modula-3, koji su zajednički razvili DEC i Olivetti; Wirth nije sudjelovao u njegovom stvaranju.

U drugoj polovici 1970-ih Wirth je sudjelovao u natjecanju američkog Ministarstva obrane za razvoj novog jezika za programiranje ugrađenih sustava, što je rezultiralo stvaranjem jezika Ada. Priča se ponovila s ALGOL-68 - projekt grupe u kojoj su radili Wirth i Hoare nije odobrila jezična komisija. Kao rezultat toga, natjecanje je osvojio projekt temeljen na Pascalu, ali mnogo složeniji i opsežniji.

Od 1982. do 1984. i od 1988. do 1990. Wirth je vodio Fakultet računalnih znanosti ETH, a od 1990. Institut za računalne sustave ETH.

Godine 1988., u suradnji s Jurgom Gutknechtom, Wirth je razvio programski jezik Oberon. Cilj razvoja bio je stvoriti jezik za implementaciju sistemskog softvera nove radne stanice koja se projektira. Osnova za Oberon bila je Modula-2, koja je značajno pojednostavljena, ali u isto vrijeme nadopunjena novim mogućnostima.

Godine 1992. Wirth i Mössenböck objavili su izvješće o novom programskom jeziku, Oberonu 2, minimalno proširenoj verziji Oberona. Iste godine formirana je podružnica ETH-a, Oberon microsystems, koja je započela razvoj Oberon sustava. Wirth je postao jedan od članova upravnog odbora. Godine 1999. ova je tvrtka izdala sljedeću verziju Oberona - Component Pascal, prikladniju za programiranje komponenti. Godine 1996. Wirth je razvio još jedan izvorni programski jezik, Lola, jednostavan jezik za učenje za formalno opisivanje i simulaciju digitalnih električnih krugova.

Wirth je 1. travnja 1999. godine otišao u mirovinu, nakon što je u Švicarskoj navršio dobnu granicu državnog službenika (ETH je državno sveučilište, njegovi zaposlenici su državni službenici i njihov rad je podložan relevantnom zakonodavstvu).

Dana 19. lipnja 2007., Rezolucijom Prezidija Ruske akademije znanosti br. 141, Virtu je dodijeljen akademski stupanj doktora honoris causa (prema preporuci Odjela za informacijske tehnologije i računalne sustave). Inicijator predstavljanja bio je ruski znanstvenik u području IT tehnologija Igor Shagaev, profesor na londonskom Sveučilištu Metropolitan, koji je 2005.-2008. surađivao s Niklausom Wirthom na europskom 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
Nagrada IEEE Emanuel Piore (1983.)
ACM Turingova nagrada (1984.)
Nagrada ACM za izniman doprinos obrazovanju računalnih znanosti (1987., 1989.)
IEEE Computer Pioneer (1988.)
Prix ​​​​Max Petitpierre (1989.)
IBM-ova europska nagrada za znanost i tehnologiju (1989.)
Nagrada Marcel Benoit (1990.)
Orden za zasluge (1996.)
Medalja Leonardo da Vinci (1999.)
ACM nagrada za izvanredna istraživanja u softverskom inženjerstvu (1999).

Dostignuća

Wirth je razvio ili sudjelovao 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 veliki utjecaj na nekoliko generacija programera i postao temelj za stvaranje velikog broja programskih jezika. Drugi temeljni rad u kojem je Wirth sudjelovao bio je razvoj tehnologije strukturiranog programiranja, koja je postala, naravno, najsnažnija formalizacija u programiranju barem u 1970-im i 1980-im godinama. Ovu tehnologiju razvila su, validirala 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 računalne industrije, ponekad desetljećima. Sustav Pascal-P, razvijen ranih 1970-ih, uključuje kompilaciju Pascal programa u univerzalni "pi-kod" i implementaciju interpretera pi-koda na bilo kojoj platformi (jedna od njegovih poznatih implementacija je UCSD-Pascal Sveučilišta iz San Diega), koji je omogućio prijenos Pascal sustava na nove hardverske platforme uz minimalne troškove, bio je više od dva desetljeća ispred ideja intermedijarnog tumača koda implementiranog u sustave koji podržavaju izvođenje programa u jeziku Java i u . NET platforma. Ideja kombiniranja programskog sustava sa skupljačem smeća, oslobađajući programera od potrebe za praćenjem životnog vijeka objekata koji su dinamički raspoređeni u memoriji, implementirana je 1988. u jeziku i operativnom sustavu Oberon. Obje ove ideje koristili su Java i .NET programeri u drugoj polovici 1990-ih.
[uredi] Znanstvena načela

Možda je jedan od najtočnijih izraza načela kojih se Wirth drži u razvoju svih svojih projekata Einsteinova rečenica u epigrafu “Poruke o jeziku Oberona”: “Učinite to što je moguće jednostavnijim, ali ne jednostavnijim od toga .” U svim njegovim radovima može se pratiti njegov početni fokus na implementaciju najučinkovitijeg rješenja specifičnog inženjerskog problema na temelju zajamčeno ispravnih, matematički utemeljenih alata. Wirth čvrsto vjeruje da bi programiranje trebalo biti normalna inženjerska disciplina koja jamči dovoljnu razinu pouzdanosti svojih razvoja. Postizanje pouzdanosti moguće je, prema Wirthu, na samo jedan način: maksimalnim pojednostavljenjem kako samih sustava tako i alata koji se koriste za njihovu izradu. U skladu s tim načelom, jezici i programski sustavi koje je razvio Wirth uvijek su bili primjer "razumne dostatnosti", čak i svojevrsnog asketizma - osiguravali su samo ono bez čega se ne može.

Čak je i širenje postojećih jezika i sustava uvijek bilo popraćeno pojednostavljenjem. Prema izrač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 se složenost jezika, definirana kao broj leksema u njegovom opisu, stalno smanjivala i trenutno je niža od one kod njegovog zajedničkog “pretka” - ALGOL-60. Svi jezici "Wirth linije" su jednostavniji od Algol-60, a svaki sljedeći jezik u ovoj liniji je jednostavniji od prethodnog. Istodobno, Ada je više nego dvostruko složenija od svog prethodnika - Pascala, C++ je otprilike 1,7 puta složeniji od C-a, au liniji Pascal - Turbo Pascal različitih verzija - Object Pascal, složenost neprestano raste od verzije do verzije.

Wirth često kritizira “američki pristup” razvoju programskih alata, u kojem marketinški obziri prevladavaju nad zahtjevima matematičkog sklada i zajamčene pouzdanosti, a svaki novi pomodni hir prati nekritičko uvođenje novih sintaktičkih elemenata u programske jezike. To dovodi do pogrešne procjene uloge nekih ideja i, u konačnici, do pogrešnog određivanja prioriteta u razvoju softvera. Konkretno, govoreći o OOP-u, Wirth je opetovano primijetio da je to prilično trivijalno proširenje istog strukturnog pristupa, začinjeno novom terminologijom, i teško može zahtijevati titulu "revolucionarne metodologije programiranja". Wirth je dao slavnu podsmješljivu primjedbu o američkoj navici antropocentrizma u terminologiji: "Oni nazivaju proširenja tipa 'nasljeđe', ali, zapravo, nasljedstvo obično prelazi na potomka tek kada predak umre."

Još jedno načelo kojim se Wirth uvijek vodio može se formulirati na sljedeći način: „Alat mora odgovarati zadatku. Ako alat ne odgovara zadatku, trebate osmisliti novi koji bi mu odgovarao, umjesto da pokušavate prilagoditi postojeći.” On ne pozdravlja razvoj "jezika koji su općenito univerzalni". Svaki sustav koji je razvio Wirth imao je jasno formuliranu svrhu, djelokrug i uvijek je, bez oklijevanja, isključivao iz razvoja sve što nije bilo potrebno za tu specifičnu svrhu. Ovdje je, međutim, potrebno razjasniti: “specifična svrha” npr. Oberona je osigurati iznimno laku i sigurnu proširivost sustava, dakle, a da nije “univerzalni jezik općenito”, tj. uključujući sve moguće alate za sve zamislive primjene, Oberon je sve- i dalje univerzalan - "univerzalan kroz proširivost".

Moskva: DMK Press, 2010. - 192 str.
Knjiga poznatog računalnog znanstvenika Niklausa Wirtha temelji se na njegovim predavanjima na uvodnom tečaju dizajna prevoditelja. Na primjeru jednostavnog jezika Oberon-0 razmatraju se svi elementi prevoditelja, uključujući optimizaciju i generiranje koda. Dat je puni tekst prevoditelja u programskom jeziku Oberon. Za programere, nastavnike i studente koji proučavaju sistemsko programiranje i metode prevođenja.
Sadržaj
Uvod
Jezik i sintaksa
Vježbe
Redovni jezici
Vježbajte
Analiza kontekstno slobodnih jezika
Metoda rekurzivnog spuštanja;
Raščlanjivanje odozgo prema dolje vođeno tablicom
Raščlanjivanje odozdo prema gore
Vježbe
Gramatika i semantika atributa
Upišite Pravila
Pravila izračuna
Pravila emitiranja
Vježbajte
Oberon-0 programski jezik
Vježbajte
Parser za Oberon-0
Leksički analizator
Sintaktički analizator
Rješavanje sintaktičkih pogrešaka
Vježbe
Uzimajući u obzir kontekst zadan deklaracijama
oglasi
Unosi tipa podataka
Prezentacija podataka tijekom izvođenja
Vježbe
RISC arhitektura kao cilj
Izvori i registri
Izrazi i zadaci
Izravno generiranje koda na principu stoga
Odgođeno generiranje koda
Indeksirane varijable i polja zapisa
Vježbe
Uvjetni i ciklički iskazi i logički izrazi
Usporedbe i prijelazi
Uvjetni i ciklički iskazi
Logičke operacije
Dodjeljivanje Booleovim varijablama
Vježbe
Postupci i koncept lokalizacije
Organizacija memorije tijekom izvođenja
Adresiranje varijabli
Mogućnosti
Deklaracije i pozivi procedura
Standardni postupci
Funkcijski postupci
Vježbe
Elementarni tipovi podataka
Vrste REAL i LONGREAL
Kompatibilnost između tipova numeričkih podataka
SET vrsta podataka
Vježbe
Javni nizovi, pokazivači i proceduralni tipovi
Otvoreni nizovi
Dinamičke strukture podataka i pokazivači
Proceduralne vrste
Vježbe
Moduli i zasebna kompilacija
Načelo skrivanja informacija
Odvojena kompilacija
Implementacija datoteka simbola
Adresiranje vanjskih objekata
Provjera kompatibilnosti konfiguracije
Vježbe
Optimizacija i struktura pre/post procesora
Opća razmatranja
Jednostavne optimizacije
Izbjegavanje dvostrukih izračuna
Registrirajte dodjelu
Struktura pre/post procesorskog prevoditelja
Vježbe
Dodatak A.
Sintaksa
Oberon-0
Oberon
Datoteke znakova
Dodatak B
ASCII skup znakova
Dodatak C
Oberon-0 prevodilac
Leksički analizator
Sintaktički analizator
Generator koda
Književnost

Preuzmi datoteku

  • 2,16 MB
  • dodano 19.09.2009

Knjiga slavnog engleskog autora ispituje probleme projektiranja i izgradnje kompilatora za programske jezike visoke razine, posebice ALGOL 60, PL/1, ALGOL 68, Pascal i Ada. Fokus je na ciljevima dizajniranja pouzdanih kompilatora i sredstvima za njihovo postizanje. Objašnjena praktična pitanja...

  • 1,57 MB
  • dodano 17.12.2008

Predavanja o izgradnji prevoditelja u Pascalu. 255 str.
Ova serija članaka vodič je kroz teoriju i praksu razvoja parsera i prevoditelja za programske jezike. Prije nego završite s čitanjem ove knjige, pokrit ćemo svaki aspekt dizajna prevoditelja, stvoriti novi programski jezik i...

  • 1,25 MB
  • dodano 16.05.2009

Ova serija članaka vodič je kroz teoriju i praksu razvoja parsera i prevoditelja za programske jezike. Prije tebe
Kada završite s čitanjem ove knjige, pokrit ćemo sve aspekte dizajna prevoditelja, stvoriti novi programski jezik i izgraditi radni prevodilac.

  • 5,49 MB
  • dodano 10.10.2007

M.: Izdavačka kuća Williams, 2003. - 768 str.: ilustr.

Svatko tko je zainteresiran za razvoj prevoditelja nedvojbeno je čuo za poznatu Dragon Book, Aho i Ullmanova klasična načela dizajna prevoditelja. Nagli razvoj kompilacijskih tehnologija doveo je do rođenja novog zmaja - knjige "K...

  • 1,22 MB
  • dodano 16.05.2009

Predmeti: leksička i sintaktička analiza, organizacija memorije, generiranje koda. Kroz cijelu prezentaciju, pokušalo se održati jedno gledište "atributa" na razvojni proces prevoditelja. Knjiga se ne bavi iznimno važnim pitanjima globalne optimizacije i razvoja kompilatora za strojeve s paralelnim...

  • 59,93 MB
  • dodano 07.12.2010

Ova mala, ali opširna knjiga uvod je u teoriju stvaranja prevodilaca, kao i kratak opis principa njihova rada. Materijal je predstavljen čitatelju koji nije upoznat s ovom temom. Tekst nudi preporuke za dodatnu literaturu i daje savjete o instrumentalnoj potpori.

Niklaus Wirth rođen je 15. veljače 1934. godine u gradiću Winterthuru, na periferiji Züricha (Švicarska). Niklaus je rođen u obitelji Waltera i Hedwig Wirth. Živio je blizu škole u kojoj mu je otac predavao. Njihova je kuća imala dobru knjižnicu, u kojoj je Wirth pronašao mnogo zanimljivih knjiga o željeznici, turbinama i telegrafima.

Gradić Winterthur ima dugu povijest i poznat je po svom strojarstvu: tamo se proizvode lokomotive i dizel motori. Od djetinjstva, Wirth je bio zainteresiran za tehnologiju, posebno modeliranje zrakoplova. Doslovno je sanjao nebo. Ali za lansiranje raketa bilo je potrebno nabaviti gorivo, pa se prihvatio kemije. Mladi Wirt postavio je "tajni" laboratorij u podrumu škole.

Njegova strast prema elektronici i sustavima upravljanja programima započela je razvojem uređaja za daljinsko upravljanje modelima. Godine 1954. upisao je Fakultet elektronike na Švicarskom saveznom institutu za tehnologiju (ETH) u Zürichu, gdje je za četiri godine stekao diplomu prvostupnika elektrotehnike. Studij je nastavio na Sveučilištu Laval (Quebec, Kanada), a magistrirao je 1960. godine. Potom je pozvan na Kalifornijsko sveučilište u Berkeleyu (SAD), gdje je 1963. pod vodstvom profesora Huskyja obranio disertaciju, čija je tema bila programski jezik Euler - proširenje Algola pomoću jezika Lisp.

Wirthova teza je zamijećena od strane zajednice razvijača programskih jezika, te je iste 1963. pozvan u Komitet za standardizaciju Algola IFIP-a (International Federation of Informatics), koji je razvijao novi standard za jezik Algol, koji je kasnije postao ALGOL -68. Zajedno s Charlesom Hoareom, Wirth je u odboru zagovarao razvoj umjereno modificirane verzije Algola, oslobođene nedostataka izvornog jezika i dopunjene minimumom uistinu potrebnih alata. Wirth i Hoar su odboru predstavili jezik ALGOL-W (W za Wirth), koji je bio upravo takva prerada Algola, ali nisu dobili podršku. Na kraju rada odbora 1968., Wirth je bio među onima koji su kritizirali ALGOL-68, govoreći o njegovoj nepouzdanosti i ekstremnoj redundanciji. Istodobno, od 1963. do 1967., Wirth je radio kao asistent na Sveučilištu Stanford (SAD). Zajedno s Jimom Walesom razvio je i implementirao jezik PL/360, namijenjen programiranju na platformi IBM/360 - jezik sličan algolu koji je uveo niz značajki ovisnih o sustavu povezanih s arhitekturom IBM/360.

Godine 1967. vraća se u zvanju izvanrednog profesora na Sveučilištu u Zürichu, a 1968. dobiva titulu profesora informatike. U ETH-u je radio 31 godinu. Bio je uključen u brojne organizacijske aktivnosti, unaprjeđujući nastavni sustav svog sveučilišta.

Godine 1970. stvorio je programski jezik Pascal. U 1970-ima je zajedno s Hoareom i Dijkstrom razvio tehnologiju strukturiranog programiranja. Wirthov članak iz 1971., “Razvoj programa inkrementalnim usavršavanjem,” opisao je i potkrijepio sada već klasičnu metodologiju razvoja softvera odozgo prema dolje. Kako bi se sustav Pascal prenio na različite računalne platforme, 1973. godine, uz sudjelovanje Wirtha, razvijen je prototip virtualnog stroja koji bi izvršavao posredni "P-kod" (P za Pascal) na bilo kojoj platformi, u koju su uneseni svi programi. trebalo sastaviti.

Godine 1975. razvio je jezik Modula u kojem je implementirao ideje razvoja modularnih programa s dobro definiranim intermodularnim sučeljima i paralelnim programiranjem. Osim toga, sintaksa jezika je promijenjena u Modulu - Wirth se riješio potrebe za korištenjem složenih operatora u strukturama grananja i petljama. Modul nije bio široko poznat i imao je samo jednu eksperimentalnu implementaciju, ali njegova modificirana verzija - Modula-2, čiji je razvoj započeo 1977., a završio 1980., namijenjena je implementaciji sistemskog softvera sustava Lilith koji se razvijao u ETH - a 16-bitno osobno računalo, postalo je poznato i prilično popularno, iako po popularnosti nije nadmašilo Pascal, osobito njegove komercijalne implementacije. Sustav Lilith bio je nekoliko godina ispred trendova u računalnoj industriji, a Wirth je kasnije sa žaljenjem rekao da je švicarska računalna industrija propustila svoju povijesnu šansu neostvarujući potencijal ovog sustava.

Za projekt Lilith i jezik Modula-2 Wirth je 1984. godine dobio nagradu Alan Turing. Nagrada Alan Turing analogna je Nobelovoj nagradi za računalnu znanost, ustanovljena je davne 1966. godine i svake je godine dodjeljuje Association for Computing Machinery za izvanredna postignuća u području računalne znanosti.

U drugoj polovici 1970-ih Wirth je sudjelovao u natjecanju američkog Ministarstva obrane za razvoj novog jezika za programiranje ugrađenih sustava, što je rezultiralo stvaranjem jezika Ada. Priča se ponovila s ALGOL-68 - projekt grupe u kojoj su radili Wirth i Hoare nije odobrila jezična komisija. Kao rezultat toga, natjecanje je osvojio projekt temeljen na Pascalu, ali mnogo složeniji i opsežniji.

Od 1982. do 1984. i od 1988. do 1990. Wirth je vodio Fakultet računalnih znanosti ETH, a od 1990. Institut za računalne sustave ETH.

Godine 1988., u suradnji s Jürgom Gutknechtom, Wirth je razvio programski jezik Oberon. Cilj razvoja bio je stvoriti jezik za implementaciju sistemskog softvera nove radne stanice koja se projektira. Osnova za Oberon bila je Modula-2, koja je značajno pojednostavljena, ali u isto vrijeme nadopunjena novim mogućnostima.

Godine 1992. Wirth i Mössenböck objavili su izvješće o novom programskom jeziku, Oberonu 2, minimalno proširenoj verziji Oberona. Iste godine formirana je i podružnica ETH-a, Oberonmicrosystems, koja je započela razvoj Oberon sustava.

Wirth je postao jedan od članova upravnog odbora. Godine 1999. ova je tvrtka izdala sljedeću verziju Oberona - Component Pascal, prikladniju za programiranje komponenti. Godine 1996. Wirth je razvio još jedan izvorni programski jezik, Lola, jednostavan jezik za učenje za formalno opisivanje i simulaciju digitalnih električnih krugova.

Dana 1. travnja 1999. Wirth je otišao u mirovinu, nakon što je dosegao dobnu granicu za državnog službenika u Švicarskoj od 65 godina.

Dana 19. lipnja 2007. Wirthu je Ruska akademija znanosti dodijelila počasni doktorat. Inicijator prezentacije bio je ruski informatičar Igor Shagaev, profesor na londonskom Sveučilištu Metropolitan, koji je s Niklausom Wirthom povezan zajedničkim radom 2005. – 2008. na europskom projektu ONBASS.

Niklaus Wirth član je nacionalnih akademija: SwissAcademyofEngineering (Švicarska), U.S. AcademyofEngineering (SAD), Berlin-BrandenburgAcademy (Njemačka).

Wirth je oduvijek težio harmoniji, organskom jedinstvu hardverskih i softverskih komponenti, a svojom ustrajnošću i talentom nedvojbeno je dao neprocjenjiv doprinos razvoju računalne znanosti.

Upisao je Elektronički fakultet Švicarskog saveznog instituta za tehnologiju (ETH) u Zürichu, gdje je za četiri godine stekao diplomu prvostupnika elektrotehnike. Studij je nastavio na Sveučilištu Laval (Quebec, Kanada), a magistrirao je 1960. godine. Potom je pozvan na Kalifornijsko sveučilište u Berkeleyu (SAD), gdje je 1963. pod vodstvom profesora Huskyja obranio disertaciju, čija je tema bila programski jezik Euler - proširenje Algola pomoću jezika Lisp.

Wirthova teza je zamijećena od strane zajednice razvijača programskih jezika, te je iste 1963. pozvan u Komitet za standardizaciju Algola IFIP-a (International Federation of Informatics), koji je razvijao novi standard za jezik Algol, koji je kasnije postao ALGOL -68. Zajedno s Charlesom Hoareom, Wirth je u odboru zagovarao razvoj umjereno modificirane verzije Algola, oslobođene nedostataka izvornog jezika i dopunjene minimumom uistinu potrebnih alata. Wirth i Hoar predstavili su odboru jezik Algol-W (W za Wirth), koji je bio upravo takva prerada Algola, ali nije dobio podršku. Na kraju rada odbora 1968., Wirth je bio među onima koji su kritizirali ALGOL-68, govoreći o njegovoj nepouzdanosti i ekstremnoj redundanciji. Paralelno, tijekom godina, Wirth je radio kao asistent na Sveučilištu Stanford, SAD. Zajedno s Jimom Walesom razvio je i implementirao jezik PL/360, namijenjen programiranju na platformi IBM/360 - jezik sličan algoritmu u koji je uveden niz značajki ovisnih o sustavu vezanih uz arhitekturu IBM/360.

Nagrade i priznanja

  • Nagrada IEEE Emanuel Piore (1983.)
  • ACM Turingova nagrada (1984.)
  • Nagrada ACM za izniman doprinos obrazovanju računalnih znanosti (1987., 1989.)
  • IEEE Computer Pioneer (1988.)
  • Prix ​​​​Max Petitpierre (1989.)
  • IBM-ova europska nagrada za znanost i tehnologiju (1989.)
  • Nagrada Marcel Benoit (1990.)
  • Orden za zasluge (1996.)
  • Medalja Leonardo da Vinci (1999.)
  • ACM nagrada za izvanredna istraživanja u softverskom inženjerstvu (1999).

Dostignuća

Wirth je razvio ili sudjelovao 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 veliki utjecaj na nekoliko generacija programera i postao temelj za stvaranje velikog broja programskih jezika. Drugi temeljni rad u kojem je Wirth sudjelovao bio je razvoj tehnologije strukturiranog programiranja, koja je postala daleko najsnažnija formalizacija u programiranju barem u 1970-im i 1980-im godinama. Ovu tehnologiju razvila su, validirala 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 računalne industrije, ponekad desetljećima. Sustav Pascal-P, razvijen ranih 1970-ih, uključuje kompilaciju Pascal programa u univerzalni "pi-kod" i implementaciju interpretera pi-koda na bilo kojoj platformi (jedna od njegovih poznatih implementacija je UCSD-Pascal Sveučilišta iz San Diega), koji je omogućio prijenos Pascal sustava na nove hardverske platforme uz minimalne troškove, bio je više od dva desetljeća ispred ideja intermedijarnog tumača koda implementiranog u sustave koji podržavaju izvođenje programa u .NET jeziku. Ideja kombiniranja programskog sustava sa skupljačem smeća, oslobađajući programera od potrebe za praćenjem životnog vijeka objekata koji su dinamički raspoređeni u memoriji, implementirana je 1988. u jeziku i operativnom sustavu Oberon. Obje ove ideje koristili su (i naširoko reklamirali kao potpuno novu riječ u tehnologiji i postignuće bez presedana!) američki programeri te iste Jave i .NET-a u drugoj polovici 1990-ih.

Znanstvena načela

Možda je jedan od najtočnijih izraza načela kojih se Wirth drži u razvoju svih svojih projekata Einsteinova rečenica u epigrafu “Poruke o jeziku Oberona”: “Učinite to što je moguće jednostavnijim, ali ne jednostavnijim od toga .” U svim njegovim radovima može se pratiti njegov početni fokus na implementaciju najučinkovitijeg rješenja specifičnog inženjerskog problema na temelju zajamčeno ispravnih, matematički utemeljenih alata. Wirth čvrsto vjeruje da bi programiranje trebalo biti normalna inženjerska disciplina koja jamči dovoljnu razinu pouzdanosti svojih razvoja. Postizanje pouzdanosti moguće je, prema Wirthu, na samo jedan način: maksimalnim pojednostavljenjem kako samih sustava tako i alata koji se koriste za njihovu izradu. U skladu s tim načelom, jezici i programski sustavi koje je razvio Wirth uvijek su bili primjer "razumne dostatnosti", čak i svojevrsnog asketizma - osiguravali su samo ono bez čega se ne može.

Čak je i širenje postojećih jezika i sustava uvijek bilo popraćeno pojednostavljenjem. Prema izrač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 se složenost jezika, definirana kao broj leksema u njegovom opisu, stalno smanjivala i trenutno je niža od one kod njegovog zajedničkog “pretka” - 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 - Pascala, C++ je otprilike 1,7 puta složeniji od C-a, au liniji Pascal - Turbo Pascal različitih verzija - Object Pascal, složenost eksponencijalno raste od verzije do verzija.

Wirth često kritizira “američki pristup” razvoju programskih alata, u kojem marketinški obziri prevladavaju nad zahtjevima matematičkog sklada i zajamčene pouzdanosti, a svaki novi pomodni hir prati nekritičko uvođenje novih sintaktičkih elemenata u programske jezike. To dovodi do pogrešne procjene uloge nekih ideja i, u konačnici, do pogrešnog određivanja prioriteta u razvoju softvera. Konkretno, govoreći o OOP-u, Wirth je opetovano primijetio da je to prilično trivijalno proširenje istog strukturnog pristupa, začinjeno novom terminologijom, i teško može zahtijevati titulu "revolucionarne metodologije programiranja". Wirth je dao slavnu podsmješljivu primjedbu o američkoj navici antropocentrizma u terminologiji: "Oni nazivaju proširenja tipa 'nasljeđe', ali, zapravo, nasljedstvo obično prelazi na potomka tek kada predak umre."

Još jedno načelo kojim se Wirth uvijek vodio može se formulirati na sljedeći način: „Alat mora odgovarati zadatku. Ako alat ne odgovara zadatku, trebate osmisliti novi koji bi mu odgovarao, umjesto da pokušavate prilagoditi postojeći.” On ne pozdravlja razvoj "jezika koji su općenito univerzalni". Svaki sustav koji je razvio Wirth imao je jasno formuliranu svrhu, djelokrug i uvijek je, bez oklijevanja, isključivao iz razvoja sve što nije bilo potrebno za tu specifičnu svrhu.

knjige

Objavljeno na ruskom:

  • Sustavno programiranje. Uvod. M.: Mir, 1977;
  • Pascal. Korisnički vodič i jezični opis. M.: Financije i statistika, 1982. (u suautorstvu s K. Jensenom);
  • Algoritmi + strukture podataka = programi. M.: Mir, 1985;
  • Programiranje u 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. godine.

Knjiga Wirtha “Algoritmi + strukture podataka = programi” objavljen je na ruskom nekoliko puta u različitim verzijama i smatra se prvim od tri klasična udžbenika o strukturnom programiranju.

Trenutačno su cijelu Wirthovu klasičnu trilogiju njegovi studenti preveli na jezik Oberon i dostupna je za preuzimanje s interneta u obliku

Bilješke

Linkovi

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

Niklaus Emil Wirth rođen je 1934. godine u švicarskom gradu Winterthuru (Švicarska). Poznato je da je njegov otac radio kao školski učitelj, a sam Niklaus je od djetinjstva volio modeliranje zrakoplova. Ta ga je strast kasnije dovela do toga da se zainteresira za elektroniku i sustave upravljanja programima.

Godine 1954. Wirth je postao student na odjelu za elektroniku na Švicarskom saveznom institutu za tehnologiju u Zürichu, gdje je stekao diplomu iz elektrotehnike. Uslijedio je studij na Sveučilištu Laval u Quebecu, Kanada (Université Laval, Canada), na kojem je Wirth 1960. godine magistrirao.



Wirth je doktorirao elektrotehniku ​​i računarstvo na Kalifornijskom sveučilištu u Berkeleyu (SAD); unutar zidova ove posebne obrazovne ustanove, 1963. godine obranio je svoju disertaciju, napisanu pod vodstvom poznatog profesora Harryja Huskeyja, pionira grafičkog dizajna. Njegova disertacija bila je zapažena u zainteresiranom svijetu, a Wirth je pozvan u komitet za standardizaciju Algola Međunarodne federacije za obradu informacija (IFIP); Odbor je upravo radio na razvoju novog standarda za jezik ALGOL, koji je kasnije postao poznat kao ALGOL-68. Wirthova verzija je bio poboljšani jezik, takozvani Algol-W, ali njegov razvoj nije bio prihvaćen.

Od 1963. do 1967. Nicklaus je paralelno radio kao docent na Sveučilištu Stanford, a potom je radio na Sveučilištu u Zürichu. Poznato je da je Wirth osim samog znanstvenog istraživanja uložio mnogo napora u unapređenje obrazovnog sustava na sveučilištu.

Godine 1970. Wirth je razvio programski jezik Pascal, 1975. razvio je jezik Modula, a kasnih 1970-ih Niklaus Wirth sudjelovao je na natjecanju Ministarstva obrane SAD-a, postavši jedan od developera novog jezika za programiranje ugrađenih sustava, koji je postao poznat kao jezik pakla. Njegov projekt, međutim, nije prihvaćen, kao što je to bio slučaj s jezikom Algol 1960-ih.

U 1980-ima, Wirth je vodio Visoku tehničku školu u Zürichu (Eidgenössische Technische Hochschule, ETH), a od 1990. radio je na Institutu za računalne sustave stvorenom pri istoj obrazovnoj ustanovi.

U 1990-ima Wirth je sudjelovao u razvoju jezika Oberon-2, nešto proširene verzije Oberona.

U proljeće 1999. Niklaus Wirth otišao je u mirovinu sa 65 godina. Do tada je bio jedan od svjetski cijenjenih programera, radio je na najmanje osam programskih jezika, a također je bio i razvijač tehnologije strukturiranog programiranja.

Najbolje od dana


Posjećeno:4919
Igor Khiryak. Crni likvidator nesreće u Černobilu