Douglas McIlroy

amerikai matematikus, mérnök és programozó
Ez a közzétett változat, ellenőrizve: 2024. december 9.

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.[1] 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.

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. (92 éves)
Newburgh, New York
Állampolgárságaamerikai USA
Foglalkozása
Iskolái

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

A szoftverkomponens-alapú szoftverfejlesztés[2] és a kód újrafelhasználása[3][4] 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,[6] 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.[7] 1954 és 1958 között az MIT-n tanított.[6]

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.[6]

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

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.[6]

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.[6]

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

szerkesztés

Makroprocesszorok

szerkesztés

McIlroy a makroprocesszorok(wd)[8] úttörőjének tekinthető.[9][10][11] 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,[12] létrehozva az úgynevezett Macro SAP-t.[13] 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.[9][12] 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”).[14] McIlroy makrófeldolgozási ötletei voltak a TRAC(wd) (Text Reckoning And Compiling) makrófeldolgozó fő inspirálói is.[15]

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

Hozzájárulás a Unixhoz

szerkesztés

Az 1960-as és 1970-es években McIlroy a Multics (például a RUNOFF(wd)[20]) és a Unix operációs rendszerekhez készített (például a diff, echo, tr, join és look(wd)[19]) 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.[20] A TMG(wd) fordító-kompilátort(wd) PDP-7(wd) é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[20] és Stephen Johnson Yacc parser-generátorának(wd) fejlesztésére ösztönözte és befolyásolta.[21]

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.[22] Sandy Fraser(wd)[23] 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”.[24]

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

szerkesztés

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).[25]

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

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.[18][12]

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

Algoritmusok

szerkesztés

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.[32]

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).[12][33]

Díjak és elismerések

szerkesztés

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

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

szerkesztés

McIlroy-nak tulajdonítják az idézetet: „A programozás igazi hőse az, aki negatív kódot ír”[37], ahol a negatív kód jelentését a híres Apple-fejlesztő, Bill Atkinson csapatának anekdotájához[38] 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).

  1. a b STUG Award. USENIX, 2011. december 6. (Hozzáférés: 2020. február 5.)
  2. First International Conference on Ada (R) Programming Language Applications for the NASA Space Station, volume 2 - NASA-TM-101202, 1986. június 1.
  3. McIlroy, Malcolm Douglas: Mass produced software components. Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7–11 Oct. 1968. Scientific Affairs Division, NATO, 1969. január 1.
  4. a b A Handbook of Software and Systems Engineering: Empirical Observations, Laws, and Theories. Pearson Education, 327. o. (2003) 
  5. M. Douglas McIlroy
  6. a b c d e f Douglas McIlroy, HOPL: Online Historical Encyclopaedia of Programming Languages 
  7. M. Douglas (Malcolm) McIlroy. Mathematics Genealogy Project. (Hozzáférés: 2020. február 7.)
  8. 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
  9. a b Layzell, P. (1985). „The History of Macro Processors in Programming Language Extensibility”. The Computer Journal 28 (1), 29–33. o. DOI:10.1093/comjnl/28.1.29. 
  10. David Walden (2014). „Macro memories, 1964–2013”. TUGboat 35. 
  11. From Macros to Reusable Generative Programming, Generative and Component-Based Software Engineering, Lecture Notes in Computer Science. Berlin, Heidelberg: Springer, 105–120. o.. DOI: 10.1007/3-540-40048-6_9 (2000). ISBN 978-3-540-40048-6 
  12. a b c d Computing Science Technical Report No. 99 – A History of Computing Research at Bell Laboratories (1937–1975). Bell Labs. [2014. szeptember 2-i dátummal az eredetiből archiválva]. (Hozzáférés: 2020. február 2.)
  13. Macro SAP – Macro compiler modification of SAP, HOPL: Online Historical Encyclopaedia of Programming Languages 
  14. Bell SAP – SAP with conditional and recursive macros, HOPL: Online Historical Encyclopaedia of Programming Languages 
  15. TRAC, A Text-Handling Language, Proceeding ACM '65 Proceedings of the 1965 20th national conference, 229–246. o.. DOI: 10.1145/800197.806048 (1965) 
  16. Cole, A. J.. Macro Processors, 2nd, revised, CUP Archive, 254. o. (1981) 
  17. 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.
  18. a b Hall, A.D., "The ALTRAN System for Rational Function Manipulation — A Survey". Communications of the ACM, 14(8):517–521 (August 1971).
  19. a b A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986, Computing Science (1987) 
  20. a b c Ritchie, Dennis M. (1984). „The Evolution of the Unix Time-sharing System”. AT&T Bell Laboratories Technical Journal 63, 1577–93. o. DOI:10.1002/j.1538-7305.1984.tb00054.x.  As PDF
  21. Johnson, Stephen C.. Yacc: Yet Another Compiler-Compiler. Murray Hill, New Jersey: AT&T Bell Laboratories (1975) 
  22. History of UNIX Manpages. Practical UNIX Manuals
  23. 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.
  24. The Creation of the UNIX Operating System. Bell Labs. [2004. szeptember 14-i dátummal az eredetiből archiválva].
  25. Griswold, Ralph (1978). „A history of the SNOBOL programming languages”. ACM SIGPLAN Notices 13, 275–308. o, Kiadó: ACM. DOI:10.1145/960118.808393. ISSN 0362-1340. 
  26. The World's First COBOL Compilers, 1997. június 12. [2004. június 4-i dátummal az eredetiből archiválva].
  27. Michael S. Mahoney: Interview with M.D. McIlroy. Princeton.edu , 1989. augusztus 18.
  28. Az Early PL/I (EPL), a PL/I egy részhalmazának dialektusa (1964).
  29. R. A. Frieburghouse: The Multics PL/1 Compiler. Multicians.org
  30. The Choice of PL/I. Multicians.org
  31. Stroustrup, Bjarne: A History of C++: 1979−1991
  32. (1993. november 1.) „Engineering a sort function”. Software—Practice & Experience 23 (11). 
  33. Narsingh Deo. Graph Theory with Applications to Engineering and Computer Science. Prentice-Hall, 480. o. (1974) 
  34. Elected Fellows: Listing of Fellows who are current members. aaas.org . American Association for the Advancement of Science
  35. Flame Award. USENIX, 2011. december 6. (Hozzáférés: 2020. február 5.)
  36. Dr. M. Douglas McIlroy. nae.edu . National Academy of Engineering. (Hozzáférés: 2020. február 5.)
  37. These quotes were heard during a talk he gave to the DLSLUG 12/3/09
  38. MacPaint and QuickDraw Source Code. Computer History Museum, 2010. július 18.

További információk

szerkesztés

Fordítás

szerkesztés
  • 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.