#### Filter Results:

- Full text PDF available (28)

#### Publication Year

1982

2015

- This year (0)
- Last 5 years (2)
- Last 10 years (12)

#### Publication Type

#### Co-author

#### Journals and Conferences

#### Key Phrases

Learn More

- Richard Kelsey, William D. Clinger, Jonathan Rees
- SIGPLAN Notices
- 1998

The report gives a defining description of the programming language Scheme. Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety… (More)

The report gives a defining description of the programming language Scheme. Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety… (More)

- William D. Clinger, Jonathan Rees
- POPL
- 1991

This paper describes a modified form of Kohlbecker’s algorithm for reliably hygienic (capture-free) macro expansion in block-structured languages, where macros are source-tosource transformations specified using a high-level pattern language. Unlike previous algorithms, the modified algorithm runs in linear instead of quadratic time, copies few constants,… (More)

- William D. Clinger
- LISP and Functional Programming
- 1984

Many authors have offered much good advice on structuring compilers and proving them correct [3, 12, 13, 27, 28]. The correctness proof described here demonstrates tha t their advice can be applied to a useful compiler for a real programming language. This paper describes and proves the correctness of a simple compiler algorithm for Scheme, a statically… (More)

- William D. Clinger
- PLDI
- 1998

The IEEE/ANSI standard for Scheme requires implementations to be <i>properly tail recursive</i>. 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… (More)

- William D. Clinger, Anne Hartheimer, Eric Ost
- Higher-Order and Symbolic Computation
- 1999

Scheme and Smalltalk continuations may have unlimited extent. This means that a purely stack-based implementation of continuations, as suffices for most languages, is inadequate. We review several implementation strategies for continuations and compare their performance using instruction counts for the normal case and continuation-intensive synthetic… (More)

- William D. Clinger, Lars Thomas Hansen
- LISP and Functional Programming
- 1994

Optimizing compilers for higher-order languages need not be terribly complex. The problems created by non-local, non-global variables can be eliminated by allocating all such variables in the heap. Lambda lifting makes this practical by eliminating all non-local variables except for those that would have to be allocated in the heap anyway. The eliminated… (More)

- William D. Clinger
- PLDI
- 1990

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 <italic>IEEE Standard for Binary Floating-Point Arithmetic</italic> does not require the result of such a… (More)

- William D. Clinger
- Symposium on LISP and Functional Programming
- 1982

This paper offers a definition of nondeterministic call by need and gives two alternative call by need power domain semantics for a language with McCarthy's ambiguous operator amb. amb is one of the earliest and most interesting nondeterministic programming language constructs [9]. The value of (amb E<subscrpt>1</subscrpt> E<subscrpt>2</subscrpt>) is… (More)

- William D. Clinger, Lars Thomas Hansen
- PLDI
- 1997

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 <i>radioactive decay</i> model implies there can be no rational basis for deciding which live objects should be promoted to another generation. Yet there remains… (More)