应用介绍
Prolog 写小程序很爽,一写大就开始难受:所有谓词挤在一个平面命名空间里,改个名字得全局搜;想复用一段推理逻辑只能复制粘贴;换个 Prolog 实现,代码又得改一遍。Logtalk 是冲着这几点来的——它在标准 Prolog 之上加了对象、协议和类别,把代码真正切成可以独立编译、独立测试的模块,而底下的推理引擎还是你熟悉的那个。
它不是另起炉灶的新语言,而是一个转译器:你写 Logtalk,它编译成目标 Prolog 的代码,SWI、SICStus、GNU Prolog、ECLiPSe 等主流实现都能当后端,换后端不用改源码。原型和类两套继承体系都支持,还有事件驱动和多线程。发行版里带着文档生成、单元测试、代码覆盖率和依赖关系图这一整套开发工具,以及大量可直接读的示例。
对象与协议:谓词装进对象里各管各的命名空间,协议(接口)单独声明,类别(component)可以横向组合进多个对象,还能热补丁。
两套继承:原型式和类/实例式都支持,可以有多个独立的对象层级并存,按问题选合适的那一种。
可换后端:作为转译器跑在主流的标准兼容 Prolog 之上,同一份源码换编译器不用改。
开发工具链:自带 API 文档生成、单元测试框架、代码覆盖率统计和实体关系图,工程化的那部分不用自己搭。
事件与多线程:支持事件驱动编程,在具备条件的后端上还能做高层次的多线程推理。
它不是另起炉灶的新语言,而是一个转译器:你写 Logtalk,它编译成目标 Prolog 的代码,SWI、SICStus、GNU Prolog、ECLiPSe 等主流实现都能当后端,换后端不用改源码。原型和类两套继承体系都支持,还有事件驱动和多线程。发行版里带着文档生成、单元测试、代码覆盖率和依赖关系图这一整套开发工具,以及大量可直接读的示例。
软件功能
对象与协议:谓词装进对象里各管各的命名空间,协议(接口)单独声明,类别(component)可以横向组合进多个对象,还能热补丁。
两套继承:原型式和类/实例式都支持,可以有多个独立的对象层级并存,按问题选合适的那一种。
可换后端:作为转译器跑在主流的标准兼容 Prolog 之上,同一份源码换编译器不用改。
开发工具链:自带 API 文档生成、单元测试框架、代码覆盖率统计和实体关系图,工程化的那部分不用自己搭。
事件与多线程:支持事件驱动编程,在具备条件的后端上还能做高层次的多线程推理。

