Edsger Dijkstra

Edsger Wybe Dijkstra (Rotterdam, Herbehereak, 1930eko maiatzaren 11 - Nuenen, Herbehereak, 2002ko abuztuaren 6a) informatikari holandarra izan zen. 

Fisika Teorikoa ikasi zuen Leidengo unibertsitatean, baina aurrerago konputagailuen programazioaren oinarriak sendo finkatu zituzten informatikari aitzindarietako bat izan zen. Berak informatikan egindako funtsezko ekarpenak 40 baino gehiago izan ziren, eta 500 baino gehiago dira bere argitalpenak.

1980ko hamarkadaren hasieran ikertzaile lanetan aritu zen Burroughs Corporation izeneko enpresan. Austingo unibertsitatean (Texas, AEB) Schlumberger Centennial Chair in Computer Sciences lanpostuan aritu zen, 2000 urtean erretiratu zen. 2002ko abuztuaren 6an hil zen, minbiziaren aurkako borroka luze baten ostean.

Biografia

Lehen urteak 

Edsger W. Dijkstra Rotterdamen jaio zen.  Bere aita kimikaria zen, Herbehereetako Kimikarien Elkarteko lehendakaria ere izan zen; kimika irakasten zuen bigarren hezkuntzako eskola batean, eta gero bertako zuzendaria izan zen. Ama matematikaria zen, baina inoiz ez zuen lan formalik izan.

Dijkstrak zuzenbidea ikasi zuen, eta etorkizunean egun batean Nazio Batuetan Herbehereak ordezkatzeko ilusioa zuen. Hala ere, 1948an eskolan graduatu ondoren, gurasoek hala eskatuta, matematika eta fisika ikasi zituen, eta gero fisika teorikoa Leidengo Unibertsitatean.

1950eko hamarkadako lehen urteetan, konputagailu elektronikoak berrikuntza ziren. Dijkstrak bere ibilbidearekin topo egin zuen kasualitatez, eta, bere gainbegiralearen bidez,  irakasleak Adriaan van Wijngaarden, Amsterdamgo Zentro Matematikoko Konputazio Departamentuko zuzendaria, ezagutu zuen. Hark lan bat eskaini zion Dijkstrari, eta Herbehereetako lehen "programatzaile" bihurtu zen ofizialki.

Denbora batez, Dijkstrak fisikarekin lotuta jarraitu zuen, eta Leidenen lan egin zuen, astean hiru egunez. Konputazioarekin zuen harremana handitu ahala, ordea, gaiarekin zuen interesa aldatzen hasi zen. Berak gogoratu zuenez:

Maria (Ria) C. Debets-ekin ezkondu zenean 1957an, ezkontzeko paperak betetzerakoan eskatu zioten bere lanbidea zein zen esateko. Adierazi zuen programatzailea zela, baina funtzionariarentzat onartezina zen hori, Herbehereetan lanbide hori ezezaguna baitzen.
 
1959an, Amsterdamgo Unibertsitatean doktoratu zen, "Komunikatzea konputagailu automatiko batekin" izenburuko tesi batekin. Herbehereetan garatutako lehen konputagailu komertzialerako (Electrologica X1) diseinatutako mihiztadura-lengoaia deskribatzen du. Van Wijngaarden irakaslea izan zen tesi-zuzendaria.

Mathematisch Centrum, Amsterdam 

1952tik 1962ra, Dijkstrak Amsterdameko Mathematisch Centrum-en  lan egin zuen, ordenagailu bat eraikitzeko kontratatuta zeuden Bram Jan Loopstra eta Carel S. Scholten ikertzaileekin lan egin zuen. Haien arteko Interakzio-modua diziplinatua izan zen: lehenik hardwarearen eta softwarearen arteko interfazeari buruz erabakiko zuten, programazio-eskuliburu bat idatziz. Eta gero, hardware-diseinatzaileek kontratu horretan jarritakoarekin arabera eraiki beharko lukete, eta Dijkstrak, programatzaileak, artean ez zegoen makinarako softwarea idatziko luke. Esperientzia horretatik funtsezko bi ikasgai atera zituen: dokumentazio argi batek duen garrantzia batetik, eta bestetik, programazioko erroreen arazketa astuna neurri handi batean hasierako diseinu arduratsuaren bidez saihestu daitekeela.
Dijkstrak ibilbiderik laburrenaren problema enuntziatu eta konpondu zuen 1956an ARMAC ordenagailuaren inaugurazio ofizialeko  baterako. Artean konputazio automatikoari buruzko aldizkaririk ez zegoenez, ez zuen emaitza 1959ra arte argitaratu.

Matematika-zentroan, Dijkstrak eta  lankideak ALGOL 60 programazio-hizkuntzarako lehen konpiladorea garatu zuten 1960ko abuztuan, inongo beste konpiladore bat beste talde batek ekoitzi baino urtebete lehenago. ALGOL 60 lengoaia programazio egituratua garatzeko funtsezko aurrerapena ekartzeagatik izan zen ezaguna.

Eindhoven Teknologia Unibertsitatea 

1962an, Dijkstra Eindhovenera joan zen bizitzera, eta, geroago, Nuenenera, Herbehereetako hegoaldera. Han, irakasle bihurtu zen Eindhoveneko Teknologia Unibertsitateko Matematika Sailean. Unibertsitateak ez zuen informatikako sail independenterik, eta matematika saileko giroa ez zitzaion bereziki gustatzen. Problemak konpontzen lagun zezakeen informatikari talde bat eraikitzen saiatu zen Dijkstra. Hori ezohiko ikerketa-eredua izan zen Matematika Departamentuan. 1960eko amaieran THE sistema eragilea eraiki zuen (unibertsitateak orduan Technische Hogeschool Eindhoven izenez ezaguna), eta sistema horrek eragina izan du ondorengo sistema eragileen diseinuan, softwarean oinarritutako memoria birtuala erabiliz.

Burroughs Corporation 
Burroughs Corporation-era mugitu zen Dijkstra ikertzaile gisa 1973ko abuztuan. Enpresa hori ezaguna zen garai hartan, hardware-arkitektura berritzaile batean oinarritutako ordenagailuak ekoitzi zituelako. EUrtean zehar enpresaren ikerketa-zentro batzuk bisitatzea zen enpresarekin zuen eginbeharra, eta horretaz gain bere ikerketa egin zuen Burroughs-eko ikerketa-zentro txikienean, hau da, Djistrak berak Nuenen herrian zuen etxeko bigarren solairuko estudioan. Hain zuzen, Dijkstra izan zen Burroughs-eko ikertzaile bakarra, eta etxetik lan egin zuen, noizbehinka Estatu Batuetako sukurtsaletara bidaiatuz. Ondorioz, astean egun bakar batez murriztu zuen unibertsitateko eginbeharra. Egun horretan, asteartean, laster ezagutu zuten 'Tuesday Afternoon Club' izeneko eguna (Astearte arratsaldeko txokoa). Mintegi horretan, artikulu zientifikoak eztabaidatzen zituen lagunekin, eta alderdi guztiak aztertzen zituzten: notazioa, antolaketa, aurkezpena, hizkuntza, edukia, etab. 1984an Texasko Unibertsitatera (Austin, AEB) bizitzera joan eta gutxira, Tuesday Afternoon Club taldearen 'adar' berri bat sortu zen Austinen, Texasen.

Burroughseko urteak emankorrenak izan ziren bere ikerketa-artikuluen produkzioan. Ia 500 dokumentu idatzi zituen EWD seriean (beherago deskribatuak), gehienak txosten teknikoak, barne-dokumentazioa talde hautatu baten barruan.

Texasko Unibertsitatea Austinen 

Dijkstrak Schlumberger-en Mendeurreneko Katedra onartu zuen Texasko Unibertsitateko Informatika Sailean, Austinen, 1984an.

