1,205 papers · page 55 of 61
Richard B. Kieburtz, Abraham Silberschatz
data types, and in particular those that are designed to provide resources for use by concurrently executable programs, are often designed to be used only in certain ways.The intended constraints on use of an instance of such a type can be expressed in two principal ways: as asse…
Leslie Lamport
Concurrent Program ModulesA method for specifying program modules in a concurrent program is described.It is based upon temporal logic, but uses new kinds of temporal assertions to make the specifications simpler and easier to understand.The semantics of the specifications is des…
Richard J. Lipton, Jacobo Valdes, Gopalakrishnan Vijayan, Stephen C. North, Robert Sedgewick
The first component of a VLSI (very large-scale integration) design environment being built at Princeton University is described.The general theme of this effort is to make the design of VLSI circuits as similar to programming as possible.The attempt is to build tools that do for…
Barbara Liskov, Robert Scheifler
An overview is presented of an integrated programming language and system designed to support the construction and maintenance of distributed programs: programs in which modules reside and execute at communicating, but geographically distinct, nodes.The language is intended to su…
B. Maher, Derek H. Sleeman
The design objective of the Leeds Transformation System is to transform existing programs, written in a variety of languages, into "tidier" programs.The total system was conceived of as having three phases: syntactic transformations, variable usage transformations, and synthesizi…
Philip M. Merlin, Gregor von Bochmann
The problem of elaborating the specification for the submodules of a system is considered.A new method for the construction of submodule specifications is described.If the system is to consist of n submodules and the system as well as (n -1) submodules are specified, then the met…
Marty Ossefort
The proof method for networks of processes proposed by Misra and Chandy is demonstrated on three examples from the literature.It is shown that this method is easy to use, preserves process autonomy in the network proof, and conforms naturally to the hierarchical structure of the …
Gary L. Peterson
While WritingThe problem of asynchronous processes reading shared data while the data are being modified by another process is considered.This problem differs from the standard readers/writers problem in that concurrent reading while writing is allowed.The model used here strongl…
Gary L. Peterson
Concurrent Small SharedA new solution to the concurrent programming control (mutual exclusion) problem that is immune to process failures and restarts is presented.The algorithm uses just four values of shared memory per process, which is within one value of the known lower bound…
Steven P. Reiss
Compiler symbol processing has become complex as programming languages have evolved.In this paper we describe a comprehensive model of symbol processing, and a system that uses this model to generate the symbol processing portions of a compiler from simple specifications.The mode…
Thomas W. Reps, Tim Teitelbaum, Alan J. Demers
Knowledge of a programming language's grammar allows language-based editors to enforce syntactic correctness at all times during development by restricting editing operations to legitimate modifications ot ~ the program's context-free derivation tree; however, not all language co…
Ravi Sethi
This paper is a demonstration of a semantics-directed compiler generator.We focus on the part of a compiler between syntax analysis and code generation.A language is specified by adding semantic rules in a functional notation to the syntax of the language.Starting with a small su…
Seppo Sippu, Eljas Soisalon-Soininen
A syntax-error-handling technique is defined as an extension of LR parsing.The technique is automatic, and the generation of the error-handling algorithm is based only on the context-free grammar and the lexical description of the language.The heart of the algorithm is a "phrase-…
Richard C. Waters
A LISP prettyprinter is presented that makes it easy for a user to control the format of the output produced.The printer can be used as a general mechanism for printing data structures as well as programs.It is divided into two parts: a set of formatting functions and an output r…
Elaine J. Weyuker
Despite the almost universal reliance on testing as the means of locating software errors and its long history of use, few criteria have been proposed for deciding when software has been thoroughly tested.As a basis for the development of usable notions of test data adequacy, an …
Jacques J. Arsac, Yves Kodratoff
RemovalThree different techniques that can be used for recursion removal are described: generalization of the function definition, study of the computation traces of the function, and nonprocedural languages.Despite the existence of implemented versions of these techniques, they …
Edward A. Ashcroft, William W. Wadge
A constructive criticism of recent work in the semantics of programming languages is offered.The criticism is directed not so much at the techniques and results obtained as at the use to which they are put.The fact that denotational (or "mathematical") semantics plays on the whol…
Theodore P. Baker
OverloadA simple method is presented for detecting ambiguities and finding the correct interpretations of expressions in the programming language Ada.Unlike previously reported solutions to this problem, which require multiple passes over a tree structure, the method described he…
J. Bergeron, A. Dubuque
A structured APL system introducing several interesting features is described.The APL group concept has been considerably extended to yield a new type of APL object called a segment.Segments constitute the basic building blocks used to manage memory and to build up the workspace …
H. J. Boom
article Free Access Share on A Weaker Precondition for Loops Author: H. J. Boom Computer Science Department, Concordia University, 1455 de Maisonneuve Boulevard West, Montreal, P.Q., Canada H3G 1M8 Computer Science Department, Concordia University, 1455 de Maisonneuve Boulevard W…