Douglas McIlroy
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.
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. | |
Sablon • Wikidata • Segí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.
Életrajza[5]
szerkesztésMcIlroy 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]
Kutatás és hozzájárulások
szerkesztésMakroprocesszorok
szerkesztésMcIlroy 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]
Hozzájárulás a Unixhoz
szerkesztésAz 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]
Számítógépes nyelvtervezés
szerkesztésMcIlroy 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]
Algoritmusok
szerkesztésAz 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]
Díjak és elismerések
szerkesztés1995-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]
Nézetek a számítástechnikáról
szerkesztésMcIlroy-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).
Irodalom
szerkesztés- McIlroy, Malcom (Doug) Douglas oral history, part 1 of 2. Computer History Museum , 59. o. (2019. szeptember 30.)
- McIlroy, Malcom (Doug) Douglas oral history, part 2 of 2. Computer History Museum, 52. o. (2019. november 6.)
Jegyzetek
szerkesztés- ↑ a b STUG Award. USENIX, 2011. december 6. (Hozzáférés: 2020. február 5.)
- ↑ First International Conference on Ada (R) Programming Language Applications for the NASA Space Station, volume 2 - NASA-TM-101202, 1986. június 1.
- ↑ 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.
- ↑ a b A Handbook of Software and Systems Engineering: Empirical Observations, Laws, and Theories. Pearson Education, 327. o. (2003)
- ↑ M. Douglas McIlroy
- ↑ a b c d e f Douglas McIlroy, HOPL: Online Historical Encyclopaedia of Programming Languages
- ↑ M. Douglas (Malcolm) McIlroy. Mathematics Genealogy Project. (Hozzáférés: 2020. február 7.)
- ↑ 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
- ↑ 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.
- ↑ David Walden (2014). „Macro memories, 1964–2013”. TUGboat 35.
- ↑ 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
- ↑ 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.)
- ↑ Macro SAP – Macro compiler modification of SAP, HOPL: Online Historical Encyclopaedia of Programming Languages
- ↑ Bell SAP – SAP with conditional and recursive macros, HOPL: Online Historical Encyclopaedia of Programming Languages
- ↑ TRAC, A Text-Handling Language, Proceeding ACM '65 Proceedings of the 1965 20th national conference, 229–246. o.. DOI: 10.1145/800197.806048 (1965)
- ↑ Cole, A. J.. Macro Processors, 2nd, revised, CUP Archive, 254. o. (1981)
- ↑ 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.
- ↑ a b Hall, A.D., "The ALTRAN System for Rational Function Manipulation — A Survey". Communications of the ACM, 14(8):517–521 (August 1971).
- ↑ a b A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986, Computing Science (1987)
- ↑ 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
- ↑ Johnson, Stephen C.. Yacc: Yet Another Compiler-Compiler. Murray Hill, New Jersey: AT&T Bell Laboratories (1975)
- ↑ History of UNIX Manpages. Practical UNIX Manuals
- ↑ 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.
- ↑ The Creation of the UNIX Operating System. Bell Labs. [2004. szeptember 14-i dátummal az eredetiből archiválva].
- ↑ 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.
- ↑ The World's First COBOL Compilers, 1997. június 12. [2004. június 4-i dátummal az eredetiből archiválva].
- ↑ Michael S. Mahoney: Interview with M.D. McIlroy. Princeton.edu , 1989. augusztus 18.
- ↑ Az Early PL/I (EPL), a PL/I egy részhalmazának dialektusa (1964).
- ↑ R. A. Frieburghouse: The Multics PL/1 Compiler. Multicians.org
- ↑ The Choice of PL/I. Multicians.org
- ↑ Stroustrup, Bjarne: A History of C++: 1979−1991
- ↑ (1993. november 1.) „Engineering a sort function”. Software—Practice & Experience 23 (11).
- ↑ Narsingh Deo. Graph Theory with Applications to Engineering and Computer Science. Prentice-Hall, 480. o. (1974)
- ↑ Elected Fellows: Listing of Fellows who are current members. aaas.org . American Association for the Advancement of Science
- ↑ Flame Award. USENIX, 2011. december 6. (Hozzáférés: 2020. február 5.)
- ↑ Dr. M. Douglas McIlroy. nae.edu . National Academy of Engineering. (Hozzáférés: 2020. február 5.)
- ↑ These quotes were heard during a talk he gave to the DLSLUG 12/3/09
- ↑ MacPaint and QuickDraw Source Code. Computer History Museum, 2010. július 18.
További információk
szerkesztés- Archivált honlapja a Bell Labs-nál
- Publikációk
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.