对于专业的REBOL程序员,REBOL Technologies公司推出了REBOL/SDK,可以解决原本REBOL的一些小麻烦:
l REBOL因为是解释型语言,所以源码就是执行文件,任何人取得REBOL的执行文件就等于取得REBOL的源码,完全不设防。如果你担心你的程序被人窥视,你需要利用REBOL/SDK来将程序加密处理。
l 当你把REBOL程序交给别人时,别人可能因为没有REBOL解释器而无法执行。你可以利用REBOL/SDK来将REBOL解释器和REBOL程序代码结合成一个执行文件,以方便执行。
l 你的REBOL程序可能是由许多文件所组成,比较不方便传送给别人。你可以利用REBOL/SDK来将这些文件全都整合成一个文件。
REBOL/SDK是商业软件,需要向REBOL Technologies公司购买,请参考网页:http://www.rebol.com/purchase.html。
REBOL/SDK的内部组成,如图1所示。
Kernel
REBOL/SDK的Kernel内包括了三个精简版的解释器,分别是:/Base、/Pro、/Face(另有两个非精简的解释器:/Command与/CommandView)。其中/Base是最简单的版本,比REBOL/Core更小。而/Pro比/Base多了一些功能,/Face也比/Base多了一些功能,如图2所示。
图1 REBOL/SDK的内部组成
图2 三个精简版Kernel的关系
REBOL/Core中有太多东西,许多程序都用不到(例如辅助说明文件,各种通信协议),如果将这些用不到的功能通通包进执行文件,会导致执行文件体积太大。所以REBOL/SDK设计出此三个精简版的解释器,并将许多原本REBOL/Core或REBOL/View内建的功能和通讯协议以源码的方式公开(图1中的Source Code Module),需要这些功能或通信协议的话,将其含入(include)即可。
Encapsulation
REBOL/SDK提供许多工具,可以将REBOL脚本和REBOL Kernel包在一起,成为一个执行文件。这些工具统称为EnCap,是Encapsulation(封装)的意思。EnCap系列的工具命名方式一律以En开头,包括了:EnBase、EnPro、EnFace、EnCmd、EnCmdView,分别用来包装/Base、/Pro、/Face、/Command、/CommandView。包装的方式如图3所示。
从图2中,我们可以发现,EnCap程序,会将主要脚本(Main Script)、相关的文件(影像、声音或其它数据),连同REBOL/SDK的一个Kernal以及被含入的源码(included source),包在一起,成为一个执行文件。
图3 EnCap将程序执行时所需要的一切通通包进一个执行文件中
比较特别的是,EnCap会对这些包装内容进行压缩和加密【注】,所以也会把key和解密算法包进执行文件中。执行此程序时,会先将这些脚本和数据解密、解压缩、然后才执行。
【注】还是要提醒你,这种加密其实效果不大。只能防一般人,不能防专家。千万别认为经由EnCap处理过的程序可以绝对防止他人取得源码。
发表日期: Mar. 21, 2004