Niklaus Wirth találta fel programozási nyelvként. Nem egyedül Pascal: mit tett a számítógépes Nobel-díjas Niklaus Wirth a modern világért. Gyermekkor, oktatás, hobbi

Niklaus Wirth... Ezt a nevet sokan ismerik Oroszországban. Több mint három évtizeddel ezelőtt Wirth professzor megalkotta a Pascal programozási nyelvet a távoli Svájcban. Úgy tűnik, ez önmagában elég volt ahhoz, hogy nevét örökre beírja a számítástechnika évkönyvébe. De az életben gyakran megesik, hogy nem a legjobb és legtökéletesebb alkotások kapnak elismerést és hírnevet. Pascal esetében tehát csak a jéghegy csúcsát látjuk, és Wirth munkáinak nagy része továbbra is sokak számára ismeretlen.

Niklaus Wirth 70 éve – 1934. február 15-én – született a Zürich külvárosában található Winterthur kisvárosban. Niklaus Walter és Hedwig Wirth családjában született. Az iskola közelében laktak, ahol apja tanított. A házukban volt egy jó könyvtár, ahol Wirth sok érdekes könyvet talált a vasútról, a turbinákról és a távíróról.

A nagy múltra visszatekintő Winterthur kisváros gépészetéről híres: mozdonyokat és dízelmotorokat gyártanak itt. Wirth gyermekkora óta érdekelte a technológia, különösen a repülőgép-modellezés. Szó szerint az égről álmodott. De a rakéták indításához üzemanyagra volt szüksége, ezért a kémiát vette át. Az ifjú Wirt egy „titkos” laboratóriumot állított fel az iskola alagsorában. Semmi sem állíthatta meg: egy napon az általa készített modell letért a megadott pályáról, és az iskolaigazgató lába alatt landolt. Wirth azonban továbbra is makacsul követte célját.

Néhány évtizeddel később Niklaus Wirthnek, akárcsak Ken Thompsonnak, a UNIX szerzőjének, lehetősége nyílt egy MIG-re repülni a Moszkva melletti kubinkai katonai repülőtérről. Becsült álma valóra vált. Wirth szakmai kreativitásának motivációját leginkább a Stanford Egyetemen (USA) dolgozó kollégája, Donald Knuth professzor árulta el: „Wirth mindig is repülőgépeket akart alkotni, és neki a legjobb eszközökre volt szüksége. Ezért tervezett sok számítógépes nyelvet és mikroszámítógépet..."

A modellek építésétől Nicklaus gyorsan áttért a távirányítók fejlesztésére. Amikor betöltötte 18. életévét, ő és két másik zürichi repülőgépmodellező megkapta Angliából a kívánt rádióberendezést. Ez előre meghatározta jövőbeli sorsát – 1954-ben Wirth belépett az ETH Zürich Elektronikai Karára (Eidgenoessische Technische Hochschule, Svájci Szövetségi Műszaki Intézet). Négy év tanulás után Wirth villamosmérnöki diplomát kapott. Ezután kezdődik a jövőbeli „Pascal atya” és a „fordítók királya” dicsőséges, tízéves tengerentúli tudományos „körútja” a Svájc – Kanada – USA – Svájc útvonalon.

Wirth a Quebec-i Laval Egyetemen (Kanada) folytatta tanulmányait, ahol 1960-ban mesteri fokozatot szerzett. Aztán meghívást kapott a Kaliforniai Egyetemre, a Berkeley-be (USA) - a Szilícium-völgy jövőbeli gyöngyszemére. Ott védte meg Niklaus Wirth 1963-ban Husky professzor irányításával disszertációját az Algol Lisp (Euler-nyelv) segítségével történő fejlesztéséről. Ez a munka szó szerint elindította az életet: Virt felfigyelték a programozás mesterei, és meghívták az IFIP Algol Szabványosítási Bizottságába. Ez az iskola nem volt hiábavaló: Wirth élete hátralévő részében eszébe jutott, hogy tettekkel kell bizonyítania, hogy igaza van, különösen, ha nem akarnak hallani. A nyelvek fejlesztése során örökre felhagyott az elvont tudományos megközelítéssel, és a matematikai mérnöki megközelítést választotta. Szerinte jobb előbb megvalósítani a nyelvet, és csak utána írni róla.

1963 és 1967 között Wirth tanársegédként dolgozott a Stanford Egyetemen, majd 1967-ben ezzel a címmel tért vissza a Zürichi Egyetemre. 1968-ban pedig megkapta a számítástechnika professzora címet az ETH-n, és elkezdte építeni „svájci” Stanfordját hazájában. Az 1969-től 1989-ig tartó húsz év volt Wirth életének talán legtermékenyebb időszaka. asztal 1). Tovább építette iskoláját, sok időt szentelt a szervezési tevékenységnek. Wirth 1982-től 1984-ig (majd 1988-tól 1990-ig) az ETH Számítástechnikai Tanszékét, 1990-től pedig az ETH Számítástechnikai Intézetét vezette. Wirth professzor 1999. április 1-jén vonult nyugdíjba, amikor betöltötte 65. életévét.

A romantikus 1960-as évek jelentették a barátság kezdetét a strukturált programozás három pátriárkája – a holland Edsger Dijkstra, az angol Anthony Hoare és a svájci Niklaus Wirth – között. Ezeket a „Nobel”-díjasokat (az ACM Szövetség által odaítélt Turing-díjat az életben egyszer adják oda, és egyenértékű a számítástechnikai Nobel-díjjal) nem annyira az informatika absztrakciói, mint inkább egy egyértelmű szakember hozta össze. pozíció.

Wirth professzor leghíresebb vívmánya a Pascal nyelv. Természetesen sokan hallottak erről a nyelvről és ismerik. Pascal óriási szerepet játszott a programozók több generációjának világképének kialakításában. De ez a nyelv messze nem ideális. Egy időben Brian Kernighan, a C nyelv híres népszerűsítője és a klasszikus C kézikönyv (K&R) társszerzője kritikus cikket írt: „Miért nem a Pascal a kedvenc programozási nyelvem”. Ha figyelmesen elolvassa, eldöntheti, hogy Niklaus Wirth levonta belőle a helyes következtetéseket, és a Modula-2 nyelvezetben a cikk hatására kiküszöbölte a kanonikus Pascal számos hibáját. Egy fontos körülményt azonban szem előtt kell tartani. Kernighan vitatott műve 1981. április 2-án, i.e. két évvel (!) azután, hogy Wirth csoportja az ETH-n végrehajtotta az első Modula-2 fordítót, és egy évvel a Modula-2 - a Lilith személyi számítógép - hardveres implementációjának megjelenése után. 1993 áprilisában, az ACM Programozási Nyelvek Történeti Konferenciáján Wirth egyik kollégája kérdésére 6 pontot adott a Modula-2-re (a legmagasabb pontszám a svájci iskolákban).

A számítógépipar legalább 5-7 évvel lemaradt Wirth munkásságától. Ugyanebben 1979-ben a legendás, Lilith-nél jóval gyengébb Apple II számítógép éppen megvásárolta az Apple Pascal fordítót, amely a Pascal UCSD megvalósítására összpontosított. Még négy teljes év volt hátra Anders Hejlsberg első szerény Turbo Pascalja megjelenéséig! Ezt követően Wirth szomorúan közölte, hogy a Lilith projekttel a svájci ipar elszalasztotta egyedülálló lehetőségét.

