我们的软件可以很方便的与表格一起使用。但脚本编程为您提供了惊人的灵活性,这可能是其他任何方式都无法实现的。
调试器
最重要的新特性-适用于 RP Fiber Power, RP Resonator, RP Coating and RP ProPulse-新的脚本调试器。
软件调试器的一般可能是这样,您可以逐步执行任务,并随时检查系统的状态。在我们的案例中,有趣的是一个“步骤”到底应该是什么。简单的解释是,这是一个命令。然而,这被证明是不够的,因为很多复杂的编程可以在表达式级别上完成。在许多情况下,您希望跟踪复杂表达式的求值——包括嵌套循环等——而不仅仅是得到报告的最终结果,例如,当表达式的值被分配给一个变量时,这通常与用户定义的函数有关。
软件调试器的一般思想可能总是这样,您可以逐步执行任务,并随时检查系统的状态。在我们的案例中,一个有趣的问题是一个“步骤”到底应该是什么。简单的解释是,这是一个命令。因此,我们为两种不同的调试方法实现了特性:
第一个命令允许您一次执行一个命令。您可以在代码中放置“断点”(“@”符号位于行首),软件将进入调试模式,允许您检查系统并决定下一步要做什么。您还可以通过按Ctrl-B或使用一些新按钮进入调试模式。
第二个方法提供表达式内部的调试。这里,断点是由新函数debug()的调用定义的。这个概念被证明是更灵活的不仅仅是把某个断点字符代码:您可以很容易地得到条件断点(调用函数只在一定条件下),并计算函数可以提交一个消息,告知你对系统的状态更密切。
当使用第二种调试方法时,右边的截图显示了检查器工具。
这个系统确实运行得很好。有许多方便的特性,例如,可以快速计算进一步的步骤,并且只在临时断点处再次停止——例如,在循环后面,您希望避免执行所有的多个循环。
在我们的网站上,有一个页面有更多关于新的调试器的细节。
调试器包含在上述软件产品的最新版本中(例如RP Fiber Power V7)。现有用户将很快获得非常公平的升级优惠;与往常一样,我们对此类升级收取的费用只比许可价格的差价高一点(而其他软件公司通常会试图获得全部成本的一半,甚至更多,即使新版本的许可价格仅略微提高)。
在实现调试器时,现在可以使用脚本代码的额外缩进来提高可读性。
旧的规则很简单,命令必须从一行的开头开始,后面的缩进行(即,至少以一个空白字符开始)被解释为属于同一个命令。
然而,事实证明,对于命令级别的编程控制结构(例如循环或if-then-else语句),需要额外缩进内部部分。所以现在允许(并推荐)这样做。下面是一个示例代码,只是为了演示该特性:
if alpha > 0 then
begin
sum := 0
for j := 1 to N do
sum := sum + f(j, alpha)
show "Result: ", sum:d3
end顺便说一下,最近我们决定改变脚本代码的标准格式。一种方法是插入更多的空白字符—例如,在大多数操作符之前和之后。另一个改进是使控制结构的格式现代化。
例如,instead of
for j:=1 to N
do sum:=sum+f(j,alpha)
I would now write:
for j := 1 to N do
sum := sum + f(j, alpha)虽然它占用了更多的空间,但它绝对更容易阅读——这当然是最重要的方面,因为我们经常花费大量的时间来阅读代码,试图理解它或定位错误。
除了新的缩进规则,这些改进实际上不需要对软件进行任何更改,但是需要对现有的演示脚本进行重新格式化,PDF手册的一部分是一个交互式帮助系统,以及web页面。通过软件更新,您将获得重新格式化的演示脚本。
新的控制结构
脚本语言已经提供了基本的控制结构:if-then-else、for-do、while-do和repeat-until。然而,我又介绍了两个:
例如,“goto”语句对于一些“快速修复”很方便,尽管它通常不是if-then的良好替代。一个特殊的特性是跳转目标可以是一个计算字符串;因此,你可以使用goto (" POINT " + str(j)),这可能会导致你的行包含OINT17,如果j是17。 新的命令“terminate”允许您终止脚本执行,甚至终止程序,后者可能会延迟到执行完成(包括生成图形)。你也可以发送错误代码,例如,通过调用软件的批处理作业来检查。
还有一个新的命令行参数/e,允许您直接执行脚本(不需要手动干预)。因此,你可以以一种自动化的方式调用软件,这样它就可以执行一个脚本,例如,从一个准备好的文件中处理一些数据,将结果写入另一个文件,并在完成时终止。
字符映射表
这在之前简单提到过:编辑菜单现在包含项目“字符映射”。这样,您就可以选择某些类型的字符,然后选择要插入到脚本中的特殊字符。由于引入了完整的Unicode编码,现在基本上可以在脚本中插入任何字符,比如中文或日文字符。