Lustre语言

Lustre是形式化定义的、声明式和同步式的数据流程编程语言,用于响应式系统编程。它在1980年代前期成为了研究项目,受到过Lucid语言的影响。这个语言的形式表述可以在1991年的《Proceedings of the IEEE》找到。在1993年,它发展进入实际的商业和工业使用,成为一个商业产品,它是开发的工业环境SCADE的核心语言。它被用于在空中客车、空客直升机和核电厂的关键控制软件中。

Lustre程序的结构
Lustre程序是一系列的“节点”定义,写为:
node foo(a : bool) returns (b : bool);
let
b = not a;
tel

这里的foo是节点的名字,a是这个节点的单一输入的名字,而b是单一输出的名字。在这个例子中,节点foo返回对它的输入a的否定,这是于预期的结果。

内在变量
额外的内部变量可以声明如下:
node Nand(X,Y: bool) returns (Z: bool);
var U: bool;
let
U = X and Y;
Z = not U;
tel
注意:等式的次序并不重要,行U = X and Y;和Z = not U;的次序不改变结果。

特殊算子
例子
边缘检测
node Edge (X : bool) returns (E : bool);
let
E = false -> X and not pre X;
tel

参见
*
*(另一种面向数据流程同步语言)
*同步式编程
*Lucid (编程语言)
*数据流程编程

引用
外部链接
*[http://www-verimag.imag.fr/Synchrone-main.html?lang=en Synchrone Lab] Official website
*[https://web.archive.org/web/20060720224039/http://www.esterel-technologies.com/products/scade-suite/overview.html SCADE] product page

评论 (0)

  • 还没有评论,来抢沙发吧。