>>网站资源
.. >>图书馆:Techxchange
.. .. >> Techxchange:嵌入式软件
. . . . . .>>主题:Ada和SPARK
这种文件类型包括高分辨率的图形和原理图(如适用)。
交付一个能够完成设计任务的应用程序是大多数开发人员的目标。实现这一目标的一种方法是使用增强开发过程的工具。使用MISRA编码标准是改进C/ c++开发的一种方法。另一种方法是使用火花,ADA的子集专为安全和安全应用而设计。
当然,拍摄新的编程工具并不是有点才能轻松做。我最近担任了一个法官之一adacore“用ADA”竞争。法国斯蒂芬莱斯·莫尔诺省的斯蒂芬卡雷斯首先取得了一个名为Etherscope的网络交通监控工具。第二名是德国奥斯汀的德国Rivera,为恩智浦杯赛车开发了一辆自主汽车框架。但是我想突出的是来自伦敦的第三名获胜者的反馈,从伦敦,安大略州开发了一个使用ADA的蓝牙信标“iBeacon”。
原因是Shawn是一个C程序员,在比赛之前没有使用过Ada。他在博客中写道:“用Ada(一种我不太了解的语言)开发beacon所花的时间与用C开发类似功能所花的时间大致相同,而且我对Ada代码更有信心。”这可以归结为几个简单的因素:
“我发现ada的语法直观。我已经在Python做了一个相当多的工作,所以我发现块符号和缩进立即舒适。与Python不同,Ada保留了分号,因为声明分隔符[制作]我都是温暖和模糊的。
“我发现它是自然的,以在规范文件中起草我的接口。在C中,在我的编译器抱怨时,我在.c文件和后填写头文件中同时获得了编写代码和界面的坏习惯。我本可以在c中做得更好,但上下文切换到ADA允许我清楚地看到优势。
“More opinionated compiler—I’ve run external linters and static analysis tools in my VCS commit hooks for ages, but there are 90 ways to write C and a thousand tools... having the compiler express strong opinions and enforce them at compile time saved me time. From syntax checking to style checking; I didn’t find myself needing to spend time search [sic] out good tooling to start writing decent code. I imagine that when working on a team, it’s easier to agree on (and enforce) a list of compiler flags than a whole ecosystem of tools.
“GNAT - 它是GCC的一部分。这可能是一些嵌入式工程师的缺点......但我喜欢与GCC合作。它是一致的,几乎每个平台都可以维护,维护良好和自由。使用GNAT,我只需要为我的开发生态系统添加一个工具来开始ADA。
“我在调试器中没有花费时间[SIC]。一旦我说服了我的意图与一些非常激烈的编译器标志(-gnatg -gnatp-gnatn2-gnatwa -gnatq-gnatw.x);我的软件往往工作。“
大多数项目都有针对性的微控制器STMicroelectronics'32位STM32家庭,包括Cortex-M4和Cortex-M7解决方案。
这种类型的反馈不仅限于竞争中的个人。我最近托管了adacore的网络研讨会,“在不倾家荡产的情况下构建高可靠性软件,”议会代码'rod chapman谈论了一些利用火花的项目。底线是,呈现的安全关键项目按时完成,误差较少,从而降低所需的测试量。这减少了项目成本。
静态和动态分析工具被用于C、c++和Java应用程序,以提高代码质量。不幸的是,它们比不上SPARK。出于许多原因,C和c++仍将是嵌入式应用程序的主要工具,但如果您正在寻找这种优势,SPARK可能值得一看。
这种文件类型包括高分辨率的图形和原理图(如适用)。
>>网站资源
.. >>图书馆:Techxchange
.. .. >> Techxchange:嵌入式软件
. . . . . .>>主题:Ada和SPARK