我一直很想知道是否有可能将Haskell的强大function应用于embedded式实时世界,并且在Google上search到了Atom包。 我假设,在复杂的情况下,代码可能会有所有经典的C错误 – 崩溃,内存损坏等,然后需要追溯到原来的Haskell代码,造成他们。 所以,这是问题的第一部分:“如果您有Atom的经验,那么您是如何处理debugging编译的C代码中的低级错误并将其修复到Haskell原始代码中的呢? 我search了更多Atom的例子, 这个博客文章提到了C代码22KLOC(显然没有代码:), 包含的例子是一个玩具。 这个和这个引用有一些更实际的代码,但是这是结束的地方。 我在这个主题中提出“相当大”的原因是,我最感兴趣的是如果你能分享你在300KLOC +范围内生成C代码的经验。 由于我是一名Haskell新手,显然还有其他的方式,由于我未知的未知,所以没有find其他的方法,所以在这方面的任何其他自我教育的指针将不胜感激 – 这是问题的第二部分 – “Haskell做实时开发的其他一些实用方法是什么?”。 如果多核也在图片中,那是多余的:-) (关于Haskell本身用于这个目的的使用:从我在这篇博文中读到的内容来看,Haskell中的垃圾收集和懒惰使得它在调度方面非常不确定,但也许在两年之后有所改变。是我能find这个话题最接近的) 注意:上面的“实时”会更接近“硬实时” – 我很好奇,如果可以确保主任务不执行时的暂停时间在0.5ms以下。
我已经阅读了关于实时的不同概念的定义,为硬件和软件实时系统提供的例子对我来说是有意义的。 但是,没有一个真实的解释或实例系统的实例。 根据上面的链接: 公司:不经常的截止时间错过是可以容忍的,但可能会降低系统的服务质量。 截止date后,结果的有效性为零。 公司实时性与硬实时还是软实时存在明显的区别,有没有一个很好的例子来说明这种区别? Charles在评论中要求我为新标签提交标签维基。 我为企业实时标签提供的“公司实时系统”的例子是牛奶服务系统。 如果系统在到期时间之后输送牛奶,那么牛奶被认为是“无用的”。 人们可以忍受不吃牛奶的麦片,但是经验的质量却下降了。 当我最初阅读定义时,这只是我在脑海中形成的想法。 我正在寻找一个更好的例子,也许是一个更好的公司实时定义,将改善我的概念。