Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

William D. Clinger

dblp:23/2569 · DBLP profile ↗
← Back
9ranked-venue papers
6as first author
0since 2021 · last 2020
—ORCID · none

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

Software engineering, systems software and programming languages · 9 · 6 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.

Software engineering, system software, and programming languages
3 papers
Runtime systems and virtual machines · 62% Programming languages and type systems · 31% Compilers and program optimization · 7%
Theoretical computer science
1 paper
Mathematical optimization · 77% Algorithms and data structures · 23%

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

TopicWeightPapersLastEvidence papers
Runtime systems and virtual machines
garbage collection
0.021998
Proper Tail Recursion and Space Efficiency · PLDI 1998
Generational Garbage Collection and the Radioactive Decay Model · PLDI 1997
Programming languages and type systems
language semantics
0.011998
Proper Tail Recursion and Space Efficiency · PLDI 1998
Runtime systems and virtual machines › garbage collection
generational garbage collection
0.011997
Generational Garbage Collection and the Radioactive Decay Model · PLDI 1997
Programming languages and type systems › metaprogramming
macro systems
0.011991
Macros That Work · POPL 1991
Mathematical optimization › numerical computation
floating-point arithmetic
0.011990
How to Read Floating-Point Numbers Accurately · PLDI 1990
Mathematical optimization
numerical computation
0.011990
How to Read Floating-Point Numbers Accurately · PLDI 1990
Compilers and program optimization › compiler optimization › control flow optimization
tail call optimization
0.011998
Proper Tail Recursion and Space Efficiency · PLDI 1998
Algorithms and data structures › computer arithmetic
arbitrary-precision arithmetic
0.011990
How to Read Floating-Point Numbers Accurately · PLDI 1990
Algorithms and data structures
numerical algorithms
0.011990
How to Read Floating-Point Numbers Accurately · PLDI 1990

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

