Douglas McIlroy
Encyclopedia
Malcolm Douglas McIlroy is a mathematician
, engineer
, and programmer
. As of 2007 he is an Adjunct Professor of Computer Science
at Dartmouth College
. Dr. McIlroy is best known for having originally developed Unix pipelines
, software componentry and several Unix
tools, such as spell
, diff
, sort
, join, graph, speak
, and tr
.
His seminal work on software componentization, makes him a pioneer of component-based software engineering
and software product line engineering.
Dr. McIlroy earned his Bachelor's degree
in engineering physics from Cornell University
in 1954, and a Ph.D.
in applied mathematics from MIT in 1959 for his thesis On the Solution of the Differential Equations of Conical Shells. He joined Bell Laboratories in 1958, from 1965-1986 was head of its Computing Techniques Research Department (the
birthplace of the Unix
operating system), and thereafter was Distinguished Member of Technical Staff. He retired from Bell Labs in 1997, and currently serves as an Adjunct Professor in the Dartmouth College Computer Science Department.
He is a member of the National Academy of Engineering
, and has won both the USENIX
Lifetime Achievement Award ("The Flame") and its Software Tools award. He has previously served the Association for Computing Machinery
as national lecturer, Turing Award
chairman, member of the publications planning committee, and associate editor for the Communications of the ACM, the Journal of the ACM, and ACM Transactions on Programming Languages and Systems. He also
served on the executive committee of CSNET
.
Mathematician
A mathematician is a person whose primary area of study is the field of mathematics. Mathematicians are concerned with quantity, structure, space, and change....
, engineer
Engineer
An engineer is a professional practitioner of engineering, concerned with applying scientific knowledge, mathematics and ingenuity to develop solutions for technical problems. Engineers design materials, structures, machines and systems while considering the limitations imposed by practicality,...
, and programmer
Programmer
A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to...
. As of 2007 he is an Adjunct Professor of Computer Science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
at Dartmouth College
Dartmouth College
Dartmouth College is a private, Ivy League university in Hanover, New Hampshire, United States. The institution comprises a liberal arts college, Dartmouth Medical School, Thayer School of Engineering, and the Tuck School of Business, as well as 19 graduate programs in the arts and sciences...
. Dr. McIlroy is best known for having originally developed Unix pipelines
Pipeline (Unix)
In Unix-like computer operating systems , a pipeline is the original software pipeline: a set of processes chained by their standard streams, so that the output of each process feeds directly as input to the next one. Each connection is implemented by an anonymous pipe...
, software componentry and several Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
tools, such as spell
Spell (Unix)
Spell is the standard English language spell checker for Unix.Spell was originally written by Stephen C. Johnson of Bell Labs in 1975. Douglas McIlroy later improved its accuracy, performance, and memory use, and described his work and spell in general in his 1982 paper .Spell has a simple...
, diff
Diff
In computing, diff is a file comparison utility that outputs the differences between two files. It is typically used to show the changes between one version of a file and a former version of the same file. Diff displays the changes made per line for text files. Modern implementations also...
, sort
Sort (Unix)
sort is a standard Unix command line program that prints the lines of its input or concatenation of all files listed in its argument list in sorted order. Sorting is done based on one or more sort keys extracted from each line of input. By default, the entire input is taken as sort key...
, join, graph, speak
Speak (Unix)
speak was a Unix utility that used a predefined set of rules to turn a file of English text into phoneme data compatible with a Federal Screw Works model VS4 "Votrax" Speech Synthesizer. It was first included in Unix v3 and possibly later ones, with the OS-end support files and help files...
, and tr
Tr (Unix)
tr is a command in Unix-like operating systems.When executed, the program reads from the standard input and writes to the standard output. It takes as parameters two sets of characters, and replaces occurrences of the characters in the first set with the corresponding elements from the other set...
.
His seminal work on software componentization, makes him a pioneer of component-based software engineering
Component-based software engineering
Component-based software engineering is a branch of software engineering that emphasizes the separation of concerns in respect of the wide-ranging functionality available throughout a given software system...
and software product line engineering.
Dr. McIlroy earned his Bachelor's degree
Bachelor's degree
A bachelor's degree is usually an academic degree awarded for an undergraduate course or major that generally lasts for three or four years, but can range anywhere from two to six years depending on the region of the world...
in engineering physics from Cornell University
Cornell University
Cornell University is an Ivy League university located in Ithaca, New York, United States. It is a private land-grant university, receiving annual funding from the State of New York for certain educational missions...
in 1954, and a Ph.D.
Doctor of Philosophy
Doctor of Philosophy, abbreviated as Ph.D., PhD, D.Phil., or DPhil , in English-speaking countries, is a postgraduate academic degree awarded by universities...
in applied mathematics from MIT in 1959 for his thesis On the Solution of the Differential Equations of Conical Shells. He joined Bell Laboratories in 1958, from 1965-1986 was head of its Computing Techniques Research Department (the
birthplace of the Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
operating system), and thereafter was Distinguished Member of Technical Staff. He retired from Bell Labs in 1997, and currently serves as an Adjunct Professor in the Dartmouth College Computer Science Department.
He is a member of the National Academy of Engineering
National Academy of Engineering
The National Academy of Engineering is a government-created non-profit institution in the United States, that was founded in 1964 under the same congressional act that led to the founding of the National Academy of Sciences...
, and has won both the USENIX
USENIX
-External links:* *...
Lifetime Achievement Award ("The Flame") and its Software Tools award. He has previously served the Association for Computing Machinery
Association for Computing Machinery
The Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...
as national lecturer, Turing Award
Turing Award
The Turing Award, in full The ACM A.M. Turing Award, is an annual award given by the Association for Computing Machinery to "an individual selected for contributions of a technical nature made to the computing community. The contributions should be of lasting and major technical importance to the...
chairman, member of the publications planning committee, and associate editor for the Communications of the ACM, the Journal of the ACM, and ACM Transactions on Programming Languages and Systems. He also
served on the executive committee of CSNET
CSNET
The Computer Science Network was a computer network that began operation in 1981 in the United States. Its purpose was to extend networking benefits, for computer science departments at academic and research institutions that could not be directly connected to ARPANET, due to funding or...
.
Quotes
- Those types are not "abstract"; they are as real as int and float.
- As a programmer, it is your job to put yourself out of business. What you do today can be automated tomorrow.
- Keep it simple, make it general, and make it intelligible.
- The real hero of programming is the one who writes negative code.
See also
- Darwin (programming game)Darwin (programming game)Darwin was a programming game invented in August 1961 by Victor A. Vyssotsky, Robert Morris Sr., and M. Douglas McIlroy. The game was developed at Bell Labs, and played on an IBM 7090 mainframe there...
- Early PL/I (EPL)
- HomoiconicityHomoiconicityIn computer programming, homoiconicity is a property of some programming languages, in which the primary representation of programs is also a data structure in a primitive type of the language itself, from the Greek words homo meaning the same and icon meaning representation...
- Hunt-McIlroy algorithmHunt-McIlroy algorithmThe Hunt–McIlroy algorithm is a solution to the longest common subsequence problem. It was one of the first non-heuristic algorithms used in diff...
External links
- Doug McIlroy's homepage
- 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)