Making ProB compatible with SWI-Prolog

05/09/2022
by   David Geleßus, et al.
0

Even though the core of the Prolog programming language has been standardized by ISO since 1995, it remains difficult to write complex Prolog programs that can run unmodified on multiple Prolog implementations. Indeed, implementations sometimes deviate from the ISO standard and the standard itself fails to cover many features that are essential in practice. Most Prolog applications thus have to rely on non-standard features, often making them dependent on one particular Prolog implementation and incompatible with others. We examine one such Prolog application: ProB, which has been developed for over 20 years in SICStus Prolog. The article describes how we managed to refactor the codebase of ProB to also support SWI-Prolog, with the goal of verifying ProB's results using two independent toolchains. This required a multitude of adjustments, ranging from extending the SICStus emulation in SWI-Prolog on to better modularizing the monolithic ProB codebase. We also describe notable compatibility issues and other differences that we encountered in the process, and how we were able to deal with them with few major code changes. Under consideration for acceptance in TPLP.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/26/2022

Fifty Years of Prolog and Beyond

Both logic programming in general, and Prolog in particular, have a long...
research
04/24/2020

Retrofitting Parallelism onto OCaml

OCaml is an industrial-strength, multi-paradigm programming language, wi...
research
08/24/2018

Towards a constraint solver for proving confluence with invariant and equivalence of realistic CHR programs

Confluence of a nondeterministic program ensures a functional input-outp...
research
02/20/2018

Logic Programming Applications: What Are the Abstractions and Implementations?

This article presents an overview of applications of logic programming, ...
research
10/08/2017

Expressing and verifying embedded software requirements

Writing requirements for embedded software is pointless unless they refl...
research
08/01/2022

Design and Implementation of ShenWei Universal C/C++

The ShenWei many-core series processors powering multiple cutting-edge s...

Please sign up or login with your details

Forgot password? Click here to reset