1,205 papers · page 52 of 61
Robert H. Halstead Jr.
Multilisp is a version of the Lisp dialect Scheme extended with constructs for parallel execution. Like Scheme, Multilisp is oriented toward symbolic computation. Unlike some parallel programming languages, Multilisp incorporates constructs for causing side effects and for explic…
Jan Heering, Paul Klint
Most programming environments are much too complex. One way of simplifying them is to reduce the number of mode-dependent languages the user has to be familiar with. As a first step towards this end, the feasibility of unified command/programming/debugging languages, and the conc…
David R. Jefferson
Virtual time is a new paradigm for organizing and synchronizing distributed systems which can be applied to such problems as distributed discrete event simulation and distributed database concurrency control. Virtual time provides a flexible abstraction of real time in much the s…
George J. Milne
The CIRCAL calculus is presented as a mathematical framework in which to describe and analyze concurrent systems, whether hardware or software. The dot operator is used to compose CIRCAL descriptions, and it is this operator which permits the natural modeling of asynchronous and …
Flemming Nielson
Program transformations are frequently performed by optimizing compilers, and the correctness of applying them usually depends on data flow information. For language-to-same-language transformations, it is shown how a denotational setting can be useful for validating such program…
Robert P. Nix
An editing by example system is an automatic program synthesis facility embedded in a text editor that can be used to solve repetitive text editing problems. The user provides the editor with a few examples of a text transformation. The system analyzes the examples and generalize…
Joseph C. H. Park, Kwang-Moo Choe, C. H. Chang
The traditional LALR analysis is reexamined using a new operator and an associated graph. An improved method that allows factoring out a crucial part of the computation for defining states of LR(0) canonical collection and for computing LALR(1) lookahead sets is presented. This f…
Alberto Pettorossi
article Free Access Share on A note on Cohen's “eliminating redundant recursive calls” Author: Norman H. Cohen Softech Inc. 705 Masons Mill Business Park, Huntingdon Valley, PA 19006 Softech Inc. 705 Masons Mill Business Park, Huntingdon Valley, PA 19006View Profile Authors Info …
Keshav Pingali, Arvind
We describe a program transformation technique for programs in a general stream language L whereby a data-driven evaluation of the transformed program performs exactly the same computation as a demand-driven evaluation of the original program. The transformational technique sugge…
Helmut Richter
A parser must be able to continue parsing after encountering a syntactic error to check the remainder of the input. To achieve this, it is not necessary to perform corrections on either the input text or the stack contents. A formal framework is provided in which noncorrecting sy…
David A. Schmidt
Sufficient criteria are given for replacing all occurrences of the store argument in a Scott-Strachey denotational definition of a programming language by a single global variable. The criteria and transformation are useful for transforming denotational definitions into compilers…
David W. Wall, Amitabh Srivastava, Fred Templin
article Free Access Share on A note on Hennessy's “symbolic debugging of optimized code” Authors: David Wall Computer Science Department, Whitmore Laboratory, The Pennsylvania State University, University Park, PA Computer Science Department, Whitmore Laboratory, The Pennsylvania…
William E. Weihl, Barbara Liskov
A major issue in many applications is how to preserve the consistency of data in the presence of concurrency and hardware failures. We suggest addressing this problem by implementing applications in terms of abstract data types with two properties: Their objects are atomic (they …
Shaula Yemini, Daniel M. Berry
This paper presents a new model for exception handling, called the replacement model. The replacement model, in contrast to other exception-handling proposals, supports all the handler responses of resumption, termination, retry, and exception propagation, within both statements …
Pamela Zave
A specification technique, formally equivalent to finite-state machines, is offered as an alternative because it is inherently distributed and more comprehensible. When applied to modules whose complexity is dominated by control, the technique guides the analyst to an effective d…
William F. Appelbe, Anders P. Ravn
This paper investigates the desirable properties of programming language constructs that support encapsulation of environments and abstract data types.These properties are illustrated by using a simple multiuser file system as a model.The requirements for such a file system are o…
Krzysztof R. Apt, Nissim Francez
How the distributed termination convention of CSP repetitive commands can be modeled using other CSP constructs is shown.The presented transformation suggests a simple implementation of this convention.We argue that this convention should be used as a compiler option.
James E. Archer Jr., Richard Conway, Fred B. Schneider
Interactive systems, such as editors and program development environments, should explicitly support facilities that permit a user to reverse the effects of past actions and to restore an object to a prior state.A model for interactive systems that allows such recovery facilities…
Roland Carl Backhouse
Locally least-cost error recovery is a technique for recovering from syntax errors by editing the input string at the point of error detection.A scheme for its implementation in recursive descent parsers, which in principle embodies a process of passing a parameter to each proced…
Mordechai Ben-Ari
A new algorithm is described for on-the-fly garbage collection.The new algorithm uses only two colors and has a simple correctness proof.Two variations on the algorithm are then derived: One attempts to minimize the amount of marking that must be done, and the other is an increme…