Ugrás a tartalomhoz

Douglas McIlroy

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából
Douglas McIlroy
McIlroy a Japan Prize Foundation-nél 2011-ben
McIlroy a Japan Prize Foundation-nél 2011-ben
SzületettMalcolm Douglas McIlroy
1932. április 24. (94 éves)
Newburgh, New York
Állampolgárságaamerikai USA
Foglalkozása
Iskolái
KitüntetéseiFellow of the American Association for the Advancement of Science (1995)[1]

A Wikimédia Commons tartalmaz Douglas McIlroy témájú médiaállományokat.

Malcolm Douglas McIlroy (Newburgh, New York, 1932. április 24. –) amerikai matematikus, mérnök és programozó. 2019-től a Dartmouth College informatika adjunktusa. McIlroy leginkább arról ismert, hogy eredetileg Unix-csővezetékeket javasolt, és számos Unix-eszközt fejlesztett ki, például az echo, spell(wd), diff, sort, join, graph(wd), speak(wd) és tr.[2] A makroprocesszorok(wd) és a programozási nyelvek bővíthetőségének egyik úttörő kutatója volt. Részt vett több alapvető programozási nyelv, különösen a PL/I, a SNOBOL(wd), az ALTRAN(wd), a TMG(wd) és a C++ tervezésében.

A szoftverkomponens-alapú szoftverfejlesztés[3] és a kód újrafelhasználása[4][5] terén végzett alapvető munkássága a komponensalapú szoftverfejlesztés és a szoftver termékcsalád-fejlesztés úttörőjévé teszi.

McIlroy a Cornell Egyetemen mérnöki fizikából szerzett alapdiplomát,[7] majd az MIT-n alkalmazott matematikából doktorált 1959-ben On the Solution of the Differential Equations of Conical Shells (konzulens Eric Reissner(wd)) című disszertációjával.[8] 1954 és 1958 között az MIT-n tanított.[7]

1958-ban csatlakozott a Bell Laboratorieshoz; 1965-től 1986-ig a Számítástechnikai Kutatási Osztály (a Unix operációs rendszer szülőhelye) vezetője volt, majd a műszaki személyzet kiváló tagja.[7]

1967 és 1968 között McIlroy az Oxfordi Egyetem vendégtanára is volt.[7]

1997-ben McIlroy nyugdíjba vonult a Bell Labs-től, és adjunktusi állást vállalt a Dartmouth Főiskola Informatikai Tanszékén.[7]

Korábban az Association for Computing Machinery (ACM(wd)) nemzeti előadóként, a Turing-díj elnökeként, a kiadványtervezési bizottság tagjaként, valamint a Communications of the ACM, a Journal of the ACM és az ACM Transactions on Programming Languages and Systems segédszerkesztőjeként dolgozott. A Computer Science Network (CSNET(wd)) végrehajtó bizottságának is tagja volt.[7]

Kutatás és hozzájárulások

[szerkesztés | forrásszöveg szerkesztése]

McIlroy a makroprocesszorok(wd)[9] úttörőjének tekinthető.[10][11][12] 1959-ben Douglas E. Eastwooddal, a Bell Labs munkatársával együtt bevezette a feltételes és rekurzív makrókat a népszerű SAP(wd) asszemblerbe,[13] létrehozva az úgynevezett Macro SAP-t.[14] Az 1960-ban megjelent tanulmánya szintén alapvető jelentőségű volt a makroprocesszorok segítségével történő bármilyen (beleértve a magas szintű) programozási nyelv kiterjesztése terén.[10][13] Ezek a hozzájárulások indították el a makro-nyelvek hagyományát a Bell Labs-ben („minden az L6-tól és az AMBIT-től a C-ig”).[15] McIlroy makrófeldolgozási ötletei voltak a TRAC(wd) (Text Reckoning And Compiling) makrófeldolgozó fő inspirálói is.[16]

