Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Douglas McIlroy

From Wikipedia, the free encyclopedia
American mathematician and computer scientist
Malcolm Douglas McIlroy
McIlroy at the Japan Prize Foundation in 2011
Born (1932-04-24)April 24, 1932 (age 93)
Newburgh, New York
Alma materCornell University (B.S., 1954)
Massachusetts Institute of Technology (Ph.D., 1959)
Known forMacros,Unix pipelines,Unix philosophy,software componentry,echo,diff,sort,join,RUNOFF,tr,Unix manual
Scientific career
FieldsComputer science,mathematics,engineering
Thesis On the Solution of the Differential Equations of Conical Shells (1959)
Doctoral advisorsEric Reissner
Websitewww.cs.dartmouth.edu/~doug/

Malcolm Douglas McIlroy (born 1932) is an Americanmathematician,engineer, andprogrammer. As of 2019 he is anAdjunct Professor ofComputer Science atDartmouth College.McIlroy is best known for having originally proposedUnix pipelines and developed severalUnix tools, such as echo,spell,diff,sort,join,graph,speak, andtr.[1] He was also one of the pioneering researchers ofmacro processors and programming language extensibility. He participated in the design of multiple influential programming languages, particularlyPL/I,SNOBOL,ALTRAN,TMG andC++.

His seminal work on software componentization[2] andcode reuse[3][4] makes him a pioneer ofcomponent-based software engineering andsoftware product line engineering.

Biography

[edit]

McIlroy earned hisbachelor's degree in engineering physics fromCornell University,[5] and aPh.D. in applied mathematics fromMIT in 1959 for his thesisOn the Solution of the Differential Equations of Conical Shells (advisorEric Reissner).[6]He taught at MIT from 1954 to 1958.[5]

McIlroy joinedBell Laboratories in 1958; from 1965 to 1986 was head of its Computing Techniques Research Department (the birthplace of the Unix operating system), and thereafter was Distinguished Member of Technical Staff.[5]

From 1967 to 1968, McIlroy also served as a visiting lecturer atOxford University.[5]

In 1997, McIlroy retired from Bell Labs, and took a position as an adjunct professor in theDartmouth College Computer Science Department.[5]

He has previously served theAssociation for Computing Machinery as national lecturer,Turing Award chairman, member of the publications planning committee, and associate editor for theCommunications of the ACM, theJournal of the ACM, andACM Transactions on Programming Languages and Systems. He also served on the executive committee ofCSNET.[5]

Research and contributions

[edit]

Macro processors

[edit]

McIlroy is considered to be a pioneer ofmacro processors.[7][8][9] In 1959, together with Douglas E. Eastwood of Bell Labs, he introduced conditional and recursive macros into popularSAP assembler,[10] creating what is known as Macro SAP.[11] His 1960 paper was also seminal in the area of extending any (includinghigh-level) programming languages through macro processors.[7][10] These contributions started the macro-language tradition at Bell Labs ("everything from L6 and AMBIT to C").[12] McIlroy's macro processing ideas were also the main inspiration forTRAC macro processor.[13]

He also coauthored M6 macro processor inFORTRAN IV,[14] which was used inALTRAN[15] and later was ported to and included intoearly versions of Unix.[16]

Contributions to Unix

[edit]

Throughout the 1960s and 1970s McIlroy contributed programs forMultics (such asRUNOFF[17]) andUnix operating systems (such asdiff,echo,tr,join andlook[16]), versions of which are widespread to this day through adoption of thePOSIX standard andUnix-like operating systems. He introduced the idea of Unix pipelines.[17] He also implementedTMG compiler-compiler inPDP-7 andPDP-11 assembly, which became the first high-level programming language running on Unix, prompting development and influencingKen Thompson'sB programming language[17] and Stephen Johnson'sYacc parser-generator.[18]

McIlroy also took over fromDennis Ritchie compilation of theUnix manual "as a labor of love". Particularly, he edited volume 1 of the manual pages for Version 7 Unix.[19] According toSandy Fraser: "The fact that there was a manual, that he [McIlroy] insisted on a high standard for the manual, meant that he insisted on a high standard for every one of the programs that was documented".[20]

Computer language design

[edit]

McIlroy influenced the design and implementation ofSNOBOL programming language. His string manipulation macros were used extensively in the initial SNOBOL implementation of 1962, and figured prominently in subsequent work, eventually leading to its machine-independent implementation language SIL. The table type (associative array) was added toSNOBOL4 on McIlroy's insistence in 1969.[21]

In 1960s, he participated in the design ofPL/I programming language.[4][22] He was a member of theIBMSHARE committee that designed the language[23] and, together withRobert Morris, wrote theEarly PL/I (EPL) compiler inTMG for theMultics project.[24][25]

Around 1965, McIlroy, together with W. Stanley Brown, implemented the original version ofALTRAN programming language forIBM 7094 computers.[15][10]

McIlroy has also made a significant influence on design of the programming languageC++ (e.g., he proposed the stream output operator<<).[26]

Algorithms

[edit]

In the 1990s, McIlroy worked on improving sorting techniques, particularly he co-authored an optimizedqsort withJon Bentley.[27]

In 1969, he contributed an efficient algorithm to generate allspanning trees in agraph (first discovered by George J. Minty in 1965).[10][28]

Awards and recognition

[edit]