Az Oberon projekt Wirth kreativitásának igazi gyöngyszemévé vált. Majdnem két évtizede hozták létre az Oberon rendszert http://www.oberon.ethz.ch) ma megközelítőleg ugyanazt a szerepet tölti be, mint az Alto és a Xerox Star projektek az 1980-as évek elején a híres Xerox PARC központban, ahol a modern személyi számítógépek és szövegszerkesztők keletkeztek. Az olyan vállalatok számára, mint a Microsoft, az IBM és a Sun Microsystems, az Oberon projekt gyümölcsöző ötletek forrásává vált, beleértve a dokumentum-orientált felületet, böngészőket, ipari szoftverfejlesztési nyelveket (Java és C#), gépfüggetlen mobilkódot (JVM). és .NET CLR), kisalkalmazások, komponens szoftverek, dinamikus fordítások (JIT, AOC, DAC), intelligens címkék, webszolgáltatások stb.

A diadalmas őrült technológiai verseny és a kitalált bonyolultság korszakát éljük. Niklaus Wirth egész életét a káros jelenségek elleni küzdelemnek szentelte, de nem hallják, vagy nem akarják hallani. „Az intelligencia szélsőséges fokát – írta Blaise Pascal – ugyanúgy őrültséggel vádolják, mint az intelligencia teljes hiányát. Csak a középszerűség jó.”

Wirth az európai mérnöki kultúra követője volt és marad. Az amerikai vívmányok bőséges elgondolkodtatót adtak neki: sok ötletet átvitt magán, és a legértékesebbet kristályosította ki. Mindhárom kulcsnyelvet (Pascal, Modula-2 és Oberon) Wirth hozta létre szó szerint két-három évvel azután, hogy visszatért a tengerentúlról. (1967-ben Wirth Stanfordban végzett az Algol-W fordítón, 1976-ban és 1984-ben pedig egy évre a Xerox PARC laboratóriumába ment.) Wirth munkája nem légüres térben született. Hasonló gondolkodású emberek vették körül – kollégák és hallgatók, köztük Jürg Gutknecht (az Oberon projekt társszerzője), Hanspeter Messenbock (az Oberon-2 nyelv társszerzője), Richard Oran (társszerző az Oberon-projektben). Lilith, Kuno Pfister (az Oberon mikrorendszerek alapítója és a BlackBox eszköztár ideológusa), Clemens Szyperski (az Oberon rendszer komponensarchitektúrájának ideológusa) és Michael Franz (a dinamikus kódgenerálás koncepciójának szerzője, a prototípus) Java JIT összeállítás).

