Programming Languages and Systems (TOPLAS)


Search Issue
enter search term and/or author name


ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 27 Issue 3, May 2005

Corrigendum: a new, simpler linear-time dominators algorithm
Adam L. Buchsbaum, Haim Kaplan, Anne Rogers, Jeffery R. Westbrook
Pages: 383-387
DOI: 10.1145/1065887.1065888
Corrigendum to ACM Transactions on Programming Languages and Systems, 20(6):1265--1296, 1998....

When do bounds and domain propagation lead to the same search space?
Christian Schulte, Peter J. Stuckey
Pages: 388-425
DOI: 10.1145/1065887.1065889
This article explores the question of when two propagation-based constraint systems have the same behavior, in terms of search space. We categorize the behavior of domain and bounds propagators for primitive constraints, and provide theorems that...

A practical and fast iterative algorithm for φ-function computation using DJ graphs
Dibyendu Das, U. Ramakrishna
Pages: 426-440
DOI: 10.1145/1065887.1065890
We present a new and practical method of computing φ-function for all variables in a function for Static Single Assignment (SSA) form. The new algorithm is based on computing the Merge set of each node in the control flow graph of a...

Resource aware programming
Luc Moreau, Christian Queinnec
Pages: 441-476
DOI: 10.1145/1065887.1065891
We introduce the Resource Aware Programming framework, which allows users to monitor the resources used by their programs and to programmatically express policies for the management of such resources. The framework is based on a notion of...

CCured: type-safe retrofitting of legacy software
George C. Necula, Jeremy Condit, Matthew Harren, Scott McPeak, Westley Weimer
Pages: 477-526
DOI: 10.1145/1065887.1065892
This article describes CCured, a program transformation system that adds type safety guarantees to existing C programs. CCured attempts to verify statically that memory errors cannot occur, and it inserts run-time checks where static verification is...

Efficient and effective array bound checking
Thi Viet Nga Nguyen, François Irigoin
Pages: 527-570
DOI: 10.1145/1065887.1065893
Array bound checking refers to determining whether all array references in a program are within their declared ranges. This checking is critical for software verification and validation because subscripting arrays beyond their declared sizes may...

Comparing conservative coalescing criteria
Max Hailperin
Pages: 571-582
DOI: 10.1145/1065887.1065894
Graph-coloring register allocators can eliminate copy instructions from a program by coalescing the interference graph nodes corresponding to the source and destination. Briggs showed that by limiting coalescing to those situations that he dubbed...