>>网站资源
.. >>图书馆:Techxchange
.. .. >> Techxchange:嵌入式软件
. . . . . .>>主题:Ada和SPARK
大多数嵌入式编程是在C和C ++中完成的。许多语言用于嵌入式应用程序,从Java到Lua,但C主导。
C的人气并不令人惊讶。很容易学习,每个平台都有一个C编译器。大多数芯片供应商提供围绕C内置的免费工具,以及Windows和Linux这样的流行平台是使用C构建的。
那么为什么我倡导使用ADA,这是由委员会为军队设计的语言?
安全,安全性和可靠性对比以往更有嵌入的开发人员更为重要。最小化错误是关键,而ADA在它比C和较小程度为C ++做得更好。ADA 2012中的新合同支持是提供ADA优势的优势之一。
让艾达的合同
SPARK是Ada的一个子集,它最初公开了契约支持。Ada 2012为函数和过程以及类型定义实现了契约。
特别是,ADA 2012允许预先条件和后期条件。它可用于检查参数,对象的当前状态,以及结果。后条件中的S'OND参考是指在输入函数时变量的初始值。
C断言宏已以类似的方式使用,但实施是非标准的。在函数条目中应用相对容易,尽管它可以持续实现持续的帖子条件。
另一个显着差异是定义和检查发生的地方。ADA示例驻留在标题文件中,而C Assert样式宏将出现在从程序员隐藏的代码中,这些宏将引用标题文件。ADA的预先条件和后期条件基本上是由函数定义的合同,并由利用该功能的程序员使用。
Ada的内置多任务
有几个功能使ADA非常适合紧凑和高效的嵌入式应用。一个人在语言中支持多任务处理。Java提供类似的支持,但C和C ++将其转录到操作系统(OS),使其难以迁移应用程序,因为它们现在与特定操作系统相关并可能是该OS的特定版本。
ADA还提供了Rendezvous进程通信和调度,因此它不会解决所有应用程序,但大多数都可以符合其框架。ADA也可以使用大多数操作系统,并且其多任务处理可以与主机OS集成。
C选项
可以使用免费的Ada编译器和开发工具,因此检出Ada不需要任何成本。开始使用Ada非常容易,尽管像C和c++一样,成为一名Ada maven可能需要一段时间。
与C等大多数语言相比,Ada倾向于做更多的检查。其中一些检查可以通过使用C/ c++的静态分析工具来执行(参见“静态分析技术中有什么新增功能”)。像MISRA C这样的标准可以解决ADA填写了语言的一些问题。
如果ADA不适合您的开发人员的工具包,那么其中一些工具将会。仍然,将这些功能纳入编程语言,除了帮助提高代码的质量之外,还对应用程序的设计方式有显着影响。
ADA程序员少于C或C ++程序员。大多数人没有用ADA作为他们的第一个编程语言开始,但他们倾向于以高度尊重。你知道的越多,它越有用。
Ada并不是万能工具,但它是开发可靠软件的更好工具。它支持现在常见的面向对象和泛型编程方法。
这里没有足够的空间来真正给予ada到期。(看 ”C程序员,时间尝试ADA”)。艾达专家写了更详细的文章。我建议你查一查,因为如果你不查,你的竞争对手就会查。艾达能给你未来所需的优势。
>>网站资源
.. >>图书馆:Techxchange
.. .. >> Techxchange:嵌入式软件
. . . . . .>>主题:Ada和SPARK