人们常说:“良药苦口利于病。”人生病以后必须要吃药、打针甚至动手术,总得吃点苦头,但是在电脑世界里,一种新系统给电脑治病的方法却别具一格,它靠“愚弄”电脑来发现和解决问题。
因特网近20年来几乎每年都扩大一倍,怎样在如此巨大的范围内检测网络软件是一大难题。传统的方法是通过电脑模拟,就像初级飞行员通过模型驾驶舱学习飞机驾驶技术。但是用模拟法检测必须重新制作一个类似的软件,最初的软件不能被测试,那样就产生了两个不同的版本,而且没有正规的程序可以确定检测的真实结果。
另一种方法是比较法,或者说直接检测最初的软件。用这种方法,程序员可以只编一次软件,不需要为了测试而重新编写。但是比较法的控制程度非常低。
美国维吉尼亚计算机科学技术部门的斯里尼迪?瓦拉达拉想到:“为什么不制造一个虚拟世界,让软件误以为是在真实世界中呢?”经过研究,他提出一种新的电脑技术,由程序员使用密码把一种规划的语言转化成类似的规划形式,产生虚拟世界。被捉弄的软件会以为这是真实的世界,在里面运行,由此找到所存在的问题。这种新技术被称做“编织法”。
“编织法”能够弥补模拟法和比较法的不足,“你根本无法检测200万台电脑上的网络软件,甚至检测5000台都很困难。”他说,“但是我们能产生几十万个虚拟世界,使软件以为它们正在大规模网络里运行。这一技术将领导虚拟因特网的创造。”
“编织法”能做所有已存在的系统所能做的事,经过反复的分析,它能识别任何一种语言。同时,“编织法”也考虑到了错误。瓦拉达拉说:“在生活中,我们每做一件事都要根据自己的知识和经验。如果我们知道犯了错并想改正的话,我们必须记得当时的经过。”在电脑上,程序也必须记得引导它犯错误的每一个步骤。“尝试挽救所有的数据很困难,”瓦拉达拉说,“我们正在尝试制造网络幻景,这样可以在不知道犯错步骤的情况下找到错误的根源。‘编织法’可以自动完成这些。它会记录和挽救数据,告诉我们哪些操作需要及时改正。”这种系统允许对语言和密码进行编织,以便快速对没有申请支持的数据进行自动机械检查和恢复。对于瓦拉达拉的提议,美国国家科学基础事业给予了40万美元的奖励。他将继续他的研究,增加以模拟为基础的课题,用来帮助世界各国网络课程的学生,以免他们花费过多的时间和精力学习复杂的虚拟网络功课。(摘自《科技日报》)