Prolog的超集---ECLiPSe

转自:https://mp.weixin.qq.com/s/2M6gjdEqgxnoWYNMhbPiQQ
大家在看SWI-Prolog参考手册时会看到“ECLiPSe”此时不要与集成开发环境Eclipse相混淆这两个是完全不同的东西。
下面来介绍ECLiPSe:
ECLiPSe是一种计算机编程语言,它用于开发和部署约束编程应用程序的软件系统,例如,在优化,计划,调度,资源分配,时间表,传输等领域。它也适合于教授组合问题解决的大多数方面,例如 问题建模,约束规划,数学规划和搜索技术。它包含约束求解器库,高级建模和控制语言(Prolog的超集),与第三方求解器的接口,集成开发环境以及用于嵌入主机环境的接口。
ECLiPSe的开发工作一直持续到1995年在慕尼黑的欧洲计算机工业研究中心(ECRC),然后直到2005年在伦敦帝国理工的规划和资源控制中心(IC-Parc)进行开发。它由Cisco Systems购买。在2006年9月,它以与Mozilla Public License等效的开源软件形式发布,现在托管在SourceForge上。
ECLiPSe语言在很大程度上与Prolog向后兼容,并支持不同的Prolog方言,包括ISO Prolog。由于它具有声明性,因此既可以用作描述问题的建模语言,也可以用作通用编程语言。
除了基本的Prolog数据类型之外,还提供以下内容:字符串, 无限精度整数和有理数以及浮点数。 还支持带有字段名称的数组语法和结构,在约束建模中特别有用。
逻辑迭代构造消除了对大多数简单递归模式的需求。
ECLiPSe提供了全面的工具来实现数据驱动的控制行为。这些包括声明性延迟子句以及用于元编程控制的原语,例如明确的目标暂停,灵活的触发功能和执行优先级。与属性变量数据类型一起,这是对基本逻辑编程语言进行许多扩展 (包括所有基于约束的功能)的关键。当系统在某些情况下(例如合一)遇到属性变量时,系统将调用用户可定义的事件处理程序。
该模块系统控制谓词,非逻辑存储,源转换和语法设置的可见性。可以扩展和限制模块接口,并且可以在一个应用程序中混合使用不同语言方言编写的模块。
程序可以包含结构化注释,可从中生成参考文档。

ECLiPSe提供了几个约束求解器库,这些库可在应用程序中使用:
有限域上的算术约束,有限集约束,广义传播,非线性约束上的区间推理,外部单纯形求解器的接口,约束处理规则(CHR)等。
其他库实现了搜索方法,例如分支定界,基于修复的搜索,有限差异搜索。
ECLiPSe连接到外部求解器,特别是COIN-OR,CPLEX,Gurobi和Xpress-MP线性和混合整数编程求解器和Gecode求解器库。
与ISO Prolog和其他Prolog方言(C-Prolog,Quintus,SICStus和SWI-Prolog)兼容的库可以重用那些方言编写的库。
其他实用程序库,包括许多流行的公共域的库,都包含在发行版中。
系统架构
该系统包括一个增量编译器,该编译器将源代码转换为虚拟机代码。编译器优化索引选择,统一顺序,内联控制结构,并可以考虑模式信息。
运行时系统实现虚拟机,具有堆栈和字典的垃圾回收的自动内存管理,事件处理和数据驱动的执行。ECLiPSe的版本实现OR-并行性。
ECLiPSe组件可以通过底层C或C++接口或通过Java和Tcl的高级接口集成到软件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值