Társszerzője volt a FORTRAN IV M6 makroprocesszornak is,[17] amelyet az ALTRAN-ban(wd)[18] használtak,[19] majd később átvitték és beépítették a Unix korai verzióiba.[20]

Hozzájárulás a Unixhoz

[szerkesztés | forrásszöveg szerkesztése]

Az 1960-as és 1970-es években McIlroy a Multics (például a RUNOFF(wd)[21]) és a Unix operációs rendszerekhez készített (például a diff, echo, tr, join és look(wd)[20]) programokat, amelyek változatai a mai napig széles körben elterjedtek a POSIX szabvány és a Unix-szerű operációs rendszerek elfogadása révén. Ő vezette be a Unix pipeline-ok gondolatát.[21] A TMG(wd) fordító-kompilátort(wd) PDP-7 és PDP-11 assembly nyelven is megvalósította, ami az első Unixon futó magas szintű programozási nyelv lett, ami Ken Thompson B programozási nyelvének[21] és Stephen Johnson Yacc parser-generátorának(wd) fejlesztésére ösztönözte és befolyásolta.[22]

McIlroy átvette Dennis Ritchie-től a Unix kézikönyv összeállítását is „szerelmi munkaként”. Különösen a UNIX 7-es verziójú manual pages kézikönyv-lapjainak 1. kötetét (General commands) szerkesztette.[23] Sandy Fraser(wd)[24] szerint: „Az a tény, hogy volt egy kézikönyv, és hogy ő [McIlroy] ragaszkodott a kézikönyv magas színvonalához, azt jelentette, hogy ragaszkodott a dokumentált programok mindegyikének magas színvonalához”.[25]

Számítógépes nyelvtervezés

[szerkesztés | forrásszöveg szerkesztése]

McIlroy befolyásolta a SNOBOL(wd) programozási nyelv tervezését és megvalósítását. Az ő karakterlánc-manipulációs makróit széles körben használták a SNOBOL 1962-es kezdeti implementációjában, és a későbbi munkákban is jelentős szerepet játszott, ami végül a gépfüggetlen implementációs nyelvhez, a SIL-hez vezetett. A SNOBOL4-hez McIlroy ragaszkodása nyomán 1969-ben hozzáadták a táblázat típust (asszociatív tömb).[26]

Az 1960-as években részt vett a PL/I programozási nyelv tervezésében.[5][27] Tagja volt a nyelvet tervező IBM-SHARE(wd) bizottságnak[28], és Robert Morrisszal(wd) együtt megírta az Early PL/I[29] (EPL) fordítóját TMG-ben(wd) a Multics projekt számára.[30][31]

1965 körül McIlroy W. Stanley Brownnal együtt megvalósította az ALTRAN(wd) programozási nyelv eredeti változatát az IBM 7094-es(wd) számítógépekre.[19][13]

McIlroy jelentős hatást gyakorolt a C++ programozási nyelv tervezésére is (pl. ő javasolta a << folyamkimeneti operátort).[32]

Az 1990-es években McIlroy a rendezési technikák javításán dolgozott, különösen Jon Bentley-vel(wd) közösen írt egy optimalizált qsortot.[33]

1969-ben hozzájárult egy hatékony algoritmushoz, amellyel egy gráf összes feszítőfája generálható (amelyet először George J. Minty(wd) fedezett fel 1965-ben).[13][34]

Díjak és elismerések

[szerkesztés | forrásszöveg szerkesztése]

1995-ben az American Association for the Advancement of Science (Amerikai Tudományfejlesztési Társaság) tagjává választották.[35] 2004-ben elnyerte a USENIX(wd) életműdíját („The Flame”)[36] és a Software Tools User Group (STUG) díját is.[2] 2006-ban a National Academy of Engineering(wd) tagjává választották.[37]

Nézetek a számítástechnikáról

[szerkesztés | forrásszöveg szerkesztése]