In 1995, he was elected as a Fellow of theAmerican Association for the Advancement of Science.[29] In 2004, he won both theUSENIX Lifetime Achievement Award ("The Flame")[30] and its Software Tools User Group (STUG) award.[1] In 2006, he was elected as a member of theNational Academy of Engineering.[31]

Views on computing

[edit]

McIlroy is attributed the quote "The real hero of programming is the one who writes negative code,"[32] where the meaning ofnegative code is taken to be similar to the famousApple developer,Bill Atkinson, team anecdote[33] (i.e., when a change in a programsource makes the number oflines of code decrease ('negative' code), while its overall quality, readability or speed improves).

See also

[edit]

Literature

[edit]

References

[edit]
  1. ^ab"STUG Award". USENIX. 6 December 2011. RetrievedFebruary 5, 2020.
  2. ^Bown, Rodney L., ed. (2–5 June 1986)."First International Conference on Ada (R) Programming Language Applications for the NASA Space Station, volume 2 - NASA-TM-101202"(PDF).
  3. ^McIlroy, Malcolm Douglas (January 1969)."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. p. 79.
  4. ^abEndres, Albert; Rombach, H. Dieter (2003).A Handbook of Software and Systems Engineering: Empirical Observations, Laws, and Theories. Pearson Education. p. 327.
  5. ^abcdef"Douglas McIlroy".HOPL: Online Historical Encyclopaedia of Programming Languages.
  6. ^"M. Douglas (Malcolm) McIlroy".Mathematics Genealogy Project. RetrievedFebruary 7, 2020.
  7. ^abLayzell, 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.
  8. ^David Walden (2014)."Macro memories, 1964–2013"(PDF).TUGboat.35 (1).
  9. ^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. pp. 105–120.doi:10.1007/3-540-40048-6_9.ISBN 978-3-540-40048-6.S2CID 2576063. Archived fromthe original(PDF) on November 25, 2004.
  10. ^abcdHolbrook, Bernard D.; Brown, W. Stanley."Computing Science Technical Report No. 99 – A History of Computing Research at Bell Laboratories (1937–1975)".Bell Labs. Archived fromthe original on September 2, 2014. RetrievedFebruary 2, 2020.
  11. ^"Macro SAP – Macro compiler modification of SAP".HOPL: Online Historical Encyclopaedia of Programming Languages. Archived fromthe original on August 13, 2008.
  12. ^"Bell SAP – SAP with conditional and recursive macros".HOPL: Online Historical Encyclopaedia of Programming Languages. Archived fromthe original on August 21, 2007.
  13. ^Mooers, C.N.;Deutsch, L.P. (1965). "TRAC, A Text-Handling Language".Proceeding ACM '65 Proceedings of the 1965 20th national conference. pp. 229–246.doi:10.1145/800197.806048.S2CID 40013081.
  14. ^Cole, A. J. (1981).Macro Processors (2nd, revised ed.). CUP Archive. p. 254.
  15. ^abHall, A.D., "The ALTRAN System for Rational Function Manipulation — A Survey".Communications of the ACM, 14(8):517–521 (August 1971).
  16. ^abMcIlroy, 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.
  17. ^abcRitchie, 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. Archived fromthe original on 6 May 2010. AsPDF
  18. ^Johnson, Stephen C. (1975).Yacc: Yet Another Compiler-Compiler (Technical report). Murray Hill, New Jersey: AT&T Bell Laboratories. 32. Retrieved31 January 2020.
  19. ^Dzonsons, Kristaps; Schwarze, Ingo."History of UNIX Manpages".Practical UNIX Manuals.
  20. ^"The Creation of the UNIX Operating System". Bell Labs. Archived fromthe original on September 14, 2004.
  21. ^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.
  22. ^Lawson, Harold; Bromberg, Howard (June 12, 1997)."The World's First COBOL Compilers". Archived fromthe original on June 4, 2004.
  23. ^Michael S. Mahoney (18 August 1989)."Interview with M.D. McIlroy".Princeton.edu. Murray Hill.
  24. ^R. A. Frieburghouse."The Multics PL/1 Compiler".Multicians.org.
  25. ^Tom Van Vleck (ed.)."The Choice of PL/I".Multicians.org.
  26. ^Stroustrup, Bjarne."A History of C++: 1979−1991"(PDF).
  27. ^Jon L. Bentley;M. Douglas McIlroy (November 1993). "Engineering a sort function".Software—Practice & Experience.23 (11).
  28. ^Narsingh Deo (1974).Graph Theory with Applications to Engineering and Computer Science. Prentice-Hall. p. 480.
  29. ^"Elected Fellows: Listing of Fellows who are current members".aaas.org. American Association for the Advancement of Science.
  30. ^"Flame Award". USENIX. 6 December 2011. RetrievedFebruary 5, 2020.
  31. ^"Dr. M. Douglas McIlroy".nae.edu. National Academy of Engineering. RetrievedFebruary 5, 2020.
  32. ^These quotes were heard during a talk he gave to the DLSLUG 12/3/09
  33. ^"MacPaint and QuickDraw Source Code".Computer History Museum. 18 July 2010.

External links

[edit]
Wikiquote has quotations related toDoug McIlroy.
Bell Labs
cs.dartmouth.edu
Ancestry of Linux
code.google.com
Developer
People
Software
Multics-like
systems
Related
Computing
Computer
science
Software
Internet
Notable
people
International
National
Academics
Other
Retrieved from "https://en.wikipedia.org/w/index.php?title=Douglas_McIlroy&oldid=1292265849"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp