2,199 papers · page 95 of 110
Alfred V. Aho, Mahadevan Ganapathi
We show that tree pattern matching has significant advantages in the specification and implementation of efficient code generators. We present a top-down tree-matching algorithm that is particularly well suited to code generation applications. Finally, we present a new back-end l…
Thomas S. Anantharaman, Edmund M. Clarke, Michael J. Foster, Bud Mishra
Path expressions were originally proposed by Campbell and Habermann [1] as a mechanism for process synchronization at the monitor level in software. Not unexpectedly, they also provide a useful notation for specifying the behavior of asynchronous circuits. Motivated by this poten…
Andrew W. Appel
computer's memory after executionCode generation proceeds by successive reductions.Each transformation corresponds to a machine-operation; the reducer emits one line of assembly code as it performs each reduction:
David Bernstein, Ron Y. Pinter, Michael Rodeh
We propose a new machine model in which load operations can be performed in parallel with arithmetic operations by two separate functional units. For this model, the evaluation of expression trees is considered. An efficient algorithm to produce an optimal order of evaluation is …
Robert Cartwright
To accommodate polymorphic data types and operations, several computer scientists--most notably MacQueen, Plotkin, and Sethi--have proposed formalizing types as ideals. Although this approach is intuitively appealing, the resulting type system is both complex and restrictive beca…
Keith D. Cooper
Compilers for languages with call-by-reference formal parameters must deal with aliases arising from the renaming effects at call sites. This paper presents a set of techniques for analyzing aliasing patterns. The analysis is divided into detecting the introduction of aliases and…
E. Allen Emerson, Chin-Laung Lei
Article Modalities for model checking (extended abstract): branching time strikes back Share on Authors: E. Allen Emerson Department of Computer Sciences, University of Texas at Austin, Austin, Texas Department of Computer Sciences, University of Texas at Austin, Austin, TexasVie…
Jeanne Ferrante, Mary E. Mace
We consider the problem of generating sequential code for programs written in a language which contains a Multiple GOTO operator, predicates and statements. This problem arises when compiling a parallel intermediate form (such as the PDG [3,4]) to run on a sequential machine; in …
Ray Ford, Duangkaew Sawamiphakdi
The PSEP System represents a novel approach to incremental compilation for block structured languages. PSEP implements a very fine grain, “greedy” approach as a highly concurrent system of two processes: an editor and a code generator. The design allows the two processes to execu…
Christopher W. Fraser, David R. Hanson
EZ is a language-based programming environment that offers the services provided separately by programming languages and operating systems in traditional environments. These services are provided as facilities of a high-level string processing language with a 'persistent' memory …
Daniel P. Friedman, Christopher T. Haynes
Continuations, when available as first-class objects, provide a general control abstraction in programming languages. They liberate the programmer from specific control structures, increasing programming language extensibility. Such continuations may be extended by embedding them…
Kokichi Futatsugi, Joseph A. Goguen, Jean-Pierre Jouannaud, José Meseguer
Article Principles of OBJ2 Share on Authors: Kokichi Futatsugi Electrotechnical Laboratory, 1-1-4 Umezono, Sakura, Niibari, Ibaraki 305, Japan Electrotechnical Laboratory, 1-1-4 Umezono, Sakura, Niibari, Ibaraki 305, JapanView Profile , Joseph A. Goguen SRI International, Menlo P…
Joseph Y. Halpern, John H. Williams, Edward L. Wimmers, Timothy C. Winkler
We consider languages whose operational semantics is given by a set of rewrite rules. For such languages, it is important to be able to determine that there are enough rules to completely reduce all meaningful expressions, but not so many that the system of rules is inconsistent.…
Paul Hudak, Adrienne G. Bloss
We discuss the problem of efficiently implementing aggregates (contiguous data structures) such as arrays in functional programming systems. Simple changes to an aggregate conceptually involve making a new copy of the aggregate differing only in the changed component, but such co…
Gregory F. Johnson, Charles N. Fischer
Article Free Access Share on A meta-language and system for nonlocal incremental attribute evaluation in language-based editors Authors: Gregory F. Johnson Cornell University Cornell UniversityView Profile , C. N. Fischer U. of Wisconsin - Madison U. of Wisconsin - MadisonView Pr…
Michael B. Jones, Richard F. Rashid, Mary R. Thompson
Matchmaker, a language used to specify and automate the generation of interprocess communication interfaces, is presented. The process of and reasons for the evolution of Matchmaker are described. Performance and usage statistics are presented. Comparisons are made between Matchm…
Leslie Lamport
The formal correspondence between an implementation and its specification is examined. It is shown that existing specifications that claim to describe priority are either vacuous or else too restrictive to be implemented in some reasonable situations. This is illustrated with a p…
Leslie Lamport, Fred B. Schneider
A constraint is a relation among program variables that is maintained throughout execution. Type declarations and a very general form of aliasing can be expressed as constraints. A proof system based upon the interpretation of Hoare triples as temporal logic formulas is given for…
Daniel Leivant
Logical and mathemlicnl reasoning ahout impcrdtive programs.'
Orna Lichtenstein, Amir Pnueli
We present an algorithm for checking satisfiability of a linear time temporal logic formula over a finite state concurrent program. The running time of the algorithm is exponential in the size of the formula but linear in the size of the checked program. The algorithm yields also…