ACM DL

Programming Languages and Systems (TOPLAS)

Menu

Search Issue
enter search term and/or author name

Archive


ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 28 Issue 6, November 2006

Denali: A practical algorithm for generating optimal code
Rajeev Joshi, Greg Nelson, Yunhong Zhou
Pages: 967-989
DOI: 10.1145/1186632.1186633
This article presents a design for the Denali-2 superoptimizer, which will generate minimum-instruction-length machine code for realistic machine architectures using automatic theorem-proving technology: specifically, using E-graph matching (a...

Adaptive functional programming
Umut A. Acar, Guy E. Blelloch, Robert Harper
Pages: 990-1034
DOI: 10.1145/1186632.1186634
We present techniques for incremental computing by introducing adaptive functional programming. As an adaptive program executes, the underlying system represents the data and control dependences in the execution in the form of a dynamic...

Flow-insensitive type qualifiers
Jeffrey S. Foster, Robert Johnson, John Kodumal, Alex Aiken
Pages: 1035-1087
DOI: 10.1145/1186632.1186635
We describe flow-insensitive type qualifiers, a lightweight, practical mechanism for specifying and checking properties not captured by traditional type systems. We present a framework for adding new, user-specified type qualifiers to programming...

Interprocedural slicing of multithreaded programs with applications to Java
Mangala Gowri Nanda, S. Ramesh
Pages: 1088-1144
DOI: 10.1145/1186632.1186636
Slicing is a well-known program reduction technique where for a given program P and a variable of interest v at some statement P in the program, a program slice contains those set of statements belonging to P that affect...

On minimizing materializations of array-valued temporaries
Daniel J. Rosenkrantz, Lenore R. Mullin, Harry B. Hunt III
Pages: 1145-1177
DOI: 10.1145/1186632.1186637
We consider the analysis and optimization of code utilizing operations and functions operating on entire arrays. Models are developed for studying the minimization of the number of materializations of array-valued temporaries in basic blocks, each...