SIGNAL vs Esterel vs Lustre

SIGNAL vs Esterel vs Lustre

我对以数据流和并发为中心的语言非常感兴趣。我已经阅读了有关该主题的文章,并且反复看到提到了 SIGNAL、Esterel 和 Lustre;所以我认为他们是这些领域的杰出参与者。但是,他们在我发现的资源中的许多链接都已失效,而且它们似乎不太容易访问。我设法找到了几个可以从源代码编译的编译器 (Polychrony Toolset for SIGNAL and the Columbia Compiler for Esterel),但是在尝试使用 cmake 进行编译时它们都遇到了问题。甚至教授这些语言的教科书也很难获得。

有了这个背景,我的实际问题是:有人真的熟悉这个编程领域吗?这些语言仍然很重要,还是已经 "died out" 了?难道它们只是价格昂贵的大公司才能使用,所以普通程序员真的无法掌握这些语言吗?

我 运行 进入其他一些 dataflow/concurrent 范式语言,例如 Oz 或 E,但它们似乎主要用于教育而不适合现实世界的项目。并不是说它们不是令人印象深刻的语言,而是它们的实现是有限的,并且不太可能在生产环境中看到它们。有谁知道这个领域的其他语言,他们可以推荐这些语言实际上是可以访问的(有很好的文档、教程和一个可安装的编译器来实际编码)?或者任何人都可以阐明一种语言,例如 Oz 或 E,并希望表明它们确实足以用于大型现实世界项目吗?

你提到的所有语言都没有普及。这意味着他们的编译器和运行时存在错误,社区范围狭窄且几乎无法提供帮助,并且与通用库的链接可能存在问题。

我建议使用受到积极支持的通用语言,例如 Java、Scala、Kotlin 或 C++。它们都有支持异步计算的库,dataflow无非就是支持异步过程调用。您甚至可以开发自己的数据流库。这并不难:我为 Java 编写了一个数据流库,它只有 40 KB 的源代码。

你试过Céu吗?它是 Esterel 的最新变体,并编译为 C。它易于理解,并提供反应式和并发的控制流结构。可以通过在它们前面加上下划线(“_printf”)来进行本机 C 调用。

http://ceu-lang.org

此外,请参阅论文 "Structured Synchronous Reactive Programming with Céu" 以获得很好的概述。

http://www.ceu-lang.org/chico/ceu_mod15_pre.pdf

这些学术语言大多就这样消失了,并用于工业工具

Synopsys 的 ConcentricStudio 中使用了 Esterel。

研究人员还 Heptagon 用于代码生成、形式化方法、新概念的同步语言研究。