ElectrimeDesign 17207 PromoruStbelt 0

生锈继续成熟

2017年8月7日
Rust是一种新兴的编程语言,旨在成为“安全,并发的实用语言”。

本文是其中的一部分Techxchange.生锈的编程

虽然C和C ++仍然是嵌入式编程的骨干,但有备选方案通常会在提供低级控制和资源管理的同时提供生产力,安全性和可靠性等领域的改进。其中一个更新的替代方案是, 一个新兴编程语言旨在成为“安全,并发的实用语言”。它旨在提供安全的内存利用率,而无需对与Java一起使用的透明垃圾收集器需要透明的垃圾收集器。

RUDR包括模式匹配,基于特质的泛型和零成本抽象等功能,但其围绕其保证的内存安全和没有数据种族的线程的名称中心。内存和多任务趋势往往是由于其限制性编译器较少而导致C和C ++应用程序引起问题的区域。

铁锈开始了Mozilla.,为您带来Firefox Web浏览器的组织。Rust现在有自己的开源社区。您可以在Rust网站下载编译器,文档和工具。社区非常活跃,但商业编译器支持是生锈与C ++这样的生锈和既定语言之间存在巨大的海湾。

Rust通过语言语义获得内存安全支持。例如,变量由默认值与C和C ++(以及最令人必需的编程语言)不可变,默认情况下变量是可变的。变量可以明确地定义为可变变量。

哈斯克尔等功能编程语言也具有不变的变量,尽管它们包括通过稍后可以获得值的变量的能力。具有不可变变量的一个原因是它使程序的方面更容易。它还提高了代码的可读性,这在代码审查以及维护中可能很重要。不变性也在缓存和平行处理中具有影响。

此外,在指向指针时,Rust在C程序员的BANE时具有更严格的语义。Rust有指针的所有者和借款人的概念。借用的指针可以作为参数传递,但它们没有C指针的任意可易换性,因为Rust强制执行寿命。Rust跟踪引用的数据的生命周期,不会允许使用所引用的项目的生命周期的借用指针。例如,不允许返回指向函数的局部变量的指针。这些错误在C应用程序中是常见的,假设程序员知道他们正在做的事情。

Rust编译器由于Rust的语义而比C或C ++进行了更多的支票,但它没有正式证明检查安全性关键应用程序是否经常进行。这种类型的检查是Spark,ADA的子集,并且有验证工具和方法在安全性和安全性的关键环境中使用C和C ++,但这些通常是增强手动认证。

鲁布尔项目旨在提供正式的证明检查生锈的子集。“鲁道茨:保护锈编程语言的基础,”RALF Jun,Jacques-Henri Jourdan,Robbert Krebbers和Derek Dreyer的一篇论文概述了Rust,以及可以应用哪些正式证明以及这是如何完成的。证明检查已应用于许多生锈库,并且还有更多的工作要做。它是一种很好的第一步,当生锈在安全关键应用中使用时需要。

我之前提到了Spark,但这里有值得重复,因为Spark已经融入了商业基础的编译器中的正式证明检查,以及开源实现。Spark是A.ADA 2012的子集。两者都包含ADA合同。Rust有一个与C和C ++更相似的语法,但是Spark和Ada倾向于与C和C ++更具更多的语义

Rust有一个积极和强大的社区。它正在许多项目中使用,并且在自动驾驶汽车等地区的研究也在利用它。我不知道这一点上使用生锈的任何商业嵌入式应用程序。

正在寻求可比支持的C和C ++开发人员应检查可用的众多静态分析产品。这不会提供生锈或火花的相同级别的支持,但它们提供比内置于任何C或C ++编译器的高度支持。他们是迁移到新的编程语言的替代方案。

阅读更多文章Techxchange.生锈的编程

赞助

高性能背光LED驱动器,适用于各种屏幕尺寸

我们的大型升压投资组合(Boost)LED驱动器利用LCD背光的全局调光技术。您可以使用单通道OPTIO ...

SWIFT DC / DC转换器

要了解有关Swift转换器的更多信息或查看整个投资组合,请访问www.ti.com/swift。SWIFT转换器SWIFT(带集成FET的开关)c ...

3-V至36-V,2-A,低IQ同步降压调节器

LMR436X0,36-V,1-A / 2-A降压转换器,在4-MM2 Hotrod QFN数据表中(Rev.A)中的150°C Tjmax,150°C Tjmax

Nexperia改善设计效率w /逻辑器件

提高逻辑设备的设计效率。本白皮书将解释为什么新的逻辑设备提供成本,电源和空间节省。

声音你的意见!

本网站要求您注册或登录以发表评论。
尚未添加任何评论。想要开始对话?
Baidu