java代码自动修复 java自动补齐( 五 )


"require"机制代替了JessDE的早期版本中的"Source dependencies"属性表,"Source dependencies"属性表已不再被支持 。
2.2.3.Rete网络视图
使用JessDE的"Rete Network View"你可以即时看到一个衍生自任何规则的Rete网的图形展示 。当这个视图是打开时(你可以使用Eclipse中的"Windows | View | Other..."对话框打开它),它会显示基于编辑器插字符所在规则的Rete网络 , 你可以用这个实时看到修改规则所对应的Rete网络变化 。图表的布局方式是远胜于你能从Jess视图命令中得到的----因为这样没有重叠和交叉线,而且每一列的高度都可变 。
2.2.4.Jess调试器
JessDE调试器可以让你调试一个在.clp文件中定义的Jess程序 。它具有您期望的图形调试器所具有的所有功能:你可以暂停和恢复程序,或以步进方式执行 。当程序停止时,执行堆栈的内容将会显示出来 , 这样你就可以检查在每个堆栈结构中定义的变量 。选择的堆栈结构也可以导航到被执行的源码处 。在编辑器窗口的左手边缘处,你可以通过右键单击某一规则在任何.clp文件中设置(或清除)断点 。断点仅能设在函数(内置或用户自定义)中,所以你不能在defrule 或者deftemplate结构中打断程序执行 。然而 , 你能够在一个调用规则 的左边或右手边的函数中暂停 。
3.Jess 语言基础
大多数时间你是在使用Jess语言编写Jess规则 。如果你从来没有使用过Lisp , 第一次使用Jess规则语言也许看起来就有点奇怪了,但它并不需要太长时间来学习 。回报也是丰厚的,你将使用非常少的代码表达复杂的逻辑关系 。
在这一章,我们将看到Jess语言的基础语法 。在后面的章节中,我们再来学习怎样定义像事实与规则这样的高级概念,但现在我们将学习最基础的 。
在本语言指导中,我将使用一个非正规的符号来描述语法 。在 中的基本串是必须提供的数据类型,在方括号中([])的内容是可选的,以 + 结束表示可以出现一次或多次,以 * 结束表示可以出现零次或更多 。一般来说,Jess的输入格式是自由的 。换行不具有特殊的含义 , 仅被处理为空格 , 而异常将被标识 。
3.1.符号
符号是Jess语言的一个核心概念 。符号是非常类似于其他语言中的标识符 。Jess符号包括字母,数字和下面的标点符号:$*=+/_?#. 。一个符号不能以数字开始 , 可以以一些特殊的标点符号开始(这些字符作为操作员当出现在符号开始时有着特殊的意义)
Jess符号对于大小写敏感 。foo,FOO,和Foo是不同的符号 。
最佳的符号是由字母,数字,下划线和破折号组成 。破折号是传统的分隔符 。如下所示为合法的符号:
foo first-value contestant#1 _abc
Jess中有三种特殊的符号 。零,和java中的空值有点类似;真和假是Jess中的布尔类型的值 。
3.2.数字
Jess分别使用Java函数parseInt(java.lang.String), parseLong(java.lang.String)和parseDouble(java.lang.String)来解析整型,长整型和浮点型数字 。参考本文档中关于这些方法精确的语法描述 。如下为合法的数字:
3 4. 5.643 5654L 6.0E4 1D
3.3.字符串
Jess中的字符串是用双引呈来标识的("). 。反斜线能够区分嵌入的引号 。注意Jess的字符串和Java的字符串在一些重要的地方是不一样的 。首先,不会认识转义序列 。比如说你不能用一个"\n"字符串来换行 。另一方面,真正的换行可以通过双引号中的字符串来实现 。他们是字符串的一部分 。如下为合法的字符串:
"foo" "Hello, World" "\"Nonsense,\" he said firmly." "Hello,
There"
最后一个字符串相当于Java中的字符串"Hello,\nThere". 。

推荐阅读