Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Wim Vanhoof is active.

Publication


Featured researches published by Wim Vanhoof.


ACM Transactions on Programming Languages and Systems | 2007

Termination analysis of logic programs through combination of type-based norms

Maurice Bruynooghe; Michael Codish; John P. Gallagher; Samir Genaim; Wim Vanhoof

This article makes two contributions to the work on semantics-based termination analysis for logic programs. The first involves a novel notion of type-based norm where for a given type, a corresponding norm is defined to count in a term the number of subterms of that type. This provides a collection of candidate norms, one for each type defined in the program. The second enables an analyzer to base termination proofs on the combination of several different norms. This is useful when different norms are better suited to justify the termination of different parts of the program. Application of the two contributions together consists in considering the combination of the type-based candidate norms for a given program. This results in a powerful and practical technique. Both contributions have been introduced into a working termination analyzer. Experimentation indicates that they yield state-of-the-art results in a fully automatic analysis tool, improving with respect to methods that do not use both types and combined norms.


Theory and Practice of Logic Programming | 2004

Offline specialisation in Prolog using a hand-written compiler generator

Michael Leuschel; Jesper Jørgensen; Wim Vanhoof; Maurice Bruynooghe

The so called “cogen approach” to program specialisation, writing a compiler generator instead of a specialiser, has been used with considerable success in partial evaluation of both functional and imperative languages. This paper demonstrates that the cogen approach is also applicable to the specialisation of logic programs (called partial deduction) and leads to effective specialisers. Moreover, using good binding-time annotations, the speed-ups of the specialised programs are comparable to the speed-ups obtained with online specialisers. The paper first develops a generic approach to offline partial deduction and then a specific offline partial deduction method, leading to the offline system LIX for pure logic programs. While this is a usable specialiser by itself, it is used to develop the cogen system LOGEN. Given a program, a specification of what inputs will be static, and an annotation specifying which calls should be unfolded, LOGEN generates a specialised specialiser for the program at hand. Running this specialiser with particular values for the static inputs results in the specialised program. While this requires two steps instead of one, the efficiency of the specialisation process is improved in situations where the same program is specialised multiple times. The paper also presents and evaluates an automatic binding-time analysis that is able to derive the annotations. While the derived annotations are still suboptimal compared to hand-crafted ones, they enable non-expert users to use the LOGEN system in a fully automated way. Finally, LOGEN is extended so as to directly support a large part of Prologs declarative and non-declarative features and so as to be able to perform so called mixline specialisations.


logic-based program synthesis and transformation | 2004

Specialising Interpreters Using Offline Partial Deduction

Michael Leuschel; Stephen-John Craig; Maurice Bruynooghe; Wim Vanhoof

We present the latest version of the {\sc logen} partial evaluation system for logic programs. In particular we present new binding-types, and show how they can be used to effectively specialise a wide variety of interpreters.We show how to achieve Jones-optimality in a systematic way for several interpreters. Finally, we present and specialise a non-trivial interpreter for a small functional programming language. Experimental results are also presented, highlighting that the {\sc logen} system can be a good basis for generating compilers for high-level languages.


logic based program synthesis and transformation | 2009

Towards a framework for constraint-based test case generation

François Degrave; Tom Schrijvers; Wim Vanhoof

In this paper, we propose an approach for automated test case generation based on techniques from constraint programming (CP). We advocate the use of standard CP search strategies in order to express preferences on the generated test cases and to obtain the desired degree of coverage. We develop our framework in the concrete context of an imperative language and show that the technique is sufficiently powerful to deal with arbitrary pointer-based data-structures allocated on the heap.


static analysis symposium | 2002

Reuse of Results in Termination Analysis of Typed Logic Programs

Maurice Bruynooghe; Michael Codish; Samir Genaim; Wim Vanhoof

Recent works by the authors address the problem of automating the selection of a candidate norm for the purpose of termination analysis. These works illustrate a powerful technique in which a collection of simple type-based norms, one for each data type in the program, are combined together to provide the candidate norm. This paper extends these results by investigating type polymorphism. We show that by considering polymorphic types we reduce, without sacrificing precision, the number of type-based norms which should be combined to provide the candidate norm. Moreover, we show that when a generic polymorphic typed program component occurs in one or more specific type contexts, we need not reanalyze it. All of the information concerning its termination and its effect on the termination of other predicates in that context can be derived directly from the context independent analysis of that component based on norms derived from the polymorphic types.


