# 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, Johannes Haantjes [nl] 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:
| « | Hiru urte inguru programatzen ibili ondoren, eztabaida bat izan nuen A. van Wijngaardenekin; orduan, Amsterdamgo Zentro Matematikoko burua zen, eta, harrezkero guztiz eskertuta gogoratu dut berarekin izan nuen eztabaida hura bizitza osoan. Kontua zen Leiden-eko Unibertsitatean fisika teorikoan ere aritu behar nuela aldi berean, eta gero eta zailagoa zen niretzat bi jardueretan aldi berean aritzea, erabaki behar zuen nonbait, ala programatzeari utzi eta fisikari erreal, errespetagarri bihurtzea, ala fisikari buruzko nire ikerketak gutxieneko esfortzu batekin ondorio formal batera bakarrik eramatea, eta bihurtzea... zer? Zer bihurtu? Programatzaile bat? Baina lanbide errespetagarria zen hura? Azken batean, zer zen programazioa? Non zegoen jakintza-gorputz sendo bat, intelektualki errespetagarria den diziplina gisa izatera ailegatzeko lagun zezakeena? Oso garbi gogoratzen dut nolako inbidia nien hardwareko lankideei. Haien gaitasun profesionalari buruz galdetuz gero, esan zezaketen huts-hodiei, anplifikadoreei eta gainerakoei buruz guztia zekitela, eta, aldiz, nik galdera horri programaziotik aurre egiten nionean, ezin nuen ezertxo ere esan. Errezeloz beteta, Van Wijngaarden bulegoko atea jo nuen, eta galdetu nion "une batez berarekin hitz egin" ahal zuen; handik ordu batzuetara bulegoa utzi nuenean, ni beste pertsona bat nintzen. Izan ere, nire kezkak lasai entzun ondoren, ados egon zen nirekin: ordura arte programazio-diziplina handirik ez zegoen; baina gero ahots apalez azaldu zuen konputagailu automatikoak hemen geratzeko zeudela, hasieran geundela eta ea ez nintzen izango ni hurrengo urteetan programazioa diziplina errespetagarri bihurtuko zuten pertsonetako bat. Hori inflexio-puntua izan zen nire bizitzan, eta fisikari buruzko nire ikerketa hura formalki osatu nuen... ahal nuen bezain azkar,». | » |
| —Edsger Dijkstra |||
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 Jaap Zonneveld [nl] 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.
| « | Testaren bidez programa informatiko batean akatsak badaudela erakuts daiteke, ez ordea akatsik ez dagoenik | » |
| —Edger Dijkstra |||

### 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

* 1 2 3 4 5 6 7 8 Faulkner, Larry R.; Durbin, John R.. (19 August 2013). In Memoriam: Edsger Wybe Dijkstra. University of Texas at Austin.
* ↑ «Edsger Wybe Dijkstra» Stichting Digidome 3 September 2003.
* ↑ O'Connor, J. J.; Robertson, E. F.. (July 2008). «Dijkstra biography» MacTutor (School of Mathematics and Statistics, University of St Andrews, Scotland).
* 1 2 Dijkstra, Edsger W.. (1972). «The Humble Programmer» ACM Turing Lecture 1972 EWD340.
* ↑ James, Mike. (1 May 2013). Edsger Dijkstra — The Poetry of Programming. i-programmer.info.
* ↑ Dijkstra, Edsger Wiebe. (28 October 1959). Communication with an automatic computer. Uitgeverij Excelsior/CWI.
* 1 2 3 4 Apt, Krzysztof R.. (2002). «Edsger Wybe Dijkstra (1930 - 2002): A portrait of a genius» Formal Aspects of Computing 14 (2): 92–98. doi:10.1007/s001650200029..
* ↑ Arregi, Xabier. (2016). «Programen espezifikazio, egiaztapen eta eratorpen formala» www.ueu.eus (Bilbo: UEU) ISBN 9788484385905. (Noiz kontsultatua: 2023-04-17).
* ↑ Goodwins, Rupert. (8 August 2002). Computer science pioneer Dijkstra dies. .
* ↑ Programen espezifikazio, egiaztapen eta eratorpen formala. Udako Euskal Unibertsitatea 2016 ISBN 978-84-8438-590-5. PMC 974392192. (Noiz kontsultatua: 2023-04-17).
* ↑ Programen Egiaztapena eta Eratorpena. .
* ↑ Xabier., Arregi,. (1993). Programen egiaztapena eta eratorpena. Udako Euskal Unibertsitatea ISBN 84-86967-50-3. PMC 907305093. (Noiz kontsultatua: 2023-04-17).

## 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 (Errusieraz)
* Dijkstraren idatziak (EWD) (Ingelesez)
* "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.
* Datuak: Q8556
* Multimedia: Edsger Wybe Dijkstra / Q8556