法研制作出软件“警察”
据7月31日出版的英国《新科学家》杂志报道,法国波利斯佩思公司的研究人员发现,程序员在编程过程中遗留下的一些看似无关紧要的冗余代码段,有时会引发程序运行错误,并最终酿成灾难性后果。据调查,1996年欧洲“阿丽亚娜”5型火箭首次发射升空后发生爆炸,正是由于软件系统中一个冗余代码段引起运行错误所致。
“阿丽亚娜”火箭的软件系统包含多达9万行程序代码,要利用人为方法从中找出冗余代码段不仅费时费力,而且可靠性也难保证。波利斯佩思公司的新系统,借助“抽象译码”技术解决了这一问题。该技术最初用来对小型程序进行分析,但该公司研究人员成功地寻找到一种方法,使该技术也适用于庞大的巨型程序。
据报道,新系统在实际工作中首先将巨型程序划分为一个个更小的程序单元,然后利用“抽象译码”技术模拟出某一段程序的功能,并将其一段一段地与源程序进行比较,最终即可查找出可能引起运行错误的冗余代码段。