Results 1 -
6 of
6
Analysis of Nonlinear Constraints in CLP(R)
- Proceedings of the Tenth International Conference on Logic Progra mming
, 1993
"... Solving nonlinear constraints over real numbers is a complex problem. Hence constraint logic programming languages like CLP(R) or Prolog III solve only linear constraints and delay nonlinear constraints until they become linear. This efficient implementation method has the disadvantage that sometime ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
Solving nonlinear constraints over real numbers is a complex problem. Hence constraint logic programming languages like CLP(R) or Prolog III solve only linear constraints and delay nonlinear constraints until they become linear. This efficient implementation method has the disadvantage that sometimes computed answers are unsatisfiable or infinite loops occur due to the unsatisfiability of delayed nonlinear constraints. These problems could be solved by using a more powerful constraint solver which can deal with nonlinear constraints like in RISC-CLP(Real). Since such powerful constraint solvers are not very efficient, we propose a compromise between these two extremes. We characterize a class of CLP(R) programs for which all delayed nonlinear constraints become linear at run time. Programs belonging to this class can be safely executed with the efficient CLP(R) method while the remaining programs need a more powerful constraint solver. 1 Introduction The constraint logic programming ...
Polymorphic Type Analysis in Logic Programs by Abstract Interpretation
- Journal of Logic Programming
, 1998
"... INTERPRETATION LUNJIN LU LIX Ecole Polytechnique 91128 Palaiseau Cedex France Abstract In this paper, we first introduce a notion of polymorphic abstract interpretation that formalises a polymorphic analysis as a generalisation of possibly infinitely many monomorphic analyses in the sense that the ..."
Abstract
-
Cited by 6 (4 self)
- Add to MetaCart
INTERPRETATION LUNJIN LU LIX Ecole Polytechnique 91128 Palaiseau Cedex France Abstract In this paper, we first introduce a notion of polymorphic abstract interpretation that formalises a polymorphic analysis as a generalisation of possibly infinitely many monomorphic analyses in the sense that the results of the monomorphic analyses can be obtained as instances of that of the polymorphic analysis. We then present a polymorphic type analysis of logic programs in terms of an abstract domain for polymorphic descriptions of type information and two operators on the abstract domain, namely the least upper bound operator and the abstract unification operator. The abstract domain captures type information more precisely than other abstract domains for similar purposes. The abstract unification operator for the polymorphic type analysis is designed by lifting the abstract unification operator for a monomorphic type analysis in logic programs, which simplifies the proof of the safeness of the...
Type Analysis of Logic Programs in the Presence of Type Definitions
- In Proceedings of the 1995 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based program manipulation
, 1995
"... This paper presents an abstract domain and an abstract unification function for type analysis of logic programs with type definitions. Type information is inferred together with sharing and aliasing information. Aliasing information is used to improve the precision of type analysis. 1 Introduction ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
This paper presents an abstract domain and an abstract unification function for type analysis of logic programs with type definitions. Type information is inferred together with sharing and aliasing information. Aliasing information is used to improve the precision of type analysis. 1 Introduction Prolog is a type-free language. The programmer does not have to specify the types of variables, functions and predicates. This may make it simple to write simple programs. However, it also makes it difficult to debug programs because type errors cannot be detected by Prolog systems. A type error will manifest itself in the form of a wrong result or a missing result rather than an indication of a type violation. There have been many efforts to augment Prolog with type systems in the forms of type checking systems [2, 11, 27] and type analysis systems. Type analysis systems infer types from the text of a program. Some type analysis systems infer a type for the program and the type is meant to ...
Type-based Nondeterminism Checking in Functional Logic Programs
- IN PROC. OF THE 2ND INTERNATIONAL ACM SIGPLAN CONFERENCE ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING (PPDP 2000
, 2000
"... Functional logic languages combine nondeterministic search facilities of logic languages with features of functional languages, e.g., monadic I/O to provide a declarative method to deal with I/O actions. Unfortunately, monadic I/O cannot be used in programs which split the computation due to nondete ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
Functional logic languages combine nondeterministic search facilities of logic languages with features of functional languages, e.g., monadic I/O to provide a declarative method to deal with I/O actions. Unfortunately, monadic I/O cannot be used in programs which split the computation due to nondeterministic reductions. This problem can be avoided if nondeterministic computations are encapsulated by search operators which are available, for instance, in the multi-paradigm language Curry. To support the programmer in identifying nondeterministic parts of a program, we develop a method based on a type and eect system that will nd every possible source of nondeterminism. Additionally, such information can be exploited in compilers to optimize deterministically reducible parts of a program.
Interprocedural Analysis Based on PDAs
, 1997
"... . We systematically explore the design space of constraint systems for interprocedural analysis both of imperative and logic languages. Our framework is based on a small-step operational semantics where both the concrete and the abstract operational semantics are formalized by means of (input-free) ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
. We systematically explore the design space of constraint systems for interprocedural analysis both of imperative and logic languages. Our framework is based on a small-step operational semantics where both the concrete and the abstract operational semantics are formalized by means of (input-free) pushdown automata. We consider the analysis problem of derivability and present constraint systems for a corresponding relational analysis with forward as well as backward (intraprocedural) accumulation. We abstract these constraint systems to obtain constraint systems for corresponding functional analyses. We clarify the relative precision of forward versus backward accumulation in presence of more or less complex intraprocedural control-flow graphs. 1 Introduction Static analysis aims at computing statements about the runtime behavior of a program without actually executing the program. We propose a general framework for interprocedural analysis based on a small-step operational semanti...
Interval Analysis of C-variables using Abstract Interpretation
, 1996
"... Interpretation Andreas Ermedahl Mikael Sjodin December 18, 1996 Department of Computer Systems, Uppsala University Box 325, S-751 05 Uppsala, Sweden email: febbe, micg@docs.uu.se Contents 1 Introduction 4 2 Data Flow Analysis 4 2.1 Environments . . . . . . . . . . . . . . . . . . . . . . . . . ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Interpretation Andreas Ermedahl Mikael Sjodin December 18, 1996 Department of Computer Systems, Uppsala University Box 325, S-751 05 Uppsala, Sweden email: febbe, micg@docs.uu.se Contents 1 Introduction 4 2 Data Flow Analysis 4 2.1 Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Program description . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Fixpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 Iteration strategies . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Jacobi iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Chaotic iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3 Introducing Intervals 7 4 Interval Abstraction 8 4.1 Galois connection . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Monotonicity of ff . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Monotonicity of fl . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 ff(d) v d 0 , d ` fl(d...

