#### Filter Results:

#### Publication Year

1982

2015

#### Publication Type

#### Co-author

#### Publication Venue

#### Key Phrases

Learn More

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

SUMMARY 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… (More)

SUMMARY This document contains non-normative appendices to the Revised 6 Report on the Algorithmic Language Scheme. These appendices contain advice for users and suggestions for implementors on issues not fit for standardization, in particular on platform-specific issues. This document frequently refers back to the Revised 6 Report on the Algorithmic… (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
- 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, 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-to-source 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, 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, 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)

- A. V. S. Sastry, William D. Clinger, Zena M. Ariola
- FPCA
- 1993

The aggregate update problem in functional languages is concerned with detecting cases where a functional array or record update operation can be implemented destructively in constant time. Previous work on this moblem has assumed ed a fixed order of evaluation of expressions. In this paper we devise a practical analysis, for first order strict functional… (More)

- William Clinger
- LIPO
- 1991

Although macros are even older than Lisp, Scheme has just become the first block-structured programming language to support a reliable macro system. This macro system is described in the appendix to the <i>Revised</i><sup>4</sup> <i>Report on the Algorithmic Language Scheme</i>, which appeared in the previous issue of <i>Lisp Pointers.</i> This issue… (More)

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