我没有找到任何有用的信息有关的程序语言,用于实时系统。所有我发现了 实时系统并编程语言:阿达95、实时和实时C/POSIX (一些pdf在这里),这似乎谈到扩展的Java和C.用于实时系统(我没有这本书要读)。此外,这本书于2001年出版,并将该信息可能过时了。

因此,我是否可疑的这些语言的使用在现实世界的应用,或如果实时系统在现实世界是由在其他语言,如Dsl。

如果第二种选择是真正的你是什么的突出特点使用的语言?

有帮助吗?

解决方案

实的时间规Java现在有几个商业级实现:

这些产品跨越连续体,从编纂司机代码(Aonix)以J2ME(aicas,远地点),全J2SE(太阳,IBM).大部分、如果不是全部已经看到部署少数人的安全或特派团关键系统,但势头的建筑。实例包括 埃格林空军基地的空间监视雷达现代化 和美国海军使用的RTSJ在 DDG-1000/朱姆沃尔特的驱逐舰.太阳也要求部署在金融交易处理的领域。

如果你有兴趣在RTSJ,我建议彼得*迪布尔的 实时间平台编程, 或者教授威灵斯' 并发和实时编程在Java.

在一个相关的注意,也有工作正在进行,以提供一个安全至关重要的档案Java编程语言,建成一个子集的RTSJ.此外,专家组已经形成,以探索的一个分布式RTSJ DRTSJ,但工作停滞不前。

其他提示

我是一个航空电子软件工程师。 我能够参与一些开发项目。 我在这些项目中所使用的语言是:C,C ++,和实时Java

C是巨大的。 C ++不是那么坏,但C / C ++需要用于安全考虑,例如DO-178B严格的编码标准。

我认为实时Java是去,但我没有看到许多航空电子应用,但方式。

韩国教练机T-50将具有运行服务HUD和MFD显示RT Java应用程序任务计算机,并且所有的关键任务的功能。

该书涵盖了使用阿达95、Java系统实时和实时POSIX的扩展(在编C)。这些都不是直接域特定的语言。

阿达95是一种编程语言的常用在90年代末和(据我所知)仍然广泛应用于实时的编程在国防和航空航天工业。至少有一个DSL建立在Ada SparkAda -这是一个系统的注解其描述的系统特点,以一个程序的核查工具。

这个采访 四月6,2006年表示的一些课程,虚拟机发生变化的Java实时系统。它没有提及任何特定领域语言扩展。我还没有遇到使用的Java在实时系统,但我并没有看着各种各样的系统在那里我希望找到它(我的工作在航空航天真的模拟,这是C++,Fortran和偶尔Ada的实时在环系统)。

实时POSIX 是一组扩展到POSIX操作系统的设施。作为操作系统的扩展,他们不需要任何特定的语言。这就是说,我能想到的一个C根据DSL用于描述嵌入式系统 -但是我不知道,如果它也是用于生成的嵌入式系统。

不在书中提到的是 Matlab, 在过去几年中已经从一个模拟工具,来模型驱动的发展系统为实时系统。Matlab/Simulink是,在作用,DSL用线性规划,国家机器和算法。Matlab可以产生 C高密度脂蛋白 适用于实时和嵌入式系统。这是非常罕见的一个航空电子设备、电子战或其他国防工业实时的工作广告的,它不需要一些Matlab的经验。(我不工作Matlab,但很难过重视如何普遍存在的它确实是在工业)

实时应用程序可以在几乎任何语言作出。然而,环境(操作系统,运行时间和运行时库)必须符合实际的时间限制。在大多数情况下,实时意味着总是在事情发生确定性时间。确定性暂时ussually在微秒/毫秒范围内的非常低的时间值。

实时系统完全取决于这个标准,作为specificiations通常这样说“每一个X(时间段)(做某事|检查的东西)”。通常发生这种情况,如果系统接口与外部传感器和控制器救生或危及生命的系统。

我工作在C / C大多++开发与操作系统专门配置的车载导航和信息娱乐系统上,以满足实时约束,以提供实时的导航和媒体播放。

