Wirt, Niklaus

Niklaus Wirth
tysk  Niklaus Wirth

Niklaus Wirth under ett besök i Ryssland ( Ural University , 2005)
Födelsedatum 15 februari 1934( 1934-02-15 ) [1] [2] (88 år)
Födelseort
Land
Vetenskaplig sfär Informationsteknologi
Arbetsplats ETH Zürich ,
Stanford University , University of
Zurich ,
Xerox PARC
Alma mater ETH Zürich ,
Laval University ,
UC Berkeley
Akademisk examen PhD ( 1963 ), M.Sc [d] ( 1960 ) och B.Sc ( 1959 )
Akademisk titel Professor i datavetenskap ( ETH )
vetenskaplig rådgivare Harry Husky
Känd som skapare av PL360 , ALGOL W , Euler , Modula-2 , Oberon , Oberon-2 , Pascal , Lola
Utmärkelser och priser Turing Award (1984), Computer Pioneer Medal (1987)
Autograf
Hemsida www.inf.ethz.ch/personal/wirth
Wikiquote logotyp Citat på Wikiquote
 Mediafiler på Wikimedia Commons

Niklaus Wirth ( tyska  Niklaus Emil Wirth , född 15 februari 1934 ) är en schweizisk vetenskapsman, datavetare , en av de mest kända teoretikerna inom området programmeringsspråksutveckling , professor i datavetenskap vid Swiss Federal Institute of Technology Zürich (ETHZ) ), vinnare av Turing Award 1984. Skapare och huvuddesigner av programmeringsspråken Pascal , Modula-2 , Oberon .

Biografi

Niklaus Wirth föddes den 15 februari 1934 i Winterthur , i utkanten av Zürich ( Schweiz ), i familjen Walter Wirth, en skollärare, och Hedwig Wirth, född Keller.

Som barn var Niklaus Wirth förtjust i flygplansmodellering och att bygga raketer, hans passion för elektronik och mjukvarustyrsystem började med utvecklingen av fjärrkontrollenheter för modeller. 1954 började han på fakulteten för elektronik vid det schweiziska federala tekniska institutet (ETH) i Zürich , där han avslutade en kandidatexamen i elektroteknik på fyra år . Han fortsatte sina studier vid University of Laval ( Quebec , Kanada), 1960 fick han en magisterexamen . Sedan blev han inbjuden till University of California i Berkeley (USA), där han 1963, under ledning av professor Harry Husky , försvarade sin avhandling, vars ämne var programmeringsspråket Euler ( engelska  Euler ) - en förlängning av Algol använder språket Lisp .

Wirths avhandling uppmärksammades av gemenskapen av programmeringsspråksutvecklare, och samma 1963 blev han inbjuden till IFIP ( International Federation of Informatics ) Algol Standardization Committee, som utvecklade en ny standard för Algol-språket, som senare blev Algol -68 . Tillsammans med Charles Hoare förespråkade Wirth i kommittén linjen att utveckla en måttligt modifierad version av Algol, fri från originalspråkets brister och kompletterad med ett minimum av verkligt nödvändiga medel. Wirth och Hoare presenterade för kommittén språket Algol-W (W för Wirth), som just var en sådan omarbetning av Algol, men som inte stöddes. I slutet av kommitténs arbete 1968 var Wirth en av dem som kritiserade Algol-68 och talade om dess otillräckliga tillförlitlighet och extrema redundans. Parallellt, från 1963 till 1967, arbetade Wirth som assistent vid Stanford University (USA). Tillsammans med Jim Wales utvecklade och implementerade han språket PL/360 , designat för programmering på IBM/360-plattformen  , ett Algol-liknande språk som introducerade ett antal systemberoende funktioner associerade med IBM/360-arkitekturen.

