Douglas McIlroy | |
![]() | |
McIlroy a Japan Prize Foundation-nél 2011-ben | |
Született | Malcolm Douglas McIlroy 1932. április 24. (92 éves) Newburgh, New York |
Állampolgársága | amerikai ![]() |
Foglalkozása |
|
Iskolái |
|
![]() 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 , diff, sort, join, graph , speak és tr.[1] A makroprocesszorok é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 , az ALTRAN , a TMG és a C++ tervezésében.
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 ) 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 ) 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 ) végrehajtó bizottságának is tagja volt.[6]
McIlroy a makroprocesszorok[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 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 (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[17] használtak,[18] majd később átvitték és beépítették a Unix korai verzióiba.[19]
Az 1960-as és 1970-es években McIlroy a Multics (például a RUNOFF[20]) és a Unix operációs rendszerekhez készített (például a diff, echo, tr, join és look[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 fordító-kompilátort 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[20] és Stephen Johnson Yacc parser-generátorának 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[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]
McIlroy befolyásolta a SNOBOL 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 bizottságnak[27], és Robert Morrisszal együtt megírta az Early PL/I[28] (EPL) fordítóját TMG-ben a Multics projekt számára.[29][30]
1965 körül McIlroy W. Stanley Brownnal együtt megvalósította az ALTRAN programozási nyelv eredeti változatát az IBM 7094-es 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]
Az 1990-es években McIlroy a rendezési technikák javításán dolgozott, különösen Jon Bentley-vel 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 fedezett fel 1965-ben).[12][33]
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 é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 tagjává választották.[36]
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 száma („negatív” kód), miközben a program általános minősége, olvashatósága vagy sebessége javul).