首页> 外文OA文献 >The Ciao clp(FD) library. A modular CLP extension for Prolog
【2h】

The Ciao clp(FD) library. A modular CLP extension for Prolog

机译:Ciao clp(FD)库。 Prolog的模块化CLP扩展

摘要

We present a new free library for Constraint Logic Programming over Finite Domains, included with the Ciao Prolog system. The library is entirely written in Prolog, leveraging on Ciao's module system and code transformation capabilities in order to achieve a highly modular design without compromising performance. We describe the interface,udimplementation, and design rationale of each modular component. The library meets several design goals: a high level of modularity, allowing the individual components to be replaced by different versions; highefficiency, being competitive with other TT> implementations; a glass-boxudapproach, so the user can specify new constraints at different levels; and a Prolog implementation, in order to ease the integration with Ciao's code analysis components. The core is built upon two small libraries which implement integer ranges and closures. On top of that, a finite domainudvariable datatype is defined, taking care of constraint reexecution depending on range changes. These three libraries form what we call the TT> kernel of the library. This TT> kernel is used in turn to implement several higher-level finite domain constraints, specified using indexicals. Together with a labeling module this layer forms what we name the TT> solver. A final level integrates the CLP (J7©) paradigm with our TT> solver. This is achieved using attributed variables and a compiler fromudthe CLP (J7©) language to the set of constraints provided by the solver. It should be noted that the user of the library is encouraged to work in any of those levels as seen convenient: from writing a new range module to enriching the set of TT> constraints by writing new indexicals.
机译:我们提供了一个新的免费库,用于Ciao Prolog系统中的有限域约束逻辑编程。该库完全使用Prolog编写,并利用Ciao的模块系统和代码转换功能来实现高度模块化的设计而又不影响性能。我们描述了每个模块化组件的接口,实现/设计原理。该库满足了几个设计目标:高度的模块化,允许将各个组件替换为不同的版本;高效,与其他TT>实施方案竞争;玻璃盒 udapproach,因此用户可以在不同级别指定新的约束;和Prolog实施,以简化与Ciao的代码分析组件的集成。核心基于两个实现整数范围和闭包的小型库。最重要的是,定义了一个有限域可变数据类型,并根据范围的变化进行约束重新执行。这三个库构成了我们称为库的TT>内核。依次使用该TT>内核来实现使用索引来指定的几个更高级别的有限域约束。该层与标签模块一起形成了我们称为TT>求解器的名称。最后一个级别将CLP(J7©)范例与我们的TT>求解器集成在一起。这可以通过使用属性变量和从CLP(J7©)语言到由求解程序提供的约束集的编译器来实现。应该注意的是,鼓励图书馆用户在任何方便的级别上工作:从编写新的范围模块到通过编写新的索引来丰富TT>约束集。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号