Douglas McIlroy - Douglas McIlroy
Malcolm Douglas McIlroy | |
---|---|
![]() McIlroy v Nadaci pro japonské ceny v roce 2011 | |
narozený | 1932 (věk 87–88) |
Alma mater | Cornell University (BS, 1954) Massachusetts Institute of Technology (Ph.D., 1959) |
Známý jako | Makra, Unixové potrubí, Filozofie Unixu, softwarové komponenty, echo, rozdíl, třídit, připojit se, roff, tr, Unixový manuál |
Vědecká kariéra | |
Pole | počítačová věda, matematika, inženýrství |
Teze | O řešení diferenciálních rovnic kónických skořápek (1959) |
Doktorští poradci | Eric Reissner |
webová stránka | www |
Malcolm Douglas McIlroy (narozen 1932) je a matematik, inženýr, a programátor. Od roku 2019 je mimořádným profesorem Počítačová věda na Dartmouth College.McIlroy je nejlépe známý tím, že původně navrhl Unixové potrubí a vyvinuli několik Unix nástroje, jako např hláskovat, rozdíl, třídit, připojit se, graf, mluvit, a tr.[1] Byl také jedním z průkopnických výzkumníků makro procesory a rozšiřitelnost programovacího jazyka. Podílel se zejména na navrhování několika vlivných programovacích jazyků PL / I., SNOBOL, ALTRAN, TMG a C ++.
Jeho klíčová práce o softwarové komponentizaci[2] a opětovné použití kódu[3][4] z něj dělá průkopníka komponentové softwarové inženýrství a softwarová produktová řada.
Životopis
McIlroy si vysloužil své Bakalářský titul ve strojírenské fyzice od Cornell University,[5] a a Ph.D. v aplikované matematice z MIT v roce 1959 za svou diplomovou práci O řešení diferenciálních rovnic kónických skořápek (poradce Eric Reissner ).[6]Učil na MIT v letech 1954 až 1958.[5]
McIlroy se přidal Bell Laboratories v roce 1958; v letech 1965 až 1986 byl vedoucím jeho Výzkumného oddělení výpočetní techniky (rodiště operačního systému Unix) a poté byl významným členem technického personálu.[5]
V letech 1967 až 1968 působil McIlroy také jako hostující lektor v Oxfordská univerzita.[5]
V roce 1997 McIlroy odešel z Bell Labs a nastoupil na pozici mimořádného profesora v Dartmouth College Oddělení informatiky.[5]
Předtím sloužil Sdružení pro výpočetní techniku jako národní lektor, Turing Award předseda, člen výboru pro plánování publikací a pomocný redaktor pro Komunikace ACM, Deník ACM, a Transakce ACM v programovacích jazycích a systémech. Působil také ve výkonném výboru CSNET.[5]
Výzkum a příspěvky
Makro procesory
McIlroy je považován za průkopníka makro procesory.[7][8][9] V roce 1959 uvedl společně s Douglasem E. Eastwoodem z Bell Labs podmíněná a rekurzivní makra do populárních MÍZA montér,[10] vytváření takzvaného makra SAP.[11] Jeho práce z roku 1960 byla také klíčová v oblasti rozšiřování jakékoli (včetně vysoká úroveň ) programovací jazyky prostřednictvím makroprocesorů.[7][10] Tyto příspěvky zahájily tradici makrojazyků v laboratořích Bell („vše od L6 a AMBIT po C“).[12] Hlavní inspirací byly také McIlroyovy nápady na zpracování maker TRAC makro procesor.[13]
Spoluautorem také byl makroprocesor M6 FORTRAN IV,[14] který byl použit v ALTRAN[15] a později byl přenesen do a zahrnut do dřívější verze Unixu.[16]
Příspěvky do Unixu
Skrz 1960 a 1970 McIlroy přispěl programy pro Multics (jako odtok[17]) a Unix operační systémy (např rozdíl, echo, tr, připojit se a Koukni se[16]), jejichž verze jsou dodnes rozšířeny přijetím POSIX standardní a Unixový operační systémy. Představil myšlenku unixových potrubí.[17] Také implementoval TMG překladač-překladač v PDP-7 a PDP-11 shromáždění, které se stalo prvním programovacím jazykem vysoké úrovně běžícím na Unixu, což vedlo k vývoji a ovlivňování Ken Thompson je B programovací jazyk[17] a Stephena Johnsona Yacc analyzátor-generátor.[18]
McIlroy také převzal od Dennis Ritchie kompilace Unixový manuál „jako práce lásky“. Zejména upravil svazek 1 manuálových stránek pro verzi 7 Unix.[19] Podle Sandy Fraser „Skutečnost, že existoval manuál, že [McIlroy] trval na vysokém standardu příručky, znamenala, že trval na vysokém standardu pro každý dokumentovaný program“.[20]
Návrh počítačového jazyka
McIlroy ovlivnil návrh a implementaci SNOBOL programovací jazyk. Jeho makra pro manipulaci s řetězci byla hojně používána při počáteční implementaci SNOBOL z roku 1962 a byla prominentní v následné práci, která nakonec vedla k jejímu strojově nezávislému implementačnímu jazyku SIL. Typ tabulky (asociativní pole ) byl přidán do SNOBOL4 na naléhání McIlroye v roce 1969.[21]
V 60. letech se podílel na designu PL / I. programovací jazyk.[4][22] Byl členem IBM –PODÍL výbor, který jazyk navrhl[23] a společně s Robert Morris, napsal Brzy PL / I Překladač (EPL) v TMG pro Multics projekt.[24][25]
Kolem roku 1965 zavedl McIlroy spolu s W. Stanley Brownem původní verzi ALTRAN programovací jazyk pro IBM 7094 počítače.[15][10]
McIlroy také významně ovlivnil design programovacího jazyka C ++ (např. navrhl operátor výstupu streamu <<
).[26]
Algoritmy
V 90. letech pracoval McIlroy na zdokonalování třídicích technik, zejména spoluautorem optimalizované qsort s Jon Bentley.[27]
V roce 1969 přispěl účinným algoritmem ke generování všech klenout se nad stromy v graf (poprvé objeven Georgem J. Mintym v roce 1965).[10][28]
Ocenění a uznání
V roce 1995 byl zvolen členem FNM Americká asociace pro rozvoj vědy.[29] V roce 2004 vyhrál oba USENIX Cena za celoživotní přínos („Plamen“)[30] a ocenění skupiny uživatelů softwarových nástrojů (STUG).[1] V roce 2006 byl zvolen za člena National Academy of Engineering.[31]
Pohledy na práci s počítačem
McIlroyovi je přisuzován citát „Skutečným hrdinou programování je ten, kdo píše negativní kód,“[32] kde význam negativní kód je považován za podobný slavnému Jablko anekdota vývojového týmu[33] (tj. při změně programu zdroj dělá počet řádky kódu snížit („negativní“ kód), zatímco se zlepší jeho celková kvalita, čitelnost nebo rychlost).
Viz také
Reference
- ^ A b „Cena STUG“. USENIX. Citováno 5. února 2020.
- ^ Bown, Rodney L., vyd. (2. – 5. Června 1986). „První mezinárodní konference o programovacích jazykových aplikacích Ada (R) pro vesmírnou stanici NASA, svazek 2 - NASA-TM-101202“ (PDF).
- ^ McIlroy, Malcolm Douglas (leden 1969). "Hromadně vyráběné softwarové komponenty" (PDF). Softwarové inženýrství: Zpráva z konference sponzorované Vědeckým výborem NATO, Garmisch, Německo, 7. – 11. Října 1968. Oddělení pro vědecké záležitosti, NATO. str. 79.
- ^ A b Endres, Albert; Rombach, H. Dieter (2003). Příručka softwarového a systémového inženýrství: Empirická pozorování, zákony a teorie. Pearson Education. str. 327.
- ^ A b C d E F „Douglas McIlroy“. HOPL: Online historická encyklopedie programovacích jazyků.
- ^ „M. Douglas (Malcolm) McIlroy“. Matematický genealogický projekt. Citováno 7. února 2020.
- ^ A b Layzell, P. (1985). „Historie makroprocesorů v rozšiřitelnosti programovacího jazyka“. Počítačový deník. 28 (1): 29–33. doi:10.1093 / comjnl / 28.1.29.
- ^ David Walden (2014). „Makro vzpomínky, 1964–2013“ (PDF). Remorkér. 35 (1).
- ^ Krishnamurthi, Shriram; Felleisen, Matthias; Duba, Bruce F. (2000). Czarnecki, Krzysztof; Eisenecker, Ulrich W. (eds.). „Od maker k opakovaně použitelnému generativnímu programování“ (PDF). Generativní a komponentové softwarové inženýrství. Přednášky z informatiky. Berlín, Heidelberg: Springer. 1799: 105–120. doi:10.1007/3-540-40048-6_9. ISBN 978-3-540-40048-6. Archivovány od originál (PDF) dne 25. listopadu 2004.
- ^ A b C d Holbrook, Bernard D .; Brown, W. Stanley. „Computing Science Technical Report No. 99 - A History of Computing Research at Bell Laboratories (1937–1975)“. Bell Labs. Archivovány od originál 2. září 2014. Citováno 2. února 2020.
- ^ "Makro SAP - úprava kompilátoru maker SAP". HOPL: Online historická encyklopedie programovacích jazyků. Archivovány od originál 13. srpna 2008.
- ^ „Bell SAP - SAP s podmíněnými a rekurzivními makry“. HOPL: Online historická encyklopedie programovacích jazyků. Archivovány od originál 21. srpna 2007.
- ^ Mooers, C.N.; Deutsch, L.P. (1965). „TRAC, jazyk pro zpracování textu“. Sborník ACM '65 Sborník z 20. národní konference z roku 1965. str. 229–246. doi:10.1145/800197.806048. S2CID 40013081.
- ^ Cole, A. J. (1981). Makro procesory (2. přepracované vydání). Archiv CUP. str. 254.
- ^ A b Hall, A.D., „Systém ALTRAN pro racionální manipulaci s funkcemi - průzkum“. Komunikace ACM, 14 (8): 517–521 (srpen 1971).
- ^ A b McIlroy, M. D. (1987). Čtenář Research Unix: anotované výňatky z Programmer's Manual, 1971–1986 (PDF) (Technická zpráva). Počítačová věda. AT&T Bell Laboratories. 139.
- ^ A b C Ritchie, Dennis M. (1984). „Vývoj unixového systému sdílení času“. Technický časopis AT&T Bell Laboratories. 63 (6 Část 2): 1577–93. doi:10.1002 / j.1538-7305.1984.tb00054.x. Archivovány od originál dne 6. května 2010. Tak jako PDF
- ^ Johnson, Stephen C. (1975). Yacc: Ještě další překladač-překladač (Technická zpráva). Murray Hill, New Jersey: AT&T Bell Laboratories. 32. Citováno 31. ledna 2020.
- ^ Dzonsons, Kristaps; Schwarze, Ingo. „Historie stránek systému UNIX“. Praktické příručky k systému UNIX.
- ^ „Vytvoření operačního systému UNIX“. Bell Labs. Archivovány od originál dne 14. září 2004.
- ^ Griswold, Ralph (1978). "Historie programovacích jazyků SNOBOL". Oznámení ACM SIGPLAN. ACM. 13 (8): 275–308. doi:10.1145/960118.808393. ISSN 0362-1340. S2CID 5413577.
- ^ Lawson, Harold; Bromberg, Howard (12. června 1997). „První kompilátoři COBOL na světě“. Archivovány od originál 4. června 2004.
- ^ Michael S. Mahoney (18. srpna 1989). „Rozhovor s M. Mc.lroyem“. Princeton.edu. Murray Hill.
- ^ R. A. Frieburghouse. „Kompilátor Multics PL / 1“. Multicians.org.
- ^ Tom Van Vleck (vyd.). „Volba PL / I“. Multicians.org.
- ^ Stroustrup, Bjarne. "Historie C ++: 1979-1991" (PDF).
- ^ Jon L. Bentley; M. Douglas McIlroy (Listopad 1993). "Inženýrská funkce třídění". Software - praxe a zkušenosti. 23 (11).
- ^ Narsingh Deo (1974). Teorie grafů s aplikacemi ve strojírenství a informatice. Prentice-Hall. str. 480.
- ^ „Zvolen Fellows: Listing of Fellows who are current members“. aaas.org. Americká asociace pro rozvoj vědy.
- ^ "Cena plamene". USENIX. Citováno 5. února 2020.
- ^ „Dr. M. Douglas McIlroy“. nae.edu. National Academy of Engineering. Citováno 5. února 2020.
- ^ Tyto citáty zazněly během projevu, který přednesl před DLSLUG 12. 3. 2009
- ^ „Zdrojový kód MacPaint a QuickDraw“. Muzeum počítačové historie.
externí odkazy
- Domovská stránka Doug McIlroy (archiv domovská stránka na webu Bell Labs)
- Životopis
- Doug McIlroy Fakta
- McIlroyova historie řeči Unixu (audio), obsahuje mnoho autobiografických poznámek, spolu s diskusí o mnoha hlavních autorech Unixu
- Předky Linuxu - Jak začala zábava, prezentace listopad 2005: (prezentace) (Zvuk) (video)
- Originální zdrojový kód kouzla unix, napsaný Dougem McIlroyem
- Publikace M. D. McIlroye - https://www.cs.dartmouth.edu