现在的位置: 首页 > 综合 > 正文

品尝 GNU Prolog (1)

2013年10月12日 ⁄ 综合 ⁄ 共 1690字 ⁄ 字号 评论关闭
Prolog是种逻辑编程语言
为什么这样说呢?别的语言,C, C++, Basic, Java, ... 不也是用逻辑编程吗?
Prolog 和它们还真不一样。纯粹的、原始的 Prolog 程序体由“事实”和“规则”构成。
“规则”(rule)即 if-then-else 句组,“事实”(fact)即“无条件的规则”,可看成没有 if-else 只有 then 的断言。
Prolog 程序可执行的语句,全部放在“规则”中。程序执行的过程,就是“规则”的选择、匹配过程。
Prolog 当年火过热过,电视上常见课程讲座,书店里摆着多种书册。
Prolog 的降温冷落,主要原因是:
1、习惯了C等过程性语言后,再学Prolog会觉得别扭、不适应,学习曲线较陡;
2、Prolog 能施展发挥的现实领域不多,主要是人工智能的面向“符号”处理的领域,如专家系统;
3、Prolog 适用的人工智能领域,项目成败的关键,主要取决于专业知识的掌握和处理,编程技术所起作用不太大。
这些特点的存在,使得广大程序员不愿学习使用Prolog,用它编程成了“小众游戏”。
最适合这种小众游戏的玩家,是有专业领域知识,又想写作“符号处理类智能程序”的人。懂专业,才能给出解决实际问题所需要的知识;而 Prolog 是写作“符号处理类智能程序”的好工具,比 Lisp 好学,并且源码的可读性优于 Lisp 。
如果想参与这种小众游戏,以下的话题可作参考。
一、为什么选择 GNU Prolog
Prolog 类的系统工具(解释器、编译器等),历史上曾出现过许许多多,现在还活着有较多人用的大致5-6种吧。如:visual prolog, swi-prolog, amzi prolog 等。
现有Prolog系统工具中,Visual Prolog 是最好的。但它是商业软件,产品中加有技术限制,不能用作商业性项目。
swi-prolog 和 amzi prolog 程序的运行太慢。
GNU Prolog 值得称道的,一是它的程序可以编译成独立运行的.exe;二是它可以通过 GTK-Server 方便地构建 GUI;三是语法已经完成 ISO 标准的转型,由“方言”变成了“普通话”;四是它的copy left。
二、下载安装
GNU Prolog 下载地是 http://www.gprolog.org/。
Windows 上跑的有2个,一是 http://www.gprolog.org/setup-gprolog-1.3.0.exe,二是 http://www.gprolog.org/setup-gprolog-1.3.0-mingw.exe。前者是在 XP 下,用 MSVC 6.0 编译成的,后者是在 XP 下,用 MSys 和 MinGW gcc 编译成的。
运行下载的.exe文件,安装完成。
三、程序运行方式
GNU Prolog 程序,文件名为 *.pl,有2种运行方式。
以文件 demo.pl 为例:
1、通过解释器运行。具体有2种办法:
(1)、运行 gprolog.exe 打开解释器,键入命令
    consult("demo.pl").
注意,Prolog 的命令语句的结束符号,是英文句号(.)。
(2)、在 DOS 控制台键入命令
    gprolog.exe --init-goal consult('demo.pl')
2、编译成.exe文件,独立运行。
四、将源码编译成.exe程序
GNU Prolog 的编译器 gplc.exe 的工作过程大致是这样:
1、先把源码编译成WAM格式的字节码;
2、再把字节码编译成 C 代码;
3、最后调用 C/C++ 编译器,把 C 代码编译成.exe代码。
于是,需要专门的 C/C++ 编译器,并且它必须与编译 GNU Prolog 系统时使用的编译器相同。
如果 GNU Prolog 系统安装文件是 setup-gprolog-1.3.0.exe,则需要 VC 6.0 编译器;
如果 GNU Prolog 系统安装文件是 setup-gprolog-1.3.0-mingw.exe,则需要 MinGW gcc 编译器。
编译操作十分简单,在 DOS 控制台执行
    gplc demo1.pl
结果会生成 demo1.exe 文件。
2 种文件的运行速度,demo1.exe 比 demo1.pl 快 3 - 5 倍。 

抱歉!评论已关闭.