McIlroy-nak tulajdonítják az idézetet: „A programozás igazi hőse az, aki negatív kódot ír”[38], ahol a negatív kód jelentését a híres Apple-fejlesztő, Bill Atkinson csapatának anekdotájához[39] hasonlóan értelmezik (vagyis amikor egy program forrásában végzett változtatással csökken a kódsorok(wd) száma („negatív” kód), miközben a program általános minősége, olvashatósága vagy sebessége javul).

  • Brock, David C.; McIlroy, Malcom D. (2019. szeptember 30.). McIlroy, Malcom (Doug) Douglas oral history, part 1 of 2. Computer History Museum(wd). 59. o.
  • Brock, David C.; McIlroy, Malcom D. (2019. november 6.). McIlroy, Malcom (Doug) Douglas oral history, part 2 of 2. Computer History Museum. 52. o.
  1. "Elected Fellows | American Association for the Advancement of Science (AAAS)". Hozzáférés: 2025. június 17.
  2. 1 2 "STUG Award". USENIX. 2011. december 6. Hozzáférés: 2020. február 5.
  3. Bown, Rodney L., ed. (1986. június). "First International Conference on Ada (R) Programming Language Applications for the NASA Space Station, volume 2 - NASA-TM-101202" (PDF).
  4. McIlroy, Malcolm Douglas (1969. január). "Mass produced software components" (PDF). Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7–11 Oct. 1968. Scientific Affairs Division, NATO. 79. o.
  5. 1 2 Endres, Albert; Rombach, H. Dieter (2003). A Handbook of Software and Systems Engineering: Empirical Observations, Laws, and Theories. Pearson Education. 327. o.
  6. M. Douglas McIlroy
  7. 1 2 3 4 5 6 "Douglas McIlroy". HOPL: Online Historical Encyclopaedia of Programming Languages.
  8. "M. Douglas (Malcolm) McIlroy". Mathematics Genealogy Project. Hozzáférés: 2020. február 7.
  9. Az általános célú makroprocesszor (general-purpose macro processor) vagy általános célú előfeldolgozó (preprocessor) olyan makró-feldolgozó, amely nem kötődik, illetve nem integrálódik egy adott nyelvhez vagy szoftverhez
  10. 1 2 Layzell, P. (1985). "The History of Macro Processors in Programming Language Extensibility". The Computer Journal. 28 (1): 29–33. doi:10.1093/comjnl/28.1.29.
  11. David Walden (2014). "Macro memories, 1964–2013" (PDF). TUGboat. 35 (1).
  12. Krishnamurthi, Shriram; Felleisen, Matthias; Duba, Bruce F. (2000). "From Macros to Reusable Generative Programming" (PDF). In Czarnecki, Krzysztof; Eisenecker, Ulrich W. (eds.). Generative and Component-Based Software Engineering. Lecture Notes in Computer Science. Vol. 1799. Berlin, Heidelberg: Springer. 105–120. o. doi:10.1007/3-540-40048-6_9. ISBN 978-3-540-40048-6. S2CID 2576063. 2004. november 25. dátummal az eredeti (PDF) címről archiválva.
  13. 1 2 3 4 Holbrook, Bernard D.; Brown, W. Stanley. "Computing Science Technical Report No. 99 – A History of Computing Research at Bell Laboratories (1937–1975)". Bell Labs. Hozzáférés: 2020. február 2.{{cite web}}: CS1 karbantartás: elavult archiválási szolgáltatás (link)
  14. "Macro SAP – Macro compiler modification of SAP". HOPL: Online Historical Encyclopaedia of Programming Languages. 2008. augusztus 13. dátummal az eredeti címről archiválva. "Archivált másolat". 2008. augusztus 13. dátummal az eredeti címről archiválva. Hozzáférés: 2024. december 9.
  15. "Bell SAP – SAP with conditional and recursive macros". HOPL: Online Historical Encyclopaedia of Programming Languages. 2007. augusztus 21. dátummal az eredeti címről archiválva. "Archivált másolat". 2007. augusztus 21. dátummal az eredeti címről archiválva. Hozzáférés: 2024. december 9.
  16. Mooers, C.N.; Deutsch, L.P. (1965). "TRAC, A Text-Handling Language". Proceeding ACM '65 Proceedings of the 1965 20th national conference. 229–246. o. doi:10.1145/800197.806048. S2CID 40013081.
  17. Cole, A. J. (1981). Macro Processors (2nd, revised ed.). CUP Archive. 254. o.
  18. Az ALTRAN (ALgebraic TRANslator) egy programozási nyelv több változóból álló, egész együtthatóval rendelkező racionális függvények formális manipulálására. A Bell Labs-ben fejlesztették ki az 1960-as években.
  19. 1 2 Hall, A.D., "The ALTRAN System for Rational Function Manipulation — A Survey". Communications of the ACM, 14(8):517–521 (August 1971).
  20. 1 2 McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF). Computing Science. AT&T Bell Laboratories.
  21. 1 2 3 Ritchie, Dennis M. (1984). "The Evolution of the Unix Time-sharing System". AT&T Bell Laboratories Technical Journal. 63 (6 Part 2): 1577–93. doi:10.1002/j.1538-7305.1984.tb00054.x. 2010. május 6. dátummal az eredeti címről archiválva. As PDF
  22. Johnson, Stephen C. (1975). Yacc: Yet Another Compiler-Compiler. Murray Hill, New Jersey: AT&T Bell Laboratories. 2011. július 11. dátummal az eredeti címről archiválva. Hozzáférés: 2020. január 31. {{cite book}}: More than one of |accessdate= és |access-date= specified (súgó); More than one of |archivedate= és |archive-date= specified (súgó); More than one of |archiveurl= és |archive-url= specified (súgó)
  23. Dzonsons, Kristaps; Schwarze, Ingo. "History of UNIX Manpages". Practical UNIX Manuals.
  24. Alexander G. Fraser (1937. június 8. – 2022. június 13.), Sandy Fraser néven is ismert, neves brit-amerikai informatikus és az AT&T korábbi vezető tudósa volt.
  25. "The Creation of the UNIX Operating System". Bell Labs. 2004. szeptember 14. dátummal az eredeti címről archiválva.
  26. Griswold, Ralph (1978). "A history of the SNOBOL programming languages". ACM SIGPLAN Notices. 13 (8). ACM: 275–308. doi:10.1145/960118.808393. ISSN 0362-1340. S2CID 5413577.
  27. Lawson, Harold; Bromberg, Howard (1997. június 12.). "The World's First COBOL Compilers". 2004. június 4. dátummal az eredeti címről archiválva.
  28. Michael S. Mahoney (1989. augusztus 18.). "Interview with M.D. McIlroy". Princeton.edu. Murray Hill.
  29. Az Early PL/I (EPL), a PL/I egy részhalmazának dialektusa (1964).
  30. R. A. Frieburghouse. "The Multics PL/1 Compiler". Multicians.org.
  31. Tom Van Vleck (ed.). "The Choice of PL/I". Multicians.org.
  32. Stroustrup, Bjarne. "A History of C++: 1979−1991" (PDF).
  33. Jon L. Bentley; M. Douglas McIlroy (1993. november). "Engineering a sort function". Software—Practice & Experience. 23 (11).
  34. Narsingh Deo (1974). Graph Theory with Applications to Engineering and Computer Science. Prentice-Hall. 480. o.
  35. "Elected Fellows: Listing of Fellows who are current members". aaas.org. American Association for the Advancement of Science.
  36. "Flame Award". USENIX. 2011. december 6. Hozzáférés: 2020. február 5.
  37. "Dr. M. Douglas McIlroy". nae.edu. National Academy of Engineering. Hozzáférés: 2020. február 5.
  38. These quotes were heard during a talk he gave to the DLSLUG 12/3/09
  39. "MacPaint and QuickDraw Source Code". Computer History Museum. 2010. július 18.

További információk

[szerkesztés | forrásszöveg szerkesztése]
  • Ez a szócikk részben vagy egészben a Douglas McIlroy című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.