Douglas McIlroy
Malcolm Douglas McIlroy, född 1932, är en amerikansk matematiker, ingenjör och programmerare. Sedan 1997 är han adjungerad professor i datavetenskap vid Dartmouth College. Han är mest känd för att ursprungligen ha utvecklat Unix pipelines genomförande och flera unix-verktyg som spell, diff, sort, join, graph, speak och tr.[1] Han var också en av de banbrytande forskarna inom makroprocessorer och utbyggbarhet för programmeringsspråk. Han deltog i utformningen av flera inflytelserika programmeringsspråk, särskilt PL/1, SNOBOL, ALTRAN, TMG och C++.
Douglas McIlroy | |
Född | 24 april 1932 (92 år) Mercurio, Japón, Spanien |
---|---|
Medborgare i | USA |
Utbildad vid | Cornell University Massachusetts Institute of Technology Cornell University College of Engineering |
Sysselsättning | Matematiker, universitetslärare, programmerare, ingenjör, datavetare |
Arbetsgivare | Dartmouth College |
Noterbara verk | Diff och tr |
Webbplats | cs.dartmouth.edu/~doug/ |
Redigera Wikidata |
Hans framstående arbete på mjukvarukomponentisering[2] och kodåteranvändning[3][4] gör honom till pionjär inom komponentbaserad mjukvaruutveckling och mjukvaruproduktlinjeteknik.
Biografi
redigeraMcIlroy tog sin kandidatexamen i teknisk fysik från Cornell University[5] och doktorsexamen i tillämpad matematik vid MIT 1959 på sin avhandling On the Solution of the Differential Equations of Conical Shells (handledare Eric Reissner).[6] Han undervisade vid MIT från 1954 till 1958.[5]
McIlroy började arbeta i Bell Laboratories 1958 och var från 1965 till 1986 chef för dess avdelning för datorteknikforskning (tillkomstplatsen för Unix-operativsystemet), och var därefter Distinguished Member of Technical Staff.[5]
År 1997 gick McIlroy i pension från Bell Labs och började som adjungerad professor vid Dartmouth College Computer Science Department.[5]
Vetenskapligt arbete
redigeraMakroprocessorer
redigeraMcIlroy anses vara en pionjär inom makroprocessorer.[7][8][9] År 1959 introducerade han, tillsammans med Douglas E. Eastwood från Bell Labs, villkorliga och rekursiva makron i populära SAP assembler,[10] och skapade vad som är känt som Macro SAP.[11] Hans rapport från 1960 var också avgörande när det gällde att utöka alla (inklusive högnivå) programmeringsspråk genom makroprocessorer.[7][10] Dessa bidrag startade makrospråkstraditionen på Bell Labs ("allt från L6 och AMBIT till C").[12] McIlroys makrobearbetningsidéer var också den främsta inspirationen för TRAC makroprocessor.[13]
Han var också medförfattare till M6 makroprocessor i Fortran IV,[14] som användes i ALTRAN [15] och senare fördes över till och inkluderades i tidiga versioner av Unix.[16]
Bidrag till Unix
redigeraUnder hela 1960- och 1970-talen bidrog McIlroy med program för Multics (som RUNOFF [17]) och Unix - operativsystem (som diff, echo, tr, join and look[16]), versioner av vilka är utbredda än idag (2021) genom adoption av POSIX - standarden och Unix-liknande operativsystem. Han introducerade idén med Unix-pipelines[17] och implementerade också TMG kompilator-kompilator i PDP-7 och PDP-11 assembly, som blev det första högnivåprogrammeringsspråket som kördes på Unix, vilket ledde till utveckling av och inflytande på Ken Thompsons B-programmeringsspråk[17] och Stephen Johnsons Yacc-parsergenerator.[18]
Datorspråkdesign
redigeraMcIlroy påverkade utformningen och implementeringen av programmeringsspråket SNOBOL. Hans strängmanipuleringsmakron användes flitigt i den initiala SNOBOL-implementeringen 1962, och har en framträdande plats i efterföljande arbete, vilket så småningom ledde till dess maskinoberoende implementeringsspråk SIL. Tabelltypen (associativ array) lades 1969 till SNOBOL4 på McIlroys inrådan.[19]
På 1960-talet deltog han i utformningen av PL/1 programmeringsspråk.[4][20] Han var medlem i IBM – SHARE- kommittén som konstruerade språket[21] och skrev tillsammans med Robert Morris kompilatorn Early PL/1 (EPL) i TMG för Multics- projektet.[22][23]
Omkring år 1965 implementerade McIlroy tillsammans med W. Stanley Brown den ursprungliga versionen av ALTRAN-programmeringsspråket för IBM 7094-datorer.[15][10] Han har också haft ett betydande inflytande på utformningen av programmeringsspråket C++.[24]
Bibliografi i urval
redigera- Brock, David C.; McIlroy, Malcom D. (September 30, 2019). McIlroy, Malcom (Doug) Douglas oral history, part 1 of 2. Computer History Museum. Sid. 59. https://www.computerhistory.org/collections/catalog/102795421.
- Brock, David C.; McIlroy, Malcom D. (November 6, 2019). McIlroy, Malcom (Doug) Douglas oral history, part 2 of 2. Computer History Museum. Sid. 52. https://www.computerhistory.org/collections/catalog/102740539.
Utmärkelser och hedersbetygelser
redigeraÅr 1995 valdes Mc Ilroy till Fellow i American Association for the Advancement of Science.[25] och 2004 vann han både USENIX Lifetime Achievement Award ("The Flame")[26] och dess Software Tools User Group (STUG) pris.[1] År 2006 valdes han som medlem av National Academy of Engineering.[27]
Referenser
redigera- Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia, Douglas McIlroy, 16 februari 2022.
Noter
redigera- ^ [a b] ”STUG Award”. STUG Award. USENIX. https://www.usenix.org/about/stug.
- ^ ”First International Conference on Ada (R) Programming Language Applications for the NASA Space Station, volume 2 - NASA-TM-101202”. First International Conference on Ada (R) Programming Language Applications for the NASA Space Station, volume 2 - NASA-TM-101202. 2–5 June 1986. https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19890006955.pdf.
- ^ McIlroy, Malcolm Douglas (January 1969). ”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. 79. http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF.
- ^ [a b] Endres, Albert; Rombach, H. Dieter (2003). A Handbook of Software and Systems Engineering: Empirical Observations, Laws, and Theories. Pearson Education. Sid. 327.
- ^ [a b c d] ”Douglas McIlroy”. HOPL: Online Historical Encyclopaedia of Programming Languages. http://hopl.info/showperson.prx?PeopleID=593. Arkiverad 3 augusti 2020 hämtat från the Wayback Machine.
- ^ ”M. Douglas (Malcolm) McIlroy”. Mathematics Genealogy Project. https://www.genealogy.math.ndsu.nodak.edu/id.php?id=63529.
- ^ [a b] Layzell, P. (1985). ”The History of Macro Processors in Programming Language Extensibility”. The Computer Journal 28 (1): sid. 29–33. doi: .
- ^ David Walden (2014). ”Macro memories, 1964–2013”. TUGboat 35 (1). https://tug.org/TUGboat/tb35-1/tb109walden.pdf.
- ^ Krishnamurthi, Shriram; Felleisen, Matthias; Duba, Bruce F. (2000). ”From Macros to Reusable Generative Programming”. Generative and Component-Based Software Engineering. Lecture Notes in Computer Science (Berlin, Heidelberg: Springer) 1799: sid. 105–120. doi: . ISBN 978-3-540-40048-6. http://www.netobjectdays.org/pdf/99/stja/krishna.pdf.
- ^ [a b c] Holbrook, Bernard D.; Brown, W. Stanley. ”Computing Science Technical Report No. 99 – A History of Computing Research at Bell Laboratories (1937–1975)”. Computing Science Technical Report No. 99 – A History of Computing Research at Bell Laboratories (1937–1975). Bell Labs. http://cm.bell-labs.com/cm/cs/cstr/99.html.
- ^ ”Macro SAP – Macro compiler modification of SAP”. HOPL: Online Historical Encyclopaedia of Programming Languages. http://hopl.murdoch.edu.au/showlanguage.prx?exp=91. Arkiverad 13 augusti 2008 hämtat från the Wayback Machine. ”Arkiverade kopian”. Arkiverad från originalet den 13 augusti 2008. https://web.archive.org/web/20080813125120/http://hopl.murdoch.edu.au/showlanguage.prx?exp=91. Läst 5 juli 2022.
- ^ ”Bell SAP – SAP with conditional and recursive macros”. HOPL: Online Historical Encyclopaedia of Programming Languages. http://hopl.murdoch.edu.au/showlanguage.prx?exp=5635. Arkiverad 21 augusti 2007 hämtat från the Wayback Machine. ”Arkiverade kopian”. Arkiverad från originalet den 21 augusti 2007. https://web.archive.org/web/20070821092817/http://hopl.murdoch.edu.au/showlanguage.prx?exp=5635. Läst 5 juli 2022.
- ^ Mooers, C.N.; Deutsch, L.P. (1965). ”TRAC, A Text-Handling Language”. Proceeding ACM '65 Proceedings of the 1965 20th national conference. Sid. 229–246. doi: .
- ^ Cole, A. J. (1981). Macro Processors (2nd, revised). CUP Archive. Sid. 254.
- ^ [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] McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). Computing Science. AT&T Bell Laboratories. 139.
- ^ [a b c] Ritchie, Dennis M. (1984). ”The Evolution of the Unix Time-sharing System”. AT&T Bell Laboratories Technical Journal 63 (6 Part 2): sid. 1577–93. doi:. http://cm.bell-labs.com/cm/cs/who/dmr/hist.html. Arkiverad 8 april 2015 hämtat från the Wayback Machine. ”Arkiverade kopian”. Arkiverad från originalet den 8 april 2015. https://web.archive.org/web/20150408054606/http://cm.bell-labs.com/cm/cs/who/dmr/hist.html. Läst 5 juli 2022. As PDF
- ^ Johnson, Stephen C. (1975). Yacc: Yet Another Compiler-Compiler (Technical report). Murray Hill, New Jersey: AT&T Bell Laboratories. 32. Retrieved 31 January 2020.
- ^ Griswold, Ralph (1978). ”A history of the SNOBOL programming languages”. ACM SIGPLAN Notices (ACM) 13 (8): sid. 275–308. doi: . ISSN 0362-1340.
- ^ Lawson, Harold; Bromberg, Howard (June 12, 1997). ”The World's First COBOL Compilers”. The World's First COBOL Compilers. http://www.computerhistory.org/events/lectures/cobol_06121997/. Arkiverad 4 juni 2004 hämtat från the Wayback Machine. ”Arkiverade kopian”. Arkiverad från originalet den 4 juni 2004. https://web.archive.org/web/20040604085438/http://www.computerhistory.org/events/lectures/cobol_06121997/. Läst 5 juli 2022.
- ^ Michael S. Mahoney (18 August 1989). ”Interview with M.D. McIlroy”. Princeton.edu. Murray Hill. https://www.princeton.edu/~hos/mike/transcripts/mcilroy.htm.
- ^ R. A. Frieburghouse. ”The Multics PL/1 Compiler”. Multicians.org. http://www.multicians.org/pl1-raf.html.
- ^ ”The Choice of PL/I”. Multicians.org. https://multicians.org/pl1.html#EPL.
- ^ Stroustrup, Bjarne. ”A History of C++: 1979−1991”. A History of C++: 1979−1991. http://www.stroustrup.com/hopl2.pdf.
- ^ ”Elected Fellows: Listing of Fellows who are current members”. aaas.org. American Association for the Advancement of Science. https://www.aaas.org/fellows/listing.
- ^ ”Flame Award”. Flame Award. USENIX. https://www.usenix.org/about/awards/flame.
- ^ ”Dr. M. Douglas McIlroy”. nae.edu. National Academy of Engineering. https://www.nae.edu/28908/Dr-M-Douglas-McIlroy.
Externa länkar
redigera- Wikimedia Commons har media som rör Douglas McIlroy.
- Doug McIlroy's homepage (archive homepage at Bell Labs website)
- Biography
- Doug McIlroy Facts
- McIlroy's History of Unix speech (audio), includes many autobiographical notes, along with discussion of many of the major Unix authors
- Ancestry of Linux - How the Fun Began, presentation November 2005: (presentation) (audio) (video)
- Original unix spell source code, written by Doug McIlroy
- Publications by M. D. McIlroy - https://www.cs.dartmouth.edu