A Selection of Interesting Papers and Documents
A Selection of Interesting Papers and Documents
This page collects articles, papers, and other material
that I consider to be of interest to the community at large.
- Piège dans le Cyberespace
(in French), by Roberto Di Cosmo
(local copy in PostScript, see also
more information).
A lucid and witty analysis of the restrictions
on individual freedom and the information tax
imposed on unwitting users by Microsoft.
The inevitable conclusion is that it is not
in the user's nor in Europe's interest to
use Microsoft products.
- Ode
à la Bureaucratie (in French),
by Peter Van Roy.
A (still incomplete) diagram of the administrative steps necessary to
import a French-bought car into Belgium.
Most of the steps show classic bureaucrat behavior
(e.g., hiding behind regulations, irrelevant complexification, mistakes).
Few bureaucracies are as unnecessarily complex as in Belgium.
This is partly due to the national character
(competence is irrelevant, relations are everything;
add as much complexity as possible a priori),
but also to the nontrivial
overlapping competences between federal, regional,
community, provincial, and municipal governments.
The resulting large disgressionary behavior
by bureaucrats leads
to gross inefficiencies and power games.
Furthermore, nominations are often
based on political favors rather than competence.
- The
Cathedral and the Bazaar,
by Eric Raymond.
A study of the Linux software development model
that was a key factor in Netscape's decision to
release the source code of Navigator 5.0.
-
How to Deconstruct Almost Anything,
by Chip Morningstar.
A lucid exposition of the concept of ``deconstruction'',
which is usually hidden in dense literary fog.
-
The OS at the End of the Universe.
Douglas Adams presents a witty but sobering look at
the limits of human credulity and one of Microsoft's many marketing blitzes.
-
Twelve Ways to Fool the Masses When Giving Performance Results on
Parallel Computers,
by David H. Bailey.
This humorous article outlines twelve ways to artificially boost
performance rates of parallel scientific programs.
- The Mercury project.
Mercury is a pure logic programming language
with execution efficiency comparable to C.
By adding type and mode declarations to a Prolog-like language
and providing declarative equivalents for side-effect operations,
Mercury achieves a better separation of logic and control than Prolog.
Mercury gives up some of Prolog's dynamicity
(e.g., it has no constraints, no unbound variables,
and no assert/retract) in exchange for higher performance
and arguably better compile-time error detection.
Mercury is an example of putting religious fervor
over practical usefulness: the language is even more
restricted than Prolog, but this does not seem to
bother logic programmers.
-
High-Performance Prolog Implementation (1000K),
by Andrew Taylor.
Ph.D. dissertation, Basser Department of Computer Science,
University of Sydney, June 1991.
This dissertation constructs and measures an extremely efficient Prolog
compiler, Parma, that generates code comparable to C in efficiency.
This dissertation and
Van Roy's dissertation
give the final death-blow to the myth that Prolog is slow.
- Abstract
Interpretation for the Compile-Time Analysis of Logic Programs (1200K),
by Thomas Walter Getzinger. Ph.D. dissertation, Technical Report ACAL-TR-93-09,
USC, September 1993.
This dissertation is probably the most comprehensive taxonomy of analysis domains
yet done that measures their usefulness when integrated into a Prolog compiler.
- The
Costs and Benefits of Abstract Interpretation-Driven Prolog
Optimization (180K), by Thomas W. Getzinger. Static Analysis Symposium (SAS 94),
1994.
This paper provides the essential information of the above dissertation
in a more compact form.
- Automatic
Design of Computer Instruction Sets (1400K), by Bruce Kester Holmer.
Ph.D. dissertation, UC Berkeley, 1993. This dissertation is an excellent
example showing the usefulness of constrained exhaustive search.
Automatic exploration
can achieve results comparable to hand-designed instruction sets.
A case study is done of a RISC specialized to Prolog, which is compared
to the VLSI-BAM processor.
- Operational
Semantics of Constraint Logic Programs with Coroutining (220K),
by Andreas Podelski and Gert Smolka.
A compact and easy-to-understand semantics that explains in a clean way
both coroutining and cut.
-
A Two-level Description of Stroopwafels (60K), seminal result by
Christer Samuelsson.
- Members of
DEC PRL in June 1994 (860K).
Please send all comments to Peter Van Roy.