formal semantics · 0.0asymptotic analysis · 0.0radioactive decay model · 0.0probabilistic modeling · 0.0exact rational arithmetic · 0.0continued fractions · 0.0
YearPublicationVenuePosition
2020 Hygienic macro technology
abstract
The fully parenthesized Cambridge Polish syntax of Lisp, originally regarded as a temporary expedient to be replaced by more conventional syntax, possesses a peculiar virtue: A read procedure can parse it without knowing the syntax of any expressions, statements, definitions, or declarations it may represent. The result of that parsing is a list structure that establishes a standard representation for uninterpreted abstract syntax trees. This representation provides a convenient basis for macro processing, which allows the programmer to specify that some simple piece of abstract syntax should be replaced by some other, more complex piece of abstract syntax. As is well-known, this yields an abstraction mechanism that does things that procedural abstraction cannot, such as introducing new binding structures. The existence of that standard representation for uninterpreted abstract syntax trees soon led Lisp to a greater reliance upon macros than was common in other high-level languages. The importance of those features is suggested by the ten pages devoted to macros in an earlier ACM HOPL paper, “The Evolution of Lisp.” However, na'ive macro expansion was a leaky abstraction, because the movement of a piece of syntax from one place to another might lead to the accidental rebinding of a program’s identifiers. Although this problem was recognized in the 1960s, it was 20 years before a reliable solution was discovered, and another 10 before a solution was discovered that was reliable, flexible, and efficient. In this paper, we summarize that early history with greater focus on hygienic macros, and continue the story by describing the further development, adoption, and influence of hygienic and partially hygienic macro technology in Scheme. The interplay between the desire for standardization and the development of new algorithms is a major theme of that story. We then survey the ways in which hygienic macro technology has been adapted into recent non-parenthetical languages. Finally, we provide a short history of attempts to provide a formal account of macro processing.
William D. Clinger, Mitchell Wand
Proc. ACM Program. Lang.1
2011 Bounded-latency regional garbage collection
abstract
Regional garbage collection is scalable, with theoretical worst-case bounds for gc latency, MMU, and throughput that are independent of mutator behavior and the volume of reachable storage. Regional collection improves upon the worst-case pause times and MMU seen in most other general-purpose collectors, including garbage-first and concurrent mark/sweep collectors.
Felix S. Klock II, William D. Clinger
DLS2
2006 Linear combinations of radioactive decay models for generational garbage collection
William D. Clinger, Fabio V. Rojas
Sci. Comput. Program.1
2002 An experimental study of renewal-older-first garbage collection
abstract
Generational collection has improved the efficiency of garbage collection in fast-allocating programs by focusing on collecting young garbage, but has done little to reduce the cost of collecting a heap containing large amounts of older data. A new generational technique, older-first collection, shows promise in its ability to manage older data.This paper reports on an implementation study that compared two older-first collectors to traditional (younger-first) generational collectors. One of the older-first collectors performed well and was often effective at reducing the first-order cost of collection relative to younger-first collectors. Older-first collectors perform especially well when objects have queue-like or random lifetimes.
Lars Thomas Hansen, William D. Clinger
ICFP2
2001 Set constraints for destructive array update optimization
abstract
Destructive array update optimization is critical for writing scientific codes in functional languages. We present set constraints for an interprocedural update optimization that runs in polynomial time. This is a multi-pass optimization, involving interprocedural flow analyses for aliasing and liveness. We characterize and prove the soundness of these analyses using small-step operational semantics. We also prove that any sound liveness analysis induces a correct program transformation.
Mitchell Wand, William D. Clinger
J. Funct. Program.2
1998 Proper Tail Recursion and Space Efficiency
abstract
The IEEE/ANSI standard for Scheme requires implementations to be properly tail recursive. This ensures that portable code can rely upon the space efficiency of continuation-passing style and other idioms. On its face, proper tail recursion concerns the efficiency of procedure calls that occur within a tail context. When examined closely, proper tail recursion also depends upon the fact that garbage collection can be asymptotically more space-efficient than Algol-like stack allocation.Proper tail recursion is not the same as ad hoc tail call optimization in stack-based languages. Proper tail recursion often precludes stack allocation of variables, but yields a well-defined asymptotic space complexity that can be relied upon by portable programs.This paper offers a formal and implementation-independent definition of proper tail recursion for Scheme. It also shows how an entire family of reference implementations can be used to characterize related safe-for-space properties, and proves the asymptotic inequalities that hold between them.
William D. Clinger
PLDI1
1997 Generational Garbage Collection and the Radioactive Decay Model
abstract
If a fixed exponentially decreasing probability distribution function is used to model every object's lifetime, then the age of an object gives no information about its future life expectancy. This radioactive decay model implies there can be no rational basis for deciding which live objects should be promoted to another generation. Yet there remains a rational basis for deciding how many objects to promote, when to collect garbage, and which generations to collect.Analysis of the model leads to a new kind of generational garbage collector whose effectiveness does not depend upon heuristics that predict which objects will live longer than others.This result provides insight into the computational advantages of generational garbage collection, with implications for the management of objects whose life expectancies are difficult to predict.
William D. Clinger, Lars Thomas Hansen
PLDI1
1991 Macros That Work
abstract
Article Macros that work Share on Authors: William Clinger Department of Computer Science, University of Oregon Department of Computer Science, University of OregonView Profile , Jonathan Rees Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, MA Artificial Intelligence Laboratory, Massachusetts Institute of Technology, Cambridge, MAView Profile Authors Info & Claims POPL '91: Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languagesJanuary 1991 Pages 155–162https://doi.org/10.1145/99583.99607Online:03 January 1991Publication History 102citation1,489DownloadsMetricsTotal Citations102Total Downloads1,489Last 12 Months27Last 6 weeks4 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access
William D. Clinger, Jonathan Rees
POPL1
1990 How to Read Floating-Point Numbers Accurately
abstract
Consider the problem of converting decimal scientific notation for a number into the best binary floating point approximation to that number, for some fixed precision. This problem cannot be solved using arithmetic of any fixed precision. Hence the IEEE Standard for Binary Floating-Point Arithmetic does not require the result of such a conversion to be the best approximation.
William D. Clinger
PLDI1