Douglas McIlroy
| Douglas McIlroy | |
| McIlroy a Japan Prize Foundation-nél 2011-ben | |
| Született | Malcolm Douglas McIlroy 1932. április 24. (94 éves) Newburgh, New York |
| Állampolgársága | amerikai |
| Foglalkozása |
|
| Iskolái |
|
| Kitüntetései | Fellow 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, diff, sort, join, graph, speak és tr.[2] 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[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.
Életrajza[6]
[szerkesztés | forrásszöveg szerkesztése]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) 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) 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.[7]
Kutatás és hozzájárulások
[szerkesztés | forrásszöveg szerkesztése]Makroprocesszorok
[szerkesztés | forrásszöveg szerkesztése]McIlroy a makroprocesszorok[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 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 (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[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[21]) és a Unix operációs rendszerekhez készített (például a diff, echo, tr, join és look[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 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[21] és Stephen Johnson Yacc parser-generátorának 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[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 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 bizottságnak[28], és Robert Morrisszal együtt megírta az Early PL/I[29] (EPL) fordítóját TMG-ben a Multics projekt számára.[30][31]
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.[19][13]
McIlroy jelentős hatást gyakorolt a C++ programozási nyelv tervezésére is (pl. ő javasolta a << folyamkimeneti operátort).[32]
Algoritmusok
[szerkesztés | forrásszöveg szerkesztése]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.[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 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 é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 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 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 | forrásszöveg szerkesztése]- Brock, David C.; McIlroy, Malcom D. (2019. szeptember 30.). McIlroy, Malcom (Doug) Douglas oral history, part 1 of 2. Computer History Museum. 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.
Jegyzetek
[szerkesztés | forrásszöveg szerkesztése]- ↑ "Elected Fellows | American Association for the Advancement of Science (AAAS)". Hozzáférés: 2025. június 17.
- 1 2 "STUG Award". USENIX. 2011. december 6. Hozzáférés: 2020. február 5.
- ↑ 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).
- ↑ 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.
- 1 2 Endres, Albert; Rombach, H. Dieter (2003). A Handbook of Software and Systems Engineering: Empirical Observations, Laws, and Theories. Pearson Education. 327. o.
- ↑ M. Douglas McIlroy
- 1 2 3 4 5 6 "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
- 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.
- ↑ David Walden (2014). "Macro memories, 1964–2013" (PDF). TUGboat. 35 (1).
- ↑ 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.
- 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) - ↑ "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.
- ↑ "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.
- ↑ 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.
- ↑ Cole, A. J. (1981). Macro Processors (2nd, revised ed.). CUP Archive. 254. o.
- ↑ 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.
- 1 2 Hall, A.D., "The ALTRAN System for Rational Function Manipulation — A Survey". Communications of the ACM, 14(8):517–521 (August 1971).
- 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.
- 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
- ↑ 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ó) - ↑ Dzonsons, Kristaps; Schwarze, Ingo. "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. dátummal az eredeti címről archiválva.
- ↑ 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.
- ↑ 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.
- ↑ Michael S. Mahoney (1989. augusztus 18.). "Interview with M.D. McIlroy". Princeton.edu. Murray Hill.
- ↑ Az Early PL/I (EPL), a PL/I egy részhalmazának dialektusa (1964).
- ↑ R. A. Frieburghouse. "The Multics PL/1 Compiler". Multicians.org.
- ↑ Tom Van Vleck (ed.). "The Choice of PL/I". Multicians.org.
- ↑ Stroustrup, Bjarne. "A History of C++: 1979−1991" (PDF).
- ↑ Jon L. Bentley; M. Douglas McIlroy (1993. november). "Engineering a sort function". Software—Practice & Experience. 23 (11).
- ↑ Narsingh Deo (1974). Graph Theory with Applications to Engineering and Computer Science. Prentice-Hall. 480. o.
- ↑ "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 | forrásszöveg szerkesztése]- Archivált honlapja a Bell Labs-nál
- Publikációk
Fordítás
[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.