logic-based program synthesis and transformation | 1997

To Parse or Not To Parse

Wim Vanhoof; Bern Martens

In this paper, we reconsider the problem of specialising the vanilla meta interpreter through fully automatic and completely general partial deduction techniques. In particular, we study how the homeomorphic embedding relation guides specialisation of the interpreter. We focus on the so-called parsing problem, i.e. removing all parsing overhead from the program, and demonstrate that further refinements in the control of general partial deduction are necessary to properly deal with it. In particular, we modify local control on the basis of information imported from the global level. The resulting control strategy, while remaining fully general, leads to excellent specialisation of vanilla like meta programs. Parsing is always specialised, but — appropriately, as we will show — not always completely removed. As a concrete application, we subject an extended vanilla meta interpreter capable of dealing with compositions of programs to our techniques, showing we equal or surpass results obtained through a more ad hoc approach.


international workshop on testing database systems | 2012

Test input generation for database programs using relational constraints

Michaël Marcozzi; Wim Vanhoof; Jean-Luc Hainaut

Databases are ubiquitous in software and testing of programs manipulating databases is thus essential to enhance the reliability of software. In this paper, we describe a clean and unified approach to automatically generate test inputs for such database programs. First, we propose a formal language, called ImperDB, to model database programs. ImperDB allows to model common program behaviors and data structures, as well as typical interaction scenarios between programs and databases. Secondly, we present a static analysis technique to generate test inputs for ImperDB programs, according to any chosen structural adequacy criterion. The technique considers an ImperDB program as a sequence of operations over a set of relational variables, modeling both the database original content and the program inputs. The problem of finding test inputs forcing the execution of a given path can then be transformed into the problem of solving constraints over the relational variables associated to the program. These constraints are expressed with the Alloy language and solved by the Alloy analyzer.


logic-based program synthesis and transformation | 2009

Automatic Generation of Test Inputs for Mercury

François Degrave; Tom Schrijvers; Wim Vanhoof

In this work, we consider the automatic generation of test inputs for Mercury programs. We use an abstract representation of a program that allows to reason about program executions as paths in a control-flow graph. Next, we define how such a path corresponds to a set of constraints whose solution defines input values for the predicate under test such that when the predicate is called with respect to these input values, the execution is guaranteed to follow the given path. The approach is similar to existing work for imperative languages, but has been considerably adapted to deal with the specificities of Mercury, such as symbolic data representation, predicate failure and non-determinism.


international conference on logic programming | 1999

Binding-time analysis for mercury

Wim Vanhoof; Maurice Bruynooghe

In this work, we develop a binding-time analysis for the logic programming language Mercury. We introduce a precise domain of binding-times, based on the type information available in Mercury programs, that allows the analyser to reason with partially static data structures. The analysis is polyvariant, and deals with the module structure and higher-order capabilities of Mercury programs.


international andrei ershov memorial conference on perspectives of system informatics | 2001

Pos(T): Analyzing Dependencies in Typed Logic Programs

Maurice Bruynooghe; Wim Vanhoof; Michael Codish

Dependencies play a major role in the analysis of program properties. The analysis of groundness dependencies for logic programs using the class of positive Boolean functions is a main applications area. The precision of such an analysis can be improved through the integration of either pattern information or type information. This paper develops an approach in which type information is exploited. Different from previous work, a separate simple analysis is performed for each subtype of the types. If the types are polymorphic, then dependencies for specific type instances are derived from the analysis of the polymorphic typed program.

Collaboration


Dive into the Wim Vanhoof's collaboration.

Top Co-Authors

Avatar

Maurice Bruynooghe

Katholieke Universiteit Leuven

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Bern Martens

Katholieke Universiteit Leuven

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Michael Codish

Ben-Gurion University of the Negev

View shared research outputs
Top Co-Authors

Avatar

Danny De Schreye

Katholieke Universiteit Leuven

View shared research outputs
Top Co-Authors

Avatar

Samir Genaim

Complutense University of Madrid

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge