Results 1 - 10
of
13
An Automata-theoretic Approach to Interprocedural Data-flow Analysis
, 1999
"... . We show that recent progress in extending the automatatheoretic approach to model-checking beyond the class of finite-state processes finds a natural application in the area of interprocedural dataflow analysis. Keywords: Interprocedural data-flow analysis, model-checking, automata theory, progra ..."
Abstract
-
Cited by 46 (10 self)
- Add to MetaCart
. We show that recent progress in extending the automatatheoretic approach to model-checking beyond the class of finite-state processes finds a natural application in the area of interprocedural dataflow analysis. Keywords: Interprocedural data-flow analysis, model-checking, automata theory, program optimisation. 1 Introduction Recent work [15, 24] has shown that model-checking algorithms for abstract classes of infinite-state systems, like context-free processes [1, 5] and pushdown processes [6], find a natural application in the area of data-flow analysis (DFA) for programming languages with procedures [16], usually called interprocedural DFA. A large variety of DFA problems, whose solution is required by optimising compilers in order to apply performance improving transformations, can be solved by means of a unique model-checking technique. The techniques of [5, 6] are based on what could be called the fixpoint approach to model-checking [24], in which the set of states satisfying...
Playing by the rules: rewriting as a practical optimisation technique in GHC
"... We describe a facility for improving optimization of Haskell programs using rewrite rules. Library authors can use rules to express domain-specific optimizations that the compiler cannot discover for itself. The compiler can also generate rules internally to propagate information obtained from aut ..."
Abstract
-
Cited by 46 (6 self)
- Add to MetaCart
We describe a facility for improving optimization of Haskell programs using rewrite rules. Library authors can use rules to express domain-specific optimizations that the compiler cannot discover for itself. The compiler can also generate rules internally to propagate information obtained from automated analyses. The rewrite mechanism is fully implemented in the released Glasgow Haskell Compiler. Our system is very simple, but can be effective in optimizing real programs. We describe two practical applications involving short-cut deforestation, for lists and for rose trees, and document substantial performance improvements on a range of programs. 1 Introduction Optimising compilers perform program transformations that improve the efficiency of the program. However, a compiler can only use relatively shallow reasoning to guarantee the correctness of its optimisations. In contrast, the programmer has much deeper information about the program and its intended behaviour. For example, a programmer may know that
Imperative program transformation by rewriting
- In Proc. 10th International Conf. on Compiler Construction, volume 2027 of Lecture Notes in Computer Science
, 2001
"... Abstract. We present a method of specifying standard imperative program optimisations as a rewrite system. To achieve this we have extended the idea of matching sub-terms in expressions with simple patterns to matching blocks in a control flow graph. In order to express the complex restrictions on t ..."
Abstract
-
Cited by 33 (5 self)
- Add to MetaCart
Abstract. We present a method of specifying standard imperative program optimisations as a rewrite system. To achieve this we have extended the idea of matching sub-terms in expressions with simple patterns to matching blocks in a control flow graph. In order to express the complex restrictions on the applicability of these rewrites we add temporal logic side conditions. The combination of these features allows a flexible, high level, yet executable specification of many of the transformations found in optimising compilers. 1
Towards a Tool Kit for the Automatic Generation of Interprocedural Data Flow Analyses
, 1996
"... this article, the classical application of DFA. In this context, designers of a DFA are typically faced with the problem of how to construct an algorithm that determines the set of program points of an argument program which satisfy a certain property of interest. Though this problem has been studie ..."
Abstract
-
Cited by 15 (5 self)
- Add to MetaCart
this article, the classical application of DFA. In this context, designers of a DFA are typically faced with the problem of how to construct an algorithm that determines the set of program points of an argument program which satisfy a certain property of interest. Though this problem has been studied in detail for the intraprocedural case, the construction of interprocedural analyses is still
Universal regular path queries
- Higher-Order and Symbolic Computation
, 2003
"... Given are a directed edge-labelled graph G with a distinguished node n0, and a regular expression P which may contain variables. We wish to compute all substitutions φ (of symbols for variables), together with all nodes n such that all paths n0 → n are in φ(P). We derive an algorithm for this proble ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
Given are a directed edge-labelled graph G with a distinguished node n0, and a regular expression P which may contain variables. We wish to compute all substitutions φ (of symbols for variables), together with all nodes n such that all paths n0 → n are in φ(P). We derive an algorithm for this problem using relational algebra, and show how it may be implemented in Prolog. The motivation for the problem derives from a declarative framework for specifying compiler optimisations. 1 Bob Paige and IFIP WG 2.1 Bob Paige was a long-standing member of IFIP Working Group 2.1 on Algorithmic Languages and Calculi. In recent years, the main aim of this group has been to investigate the derivation of algorithms from specifications by program transformation. Already in the mid-eighties, Bob was way ahead of the pack: instead of applying transformational techniques to well-worn examples, he was applying his theories of program transformation to new problems, and discovering new algorithms [16, 48, 52]. The secret of his success lay partly in his insistence on the study of general algorithm design strategies (in particular
Heterogeneous Analysis and Verification for Distributed Systems
, 1995
"... In this paper we present an environment for the development of special purpose heterogeneous analysis and verification tools, which is unique in 1) constituting a framework for the development of application specific heterogeneous tools and 2) providing facilities for the automation of the synthesis ..."
Abstract
-
Cited by 8 (6 self)
- Add to MetaCart
In this paper we present an environment for the development of special purpose heterogeneous analysis and verification tools, which is unique in 1) constituting a framework for the development of application specific heterogeneous tools and 2) providing facilities for the automation of the synthesis process. Based on a specification language that uniformly combines taxonomic component specifications, interface conditions, and ordering constraints, our method adds a global view to conventional single component retrieval. Following a user session, we illustrate the interactive synthesis process, which supports the inclusion of a satisfactory new software component into the repository by proposing an appropriately precomputed default taxonomic classification. This guarantees convenient retrieval for later reuse.
Incremental Formalization: a Key to Industrial Success
- in "Software: Concepts and Tools
, 1996
"... views focus the development process, and support error correction. This approach provides an incremental use of formal methods: if no formal constraints are defined, our system behaves like standard systems for service definition. However, the more constraints are added, the more reliable are the cr ..."
Abstract
-
Cited by 7 (6 self)
- Add to MetaCart
views focus the development process, and support error correction. This approach provides an incremental use of formal methods: if no formal constraints are defined, our system behaves like standard systems for service definition. However, the more constraints are added, the more reliable are the created services. This provides a `soft' entry into the world of formal methods avoiding drastic changes, which would be costly and lead to acceptance problems. The major expected benefit is a drastic reduction of the development and testing time (and thus of the costs) of new IN services, since expert knowledge, usually being distributed over various sites, can now be formulated during the whole development process and made available even for non-experts. 3.1 The Service Logic Editor Our environment is used for the reliable, aspect-driven definition of Telephone Services in a `divide and conquer' fashion: initial prototypes are successively modified until they satisfy the current requirement...
Automatic Synthesis of Linear Process Models from Temporal Constraints -- An Incremental Approach
- IN ACM/SIGPLAN INT. WORKSHOP ON AUTOMATED ANALYSIS OF SOFTWARE (AAS’97
, 1997
"... We present PM-MetaFrame, a tool for automatic synthesis (i.e. prior to any enaction) of linear process models from specifications written as global constraints in linear time temporal logic. Key to ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
We present PM-MetaFrame, a tool for automatic synthesis (i.e. prior to any enaction) of linear process models from specifications written as global constraints in linear time temporal logic. Key to
Graphs in MetaFrame: The Unifying Power of Polymorphism
- Proc. TACAS'97, Enschede (NL
, 1997
"... We present a highly polymorphic tool for the construction, synthesis, structuring, manipulation, investigation, and (symbolic) execution of graphs. ..."
Abstract
- Add to MetaCart
We present a highly polymorphic tool for the construction, synthesis, structuring, manipulation, investigation, and (symbolic) execution of graphs.