1967 återvände han som biträdande professor till universitetet i Zürich , 1968 fick han titeln professor i datavetenskap vid ETH . Arbetat på ETH i 31 år. Han var mycket engagerad i organisatoriska aktiviteter och förbättrade utbildningssystemet på sitt universitet.

1970 skapade han programmeringsspråket Pascal . På 1970-talet utvecklade han strukturerad programmeringsteknik tillsammans med Hoare och Dijkstra . Wirths artikel från 1971 "Program Development by Stepwise Refinement" beskrev och underbyggde vad som senare blev den klassiska "top-down" mjukvaruutvecklingsmetoden . För att porta Pascal-systemet till olika datorplattformar utvecklades 1973, med Wirths deltagande, en prototyp av en virtuell maskin som exekverar en mellanliggande "pi-kod" på vilken plattform som helst, i vilken alla program skulle vara sammanställt.

1975 utvecklade han Modula-språket , där han implementerade idéerna om att utveckla modulära program med väldefinierade intermodulgränssnitt och parallell programmering. Dessutom ändrades språkets syntax i modulen - Wirth gjorde sig av med behovet av att använda sammansatta operatorer i förgreningsstrukturer och loopar , ärvt från Algol-60 . Modulen var inte allmänt känd och hade bara en experimentell implementering, men dess modifierade version - Modula-2 , vars utveckling började 1977 och slutade 1980, utformad för att implementera systemmjukvaran för Lilith -systemet utvecklat i ETH ( Eng. Lilith ) - 16-bitars persondator, blev känd och ganska populär, även om den inte överträffade Pascal i popularitet, särskilt dess kommersiella implementeringar. Lilith-systemet gick om trenderna inom datorindustrin med flera år, Wirth sa senare med beklagande att genom att inte inse potentialen i detta system missade den schweiziska datorindustrin sin historiska chans. Utvecklingen av Modula-2 var Modula-3- språket , utvecklat gemensamt av DEC och Olivetti; Wirth deltog inte i dess skapelse.  

Under senare hälften av 1970-talet deltog Wirth i en tävling för det amerikanska försvarsdepartementet för att utveckla ett nytt språk för programmering av inbyggda system , vilket resulterade i språket Ada . Historien om Algol-68 upprepades - projektet för gruppen där Wirth och Hoare arbetade godkändes inte av språkkommittén. Som ett resultat vann tävlingen av ett projekt baserat på Pascal, men mycket mer komplext och omfattande.

Från 1982 till 1984 och från 1988 till 1990 ledde Wirth ETHs datavetenskapliga avdelning , sedan 1990 - Institutet för datorsystem vid ETH .

1988, i samarbete med Jürg Gutknecht ( tyska:  Jürg Gutknecht ), utvecklade Wirth programmeringsspråket Oberon . Syftet med utvecklingen var att skapa ett språk för att implementera systemmjukvaran för den nya arbetsstationen som designades. Grunden för Oberon var Modula-2 , som förenklades avsevärt, men som samtidigt kompletterades med nya funktioner.

1992 publicerade Wirth och Mössenböck ( tyska:  Hanspeter Mössenböck ) en rapport om ett nytt programmeringsspråk, Oberon-2 , en minimalt utökad version av Oberon. Samma år bildades ett dotterbolag till ETH - Oberon microsystems , som tog upp utvecklingen av Oberon- system . Wirth blev en av ledamöterna i dess styrelse. 1999 släppte detta företag nästa version av Oberon - Component Pascal , mer anpassad till komponentprogrammering . 1996 utvecklade Wirth ett annat originalprogrammeringsspråk - Lola , ett enkelt undervisningsspråk för den formella beskrivningen och simuleringen av digitala elektriska kretsar .

Den 1 april 1999 gick Wirth i pension, efter att ha uppnått åldersgränsen för en tjänsteman i Schweiz ( ETH  är ett statligt universitet, dess anställda är tjänstemän och deras arbete omfattas av relevant lagstiftning).

