1,205 papers · page 44 of 61
Jong-Deok Choi, Barton P. Miller, Robert H. B. Netzer
Flowback analysis is a powerful technique for debugging programs.It allows the programmer to examine dynamic dependence in a program's execution history without having to reexecute the program.The goal is to present to the programmer a graphical view of the dynamic program depend…
Norman H. Cohen
article Free AccessType-extension type test can be performed in constant time Author: Norman H. Cohen T. J. Watson Research Center, Yorktown Heights, NY T. J. Watson Research Center, Yorktown Heights, NYView Profile Authors Info & Claims ACM Transactions on Programming Languages …
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, F. Kenneth Zadeck
In optimizing compilers, data structure choices directly influence the power and efficiency of practical program optimization.A poor choice of data structure can inhibit optimization or slow compilation to the point that advanced optimization features become undesirable.Recently,…
Dhananjay M. Dhamdhere
We present some modifications to Morel and Renvoise's algorithm for global optimization by suppression of partial redundancies.The modifications are motivated by the desire to ( 1) eliminate redundant code motion, and (2) extend the scope of optimization to the movement of assign…
Pascal Fradet, Daniel Le Métayer
One of the most important issues concerning functional languages is the efficiency and the correctness of their implementation. We focus on sequential implementations for conventional von Neumann computers. The compilation process is described in terms of program transformations …
Maurice Herlihy
A wait-free implementation of a concurrent data object is one that guarantees that any process can complete any operation in a finite number of steps, regardless of the execution speeds of the other processes. The problem of constructing a wait-free implementation of one data obj…
Paul Hudak, Jonathan Young
A collecting interpretation of expressions is an interpretation of a program that allows one to answer questions of the sort: “What are all possible values to which an expression might evaluate during program execution?” Answering such questions in a denotational framework is aki…
Scott E. Hudson
This paper introduces a new algorithm for incremental attribute evaluation.The algorithm is lazy: Itevaluates only theattributes that are both affected byachange andthat are directly or indirectly observable by the user.In this way, the wasted work of computing values that are ne…
Radha Jagadeesan, Keshav Pingali, Prakash Panangaden
There is much interest in combining the functional and logic programming paradigms � in particular, there have been several proposals for adding logic variables to functional languages, since that permits incremental construction of data structures through constraint intersection…
Edward A. Lycklama, Vassos Hadzilacos
We present an algorithm for the mutual-exclusion problem that satisfies the "first-come-firstserved" property and requires only five shared bits per participant.The algorithm works in a model of concurrency that does not assume atomic operations.
Ronald Morrison, Alan Dearle, Richard C. H. Connor, Alfred L. Brown
Polymorphicabstraction provides the ability to write programs that are independent of the form of the data over which they operate.There are a number of different categories of polymorphic expression-ad hoc and umversal, which includes parametric and inclusion-all of which have m…
Thomas P. Murtagh
The conventional storage allocation scheme for block structured languages requires the allocation of stack space and the building of a dmplay with each procedure call.Several techniques have been proposed for analyzing the call graph of a program that make it possible to eliminat…
Wuxu Peng, S. Purushothaman
Let ( F'l, Pz, . . . .Pm) be a network of n finite state machines, communicating with each other asynchronously using typed messages over unbounded FIFO channels, In this paper we present a data flow approach to analyzing these communicating machines for nonprogress properties (d…
Russell W. Quong, Mark A. Linton
Linking is traditionally a batch process that resolves cross-references between object modules and run-time libraries to produce a stand-alone executable image. Because most program changes only involve a small part of the program, we have implemented an incremental linker, named…
Tim Sheard
structures are those structures definable by parametric and recursive type equations.Manipulation of the instances of such structures is often expressed as recursive functions.These functions can be quite complex and tedious to write, especially for types needed to model complex …
Dennis M. Volpano
No abstract available.
Richard C. Waters
The benefits of programming in a functional style are well known. In particular, algorithms that are expressed as compositions of functions operating on sequences/vectors/streams of data elements are easier to understand and modify than equivalent algorithms expressed as loops. U…
Mark N. Wegman, F. Kenneth Zadeck
Constant propagation is a well-known global flow analysis problem. The goal of constant propagation is to discover values that are constant on all possible executions of a program and to propagate these constant values as far foward through the program as possible. Expressions wh…
Niklaus Wirth
No abstract available.
Daniel M. Yellin, Robert E. Strom
An incremental computation is one that is performed repeatedly on nearly identical inputs. Incremental computations occur naturally in many environments, such as compilers, language-based editors, spreadsheets, and formatters. This article describes a proposed tool for making it …