>>网站资源
.. >>图书馆:Techxchange
.. .. >> Techxchange:嵌入式软件
. . . . . .>>主题:Ada和SPARK
编写安全、可靠和安全的软件需要奉献精神、经验和好的工具。使用像C和c++这样的编程语言来开发这些类型的应用程序,以便开发人员可以改进他们的代码质量,通常意味着依赖于额外的软件,如静态分析工具。
ADA和IT子集,Spark,包含静态分析工具所解决的大多数功能。然而,这些编程语言通过允许程序员在其代码中更具体地进行更好的方式做到这一点。因此,编译器可以根据这些显式规范进行更多检查。ADA 2012年合同支持进一步,仍然允许程序员为函数和子程序提供预先和发布条件,以及指定类型不变的功能。
极端方法利用Spark的正式可验证的证据。通过使用合同定义,Spark可以证明应用程序符合规格。在大多数情况下,合同中指定的检查将从生成的代码中删除,因为所有检查都由编译器完成。
那么如何评估ADA和Spark?
1.Adacore的Searn.adacore.com提供互动ADA和Spark培训材料。
如果你喜欢一些繁重的阅读,那就退房吧约翰·瓦纳2012年ADA的编程.这本相当的书是深入和有用的参考,但对于新手ADA程序员来说不是一个好主意。相反,我推荐adacore新的seath.adacore.com.网站(图。1).课程包括两门课程:Ada导论和SPARK导论。还有一本在线电子书叫ADA为C ++或Java开发人员.电子书可以下载为PDF文件。
另外两门课程目前还不能以PDF文件的形式提供,因为它们附带了交互式代码块(图2)可以编译和运行。它们使用的是运行在AdaCore web服务器上的实际Ada和SPARK工具。大多数代码块的运行目的是显示编译器将报告的错误或运行代码将产生的结果。
可以编辑代码和重新运行/检查它以进行环境,而无需安装开发环境。拼凑而不困难,但是加载和编辑代码更繁琐,同时必须转到描述。另一方面,基于Web的方法将散文与代码本身相互作用。
2. ADA和Spark课程。
Ada和SPARK课程内容广泛,但并不详尽。同样,它们解决了基本的问题,比如包;子包和嵌套包留给以后的课程使用。Ada课程确实涵盖了一些重要的主题,如面向对象编程、多任务处理和泛型。SPARK课程涉及流程分析、程序完整性证明和功能正确性证明。
有许多关于Ada的神话和火花。希望避开ADA和Spark将有助于消除其中一些并最终突出ADA和Spark的优势。这些课程不会让您成为ADA或Spark Maven,但他们应该让您对语言更舒服以及他们能够完成的事情。
adacore还拥有许多免费的PDF电子书,包括最新,网络安全的骗子技术由Roderick Chapman和Yannick Moy。大约一半的产品展示了adacore的产品,包括ADA和Spark编译器,以及如何帮助解决网络安全问题。
对嵌入式开发人员有用的是“安全漏洞及其缓解部分”。这提出了缓解建议共同弱点枚举(CWE)由斜方维护。
CWE处理几乎任何应用程序中都可能出现的通用问题。这一节开头的两个文件处理数据验证问题。CWE 20处理不正确的输入验证,而CWE 1019处理如何验证输入错误。当然,缓解方法是在Ada和SPARK的背景下介绍的。有些,如Weak或No Crypto,无论使用何种编程语言,其缓解措施都是一样的。
>>网站资源
.. >>图书馆:Techxchange
.. .. >> Techxchange:嵌入式软件
. . . . . .>>主题:Ada和SPARK