Abstract
AbstractEven 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 nonstandard 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.
Publisher
Cambridge University Press (CUP)
Subject
Artificial Intelligence,Computational Theory and Mathematics,Hardware and Architecture,Theoretical Computer Science,Software
Reference15 articles.
1. Leuschel, M. , Elphick, D. , Varea, M. , Craig, S. , and Fontaine, M. 2006. The Ecce and Logen partial evaluators and their web interfaces. In Proceedings PEPM. IBM Press, 88–94.
2. SWI-Prolog
3. van Noord, G. 2006. At Last Parsing Is Now Operational. In Proceedings TALN. 20–42.
4. ISO/IEC WDTS 13211–3 2021. Definite clause grammar rules. Working Draft TS N279, ISO. 08.
5. EN50128 2011. Railway applications – communication, signalling and processing systems – software for railway control and protection systems. European standard, CENELEC.
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献