作者:Ben Brosgol, Robert Dewar,2月7日
原文:/Articles/Index.cfm?ArticleID=18141
译者:logiciel, 8月15日
在任何编程项目中编程语言的选择是最关键的决策之一。有不少可选的编程语言。在计算机编程语言的60年历史中,有几百种为各种目的而设计和使用的编程语言。
NASA的一句名言是,失效不是高完整性系统的一个选项。当我们乘坐一架现代飞机或一列高速火车,或进行复杂的医学试验,我们完全受软件控制的设备的摆布。软件中的缺陷会导致严重伤害或死亡,有可能数量是巨大的,如载有数百名乘客的喷气式飞机。
虽然软件保密性和可靠性不危及生命,但这两者也是非常重要的。看看不断增长的网络攻击或加强关键金融信息的可信性和完整性的需求。那么什么是高完整性领域的最好的编程语言?
首先,必须指出没有“银弹”解答。选择“正确的”语言不能保证成功,而选择“错误的”语言也不是必然失败。然而,语言确实有重要作用,而有些语言更适合高完整性领域。
有些语言设计为容易写程序,因此可以很快完成应用的开发和使用。一般来说,聊天网站出现故障不是大问题,因此可使用能快速构建网站的语言。但是在高完整性应用中开发速度排在保密性和安全性后面,此处Ada胜过其它语言。
Ada语言是专门为大型高完整性应用而设计的。它的语义基础是强制程序的一致性、安全性和保密性,在编译期间如果有可能就检查数据类型是否匹配,在运行期间如果有必要就检测缓冲区溢出和其它问题。
Ada鼓励模块化软件设计和易维护性。它的精心设计的语义适合于形式化方法学,这使它在高完整性领域中比其它竞争对手有优势。实际上,Ada标准独一无二地提供了关于安全性和保密性的专门章节,即高完整性系统附件。
针对当今广泛使用的多核架构,Ada还提供高级的、精心设计的并发支持。这使Ada有别于C和C++(它们没有并发的内置支持),以及Java(它有不适合高完整性系统的易错的低级支持)。
当今大部分关键系统选择Ada并不使人感到意外。空客和波音把它用于新飞机。英国的新一代空中交通控制(ATC)系统,Ifacts,正在全部用Ada开发。欧洲大陆的现行ATC系统广泛使用Ada。
Ada还被继续用于医学技术(JEOL的核磁共振仪)、高保密性的智能卡运行系统(MULTOS Certificate Authority)、半导体制造(Philips ITEC)和金融应用(PostFinance, New Trade Research).
传统上,Ada已被大量用于防务和航天航空应用,既用它开发已有软件的重用,也利用它的实时功能的优点。Ada用于实现国际空间站的软件,因此可以毫不夸张地说Ada的应用超出了地球。
再说回到地球,在法国的Canal+电影播放系统中可以找到Ada。当然,如果电影突然出毛病不会死人。但是,如果因软件缺陷而使一部最新大片缺少了最后十分钟,那将有数百万观众发怒。
类似的情况还包括几乎每周发生的对在线数据库系统的个人数据的侵犯。虽然这些与日俱增的应用不是安全关键的,因为它们不会威胁人的生命,但它们仍需要是可靠的。
悲观主义者会说所有大型软件系统都有bug,对此没有办法。他们被危险地误导了。我们知道如何编写可靠的大型程序,并知道Ada是成功的关键。
如果觉得《用Ada提高安全性 保密性和可靠性》对你有帮助,请点赞、收藏,并留下你的观点哦!