Den 19 juni 2007 tilldelades Virtu en hedersdoktorsexamen från Ryska vetenskapsakademin [3] . Initiativtagare till presentationen var en rysk forskare inom området informatik Shagaev, Igor Nikolaevich , professor vid London Metropolitan University , som var knuten till Niklaus Wirth genom ett gemensamt arbete 2005-2008 på det europeiska projektet ONBASS .

Medlem av nationella akademier: Swiss Academy of Engineering (Schweiz), US Academy of Engineering (USA), Berlin-Brandenburg Academy (Tyskland). Han är en "hedersdoktor vid ITMO University" (2005).

Priser och utmärkelser

Prestationer

Wirth utvecklade eller deltog i utvecklingen av programmeringsspråk: Euler, Algol-W, PL/360, Pascal, Modula-2, Oberon, Oberon-2, Component Pascal. Hans mest kända utveckling är förstås programmeringsspråket Pascal, som fick en enorm inverkan på flera generationer av programmerare och blev grunden för skapandet av ett stort antal programmeringsspråk. Ett annat grundläggande arbete där Wirth blev en deltagare är utvecklingen av strukturerad programmeringsteknik , som naturligtvis blev den starkaste formaliseringen inom programmering åtminstone under 1970- och 1980-talen. Denna teknik utvecklades, underbyggdes och användes i praktiken av endast tre framstående personer - Wirth, Dijkstra och Hoar .

Kommentatorer har noterat mer än en gång att Wirths idéer ofta låg före utvecklingen av datorindustrin med år, ibland årtionden. Pascal-P-systemet utvecklades i början av 1970-talet, vilket innebär att kompilera Pascal-program till en universell "pi-kod" och implementera en pi- kodtolkare på vilken plattform som helst (en av dess välkända implementeringar är UCSD-Pascal från University of University of San Diego), som gjorde det möjligt att porta Pascal-system till nya hårdvaruplattformar med minimal kostnad, var mer än två decennier före idéerna från den mellanliggande kodtolkaren implementerad i system som stöder exekvering av program på Java-språket och i .NET- plattformen . Idén att kombinera ett programmeringssystem med en sophämtare , som befriar programmeraren från behovet av att spåra livslängden för objekt som är dynamiskt allokerade i minnet, implementerades 1988 i Oberon-språket och operativsystemet. Båda dessa idéer användes av Java- och .NET-utvecklare under andra hälften av 1990-talet.

Vetenskapliga principer

Ett av de mest exakta uttrycken för de principer som Wirth följer i utvecklingen av alla sina projekt är kanske Einsteins fras i epigrafen till Oberon Language Report: "Gör det så enkelt som möjligt, men inte enklare än så." I alla hans verk kan man spåra det initiala fokuset på implementeringen av den mest effektiva lösningen på ett specifikt ingenjörsproblem på basis av en garanterat fungerande, matematiskt motiverad verktygslåda. Wirth är övertygad om att programmering bör vara en normal ingenjörsdisciplin som garanterar en tillräcklig nivå av tillförlitlighet för deras konstruktioner. Att uppnå tillförlitlighet är möjligt, enligt Wirth, på bara ett sätt: genom att förenkla så mycket som möjligt både själva systemen och verktygen som används för att skapa dem. I enlighet med denna princip har programmeringsspråken och systemen som utvecklats av Wirth alltid varit en modell av "rimlig tillräcklighet", till och med en slags askes - de försåg bara med det som inte kunde undvaras.

