本来想写一篇关于开源BASIC解释器的文章,却在网上发现几篇非常好的文章,不敢贪功(不想粘贴拷贝后说是自己写的),亦不敢独专(有好东西应该大家共享),将它们列出来:
BASIC万花筒
BASIC语言大家族
但只是列出几个网页链接,实在是对不起观众,厚颜将自己对BASIC的一些感想也写出来。
我曾在大学教BASIC语言,那时候BASIC是作为计算机二级等级考试的语言之一,其它的语言还包括Fortran、FoxBase等,现在,估计Fortran和Foxbase不再作二级等级考试的语言了,但是,Basic仍会是考试内容,因为,它的影响力实在是太广了。
一门语言能有如此之强的生命力,实在令人叹为观止,潭教授的一本《BASIC程序设计》成为国内计算机书籍发行之冠,至今无人可撼,也成就了他老人家的一世英名(鄙人不才,与潭教授有一面之缘)。不是他的文笔如何好,也不是里面的技术含量多么地高,只因为BASIC适天时而合地利,在计算机尚是神秘之物的当时,BASIC不愧为一登堂入室之宝梯。
阳春白雪固然能流传千古,但下里巴人更能满足大众的需求,我们羡慕北京大饭店里一掷千金的豪宴,但平时只是喜爱家里的家常便菜,非不欲也,实不能也。只有能享受得起的东西才是我们所爱的东西。
C++的发展正处在一个非常危险的境地,处处要证明自己存在的价值,却慢慢变成学院里古板教授附雅风月之物。今天讨论编译期类型的巧妙判断,明天讨论偏模板参数的高极应用。对于身旁飞过的千帆万舟,动辄笔伐,或是鄙夷。
许多人从DOS中的QBASIC到Window下的VB,便认定BASIC是BILL大叔发明的,实则不然,BILL大叔只能算是BASIC的卫道士,但无疑,BILL大叔对BASIC的发展的影响是巨大的,或是第一位的,阿门,上帝保佑BILL。
在工控软件行业,每一个组态软件都包括脚本语言功能,从这些脚本语言的表象来看,能发现一些很有趣的东西:
组态软件的脚本语言主要分为两类,一类是完全将目前成熟的脚本语言引擎包含在软件中,如IFIX将VBA包含在其软件中,另一类则是自己实现一个脚本语言。
对于自己实现脚本语言,又分为以下几类:
1、类BASIC语言(如MCGS);
2、类C语言(如KingView);
3、类PASCAL语言(如ControlX2000,但本人怀疑其是内嵌了一个商业的PascalScrip程序);
4、类Fortran语言(如Power20000,一个电业行业的组态软件);
5、类LADDER语言(这类实现在人机界面软件使用得比较多,如海泰克);
这些组态软件使用脚本语言扩充自己的功能,在脚本的使用上或强或弱,强者如IFIX、Citect,大部分功能都需要用户使用VBA编程实现(这有点过份,其效果就象在VB上增加一些工控组件),另一类则尽量将语言的大多数表现采用WARZID或对话框,如MCGS中的大部分脚本功能都能通过策略组态实现。其它的则是介入这两者之间。
不管是实现哪一种脚本语言,都是选用比较流行的语言,没有采用诸如TCL、PYTHON等语言,这是很有讲究的,没有哪个工控用户希望在使用某一软件时,还需要学习一种新的语言,与其这样,他他不如自己学习VB编工控程序。
目前工控软件软件发展到目前这个阶段,已发展得不伦不类,其一,尚无界面的标准出现;其二,OPC发展得臃肿庞大而不适用;三、脚本语言也是各显其能,每种语言都是自行一套,根本没有考虑标准化和统一。
工控软件行业标准化的工作是很有意义的,其未行的原因是:
1、目前尚无一家工控软件公司有足够强大的实力来号令诸侯;
2、工控市场的空间有限,许多大企业不屑进入,也引起现有公司的固步自封,不求发展;
3、工控软件的利润非常薄,导致许多公司的投入都不可能很大;
4、工控市场的进入门槛越来越低,新进入的公司层出不穷,至使现有混战局面仍然继续,没有一家公司有能力喘口气思索自己的未来;
再讲BASIC,目前BASIC的解释器技术已不再是难事,上网随便一搜,就能找出许多开源且价值高的BASIC解释器,但真正要将之用在工控组态软件中,还是需要作一翻改装的:
1、简化、除去某些BASIC解释器的一些花里胡俏的功能,如返回多个值、提供指针操作等,须知在组态软件中的脚本功能只是为了扩充软件的功能,而不是让用户学习一门新的语言;
2、提高执行效率,增加优化处理;
3、提供对组态软件封装的封装接口(Wraper),提供嵌入的BASIC语言与组态软件的一致性访问方法;
说了这么多,推荐几个我喜欢的BASIC解释器:
1、WXBASIC
2、XBASIC
3、YABASIC