M. Douglas McIlroy

dblp:16/349 · DBLP profile ↗
← Back
14ranked-venue papers
11as first author
0since 2021 · last 2004
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 6 · 5 first-authorDatabases, data management, data science and information retrieval · 3 · 1 first-authorGraphics, computer vision, multimedia, augmented reality and games · 3 · 2 first-authorTheory of computation · 2 · 2 first-authorComputer networks · 1 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Theoretical computer science
3 papers
Computational geometry · 74% Coding theory · 21% Combinatorics and discrete mathematics · 5%
Databases, data mining, and information retrieval
1 paper
Information retrieval · 50% Indexing and storage engines · 50%

Topics — the 6 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Computational geometry
discrete geometry
0.021992
Getting Raster Ellipses Right · ACM Trans. Graph. 1992
Best Approximate Circles on Integer Grids · ACM Trans. Graph. 1983
Coding theory
diophantine approximation
0.011983
Best Approximate Circles on Integer Grids · ACM Trans. Graph. 1983
Indexing and storage engines › data compression
dictionary compression
0.011982
Development of a Spelling List · IEEE Trans. Commun. 1982
Information retrieval
search engines
0.011982
Development of a Spelling List · IEEE Trans. Commun. 1982
Coding theory › source coding
binary encoding
0.011974
The Number of 1's in Binary Integers: Bounds and Extremal Properties · SIAM J. Comput. 1974
Combinatorics and discrete mathematics
recurrence relations
0.011974
The Number of 1's in Binary Integers: Bounds and Extremal Properties · SIAM J. Comput. 1974

Methods — techniques the papers use, named apart from their topics