但是,这不是对所有实时系统:在整个系统算法一般作出选择根据大O符号具有确定性的运行时,大都采用线性的或恒定的时间。一切被认为是非确定性,因此不可用于实时系统。

所有我与主要地是写在C与汇编的一些位,或与C的小位汇编写的大多是工作的实时系统(取决于我们是否在谈论90年代及以后,或上世纪80年代,分别)然而,有些我已经使用了工作的实时系统的 - 不完全的DSL - 特别自产自销的代码生成

实时导向的语言?

什么是真实的-时间

第一,我们必须定义什么 实时间 意思。

当然这取决于你的工具将工作针对物理环境 纯粹的实时间 不可能有效地完成,主要是因为会有很多的第三方的依赖关系。

如果你是嵌入建筑的东西通过使用微控制器喜欢 arduino, 语言的使用将是有限的硬件,而更复杂的东西一样 树莓派, 语言的选择是非常广泛。

粒度

这取决于你是什么样的测量,如果你的工作:

  • 天气温度, 一读的每10分钟可不够
  • 人身高或体重, 一个或许四个读通过的一天
  • 服务器的状态, 之间,1第二细调试约1小时平静不重要的辅助服务器。
  • 原子碰撞数:东西更精细的...

基于事件的读取

右(更佳)的方式收集数据的基础上 值改变事件...每当的设备做准许。

你的工具必须不 民意调查 值的设备,但该设备已经发送值的工具,当他们改变。

这可以通过使用 硬件中断 触发或通过使用口protocole喜欢 RS-232 住听上的一串口,对样品。

监测环境

最后一件事要告诫的是 如何合法用户将互动.

如果你是嵌入建筑独立的装置,喜欢 机器人, 你可以使用的图库的互动式触摸屏。

如果你是在建立基于网络的监视,可能必须牢记,客户可能是一个古老的 800x600 黑白画面,使用较差的互联网连接的小型处理器...但根据最终目标,如果可能与客户,可以保证强有力的硬件和强大的互联网连接。无论如何,你有看对失去联接和事件的通信之间的时间延迟的服务器和客户。那里是主要的第三方的依赖关系。

它编程语言?

从那里,语文的选择是广泛和明确地取决于

  • 你的知识。
  • 粒度要求(通过使用基于事件太多,课程)
  • 量的时间,你必须建立的工具(金钱)
  • 延迟,同事...
  • 一种设备
  • 类型的监测
  • 其他一些因政治原因

你可以建立实时监测通过使用发动机 只是,我已经看到的复杂的发动机,是建立在 只有...我个人建立一个基于网络的、太阳能通过使用监视器 , .

我不能相信没有人提到的LabVIEW编程语言,它被广泛用于实时安全关键系统。它具有用于architecturing和实施RT系统广泛库和公知的设计模式。

另外国家仪器使得其被设计用于实时应用的各种硬件(的cRIO,PXI和等等)。

我们使用LabVIEW针对其在安全关键的环境中使用水力压裂(水力压裂)。

顺便提及,LabVIEW中也用于非RT应用来说。

PLC的运行梯和FBD代码这是真正的意义上,你的选择是如此有限实时DSL,这是很难程序的方式,将导致不可预知的运行时性能

C语言实时编程的真正目的的应用程序 - 以及所有相关的问题(如并行编程) - 由我提供的Kickstarter的 http://www.kickstarter.com/projects/767046121/crawl -space的计算与 - 康内尔 这就是所谓的“宽编程”,我已经做了我一生中最。奖励包括软件库和一本书 - 设计是有用的。

我公司已经工作了自2003年以来一直在开发和部署一个SCADA / MES平台。最初实现在1993年开始,用Modula2在OS / 2。后来(1998年),它被移植到Ada95的和Windows。目前(2019),我们使用Ada编译通过AdaCore。我们的系统被移植,并已经部署到32/64的Windows,HP-UX,OpenVMS的(和最近甚至覆盆子)。我们在欧洲中部多安装(天然气行业,精炼厂,工厂,发电厂)。 我们觉得阿达的特点使我们的系统具有高度的可靠性,防止了很多的错误,如果我们使用的语言,如C.会很容易occour 另请参见我的博客 https://www.ipesoft.com/en/博客/什么语言,是最D2000写

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top