Programming Languages and Systems (TOPLAS)


Search Issue
enter search term and/or author name


ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 16 Issue 6, Nov. 1994

Time-constrained buffer specifications in CSP + T and timed CSP
John J. Žic
Pages: 1661-1674
DOI: 10.1145/197320.197322
A finite buffer with time constraints on the rate of accepting inputs, producing outputs, and message latency is specified using both Timed CSP and a new real-time specification language, CSP + T, which adds expressive power to some of the...

Two issues in parallel language design
A. P. W. Böhm, R. R. Oldehoeft
Pages: 1675-1683
DOI: 10.1145/197320.197325
In this article, we discuss two programming language features that have value for expressibility and efficiency: nonstrictness and nondeterminism. Our work arose while assessing ways to enhance a currently successful language, SISAL [McGraw et...

Single-pass generation of static single-assignment form for structured languages
Marc M. Brandis, Hanspeter Mössenböck
Pages: 1684-1698
DOI: 10.1145/197320.197331

Axiomatic bootstrapping: a guide for compiler hackers
Andrew W. Appel
Pages: 1699-1718
DOI: 10.1145/197320.197336
If a compiler for language L is implemented in L, then it should be able to compile itself. But for systems used interactively commands are compiled and immediately executed, and these commands may invoke the...

Composing first-class transactions
Nicholas Haines, Darrell Kindred, J. Gregory Morrisett, Scott M. Nettles, Jeannette M. Wing
Pages: 1719-1736
DOI: 10.1145/197320.197346

Powerlist: a structure for parallel recursion
Jayadev Misra
Pages: 1737-1767
DOI: 10.1145/197320.197356
Many data-parallel algorithms—Fast Fourier Transform, Batcher's sorting schemes, and the prefix-sum—exhibit recursive structure. We propose a data structure called powerlist that permits succinct descriptions of such...

Improving the ratio of memory operations to floating-point operations in loops
Steve Carr, Ken Kennedy
Pages: 1768-1810
DOI: 10.1145/197320.197366
Over the past decade, microprocessor design strategies have focused on increasing the computational power on a single chip. Because computations often require more data from cache per floating-point operation than a machine can deliver and...

A behavioral notion of subtyping
Barbara H. Liskov, Jeannette M. Wing
Pages: 1811-1841
DOI: 10.1145/197320.197383
The use of hierarchy is an important component of object-oriented design. Hierarchy allows the use of type families, in which higher level supertypes capture the behavior that all of their subtypes have in common. For this methodology to be...

A unified model of pointwise equivalence of procedural computations
David G. von Bank, Charles M. Shub, Robert W. Sebesta
Pages: 1842-1874
DOI: 10.1145/197320.197402
The execution of a program on a processor is viewed as a representation of that program going through a sequence of states. Each state change is manifested by the execution of a single instruction. Models that depend on this perspective are...

Software merge: semantics of combining changes to programs
Valdis Berzins
Pages: 1875-1903
DOI: 10.1145/197320.197403
We present a language-independent semantic model of the process of combining changes to programs. This model extends the domains used in denotational semantics (complete partial orders) to Boolean algebras, and represents incompatible...