Även utbyggnaden av befintliga språk och system har alltid åtföljts av förenklingar. Enligt de beräkningar som publicerades i Sergei Sverdlovs artikel "Arithmetic of Syntax" [4] är "Wirth-linjen", som han kallade den - raden av språk, inklusive Pascal, Modula-2, Oberon och Oberon2 - det enda exemplet på den "genetiska linjen" av efterkommande språk Algol-60, där komplexiteten hos språket, definierat som antalet lexem i dess beskrivning, stadigt minskade och är för närvarande lägre än den för den gemensamma "förfadern" - Algol-60. Alla språk på Wirth-linjen är enklare än Algol-60, och varje nästa språk i denna rad är enklare än det föregående. Samtidigt är Ada mer än dubbelt så svår som sin föregångare - Pascal, C ++ är ungefär 1,7 gånger svårare än C, och i Pascal-linjen - Turbo Pascal av olika versioner - Object Pascal växer komplexiteten ständigt från version till version.

Wirth kritiserar ofta det "amerikanska förhållningssättet" till programmeringsutveckling, där marknadsföringsöverväganden råder över kraven på matematisk harmoni och garanterad tillförlitlighet, och varje ny modefluga åtföljs av okritisk introduktion av nya syntaktiska element i programmeringsspråk. Detta leder till en felaktig bedömning av vissa idéers roll och i slutändan till en felaktig prioritering i mjukvaruutveckling. Speciellt, på tal om OOP , noterade Wirth upprepade gånger att det är en ganska trivial förlängning av samma strukturella tillvägagångssätt, smaksatt med ny terminologi, och kan knappast göra anspråk på titeln "revolutionär programmeringsmetodik." Wirths snåla anmärkning om amerikanernas vana att antropocentrism i terminologi är välkänd: "De kallar en förlängning av typen" arv ", men i allmänhet går arvet vanligtvis över till efterkommande först när förfadern dör" (förresten, inte det mest lämpliga - i biologin innebär termen "ärftlig egenskap" inte en förfaders död).

En annan princip som Wirth alltid har vägletts av kan formuleras på följande sätt: ”Verktyget måste passa uppgiften. Om verktyget inte passar uppgiften måste du komma på ett nytt som skulle passa det, och inte försöka anpassa det befintliga. Han välkomnar inte utvecklingen av "universella språk i allmänhet". Varje system utvecklat av Wirth hade ett tydligt definierat syfte, räckvidd, och han tvekade alltid inte att utesluta allt som inte var nödvändigt för detta särskilda ändamål från utvecklingen. Här är det dock nödvändigt att klargöra: det "specifika syftet", till exempel, med Oberon är att säkerställa systemets extremt lätta och säkra utbyggnadsbarhet, och därför inte vara ett språk "universellt i allmänhet", det vill säga inte inklusive alla möjliga medel för alla tänkbara tillämpningar, Oberon är fortfarande fortfarande universell - "universell genom utvidgbarhet".

Se även

Böcker

Publicerad på ryska:

Wirths bok "Algorithms + data structures = programs" publicerades på ryska flera gånger i olika versioner och anses vara den första av tre klassiska läroböcker om strukturerad programmering . Den senaste versionen av boken har reviderats och översatts av författaren till Oberon- språket .

På engelska [5] [6] :

Anteckningar

  1. Niklaus Wirth // Brockhaus Encyclopedia  (tyska) / Hrsg.: Bibliographisches Institut & FA Brockhaus , Wissen Media Verlag
  2. Niklaus Wirth // Encyklopedie dějin města Brna  (tjeckiska) - 2004.
  3. Presidium för Ryska vetenskapsakademin. Dekret nr 141 "Om tilldelning av doktorsexamen honoris causa till en utländsk vetenskapsman Niklas Wirth" . RAS (19 juni 2007). Hämtad 9 april 2013. Arkiverad från originalet 15 juli 2014.
  4. Sergej Sverdlov. Syntax Aritmetik (otillgänglig länk) . Vologda State Pedagogical University. Hämtad 7 februari 2020. Arkiverad från originalet 14 maj 2009. 
  5. Arkiverad kopia . Hämtad 22 november 2016. Arkiverad från originalet 10 april 2016.
  6. Vissa böcker finns tillgängliga på författarens webbplats i elektronisk form.

Länkar