reflection symmetry · 0.0incremental algorithm · 0.0residual minimization · 0.0integer algorithms · 0.0euclidean distance · 0.0prefix and suffix stripping · 0.0hashing · 0.0data compression · 0.0closed-form analysis · 0.0
YearPublicationVenuePosition
2004 Enumerating the strings of regular languages
abstract
Haskell code is developed for two ways to list the strings of the language defined by a regular expression: directly by set operations and indirectly by converting to and simulating an equivalent automaton. The exercise illustrates techniques for dealing with infinite ordered domains and leads to an effective standard form for nondeterministic finite automata.
M. Douglas McIlroy
J. Funct. Program.1
2001 The music of streams
M. Douglas McIlroy
Inf. Process. Lett.1
2001 Data compression with long repeated strings
Jon Louis Bentley, M. Douglas McIlroy
Inf. Sci.2
1999 Data Compression Using Long Common Strings
abstract
We describe a precompression algorithm that effectively represents any long common strings that appear in a file. The algorithm interacts well with standard compression algorithms that represent shorter strings that are near in the input text. Our experiments show that some real data sets do indeed contain many long common strings. We extend the fingerprint mechanisms of our algorithm to a program that identifies long common strings in an input file. This program gives interesting insights into the structure of real data files that contain long common strings.
Jon Louis Bentley, M. Douglas McIlroy
Data Compression Conference2
1999 Power Series, Power Serious
abstract
Power series and stream processing were made for each other. Stream algorithms for power series are short, sweet, and compositional. Their neatness shines through in Haskell, thanks to pattern-matching, lazy lists, and operator overloading. In a short compass one can build working code from ground zero (scalar operations) up to exact calculation of generating functions and solutions of differential equations.
M. Douglas McIlroy
J. Funct. Program.1
1999 A Killer Adversary for Quicksort
abstract
Quicksort can be made to go quadratic by constructing input on-the-fly in response to the sequence of items compared. The technique is illustrated by a specific adversary for the standard C qsort function. The general method works against any implementation of quicksort – even a randomizing one – that satisfies certain very mild and realistic assumptions. Copyright © 1999 John Wiley & Sons, Ltd.
M. Douglas McIlroy
Softw. Pract. Exp.1
1993 Engineering a Sort Function
abstract
Abstract We recount the history of a new qsortfunction for a C library. Our function is clearer, faster and more robust than existing sorts. It chooses partitioning elements by a new sampling scheme; it partitions by a novel solution to Dijkstra's Dutch National Flag problem; and it swaps efficiently. Its behavior was assessed with timing and debugging testbeds, and with a program to certify performance. The design techniques apply in domains beyond sorting.
Jon Louis Bentley, M. Douglas McIlroy
Softw. Pract. Exp.2
1992 Multilevel Security in the UNIX Tradition
abstract
Abstract The original UNIX system was designed to be small and intelligible, achieving power by generality rather than by a profusion of features. In this spirit we have designed and implemented IX, a multilevel‐secure variant of the Bell Labs research system. IX aims at sound, practical security, suitable for private‐and public‐sector uses other than critical national‐security applications. The major security features are: private paths for safe cooperation among privileged processes, structured management of privilege, and security labels to classify information for purposes of privacy and integrity. The labels of flies and processes are checked at every system call that involves data flow and are adjusted dynamically to assure that labels on outputs reflect labels on inputs.
M. Douglas McIlroy, James A. Reeds
Softw. Pract. Exp.1
1992 Getting Raster Ellipses Right
abstract
A concise, incremental algorithm for raster approximations to ellipses in standard position produces approximations that are good to the last pixel even near octant boundaries or the thin ends of highly eccentric ellipses. The resulting approximations commute with reflection about the diagonal and are mathematically specifiable without reference to details of the algorithm.
M. Douglas McIlroy
ACM Trans. Graph.1
1990 Squinting at Power Series
abstract
Abstract Data streams are an ideal vehicle for handling power series. Stream implementations can be read off directly from simple recursive equations that define operations such as multiplication, substitution, exponentiation and reversion of series. The bookkeeping that bedevils these algorithms when they are expressed in traditional languages is completely hidden when they are expressed in stream terms. Communicating processes are the key to the simplicity of the algorithms. Working versions are presented in newsqueak, the language of Pike's ‘squint’ system; their effectiveness depends critically on the stream protocol.
M. Douglas McIlroy
Softw. Pract. Exp.1
1983 Best Approximate Circles on Integer Grids
abstract
The problem of drawing an approximate circle on an integer x -y grid has a unique best solution in practical cases.If the center is (0, 0) and the square of the radius (r 2) is integral, then each grid line that intersects the circle contains near each intersection a unique grid point that simultaneously minimizes (1) the residual x 2 + y2 _ r 2, (2) Euclidean distance to the circle, and (3) displacement along the grid line from the intersection.Thus the set of such minimizing points is the "best" approximation to the circle in several natural senses.Criteria (1)-{3) collectively, but not severally, define unique approximate circles when half-integer center coordinates and integer squared diameters (4r ~) are admitted.In other cases the criteria may disagree.Simple, efficient, all-integer algorithms for drawing circles and arcs with approximately known endpoints follow from the analysis.Diophantine problems arise in connection with the occasional appearance of sharp (90 °) corners in the resulting approximations.
M. Douglas McIlroy
ACM Trans. Graph.1
1982 The Number of States of a Dynamic Storage Allocation System
abstract
The numbers of occupancy states of linear or circular arenas for dynamic storage allocation of immovable blocks of arbitrary size are expressed simply in terms of Fibonacci numbers, as are the numbers of equivalence classes of states induced by reflective and rotational symmetries.
M. Douglas McIlroy
Comput. J.1
1982 Development of a Spelling List
abstract
The word list used by the UNIX spelling checker, SPELL, was developed from many sources over several years. As the spelling checker may be used on minicomputers, it is important to make the list as compact as possible. Stripping prefixes and suffixes reduces the list below one third of its original size, hashing discards 60 percent of the bits that remain, and data compression halves it once again. This paper tells how the spelling checker works, how the words were chosen, how the spelling checker was used to improve itself, and how the (reduced) list of 30000 English words was squeezed into 26000 16-bit machine words.
M. Douglas McIlroy
IEEE Trans. Commun.1
1974 The Number of 1's in Binary Integers: Bounds and Extremal Properties
abstract
Closed formulas provide tight bounds for $G(n)$, the total number of 1’s in the binary representations of integers less than n. This function satisfies an extremal recurrence, which gives the maximum cost of a process that creates a set of n objects by repeatedly merging pairs of smaller sets, starting from n singletons, incurring a cost equal to the size of the smaller set at each merger: \[ G(n) = \max\limits_{1 \leqq i \leqq n /2} [i + G(i) + G(n - i)], \] where $G(1) = 0$. The set of pairs $(i,n - i)$ at which the maximum is attained has an interesting structure.
M. Douglas McIlroy
SIAM J. Comput.1