[Scade One] Swan与Scade 6的区别 - signal 特性的移除
signal 特性移除
在 Scade One 引入的Swan中,移除了Scade 6
中存在的signal 特性。比如 Scade 6
中的signal声明
sig
sig_o;
或者signal使用,比如
o = 'sig_o;
在Swan中已经被移除。
不过Swan仍旧保留了对布尔流的emit操作,比如 emit 'a if c
中,若a
是布尔流,则在Swan中语句是合法的。
产生的影响
对signal特性的修改,值得注意的是修改语言特性的动机。关键字signal
将保留给未来对连续时间问题建模特性所使用[1]。Scade 作为对离散时间模型的建模方案,在连续时间模型建模方面,早自2015年起就有Scade hybrid语言特性试验[2]。但在往后的十年,并未以正式特性的形式在Scade工具中提供。如今在Swan中作出解释,一定程度上描述了不向Scade 6
引入Scade hybrid的考虑。Scade 更希望signal
关键字使用在连续时间模型中。由此可以预计,在Swan的未来演化中,可能会引入过去Scade hybrid
中提出的拓展。
[1}: SwanPrimer Rev 2.1
[2]: A Synchronous-based Code Generator For Explicit Hybrid Systems Languages, Timothy Bourke, et al.