Azken urteak 
1999ko azaroan erretiroa hartu zuen arte Austinen lan egin zuen Dijkstrak. Informatika Sailak sinposio bat antolatu zuen, 2000ko maiatzean, Dijkstraren 70. urtebetetzea zela eta, ikerlariak informatikari egin zizkion funtsezko ekarpenak ospatzeko. 40 baino gehiago izan ziren egindako ekarpen horiek.

Dijkstra eta haren emaztea Austinetik itzuli ziren jatorrizko etxera, Nuenen herrian (Herbehereak). Han jakin zuen gaixorik zuela eta hilabete batzuk besterik ez zitzaizkiola geratzen. Austinen, Texasen, erretiroa hartu nahi zuela esan zuen, baina Herbeheretan hil ahal izateko izan zen. Dijkstra 2002ko abuztuaren 6an hil zen, minbiziaren aurkako borroka luze baten ondoren. Berak eta emazteak Maria (Ria) Debetsek hiru seme-alaba izan zituzten: Marcus, Femke, eta Rutger M. Dijkstra informatikaria.

Ekarpenak 

Dijkstra-k programen eratorpen formala izeneko metodoa planteatu zuen 1975ean, hau ere Hoare-ren kalkulutik eratorritakoa. Metodo horren arabera, programaren helburua espezifikazio jakin bat betetzea da eta horretara zuzendu behar da diseinua. Espezifikazioaren ondoko baldintzak, batetik, lortu nahi den emaitza nolakoa den adieraziko digu eta aurreko baldintzak, bestetik, datuek bete behar dituzten murriztapenak finkatuko ditu. Programazioa hala planteatuz gero ondoko baldintza bihurtzen da diseinuaren gidari, baina, hori bai, diseinuak eskatzen dituen gutxienezko betebeharrak aurreko baldintzak biltzen dituela aurreikusiz. Funtsezko ideia eta formalismoa Dijkstra-k azaldu bazuen ere, Gries izan zen espezifikaziotik abiatuta programak eratortzeko metodoa gehixeago landu eta ezagutzera eman zuena.

Hauek dira Dijkstraren ekarpen informatiko batzuk: Ibilbide motzenaren problemaren konponbidea (Dijkstraren algoritmoa bezala ere ezagututakoa), alderantzizko notazio poloniarra eta erlazionatutako shunting yard algoritmoa, THE multiprogramazio-sistema, bankariaren algoritmoa, eta prozesadoreak eta programak koordinatzeko asmatutako semaforoa. Dijkstrari zor zaion beste kontzeptu bat auto-oreka da, informatika banatuaren arloan, sistemaren fidagarritasuna ziurtatzeko bide alternatibo bat da. Dijsktraren algoritmoa gehienbat bide motzenean erabilia da, (Open Shortest Path First enrutazio gidaren arabera). Gainera, bere The Humble Programmer izeneko liburuan ateratako Software-ren krisia espresioa berari dagokio. Espresio hau askotan erabili izan zen OTAN-eko 1968-ko bileran. Turing saria irabazi zuen 1972-an.

Programazioko GOTO-ri buruz zuen iritziarengatik ezaguna zen, 1968 urtean Go to Statement Considered Harmful artikuluan atera zena. Dijkstra ALGOL-ren zale ezaguna izan zen, eta lengoaia horretarako lehen konpiladorea garatu zuen taldean egon zen. Urte berean, estruktura hierarkikoa zuen lehenengo sistema operatzailea sortu zuen. THE (Technische Hogeschool, Eindhoven) izena jarri zitzaion, eta helburu didaktikoetarako erabili zen.
1970tik aurrera, Dijkstraren interes nagusia baieztapen formala izan zen, eta hainbat inbestigazio egin zituen horren inguruan. Dijkstraren azken lanetako askok argudio matematikoak jariotasunez egiteari buruzkoak izan ziren.

Hautatutako argitalpenak