A Niklaus Wirth nyelvek és rendszerek hazánkban való népszerűsítésében az 1980-1990-es években nagy szerepet játszott a Modula-2-vel foglalkozó munkacsoport, amelynek állandó vezetője és inspirátora D. M. Saghatelyan volt, az Általános Fizikai Intézet munkatársa. a Szovjetunió Tudományos Akadémia. Nem lehet mást tenni, mint felidézni a Szovjetunió Tudományos Akadémia szibériai részlegéből (NSU és A. P. Ershov Informatikai Rendszerek Intézete) I. V. Pottosin professzor csoportjának munkáját. Eszközök létrehozása hazai műholdak fedélzeti szoftvereihez (SOCRAT projekt), a KRONOS számítógépcsaládhoz (Dmitrij Kuznyecov, Alekszej Nedorja, Jevgenyij Tarasov, Vlagyimir Vasekin stb.), a Modula-2/Oberon-2 fordítók XDS családjához - ezek a Virt nevéhez fűződő nemzeti történelem talán legmarkánsabb lapjai. A megbízható programozás pátriárkájának kreativitásának csúcsa, az Oberon iránti növekvő érdeklődés a kiváló minőségű szoftverek sürgős igénye miatt, különösen a fizikában, az Informatika-21 projekt megjelenéséhez vezetett ( http://www.inr.ac.ru/~info21/), amely iránt Wirth nagy érdeklődést mutat. Sőt, idén márciusban a Svájci Nukleáris Kutatási Központ (CERN), ahol a világháló 15 éve indult, kifejezetten a fizikusok számára tartotta az Oberon-napot ( http://cern.ch/oberon.day).

Niklaus Wirth elindította a programozási nyelvek elnevezésének hagyományát a múlt matematikusairól. 1963-ban Leonhard Euler, a nagy svájci matematikus, aki sok éven át Oroszországban dolgozott, nevét adta első alkotásának - az Euler-nyelvnek. 1970-ben pedig Blaise Pascalt, a nagy francia matematikust és filozófust, akinek munkásságát N. G. Csernisevszkij és L. N. Tolsztoj csodálta, Wirth pascal nyelven örökítette meg. Érdekes párhuzamok: Donald Knuth 1994. május 11-én a Szentpétervári Egyetemen beszédében hangsúlyozta, hogy különösen örült neki, hogy az informatika díszdoktora címet az az egyetem ítélte oda, ahol a nagy Euler tanított. 1996. június 27-én Niklaus Wirth tiszteletbeli doktori címet adományozott a Novoszibirszki Akadémiai Városban, amelyet M. A. Lavrentiev és S. L. Sobolev hozott létre ugyanannak a Stanfordnak a képére és hasonlatosságára, amelyet Wirth az ETH európai iskolájának felépítéséhez használt. . Nagyra értékelték Wirth hozzájárulását a számítástechnika és a szoftverfejlesztés fejlesztéséhez. Nemcsak három akadémia tagja lett (Svájci Mérnöki Akadémia, U.S. Mérnöki Akadémia, Berlin-Brandenburgi Akadémia), hanem a legrangosabb díjakat is megkapta ( asztal 2).

Niklaus Wirth élethitját legjobban talán a nagy Blaise Pascal szavai érzékeltetik, aki több mint három évszázaddal ezelőtt írta: „Minden méltóságunk a gondolatban rejlik. Nem a tér vagy az idő emel fel bennünket, amit nem tudunk betölteni, hanem ő, a gondolatunk. Tanuljunk meg jól gondolkodni...

Ruszlan Bogatirev- a "PC World" tudományos szerkesztője, a "PC World - disk" főszerkesztője, [e-mail védett] .

A cikk teljes verzióját lásd a „Programozás művészete” című elektronikus almanachban, amely a „PC Disk World” (04. 3.) márciusi mellékletben jelent meg.

Összetett világban élünk, és olyan eredendően összetett problémákat próbálunk megoldani, amelyek megoldásához gyakran összetett eszközökre van szükség. Ez azonban nem jelenti azt, hogy ne találjunk olyan elegáns megoldásokat, amelyek egyértelműségükkel és hatékonyságukkal meggyőznek. Az egyszerű, elegáns megoldások hatékonyabbak, de nehezebb megtalálni, mint az összetetteket, és hosszabb időt vesz igénybe.

Niklaus Wirth(Svájc, Svájci Szövetségi Technológiai Intézet).

A Turing-díj beszédéből (San Francisco, USA, 1984. október).

Amikor még nem voltak számítógépek, nem volt probléma a programozás. Amikor több alacsony fogyasztású számítógépünk volt, a programozás közepes bonyolultságú problémává vált. Most, hogy óriási számítógépeink vannak, a programozás óriási problémává válik.

Edsger Dijkstra(Hollandia, Eindhoveni Műszaki Egyetem).

A szoftverekben szinte bármit meg lehet valósítani, eladni, sőt kellő kitartással használni is... De van egy minőség, amit nem lehet megvenni, ez pedig a megbízhatóság. A megbízhatóság ára a rendkívüli egyszerűségre való törekvés. Ezt az árat a legnehezebb megfizetni a nagyon gazdagok.

Anthony Hoare(Nagy-Britannia, Oxford Egyetem).

Február 15-én fordul 80 éves Niklaus Wirth kiváló svájci tudósnak és mérnöknek, a Nobel-díjjal analóg számítástechnika legrangosabb kitüntetésének, a Turing-díjnak a nyertesének.

Híres professzor a zürichi ETH-n, ahol Albert Einstein (1896) és John von Neumann (1923) tanult.

A klasszikus Pascal (1970) szerzőjeként ismerik, de sokaknak fogalmuk sincs, mi történt évtizedekkel később. Hogy az ő fejlesztései nagyrészt elindították a Java és a C# létrehozását. Hogy a mai űrműholdak, a legújabb drónok és a kifogástalan svájci vasutak működnek az ő zseniális mérnöki munkáinak köszönhetően.

Ő volt az, aki élete során utat mutatott a kitalált összetettség elleni küzdelemhez, amely nemcsak körülvesz bennünket mindenhol, hanem a jelenlegi civilizáció halálos betegségévé is vált.

Korunk a harcos amatőrök diktatúrájának ideje. A programozásban pedig a klasszikusok helyet adnak a kereskedelmileg megcsonkított ipari „popnak” is.

Felix Mendelssohnnak köszönhetően az emberiség csaknem száz évvel halála után értékelte J. S. Bach igazi nagyságát. Remélem, hogy az emberek egy kicsit korábban értékelni fogják a bölcs Niklaus Wirth professzort - a számítógép Bach-ot.

Niklaus Wirth évfordulója nagyon jó próbája nemcsak az orosz média kompetenciájának, hanem a világnak is.

Ruszlan Bogatirev. 2014.02.15., Moszkva

Niklaus K. Wirth professzor, a Pascal nyelv szerzője a Svájci Szövetségi Technológiai Intézetben (Eidgenoessische Technische Hochschule) végzett szülőhelyén, Zürichben (1958). Mesterdiplomáját a Quebec-i Laval Egyetemen (Kanada) szerezte (1960). 1963-ban a Kaliforniai Berkeley-i Egyetemen (USA) Wirth Harry Huskey professzor irányításával megvalósította az ALGOL-60 (Euler nyelv) kiterjesztését és megvédte disszertációját. 1963-1967 között Wirth a Stanford Egyetemen (USA) tanított. Ezzel egy időben meghívást kapott az IFIP Working Group 2.1 nemzetközi szakértői csoportba, amely az ALGOL-68 nyelv tervezésében vett részt.

1967-ben Wirth visszatért hazájába, és a Zürichi Egyetem adjunktusa lett. 1968-ban az ETH Zürichbe költözött, ahol elkezdte fejleszteni a Pascal nyelvet. 1970-ben elkészült az első Pascal-fordító. Az 1978–1981 közötti időszakban. Wirth vezette azt a projektet, amely a Modula-2 nyelv, a 16 bites Lilith személyi számítógép és a Medos OS kifejlesztését eredményezte. Az összes szoftvert, beleértve a rendszerszoftvert is, teljesen implementálták a Modul-2-re. 1984-ben Niklaus Wirth a programozási nyelvek fejlesztésében és a Lilith személyi számítógép megalkotásában nyújtott nagy hozzájárulásáért elnyerte az Alan Turing-díjat (The ACM A.M. Turing Award) - a számítógépes világ legrangosabb és legtiszteltebb díját. ami jelentőségében egyenrangú a Nobel-díjjal egy bónusz.

Az 1986–1989 közötti időszakban Wirth vezette a projektet egy új Oberon nyelv, egy bővíthető objektum-orientált Oberon OS és egy 32 bites Ceres munkaállomás létrehozásában. A projekt sok ötletét a Sun Labs alkalmazottai felhasználták a Java nyelv és technológia alapjaként.

1990 óta Wirth professzor vezeti a zürichi ETH Számítógépes Rendszerek Intézetét. 1999-ben nyugdíjba vonult, és tiszteletbeli professzora lett a zürichi ETH-n.

Ajánlott anyagok
1. (PDF, 2004)
2. Niklaus Wirth az Akademgorodokban (2009)
3. Számítástechnika tanítása: Az elveszett út (2002)
4. Kronos (egy projekt története) (2005-2014)
5. Project Oberon2005 (Wirth nagy körútja Oroszországban) (2005)
6. A legendás Wirth professzor a „Novik-XXI. Század” Tudományos és Termelési Központ gyakorlóterén (2005)
7. Jó ötletek: A szemüvegen keresztül (2006)
8. Niklaus Wirth: Az igazsághoz vezető út (2014)
9. Ragaszkodj a gyökereidhez (Niklaus Wirth 80. születésnapjára) (2014)

Videó interjú
1. Niklaus Wirth a számítástechnika oktatásáról. IEEE Computer Society, 2012.

2. Google Tech Talk, 2009.

3. Interjú Niklaus Wirth-tel, 2010. 1/3. rész

4. Interjú Niklaus Wirth-tel, 2010. 2/3. rész

5. Interjú Niklaus Wirth-tel, 2010. 3/3. rész

Niklaus Wirth... Ezt a nevet sokan ismerik Oroszországban. Több mint három évtizeddel ezelőtt Wirth professzor megalkotta a Pascal programozási nyelvet a távoli Svájcban. Úgy tűnik, ez önmagában elég volt ahhoz, hogy nevét örökre beírja a számítástechnika évkönyvébe. De az életben gyakran megesik, hogy nem a legjobb és legtökéletesebb alkotások kapnak elismerést és hírnevet. Pascal esetében tehát csak a jéghegy csúcsát látjuk, és Wirth munkáinak nagy része továbbra is sokak számára ismeretlen.

Niklaus Wirth 1934. február 15-én született Winterthur kisvárosában, Zürich külvárosában. Niklaus Walter és Hedwig Wirth családjában született. Az iskola közelében lakott, ahol apja tanított. A házukban volt egy jó könyvtár, ahol Wirth sok érdekes könyvet talált vasútról, turbinákról és távírókról.

A nagy múltra visszatekintő Winterthur kisváros gépészetéről híres: mozdonyokat és dízelmotorokat gyártanak itt. Wirth gyermekkora óta érdeklődik a mérnöki tudományok, különösen a repülőgép-modellezés iránt. Szó szerint az égről álmodott. De a rakéták indításához üzemanyagot kellett szerezni, ezért a kémiát vette át. Az ifjú Wirt egy „titkos” laboratóriumot állított fel az iskola alagsorában. Semmi sem állíthatta meg: egy napon az általa készített modell letért a megadott pályáról, és az iskolaigazgató lába alatt landolt. Wirth azonban továbbra is makacsul követte célját.

Néhány évtizeddel később Niklaus Wirthnek, akárcsak Ken Thompsonnak, a UNIX szerzőjének, lehetősége nyílt egy MIG-re repülni a Moszkva melletti kubinkai katonai repülőtérről. Becsült álma valóra vált. Wirth professzionális kreativitásának motivációját leginkább a Stanford Egyetemen (USA) dolgozó kollégája, Donald Knuth professzor árulta el: „Wirth mindig is repülőgépeket akart készíteni, és a legjobb eszközökre volt szüksége. Ezért tervezett sok számítógépes nyelvet és mikroszámítógépet. ..”

A modellek építésétől Nicklaus gyorsan áttért a távirányítók fejlesztésére. Amikor betöltötte 18. életévét, ő és két másik zürichi repülőgépmodellező megkapta Angliából a kívánt rádióberendezést. Ez előre meghatározta jövőbeli sorsát – 1954-ben Wirth belépett az ETH Zürich Elektronikai Karára (Eidgenoessische Technische Hochschule, Svájci Szövetségi Műszaki Intézet). Négy év tanulás után Wirth villamosmérnöki diplomát kapott. És akkor kezdődik egy dicsőséges, tízéves tengerentúli tudományos „körút” a leendő „Pascal atya” és „King of Compilers” között a Svájc – Kanada – USA – Svájc útvonalon.

Wirth a Quebec-i Laval Egyetemen (Kanada) folytatta tanulmányait, ahol 1960-ban mesteri fokozatot szerzett. Aztán meghívást kapott a Kaliforniai Egyetemre, a Berkeley-be (USA) - a Szilícium-völgy jövőbeli gyöngyszemére. Ott védte meg Niklaus Wirth 1963-ban Husky professzor irányításával disszertációját az Algol Lisp (Euler-nyelv) segítségével történő fejlesztéséről. Ez a munka szó szerint elindította az életet: Virt felfigyelték a programozás mesterei, és meghívták az IFIP Algol Szabványosítási Bizottságába. Ez az iskola nem volt hiábavaló: Wirth élete hátralévő részében eszébe jutott, hogy tettekkel kell bizonyítania, hogy igaza van, különösen, ha nem akarnak hallani. A nyelvek fejlesztése során örökre felhagyott az elvont tudományos megközelítéssel, és a matematikai mérnöki megközelítést választotta. Szerinte jobb előbb megvalósítani a nyelvet, és csak utána írni róla.

1963-tól 1967-ig Wirth tanársegédként dolgozott a Stanford Egyetemen, és 1967-ben ezzel a címmel tért vissza a Zürichi Egyetemre. 1968-ban pedig megkapta a számítástechnika professzora címet az ETH-n, és elkezdte építeni „svájci” Stanfordját hazájában. Húsz év 1969 és 1989 között talán a legtermékenyebb időszak volt Wirth életében (1. táblázat). Tovább építette iskoláját, sok időt szentelt a szervezési tevékenységnek. 1982-től 1984-ig (majd 1988-tól 1990-ig) Wirth az ETH Számítástechnikai Tanszékét, 1990 óta pedig az ETH Számítástechnikai Intézetét vezette. Wirth professzor 1999. április 1-jén vonult nyugdíjba, amikor betöltötte 65. életévét.

Három hasonló gondolkodású barát: Hoar, Dijkstra és Wirth

A romantikus 1960-as évek a strukturált programozás három pátriárkája – a holland Edsger Dijkstra, az angol Anthony Hoare és a svájci Niklaus Wirth – barátságának kezdetét jelentette. Ezeket a „Nobel”-díjasokat (az ACM Szövetség által odaítélt Turing-díjat az életben egyszer adják oda, és egyenértékű a számítástechnikai Nobel-díjjal) nem annyira az informatika absztrakciói, mint inkább egy egyértelmű szakember hozta össze. pozíció.

Edsger Dijkstra (Hollandia, Eindhoveni Műszaki Egyetem). A Turing-díj beszédéből (Boston, USA, 1972. augusztus 14.).

Amikor még nem voltak számítógépek, nem volt probléma a programozás. Amikor több alacsony fogyasztású számítógépünk volt, a programozás közepes bonyolultságú problémává vált. Most, hogy óriási számítógépeink vannak, a programozás óriási problémává válik.

Anthony Hoare (Nagy-Britannia, Oxfordi Egyetem). A Turing-díj beszédéből (Nashville, USA, 1980. október 27.).

A szoftverekben szinte bármit meg lehet valósítani, eladni, sőt kellő kitartással használni is... De van egy minőség, amit nem lehet megvenni: a megbízhatóság. A megbízhatóság ára a rendkívüli egyszerűségre való törekvés. Ezt az árat a legnehezebb megfizetni a nagyon gazdagok.

Niklaus Wirth (Svájc, Svájci Szövetségi Technológiai Intézet). A Turing-díj beszédéből (San Francisco, USA, 1984. október).

Összetett világban élünk, és olyan eredendően összetett problémákat próbálunk megoldani, amelyek megoldásához gyakran összetett eszközökre van szükség. Ez azonban nem jelenti azt, hogy ne találjunk olyan elegáns megoldásokat, amelyek egyértelműségükkel és hatékonyságukkal meggyőznek. Az egyszerű, elegáns megoldások hatékonyabbak, de nehezebb megtalálni, mint az összetetteket, és hosszabb időt vesz igénybe.

Wirth professzor leghíresebb eredménye a Pascal nyelv (1970). Természetesen sokan hallottak erről a nyelvről és ismerik. Pascal óriási szerepet játszott a programozók több generációjának világképének kialakításában. Fő előnye az egyszerűség és az elegancia: az Edsger Dijkstra által megfogalmazott strukturált programozás világos alapelveire, az Anthony Hoare által lefektetett gyönyörű matematikai alapokra, valamint a Niklaus Wirth által megvalósított Algol-W ötletek briliáns építészeti megtestesítőire épül. Technológiai szempontból a Pascal nem csak azért volt érdekes, mert az ETH-n készített fordítója a magas szintű nyelvek egyik első implementációja lett önmagán, mintegy két évvel megelőzve a C fordítót. Miközben 1973-ban dolgoztunk rajta, feltaláltak egy absztrakt Pascal-gépet (P-gép), amely egy speciális P-kódot hajt végre. A Pascal fordító különböző platformokra történő portolásának problémájának megoldása érdekében Wirth úgy döntött, hogy időtálló értelmezési módszereket használ. A P-kódot megelőző egyik leghíresebb megoldás a Snobol-4 nyelv implementációja (R. Griswold, 1967), ahol a SIL (System Implementation Language) nyelvet használták absztrakt gépi kódként.

Mint ismeretes, a Java virtuális (absztrakt) gép bevezetését a Sun Labs fejlesztői a programozási nyelvek gyakorlatának talán alapvető felfedezéseként mutatták be. Wirth egyik tanítványa, Michael Franz a következőket jegyezte meg ezzel kapcsolatban: „A Java hordozhatósága egy virtuális gép meglétén alapul, amely megkönnyíti számos architektúra utánzását. A virtuális gép ötlete nagyon erős volt több mint húsz éve népszerű volt, bár később feledésbe merült. Aztán szó esett a Pascal-P-ről, a Pascal ETH-n készített implementációjáról, amely döntő szerepet játszott e nyelv elterjedésében. Érdekes módon a Pascal és Java virtuális gépek nagyon hasonlóak az építészetben..."

A P-kód ötletek nemcsak a Java és NET platformokon, nem csak más nyelveken és adatbázismotorokban, hanem a hardveres implementációkban is utat találtak. Például a P-kód közvetlen végrehajtására a Western Digital 1979-ben kifejlesztett egy speciális WD9000 PEngine készletet. A kísérleti POMP processzort a Stanford Egyetemen hozták létre 1980-ban. A Pascal kereskedelmi megvalósítása, az 1978-ban megjelent UCSD Pascal még híresebbé vált, és sokan elfelejtették, hol jelent meg először a P-kód és a P-gép. Wirth ezt mondja erről: "Miután a Pascal létezése ismertté vált, többen kértek tőlünk, hogy segítsünk implementálni különféle gépeken, hangsúlyozva, hogy tanításra kívánják használni, és a gyorsaság nem volt számukra kiemelten fontos. Ezt követően elhatároztuk, hogy elkészítjük a fordítónak egy olyan verzióját, amely egy saját tervezésű géphez kódot generál, ez a kód később P-kód néven vált ismertté... A Pascal-P rendkívül sikeres nyelvnek bizonyult nagyszámú terjesztéshez És ha elég bölcsek lettünk volna ahhoz, hogy előre látjuk ennek a fejlesztésnek a nagyságát, akkor több erőfeszítést és gondot fordítottunk volna a P-kód fejlesztésére és dokumentálására."

A Pascal nyelvet sokan elsősorban számítástechnika tanítási nyelvként fogták fel. Maga Wirth azonban nem ért egyet a lehetőségeinek ilyen szándékos leszűkítésével (1984): „Az érvelés szerint a Pascalt tanítási nyelvnek tervezték. Bár ez az állítás igaz, nem a tanításban való felhasználása volt az egyetlen cél. Valójában nem hiszek abban a sikerben, hogy a képzés során olyan eszközöket és technikákat használnak, amelyekkel nem lehet megoldani bizonyos gyakorlati problémákat. Mai szabvány szerint Pascalnak nyilvánvaló hiányosságai voltak a nagy rendszerek programozásában, de 15 évvel ezelőtt ésszerű kompromisszumot képviselt aközött, kívánatos volt, és ami hatékony volt."

Igen, ez a nyelv messze volt az ideálistól. Egy időben Brian Kernighan, a C nyelv jól ismert népszerűsítője és a klasszikus C kézikönyv (K&R) társszerzője kritikus cikket írt: „Miért nem a Pascal a kedvenc programozási nyelvem”. Ha figyelmesen elolvassa, eldöntheti, hogy Niklaus Wirth levonta belőle a helyes következtetéseket, és a Modula-2 nyelven (1980) a cikk hatására kiküszöbölte a kanonikus Pascal számos hibáját. Egy fontos körülményt azonban szem előtt kell tartani. Kernighan vitatott műve 1981. április 2-án, i.e. két évvel (!) azután, hogy Wirth csoportja az ETH-n végrehajtotta az első Modula-2 fordítót, és egy évvel a Modula-2 - a Lilith személyi számítógép - hardveres implementációjának megjelenése után. 1993 áprilisában, az ACM Programozási Nyelvek Történeti Konferenciáján Wirth egyik kollégája kérdésére 6 pontot (a legmagasabb pontszámot a svájci iskolákban) adott a Modula-2 nyelvnek.

A Modula-2 nyelv nemcsak kompakt és hatékony alternatívája volt az Ada nyelvnek, hanem messze megelőzte a moduláris programozási ötletek azon megvalósításait, amelyek csak évekkel később, és sokkal kevésbé átgondolt formában tükröződtek a Turbo Pascalban és a Delphiben. A híres OS/400 operációs rendszert az IBM AS/400-hoz a Modula-2-n valósították meg. A Digital Corporation Systems Research Center (DEC Systems Research Center) ezt a nyelvet vette belső projektjei alapjául, majd létrehozta a Modula-3 nyelvet.

A számítógépipar legalább 5-7 évvel lemaradt Wirth munkásságától. Ugyanebben 1979-ben (amikor az első Modula-2 fordító megjelent a PDP-11 számítógépen RT-11 környezetben) a legendás, Lilith-nél jóval gyengébb Apple II számítógép éppen megvásárolta az UCSD-re összpontosító Apple Pascal fordítót. Pascal megvalósítása. Még négy teljes év volt hátra Anders Hejlsberg első szerény Turbo Pascalja megjelenéséig! Ami a Lilith számítógépet illeti, ez lett az első olyan számítógép Európában, amely teljes mértékben kihasználta a lézernyomtatás képességeit. Ezt követően Wirth szomorúan közölte, hogy a Lilith projekttel a svájci ipar elszalasztotta egyedülálló lehetőségét.

Az Oberon projekt (1988) Wirth kreativitásának igazi gyöngyszemévé vált. A csaknem két évtizede létrehozott Oberon System (http://www.oberon.ethz.ch/) ma megközelítőleg ugyanazt a szerepet tölti be, mint a híres Xerox PARC központ Alto és Xerox Star projektjei az 1980-as évek elején, ahol a modern személyi számítógépek és szövegszerkesztők keletkeztek. Az olyan vállalatok számára, mint a Microsoft, az IBM és a Sun Microsystems, az Oberon projekt gyümölcsöző ötletek forrásává vált, beleértve a dokumentum-orientált felületet, böngészőket, ipari szoftverfejlesztési nyelveket (Java és C#), gépfüggetlen mobilkódot (JVM). és .NET CLR), kisalkalmazások, komponens szoftver, dinamikus fordítás (JIT, AOC, DAC), intelligens címkék, webszolgáltatások stb.

Ez most hihetetlennek tűnik, de összesen mindössze 15 másodpercbe telt az Oberon operációs rendszer és az Oberon fordító újrafordítása! És ez az 1990-es évek elejéről származó berendezéseken van!

Michael Franz 1994 februárjában védte meg disszertációját az ETH-n „Dinamikus kódgenerálás – a hordozható szoftver kulcsa” címmel. Világosan azonosította a virtuális gépek problémáit, és rendkívül egyszerű és meglehetősen szokatlan megközelítést javasolt a hordozhatóság elérésére. Franz disszertációja nemcsak a köztes reprezentáció kialakításának és tárolásának elvét vizsgálta részletesen, hanem arra a következtetésre jutott, hogy a nyelvek ezen osztálya esetében ez gyakorlatilag változatlan marad. Más szóval, ez az elv nagyon megfelelt a Java nyelvnek. Az applet fogalma egyébként Franz műveiben is megjelent. Egy évvel a Java megjelenése után Michael Franz, 1996 nyarára elkészítette a Juice nevű környezetet, amely plug-in modulként készült Netscape és Microsoft böngészőkhöz. A modul az Oberon OS kompakt verziójából és egy teljes értékű Oberon fordítóból állt, melynek mérete (Oberon formátumban) összesen mindössze 100 KB. 1994 márciusában Michael Franz több jelentést is tartott a Sun Labs-nál, és az év tavaszára Bill Joy (a Sun alelnöke és a Java projekt ideológusa) már minden szükséges információ birtokában volt, beleértve Franz disszertációját is. Joy lett az egyik első engedélyes az ETH Oberon számára. 1994 júniusában Bill Joy azzal az ötlettel állt elő (hogyan történt, a történelem szemérmesen hallgat), hogy James Gosling Oak nyelvét más feladatokra irányítsa át – egy kompakt operációs rendszer létrehozására. A LiveOak névre keresztelt projektet sietve állították össze. Mindezt figyelembe kell venni, ha a Java jelenlegi kihívásait nézzük.

Az ipari programozás világa tele van túlzott bonyolultsággal. Ennek eredményeként az olyan kritériumokat, mint az egyszerűség (a forráskódok láthatósága), a megbízhatóság, a programok kompaktsága és a végrehajtható kód hatékonysága, felváltják az egyik fő kritérium - az ötletek megvalósításának sebessége. Ez pedig óhatatlanul maga a nyelv befolyásának meredek csökkenéséhez és a hangszeres környezet szerepének növekedéséhez vezet, amely néha nem törődik azzal, hogy mivel operál, és mindenekelőtt a vizualizációs képességei. Ahogy Niklaus Wirth találóan rámutat, „valószínűleg az állandó időhiány az elsődleges oka a nehézkes szoftverek megjelenésének”. A fejlesztési idő prioritása általában egyértelmű: az emberi erőforrások ma már jóval magasabbak, mint a hardveresek. De nem veszítünk el valami értékeset az úton, amit később rendkívül nehéz lesz visszaszerezni?

A diadalmas őrült technológiai verseny és a kitalált bonyolultság korszakát éljük. Niklaus Wirth egész életét a káros jelenségek elleni küzdelemnek szentelte, de nem hallják, vagy nem akarják hallani. „Az intelligencia szélsőséges fokát – írta Blaise Pascal – ugyanúgy őrültséggel vádolják, mint az intelligencia teljes hiányát. Csak a középszerűség jó.”

P.S. Az anyag Ruslan Bogatyrev "Niklaus Wirth - a megbízható programozás pátriárkája" című cikkéből származik.

Niklaus Wirth (németül: Niklaus Wirth, 1934. február 15.) svájci tudós, informatikus, a programozási nyelvek fejlesztésének egyik leghíresebb teoretikusa. Nyelvek vezető fejlesztője Pascal, Modula-2, Oberon, a számítástechnika professzora (ETH), Turing-díjas 1984.

Niklaus Wirth 1934. február 15-én született Winterthurban, Zürich (Svájc) külvárosában. Szülei: Walter és Hedwig Wirth. Nicklaus apja iskolai tanár volt.

A programok soha nem tartalmaznak olyan kevés hibát, mint a hibakereső eszközök hiányában.

Wirth Nicklaus

Niklaus Wirth gyerekkorában érdeklődött a repülőgép-modellezés és a rakéták építése iránt; az elektronika és a szoftvervezérlő rendszerek iránti szenvedélye a modellek távirányítóinak fejlesztésével kezdődött. 1954-ben a zürichi Svájci Szövetségi Technológiai Intézet (ETH) Elektronikai Karára lépett, ahol négy év alatt villamosmérnöki diplomát szerzett.

Tanulmányait a Laval Egyetemen (Quebec, Kanada) folytatta, majd 1960-ban mesteri fokozatot szerzett. Majd meghívást kapott a Kaliforniai Berkeley-i Egyetemre (USA), ahol 1963-ban Husky professzor irányításával megvédte disszertációját, melynek témája az Euler programozási nyelv volt - az Algol Lisp nyelvet használó kiterjesztése.

Wirth dolgozatára a programnyelv-fejlesztők közössége felfigyelt, és ugyanebben 1963-ban meghívást kapott az IFIP (International Federation of Informatics) Algol Szabványügyi Bizottságába, amely az Algol nyelv új szabványát dolgozta ki, amely később ALGOL lett. -68.

Wirth Charles Hoare-ral együtt szorgalmazta a bizottságban az Algol egy mérsékelten módosított, az eredeti nyelv hiányosságaitól mentes, minimális valóban szükséges eszközzel kiegészített változatának kidolgozását. Wirth és Hoar bemutatta a bizottságnak az Algol-W nyelvet (W for Wirth), amely az Algol egy ilyen átdolgozása volt, de nem kapott támogatást.

A bizottság 1968-as munkájának végén Wirth azok közé tartozott, akik kritizálták az ALGOL-68-at, a megbízhatóság hiányáról és a rendkívüli redundanciáról beszélve. Ezzel párhuzamosan 1963 és 1967 között Wirth asszisztensként dolgozott az Egyesült Államokban, a Stanford Egyetemen.

Jim Wales-szel együtt kifejlesztette és megvalósította az IBM/360 platformon történő programozásra szánt PL/360 nyelvet – egy algolszerű nyelvet, amelybe számos, az IBM/360 architektúrához kapcsolódó rendszerfüggő szolgáltatást vezettek be.

1967-ben a Zürichi Egyetem docensi fokozatával tért vissza, majd 1968-ban megkapta az ETH számítástechnika professzori címét. 31 évig dolgozott az ETH-n. Rengeteg szervezési tevékenységben vett részt, egyeteme oktatási rendszerének fejlesztésében.

1970-ben megalkotta a Pascal programozási nyelvet. Az 1970-es években C. Hoare-ral és E. Dijkstrával együtt kifejlesztette a strukturált programozás technológiáját. Wirth 1971-es, „Program Development by Incremental Refinement” című cikke leírja és alátámasztja a ma már klasszikus, felülről lefelé irányuló szoftverfejlesztési módszertant.

A Pascal rendszer különféle számítási platformokra való átvitelére 1973-ban Wirth közreműködésével kifejlesztették egy virtuális gép prototípusát, amely bármilyen platformon végrehajt egy közbenső „pi-kódot”, amelybe az összes programot be kellett volna fordítani. .

1975-ben kifejlesztette a Modula nyelvet, amelyben megvalósította a jól definiált intermoduláris interfészekkel és párhuzamos programozással rendelkező moduláris programok fejlesztésének elképzeléseit. Ezenkívül a modulban megváltozott a nyelvi szintaxis – Wirth megszabadult az Algol-60-tól örökölt igénytől, hogy összetett operátorokat használjon elágazó struktúrákban és ciklusokban.

A modul nem volt széles körben ismert, és csak egy kísérleti megvalósítása volt, de módosított változata - a Modula-2, amelynek fejlesztése 1977-ben kezdődött és 1980-ban fejeződött be, az ETH-n kifejlesztett Lilith rendszer rendszerszoftverének megvalósítására készült - egy 16 -bites személyi számítógép, ismertté és meglehetősen népszerűvé vált, bár népszerűsége nem múlta felül a Pascalt, különösen a kereskedelmi megvalósításaiban.

A Lilith rendszer több évvel megelőzte a számítástechnikai ipar trendjeit; Wirth később sajnálatát fejezte ki, hogy a svájci számítógépipar elszalasztotta történelmi esélyét azzal, hogy nem ismerte fel a rendszerben rejlő lehetőségeket. A Modula-2 fejlesztése a Modula-3 nyelv volt, amelyet a DEC és az Olivetti közösen fejlesztettek ki; Wirth nem vett részt a létrehozásában.

Az 1970-es évek második felében Wirth részt vett az Egyesült Államok Védelmi Minisztériumának versenyében, hogy új nyelvet fejlesszenek ki a beágyazott rendszerek programozására, aminek eredményeként megszületett az Ada nyelv. A történet megismétlődött az ALGOL-68-cal – a csoport projektjét, amelyben Wirth és Hoare dolgozott, nem hagyta jóvá a nyelvi bizottság. Ennek eredményeként a versenyt egy Pascal-alapú, de sokkal összetettebb és terjedelmesebb projekt nyerte.

1982 és 1984 között, valamint 1988 és 1990 között Wirth az ETH Számítástechnikai Karát, 1990 óta pedig az ETH Számítástechnikai Intézetét vezette.

1988-ban Wirth Jurg Gutknechttel együttműködve kifejlesztette az Oberon programozási nyelvet. A fejlesztés célja egy olyan nyelv létrehozása volt, amely a tervezés alatt álló új munkaállomás rendszerszoftverét implementálja. Az Oberon alapja a Modula-2 volt, amelyet jelentősen leegyszerűsítettek, ugyanakkor új képességekkel egészítettek ki.

1992-ben Wirth és Mössenböck kiadott egy jelentést egy új programozási nyelvről, az Oberon 2-ről, az Oberon minimálisan bővített változatáról. Ugyanebben az évben megalakult az ETH leányvállalata, az Oberon microsystems, amely megkezdte az Oberon rendszerek fejlesztését. Wirth igazgatótanácsának egyik tagja lett.

1999-ben ez a cég kiadta az Oberon következő verzióját - Component Pascal, amely alkalmasabb a komponensek programozására. 1996-ban Wirth kifejlesztett egy másik eredeti programozási nyelvet, a Lolát, amelyet egyedi elektronikus áramkörök fejlesztésére terveztek.

1999. április 1-jén Wirth nyugdíjba vonult, miután Svájcban betöltötte a közalkalmazotti korhatárt (az ETH állami egyetem, alkalmazottai köztisztviselők, munkájukra a vonatkozó jogszabályok vonatkoznak).

A nemzeti akadémiák tagja: Swiss Academy of Engineering (Svájc), U.S. Academy of Engineering (USA), Berlin-Brandenburg Academy (Németország).

Wirth tudományos tekintélye sokáig megnehezíti annak felismerését, hogy ő az egyik első igazi stréber az információs technológia történetében. Az igazságszolgáltatás mindössze tíz évvel a nyugdíjba vonulása után diadalmaskodott.

Díjak és díjak

IEEE Emanuel Piore-díj (1983)
ACM Turing-díj (1984)
ACM-díj a számítástechnikai oktatáshoz nyújtott kiemelkedő hozzájárulásért (1987, 1989)
IEEE Computer Pioneer (1988)
Max Petitpierre díj (1989)
IBM európai tudományos és technológiai díj (1989)
Marcel Benoit-díj (1990)
Orden Pour le Merite (1996)
Leonardo da Vinci-érem (1999)
ACM kiemelkedő kutatási díj szoftverfejlesztésben (1999).

Eredmények

Wirth programozási nyelveket fejlesztett ki vagy vett részt a fejlesztésben: Euler, Algol-W, PL/360, Pascal, Modula, Modula-2, Oberon, Oberon-2, Component Pascal. Leghíresebb fejlesztése természetesen a Pascal programozási nyelv, amely a programozók több generációjára volt óriási hatással, és számos programozási nyelv létrehozásának alapja lett.

Egy másik alapvető munka, amelyben Wirth részt vett, a strukturált programozási technológia fejlesztése volt, amely természetesen a programozás legerősebb formalizálása lett, legalábbis az 1970-es és 1980-as években. Ezt a technológiát mindössze három kiváló ember – Wirth, Dijkstra és Hoare – fejlesztette, érvényesítette és implementálta.

A kommentelők többször is megjegyezték, hogy Wirth ötletei gyakran évekkel, néha évtizedekkel megelőzték a számítógépipar fejlődését.

Az 1970-es évek elején kifejlesztett Pascal-P rendszer magában foglalja a Pascal-programok univerzális „pi-kódba” való fordítását, és a pi-kód értelmező bármely platformján történő megvalósítását (egyik híres implementációja az egyetemi UCSD-Pascal). San Diego), amely lehetővé tette a Pascal-rendszerek új hardverplatformokra történő minimális költséggel történő portolását, több mint két évtizeddel megelőzte a Java nyelven és platformon történő programok végrehajtását támogató rendszerekben megvalósított köztes kódértelmező elképzeléseit. HÁLÓ.

A programozási rendszer szemétgyűjtővel való kombinálásának ötletét, amely megszabadítja a programozót a memóriában dinamikusan lefoglalt objektumok élettartamának nyomon követésének szükségességétől, 1988-ban valósították meg az Oberon nyelven és operációs rendszeren. Mindkét ötletet használták a Java fejlesztők és. NET az 1990-es évek második felében.

Tudományos alapelvek

Talán az egyik legpontosabb kifejezése azoknak az elveknek, amelyekhez Wirth minden projektje kidolgozása során ragaszkodik, Einstein mondata az „Üzenet az oberoni nyelvről” epigráfiájában: „Tegye a lehető legegyszerűbbé, de ne egyszerűbbé. .”

Valamennyi munkájában nyomon követhető, hogy kezdetben egy-egy konkrét mérnöki probléma leghatékonyabb megoldását valósítsa meg a garantáltan működő, matematikai alapú eszközök alapján. Wirth szilárdan hisz abban, hogy a programozásnak normális mérnöki tudományágnak kell lennie, amely garantálja a fejlesztések megfelelő megbízhatóságát.

A megbízhatóság elérése Wirth szerint egyetlen módon lehetséges: maguknak a rendszereknek és a létrehozásukhoz használt eszközöknek a maximális leegyszerűsítésével. Ennek az elvnek megfelelően a Wirth által kifejlesztett nyelvek és programozási rendszerek mindig is példái voltak az „ésszerű elegendőségnek”, sőt egyfajta aszkézisnek – csak arról gondoskodtak, ami nélkül nem lehet.

Még a meglévő nyelvek és rendszerek bővítése is mindig az egyszerűsítéssel járt.

Szergej Sverdlov „Szintaxis aritmetika” című cikkében közölt számítások szerint a „Wirth-vonal”, ahogy ő nevezte – a Pascal, a Modula-2, az Oberon és az Oberon2 nyelvek sora – az egyetlen példa a „genetikai”. sora” az Algol-60 leszármazott nyelvei, amelyben a nyelv bonyolultsága, amelyet a leírásában szereplő lexémák számaként határoztunk meg, folyamatosan csökkent, és jelenleg alacsonyabb, mint a közös „elődje” - ALGOL-60.

A „Wirth vonal” összes nyelve egyszerűbb, mint az Algol-60, és ebben a sorban minden további nyelv egyszerűbb, mint az előző. Ugyanakkor az Ada több mint kétszer olyan összetett, mint elődje - Pascal, C++ hozzávetőlegesen 1,7-szer összetettebb, mint C, és a Pascal - Turbo Pascal sor különböző verzióiban - Object Pascal a komplexitás változatról verzióra exponenciálisan nő. változat.

Wirth gyakran kritizálja a programozási eszközök fejlesztésének „amerikai megközelítését”, amelyben a marketing szempontok érvényesülnek a matematikai harmónia és a garantált megbízhatóság követelményeivel szemben, és minden új divatos hóbort új szintaktikai elemek programnyelvekbe való kritikátlan bevezetésével jár.

Ez egyes ötletek szerepének helytelen értékeléséhez, és végső soron a szoftverfejlesztésben a prioritások helytelen meghatározásához vezet. Különösen az OOP-ról szólva Wirth többször is megjegyezte, hogy ez ugyanannak a strukturális megközelítésnek egy meglehetősen triviális kiterjesztése, új terminológiával ízesítve, és aligha mondhatja magáénak a „forradalmi programozási módszertan” címet.

Wirth híresen maró megjegyzést tett az antropocentrizmus amerikai szokására a terminológiában: „A kiterjesztéseket „öröklődésnek” nevezik, de általában az öröklődés csak akkor száll át a leszármazottra, ha az ős meghal.”

Egy másik alapelv, amely Wirthet mindig is vezérelte, a következőképpen fogalmazható meg: „Az eszköznek meg kell felelnie a feladatnak. Ha egy eszköz nem felel meg a feladatnak, akkor ahelyett, hogy egy meglévőt próbálna adaptálni, újat kell kitalálnia, amely megfelel neki.” Nem üdvözli az „általában univerzális nyelvek” fejlesztését.

Minden Wirth által kifejlesztett rendszernek világosan megfogalmazott célja, hatóköre volt, és mindig, habozás nélkül kizárt a fejlesztésből mindent, ami erre a konkrét célra nem volt szükséges.

Itt azonban tisztázni kell: például az Oberon „sajátos célja” a rendszer rendkívül könnyű és biztonságos bővíthetőségének biztosítása, tehát nem egy „általános univerzális nyelv”, azaz nem foglalja magában az összeset. lehetséges eszközök minden elképzelhető alkalmazáshoz, az Oberon végül is univerzális – „univerzális a bővíthetőség révén”.

Orosz nyelven megjelent:
Szisztematikus programozás. Bevezetés. M.: Mir, 1977;
Pascal. Felhasználói kézikönyv és nyelvi leírás. M.: Pénzügy és Statisztika, 1982 (társszerző: K. Jensen);
Algoritmusok + adatszerkezetek = programok. M.: Mir, 1985;
Programozás Modula-2 nyelven. M.: Mir, 1987;
Algoritmusok és adatstruktúrák. M.:Mir, 1989. ISBN 5-03-001045-9 (a könyv Modula-2 nyelvű változata)
Algoritmusok és adatstruktúrák. SPb.: Nyevszkij dialektus. 2001.

Wirth „Algoritmusok + Adatstruktúrák = Programok” című könyve többször is megjelent oroszul, különböző verziókban, és a strukturált programozásról szóló három klasszikus tankönyv közül az elsőnek tartják.

Niklaus Wirth - fotó

Niklaus Wirth – idézetek

A programok gyorsabban lassabbak, mint a számítógépek.

A programok soha nem tartalmaznak olyan kevés hibát, mint a hibakereső eszközök hiányában.

Moszkva: DMK Press, 2010. - 192 p.
A híres informatikus, Niklaus Wirth könyve a fordítótervezés bevezető tanfolyamán tartott előadásain alapul. Az egyszerű Oberon-0 nyelvet példaként használva a fordító minden elemét figyelembe veszik, beleértve az optimalizálást és a kódgenerálást is. A fordító teljes szövege az Oberon programozási nyelven található. Programozóknak, tanároknak és rendszerprogramozási és fordítási módszereket tanuló hallgatóknak.
Tartalom
Bevezetés
Nyelv és szintaxis
Feladatok
Szabályos nyelvek
Gyakorlat
Kontextusmentes nyelvek elemzése
Rekurzív süllyedés módszere;
Táblázatvezérelt felülről lefelé történő elemzés
Alulról felfelé történő elemzés
Feladatok
Nyelvtan és szemantika tulajdonságok
Írja be a szabályokat
Számítási szabályok
A közvetítés szabályai
Gyakorlat
Oberon-0 programozási nyelv
Gyakorlat
Oberon-0 elemző
Lexikai elemző
Szintaktikai elemző
Szintaktikai hibák hibaelhárítása
Feladatok
A nyilatkozatok által adott összefüggések figyelembevétele
hirdetéseket
Adattípus bejegyzések
Adatok bemutatása futás közben
Feladatok
RISC architektúra mint cél
Erőforrások és nyilvántartások
Kifejezések és hozzárendelések
Közvetlen kódgenerálás a verem elvén
Késleltetett kódgenerálás
Indexelt változók és rekordmezők
Feladatok
Feltételes és ciklikus állítások és logikai kifejezések
Összehasonlítások és átmenetek
Feltételes és ciklikus állítások
Logikai műveletek
Hozzárendelés logikai változókhoz
Feladatok
Lokalizációs eljárások és koncepció
Memóriaszervezés futás közben
Változók címzése
Lehetőségek
Nyilatkozatok és eljárási felhívások
Szabványos eljárások
Funkció eljárások
Feladatok
Elemi adattípusok
Típusok REAL és LONGREAL
Kompatibilitás a numerikus adattípusok között
SET adattípus
Feladatok
Nyilvános tömbök, mutató- és eljárástípusok
Nyissa meg a tömböket
Dinamikus adatszerkezetek és mutatók
Eljárási típusok
Feladatok
Modulok és külön összeállítás
Az információ elrejtésének elve
Külön összeállítás
Szimbólum fájlok megvalósítása
Külső objektumok megszólítása
Konfigurációs kompatibilitás ellenőrzése
Feladatok
Az elő-/utóprocesszor optimalizálása és felépítése
Általános megfontolások
Egyszerű optimalizálás
A párhuzamos számítások elkerülése
Regisztrálás kiosztása
A pre/post processzor fordító felépítése
Feladatok
A Függelék.
Szintaxis
Oberon-0
Oberon
Karakter fájlok
B. függelék
ASCII karakterkészlet
C. függelék
Oberon-0 fordító
Lexikai elemző
Szintaktikai elemző
Kódgenerátor
Irodalom

Fájl letöltése

  • 2,16 MB
  • hozzáadva 2009.09.19

A híres angol szerző könyve a magas szintű programozási nyelvek, különösen az ALGOL 60, PL/1, ALGOL 68, Pascal és Ada fordítóprogramjainak tervezésének és elkészítésének problémáit vizsgálja. A középpontban a megbízható fordítók tervezésének céljai és az ezek eléréséhez szükséges eszközök állnak. Gyakorlati kérdések magyarázata...

  • 1,57 MB
  • hozzáadva 2008.12.17

Előadások a pascali fordító készítéséről. 255 pp.
Ez a cikksorozat egy útmutató a programozási nyelvek értelmezőinek és fordítóinak fejlesztésének elméletéhez és gyakorlatához. Mielőtt befejezné ennek a könyvnek az elolvasását, kitérünk a fordítóprogram tervezésének minden aspektusára, létrehozunk egy új programozási nyelvet, és...

  • 1,25 MB
  • hozzáadva 2009.05.16

Ez a cikksorozat egy útmutató a programozási nyelvek értelmezőinek és fordítóinak fejlesztésének elméletéhez és gyakorlatához. Előtted
Ha befejezi ennek a könyvnek az elolvasását, a fordítótervezés minden aspektusával foglalkozunk, új programozási nyelvet hozunk létre, és létrehozunk egy működő fordítót.

  • 5,49 MB
  • hozzáadva: 2007.10.10

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

Bárki, akit érdekel a fordítóprogramok fejlesztése, kétségtelenül hallott a híres Dragon Book-ról, Aho és Ullman klasszikus Principles of Compiler Design-járól. Az összeállítási technológiák gyors fejlődése egy új sárkány születéséhez vezetett - a „K...

  • 1,22 MB
  • hozzáadva 2009.05.16

Tantárgyak: lexikális és szintaktikai elemzés, memóriarendezés, kódgenerálás. A teljes prezentáció során arra törekedtek, hogy a fordítóprogram fejlesztési folyamatával kapcsolatban egyetlen „attribútum” nézőpontot tartsanak fenn. A könyv nem foglalkozik a globális optimalizálás rendkívül fontos kérdéseivel és a fordítóprogramok fejlesztésével párhuzamos...

  • 59,93 MB
  • hozzáadva: 2010.12.07

Ez a kicsi, de átfogó könyv bevezető a fordítóprogramok létrehozásának elméletébe, valamint röviden ismerteti működésük elveit. Az anyagot a témában nem jártas olvasó számára mutatjuk be. A szöveg további irodalomra ad ajánlásokat, és tippeket ad a műszeres támogatáshoz.

Betöltés...Betöltés...