Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- ArticleMay 1996
A framework for generalized control dependence
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 291–300https://doi.org/10.1145/231379.231435We generalize the notion of dominance by defining a generalized dominance relation with respect to a set of paths in the control flow graph G = (V, E). This new definition leads to a generalized notion of control dependence, which includes standard ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
A new framework for exhaustive and incremental data flow analysis using DJ graphs
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 278–290https://doi.org/10.1145/231379.231434We present a new elimination-based framework for exhaustive and incremental data flow analysis using the DJ graph representation of a program. Unlike the previous approaches to elimination-based incremental data flow analysis, our approach can handle ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Data flow frequency analysis
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 267–277https://doi.org/10.1145/231379.231433Conventional dataflow analysis computes information about what facts may or will not hold during the execution of a program. Sometimes it is useful, for program optimization, to know how often or with what probability a fact holds true during program ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Replay for concurrent non-deterministic shared-memory applications
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 258–266https://doi.org/10.1145/231379.231432Replay of shared-memory program execution is desirable in many domains including cyclic debugging, fault tolerance and performance monitoring. Past approaches to repeatable execution have focused on the problem of re-executing the shared-memory access ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Target-sensitive construction of diagnostic programs for procedure calling sequence generators
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 249–257https://doi.org/10.1145/231379.231431Building compilers that generate correct code is difficult. In this paper we present a compiler testing technique that closes the gap between actual compiler implementations and correct compilers. Using formal specifications of procedure calling ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 -
- ArticleMay 1996
Teapot: language support for writing memory coherence protocols
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 237–248https://doi.org/10.1145/231379.231430Recent shared-memory parallel computer systems offer the exciting possibility of customizing memory coherence protocols to fit an application's semantics and sharing patterns. Custom protocols have been used to achieve message-passing performance---...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Relocating machine instructions by currying
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 226–236https://doi.org/10.1145/231379.231429Relocation adjusts machine instructions to account for changes in the locations of the instructions themselves or of external symbols to which they refer. Standard linkers implement a finite set of relocation transformations, suitable for a single ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Data specialization
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 215–225https://doi.org/10.1145/231379.231428Given a repeated computation, part of whose input context remains invariant across all repetitions, program staging improves performance by separating the computation into two phases. An early phase executes only once, performing computations depending ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Realistic compilation by partial evaluation
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 206–214https://doi.org/10.1145/231379.231419Two key steps in the compilation of strict functional languages are the conversion of higher-order functions to data structures (closures) and the transformation to tail-recursive style. We show how to perform both steps at once by applying first-order ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Flow-directed inlining
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 193–205https://doi.org/10.1145/231379.231417A flow-directed inlining strategy uses information derived from control-flow analysis to specialize and inline procedures for functional and object-oriented languages. Since it uses control-flow analysis to identify candidate call sites, flow-directed ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
TIL: a type-directed optimizing compiler for ML
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 181–192https://doi.org/10.1145/231379.231414Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Simple objects for Standard ML
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 171–180https://doi.org/10.1145/231379.231412We propose a new approach to adding objects to Standard ML (SML) based on explicit declarations of object types, object constructors, and subtyping relationships, with a generalization of the SML case statement to a "typecase" on object types. The ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
VCODE: a retargetable, extensible, very fast dynamic code generation system
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 160–170https://doi.org/10.1145/231379.231411Dynamic code generation is the creation of executable code at runtime. Such "on-the-fly" code generation is a powerful technique, enabling applications to use runtime information to improve performance by up to an order of magnitude [4, 8,20, 22, 23]...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Fast, effective dynamic compilation
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 149–159https://doi.org/10.1145/231379.231409Dynamic compilation enables optimization based on the values of invariant data computed at run-time. Using the values of these run-time constants, a dynamic compiler can eliminate their memory loads, perform constant propagation and folding, remove ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Optimizing ML with run-time code generation
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 137–148https://doi.org/10.1145/231379.231407We describe the design and implementation of a compiler that automatically translates ordinary programs written in a subset of ML into code that generates native code at run time. Run-time code generation can make use of values and invariants that ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Efficient and language-independent mobile programs
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 127–136https://doi.org/10.1145/231379.231402This paper evaluates the design and implementation of Omniware: a safe, efficient, and language-independent system for executing mobile program modules. Previous approaches to implementing mobile code rely on either language semantics or abstract ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Practical program analysis using general purpose logic programming systems—a case study
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 117–126https://doi.org/10.1145/231379.231399Many analysis problems can be cast in the form of evaluating minimal models of a logic program. Although such formulations are appealing due to their simplicity and declarativeness, they have not been widely used in practice because, either existing ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Representing control in the presence of one-shot continuations
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 99–107https://doi.org/10.1145/231379.231395Traditional first-class continuation mechanisms allow a captured continuation to be invoked multiple times. Many continuations, however, are invoked only once. This paper introduces one-shot continuations, shows how they interact with traditional multi-...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
Simple garbage-collector-safety
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 89–98https://doi.org/10.1145/231379.231394A conservative garbage collector can typically be used with conventionally compiled programs written in C or C++. But two safety issues must be considered. First, the source code must not hide pointers from the garbage collector. This primarily requires ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5 - ArticleMay 1996
GUM: a portable parallel implementation of Haskell
PLDI '96: Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementationPages 79–88https://doi.org/10.1145/231379.231392GUM is a portable, parallel implementation of the Haskell functional language. Despite sustained research interest in parallel functional programming, GUM is one of the first such systems to be made publicly available.GUM is message-based, and ...
Also Published in:
ACM SIGPLAN Notices: Volume 31 Issue 5