Results 1  10
of
11
A Naïve Time Analysis and its Theory of Cost Equivalence
 Journal of Logic and Computation
, 1995
"... Techniques for reasoning about extensional properties of functional programs are well understood, but methods for analysing the underlying intensional or operational properties have been much neglected. This paper begins with the development of a simple but useful calculus for time analysis of nons ..."
Abstract

Cited by 39 (7 self)
 Add to MetaCart
Techniques for reasoning about extensional properties of functional programs are well understood, but methods for analysing the underlying intensional or operational properties have been much neglected. This paper begins with the development of a simple but useful calculus for time analysis of nonstrict functional programs with lazy lists. One limitation of this basic calculus is that the ordinary equational reasoning on functional programs is not valid. In order to buy back some of these equational properties we develop a nonstandard operational equivalence relation called cost equivalence, by considering the number of computation steps as an `observable' component of the evaluation process. We define this relation by analogy with Park's definition of bisimulation in CCS. This formulation allows us to show that cost equivalence is a contextual congruence (and thus is substitutive with respect to the basic calculus) and provides useful proof techniques for establishing costequivalen...
Abstract interpretation based formal methods and future challenges, invited paper
 Informatics — 10 Years Back, 10 Years Ahead, volume 2000 of Lecture Notes in Computer Science
, 2001
"... Abstract. In order to contribute to the solution of the software reliability problem, tools have been designed to analyze statically the runtime behavior of programs. Because the correctness problem is undecidable, some form of approximation is needed. The purpose of abstract interpretation is to f ..."
Abstract

Cited by 33 (6 self)
 Add to MetaCart
Abstract. In order to contribute to the solution of the software reliability problem, tools have been designed to analyze statically the runtime behavior of programs. Because the correctness problem is undecidable, some form of approximation is needed. The purpose of abstract interpretation is to formalize this idea of approximation. We illustrate informally the application of abstraction to the semantics of programming languages as well as to static program analysis. The main point is that in order to reason or compute about a complex system, some information must be lost, that is the observation of executions must be either partial or at a high level of abstraction. In the second part of the paper, we compare static program analysis with deductive methods, modelchecking and type inference. Their foundational ideas are briefly reviewed, and the shortcomings of these four methods are discussed, including when they should be combined. Alternatively, since program debugging is still the main program verification
The Universal Resolving Algorithm: Inverse Computation in a Functional Language
 in Mathematics of Program Construction. Proceedings
, 2000
"... We present an algorithm for inverse computation in a firstorder functional language based on the notion of a perfect process tree. The Universal Resolving Algorithm (URA) introduced in this paper is sound and complete, and computes each solution, if it exists, in finite time. The algorithm has been ..."
Abstract

Cited by 22 (3 self)
 Add to MetaCart
(Show Context)
We present an algorithm for inverse computation in a firstorder functional language based on the notion of a perfect process tree. The Universal Resolving Algorithm (URA) introduced in this paper is sound and complete, and computes each solution, if it exists, in finite time. The algorithm has been implemented for TSG, a typed dialect of SGraph, and shows some remarkable results for the inverse computation of functional programs such as pattern matching and the inverse interpretation of Whileprograms.
Demand Transformation Analysis for Concurrent Constraint Programs
, 1994
"... Domain In this section we construct a domain of abstract constraints called ACon, which abstracts the domain #(C). In the construction of ACon, we use two domains called D and D V , also introduced in this section, which consist of nonground, downwardsclosed types representing sets of terms in #( ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Domain In this section we construct a domain of abstract constraints called ACon, which abstracts the domain #(C). In the construction of ACon, we use two domains called D and D V , also introduced in this section, which consist of nonground, downwardsclosed types representing sets of terms in #(H V ) and some basic types, such as the set of integers. (H V is ordered by t 1 t 2 if t 1 is a substitution instance of t 2 .) The domain of types is given by D ::= ? j? j j c(D; : : : ; D) j numj D D j :D. Program variables are not mentioned by types in D. In the syntax of D, c ranges over constructor symbols and is a fixpoint operator. Type variables are given by 2 TV , which are used only for fixpoint constructions. The base types ?, ? (read, "nonvar"), and num represent H V , H V n V , and the set of integers, respectively. Example 3.1. fX = ?; Y = ?g is an element of ACon representing the downwardsclosed set of constraints where X is constrained arbitrarily (including not at all...
A Semantics for Program Analysis in NarrowingBased Functional Logic Languages
 Proc. of 4th Fuji International Symposium on Functional and Logic Programming, FLOPS'99, LNCS
, 1999
"... We introduce a denotational characterization of narrowing, the computational engine of many functional logic languages. We use a functional domain for giving a denotation to the narrowing space associated to a given initial expression under an arbitrary narrowing strategy. Such a semantic descriptio ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
(Show Context)
We introduce a denotational characterization of narrowing, the computational engine of many functional logic languages. We use a functional domain for giving a denotation to the narrowing space associated to a given initial expression under an arbitrary narrowing strategy. Such a semantic description highlights...
Abstract Interpretation from a Topological Perspective
, 2009
"... We develop abstract interpretation from topological principles by relaxing the definitions of open set and continuity; key results still hold. We study families of closed and open sets and show they generate post and precondition analyses, respectively. Giacobazzi’s forwardsand backwardscomplete ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
We develop abstract interpretation from topological principles by relaxing the definitions of open set and continuity; key results still hold. We study families of closed and open sets and show they generate post and precondition analyses, respectively. Giacobazzi’s forwardsand backwardscomplete functions are characterized by the topologically closed and continuous maps, respectively. Finally, we show that Smyth’s upper and lower topologies for powersets induce the overapproximating and underapproximating transition functions used for abstractmodel checking.
An Evaluation Semantics for NarrowingBased Functional Logic Languages
, 2000
"... We introduce a semantic characterization of narrowing, the computational engine of many functional logic languages. We use a functional domain for giving a denotation to the narrowing space associated to a given initial expression under an arbitrary narrowing strategy. Such a semantic description hi ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We introduce a semantic characterization of narrowing, the computational engine of many functional logic languages. We use a functional domain for giving a denotation to the narrowing space associated to a given initial expression under an arbitrary narrowing strategy. Such a semantic description highlights (and favours) the operational notion of evaluation instead of the more usual modeltheoretic notion of interpretation semantics which encodes information about the real operational framework used by a given (narrowingbased) functional logic language. Our aim is to provide a general, suitable, and accurate framework for the analysis of functional logic programs.
Observable Semantics and Dynamic Analysis of Computational Processes
, 2000
"... We introduce a notion of observation of a computational process on the basis of the observation of (the meaningful information couched by) the syntactic objects involved in the computation. This is formalized by means of observation mappings. We use them to give a semantic description of computat ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We introduce a notion of observation of a computational process on the basis of the observation of (the meaningful information couched by) the syntactic objects involved in the computation. This is formalized by means of observation mappings. We use them to give a semantic description of computational processes, an observable semantics, which is given on a purely syntactic basis; the observation mapping provides for a suitable abstraction level which permits the definition of different kinds of semantic values (which are still syntactic objects) with precise computational interpretations. We show how to use these formal constructions to provide a semantic basis for dynamic analysis. Keywords: computational processes, program analysis, semantics. Work partially supported by grant 252541L of the ' Ecole Polytechnique (France), 1999 Research Support Program of the Universidad Polit'ecnica de Valencia, and Spanish CICYT grant TIC 980445C0301. 1 Contents 1
InverseLimit and Topological Aspects of Abstract Interpretation
"... We develop abstractinterpretation domain construction in terms of the inverselimit construction of denotational semantics and topological principles: We define an abstract domain as a “structural approximation ” of a concrete domain if the former exists as a finite approximant in the inverselimit ..."
Abstract
 Add to MetaCart
(Show Context)
We develop abstractinterpretation domain construction in terms of the inverselimit construction of denotational semantics and topological principles: We define an abstract domain as a “structural approximation ” of a concrete domain if the former exists as a finite approximant in the inverselimit construction of the latter, and we extract the appropriate Galois connection domain denote (basic) open sets from the concrete domain’s Scott topology, and we hypothesize that every abstract domain, even nonstructural approximations, defines a weakened form of topology on its corresponding concrete domain. We implement this observation by relaxing the definitions of topological open set and continuity; key results still hold. We show that families of closed and open sets defined by abstract domains generate post and precondition analyses, respectively, and Giacobazzi’s forwards and backwardscomplete functions of abstractinterpretation theory are the topologically closed and continuous maps, respectively. Finally, we show that Smyth’s upper and lower topologies for powerdomains induce the overapproximating and underapproximating transition functions used for abstractmodel checking.