Liburuak 

 (1962). A Primer of ALGOL 60 Programming: Together with Report on the Algorithmic Language ALGOL 60. Academic Press. ISBN 978-0122162503.
 Dahl, Ole-Johan; Hoare, C.A.R. (1972). Structured Programming. Academic Press. ISBN 978-0-12-200550-3.
 (1976). A Discipline of Programming. Prentice Hall. ISBN 978-0132158718.
 (1982). Selected Writings on Computing: A Personal Perspective. Monographs in Computer Science. Springer. ISBN 978-0387906522.
 (1988) Feijen, W.H.J.; Sterringa, Joke A Method of Programming. Addison-Wesley. ISBN 978-0201175363.
 (1990) Scholten, Carel S.. Predicate Calculus and Program Semantics. Texts and Monographs in Computer Science. Springer-Verlag. ISBN 978-0387969572.

Hautatutako artikuluak 

 (1959). "A Note on Two Problems in Connexion with Graphs" (PDF). Numerische Mathematik. 23 (3): 269–271. CiteSeerX 10.1.1.165.7577. doi:10.1007/BF01386390. S2CID 123284777.

 (1962). "Some Meditations on Advanced Programming". Proc. IFIP Congress. Amsterdam: North-Holland. pp. 535–8.

 (1965). Cooperating Sequential Processes (Technical report). Technische Hogeschool Eindhoven. EWD-123. Retrieved 20 September 2020. Reprinted in Genuys, F., ed. (1968). Programming Languages: N.A.T.O. Advanced Summer School Held in Villard-de-Lans in 1966. Academic Press. pp. 43–112. OCLC 499952053. Published as Dijkstra, E.W. (1968). "Cooperating Sequential Processes". In Hansen, P.B. (ed.). The Origin of Concurrent Programming. New York: Springer. pp. 65–138. doi:10.1007/978-1-4757-3472-0_2. ISBN 978-1-4419-2986-0.

 (1965). "Solution of a Problem in Concurrent Programming Control". Comm. ACM. 8 (9): 569. doi:10.1145/365559.365617. S2CID 19357737.

 (1965). "Programming Considered as a Human Activity". Proc. IFIP Congress. pp. 213–7.

 (1968). "Go To Statement Considered Harmful". Letters to the editor. Comm. ACM. 11 (3): 147–8. doi:10.1145/362929.362947. S2CID 17469809.

 (1968). "A Constructive Approach to the Problem of Program Correctness". BIT Numerical Mathematics. 8 (3): 174–186. doi:10.1007/bf01933419. S2CID 62224342.

 (May 1968). "The Structure of the 'THE'-Multiprogramming System". ACM Symp. on Operating Systems. Comm. ACM. 11 (5): 341–346. doi:10.1145/363095.363143. S2CID 2021311.

 (April 1970). Notes on Structured Programming (PDF) (Report). 70-WSK-03 – via E.W. Dijkstra Archive. Center for American History, University of Texas at Austin.

 (1971). A Short Introduction to the Art of Computer Programming. Eindhoven: Technische Hogeschool. OCLC 3474242. EWD316.

 (1971). "Hierarchical Ordering of Sequential Processes". Acta Inform. 1 (2): 115–138. doi:10.1007/bf00289519. S2CID 31573213.

 (1972). "The Humble Programmer". Comm. ACM. 15 (10): 859–866. doi:10.1145/355604.361591.

 (June–July 1974). "Programming as a Discipline of Mathematical Nature". American Mathematical Monthly. 81 (6): 608–612. doi:10.2307/2319209. JSTOR 2319209.

 (1974). "On the role of scientific thought". E.W. Dijkstra Archive, Center for American History, University of Texas at Austin. EWD447.

 (1974). "Self-stabilizing Systems in Spite of Distributed Control". Comm. ACM. 17 (11): 643–4. doi:10.1145/361179.361202. S2CID 11101426.

 (1975). "How do we tell truths that might hurt?". Selected Writings on Computing: A Personal Perspective. Monographs in Computer Science. Springer (published 1982). pp. 129–131. ISBN 978-0387906522.

 (1975). "Craftsman or Scientist". ACM Pacific 1975. pp. 217–223.

 (1975). "On the teaching of programming, i. e. on the teaching of thinking". Language Hierarchies and Interfaces. 1975: 1–10.

 (1977). "Programming: From Craft to Scientific Discipline". International Computing Symposium. 1977: 23–30.

 (1978). "On the Interplay between Mathematics and Programming". Program Construction. Lecture Notes in Computer Science. Vol. 69. pp. 35–46. doi:10.1007/BFb0014649. ISBN 978-3-540-09251-3. S2CID 26233314.

 (1975). "Correctness Concerns And, Among Other Things, Why They Are Resented". (ACM) Proceedings of the International Conference on Reliable Software. 21–23 April 1975, Los Angeles, California, USA: 546–550.

 (1975). "Guarded Commands, Nondeterminacy and Formal Derivation of Programs". Comm. ACM. 18 (8): 453–7. doi:10.1145/360933.360975. S2CID 1679242.

 (1978). "Finding the Correctness Proof of a Concurrent Program". Program Construction. 1978: 24–34.

 (1984). "The threats to computing science". E.W. Dijkstra Archive, Center for American History, University of Texas at Austin. EWD898.

 (1986). "On a Cultural Gap". The Mathematical Intelligencer. 8 (1): 48–52. doi:10.1007/BF03023921. S2CID 120847834.

 (1987). "Mathematicians and Computing Scientists: The Cultural Gap". Abacus. 4 (4): 26–31.

 (1989). "On the Cruelty of Really Teaching Computer Science". A debate on teaching computing science. Comm. ACM. 32 (12): 1398–1404. doi:10.1145/76380.76381. S2CID 16961489.

 (1999). "Computing Science: Achievements and Challenges". ACM SIGAPP Applied Computing Review. 7 (2): 2–9. doi:10.1145/335527.335528. S2CID 34430415.

 (2001). "The End of Computing Science?". Comm. ACM. 44 (3): 92. doi:10.1145/365181.365217. S2CID 31142279.

 (2001). "What led to Notes on Structured Programming". E.W. Dijkstra Archive, Center for American History, University of Texas at Austin.

