Skip to main content
QUICK REVIEW

[论文解读] SWI-Prolog

Jan Wielemaker, Tom Schrijvers|arXiv (Cornell University)|Nov 24, 2010
Software Engineering Research参考文献 28被引用 5
一句话总结

SWI-Prolog 是一个由社区驱动的、可扩展的 Prolog 系统,旨在作为知识密集型和交互式应用的集成平台。它结合了社区贡献的库、商业增强功能(如垃圾回收器、PlDoc 和 PlUnit),并充当外部资源与各种 Prolog 研究思想之间的桥梁。

ABSTRACT

SWI-Prolog is neither a commercial Prolog system nor a purely academic enterprise, but increasingly a community project. The core system has been shaped to its current form while being used as a tool for building research prototypes, primarily for extit{knowledge-intensive} and extit{interactive} systems. Community contributions have added several interfaces and the constraint (CLP) libraries. Commercial involvement has created the initial garbage collector, added several interfaces and two development tools: PlDoc (a literate programming documentation system) and PlUnit (a unit testing environment). In this article we present SWI-Prolog as an integrating tool, supporting a wide range of ideas developed in the Prolog community and acting as glue between extit{foreign} resources. This article itself is the glue between technical articles on SWI-Prolog, providing context and experience in applying them over a longer period.

研究动机与目标

  • 将 SWI-Prolog 展示为整合多样化 Prolog 研究与应用的统一平台。
  • 突出其在支持知识密集型和交互式系统长期开发中的作用。
  • 记录社区与商业贡献如何整合为一个连贯且可扩展的系统。
  • 展示 SWI-Prolog 如何作为外部资源与基于 Prolog 的组件之间的桥梁。
  • 通过文献式编程文章结构,提供上下文经验与技术指导。

提出的方法

  • 利用社区贡献扩展核心功能,集成接口和约束(CLP)库。
  • 整合商业贡献,如生产级垃圾回收器,以改善内存管理。
  • 开发领域专用工具:PlDoc 用于文献式编程文档,PlUnit 用于单元测试。
  • 设计系统以与外部(外部)资源互操作,支持混合应用开发。
  • 将文章本身作为文献式编程产物,以展示长期可维护性与集成性。
  • 构建 SWI-Prolog 为灵活且可扩展的平台,支持多种研究原型。

实验结果

研究问题

  • RQ1一个 Prolog 系统如何有效整合社区与商业贡献,形成统一的开发平台?
  • RQ2Prolog 系统在支持知识密集型和交互式应用的长期开发中扮演何种角色?
  • RQ3一个 Prolog 系统如何作为外部资源与本地方逻辑编程组件之间的桥梁?
  • RQ4文档与测试工具的整合在多大程度上提升了 Prolog 系统的可靠性与可用性?
  • RQ5社区驱动的开发模式如何促进面向研究的编程系统的演进与可持续性?

主要发现

  • SWI-Prolog 通过在研究原型开发中持续使用,演变为一个稳定且由社区驱动的平台。
  • 社区贡献显著扩展了系统功能,尤其在接口和约束逻辑编程(CLP)库方面。
  • 商业参与增强了核心基础设施,包括实现了一个稳健的垃圾回收器。
  • PlDoc 与 PlUnit 的集成提升了 Prolog 生态系统内代码的可维护性与软件工程实践。
  • SWI-Prolog 成功充当了胶水层,实现了 Prolog 组件与外部(外部)系统之间的互操作性。
  • 文章的文献式编程方法展示了该系统在研究背景下长期、有文档记录的软件开发中的适用性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。