TerminWeb: Termination Analyzer for Logic Programs

نویسندگان

  • Samir Genaim
  • Michael Codish
چکیده

The TerminWeb analyser is a semantic based termination analyser for logic programs. It is uniqueness in that it is based on a semantics which makes the termination properties observable. Its implementation is obtained as an abstraction of an interpreter which computes the termination semantics of a given program. TerminWeb supports termination checking and inference with respect to semi-linear norms; type-based norms; and a combination of several norms. 1 Overview of TerminWeb The TerminWeb analyser [8] is a semantic based termination analyser for logic programs, which focuses on universal termination. The analyser is implemented in SICStus Prolog and is available in two versions: on-line via WWW and stand-alone. The early version of TerminWeb analyser was developed, in [2], out of a collaboration with TerminLog [7]. The main contribution of [2] is basing termination analysis on semantics. Namely, providing a semantics which makes the termination properties of a program observable. The semantics adopted in [2] is called the binary unfolding semantics first presented in [4] where it was shown to make the notion of calls observable. The semantic objects are binary clauses. A binary clause of the form p(s̄)← q(t̄) indicates that a call to p is eventually followed by a call to q. Note that each pair of subsequent calls p(s̄) and q(t̄) are represented by at least one binary clause and that the loops in the program are represented by binary clauses of the form p(t̄)← p(s̄). Using the binary unfolding semantics, a termination analyser is obtained by approximating this semantics with respect to size and instantiation information. Then, this information is used to verify that each loop (recursive binary clause) has a decreasing measure over a well-founded domain. Note that in contrast to classic techniques, where a single global decreasing measure is required for proving termination, TerminWeb requires only a local decreasing measure for each loop. The core of TerminWeb is a simple abstract meta-interpreter which approximates the binary unfolding semantics. The approximation is over a domain to represent size and

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Termination Analysis for Mercury

Since the late eighties, much progress has been made in the theory of termination analysis for logic programs. However, from a practical point of view, the signiicance of much of the work on termination is hard to judge, since experimental evaluations rarely get published. Here we describe and evaluate a termination analyzer for Mercury, a strongly typed and moded logic-functional programming l...

متن کامل

Hasta-La-Vista: Termination Analyser for Logic Programs

Verifying termination is often considered as one of the most important aspects of program verification. Logic languages, allowing us to program declaratively, increase the danger of non-termination. Therefore, termination analysis received considerable attention in logic programming (see e.g. [7, 8, 10, 16]). Unfortunately, the majority of existing termination analysers, such as TermiLog [15], ...

متن کامل

Applying Static Analysis Techniques for Inferring Termination Conditions of Logic Programs

We present the implementation of cTI, a system for universal left-termination inference of logic programs, which heavily relies on static analysis techniques. Termination inference generalizes termination analysis/checking. Traditionally, a termination analyzer tries to prove that a given class of queries terminates. This class must be provided to the system, requiring user annotations. With te...

متن کامل

Non-termination analysis of logic programs with integer arithmetics

In the past years, analyzers have been introduced to detect classes of non-terminating queries for definite logic programs. Although these non-termination analyzers have shown to be rather precise, their applicability on real-life Prolog programs is limited because most Prolog programs use non-logical features. As a first step towards the analysis of Prolog programs, this paper presents a nonte...

متن کامل

cTI: A constraint-based termination inference tool for ISO-Prolog

We present cTI, the first system for universal left-termination inference of logic programs. Termination inference generalizes termination analysis and checking. Traditionally, a termination analyzer tries to prove that a given class of queries terminates. This class must be provided to the system, for instance by means of user annotations. Moreover, the analysis must be redone every time the c...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2003