Erreferentziak

Bibliografia 

 Programen espezifikazio, egiaztapen eta eratorpen formala. Javier Alvez Gimenez, Xabier Arregi Iparragirre, Jose Gaintzarain Ibarmia, Paqui Lucio Carrasco, Montse Maritxalar Anglada (UEU eta UPV/EHU, 2016), EHUko Informatika Fakultateko 5 irakasleek liburu honetan software fidagarria eraikitzeko oinarrizko prestakuntza-ikastaro baterako materiala eskaintzen dute. Programazio-arloan hasi berria den edonorentzat baliagarria da.

 Dahl, O.J., Dijkstra, E.W., Hoare, C.A.R. "Structured Programming". Academic-Press, 1972.
 Dahl, O.J., Owe, O. "A Presentation of the Specification and Verification Project ABEL". Research Report in Informatics, 90 zb., Aza. 1984. Institutt for Informatikk, University of Oslo.
 Dijkstra, E.W. "Correctness concerns and, among other things, why they are resented". Int. Conf. Reliable Software, SIGPLAN Notices 10, Eka. 1975, pp 546-550.
 Dijkstra, E.W. "Guarded Commands, Nodeterminancy and Formal Derivation of Programs". Comm. to the A. C. M., Bol 18, 3 zb., Aug 1975.
 Dijkstra, E.W. "A Discipline of Programming". Prentice-Hall, 1976

Ikus, gainera 

 Dijkstraren algoritmo
 Niklaus Wirth
 Metodo formalak
 Software arkitektura
 Informatika
 Programazio egituratu
 Fisika teoriko

Kanpo estekak 

 Dijkstra-ren argazkiak 
 Dijkstraren idatziak (EWD) 
 "E.W. Dijkstra Archive". Center for American History, University of Texas at Austin.
 "Dijkstra's Rallying Cry for Generalization". Dijkstra-ren lanak eta gogoetak biltzeko webgunea, Edgar Graham Daylight informatikari historiazaleak sortua.

Informatikako aitzindariak
Herbehereetako fisikariak
Minbiziak hildakoak