22、高效仿真语言开发方法及特性研究

高效仿真语言开发方法及特性研究

1. 快速执行的仿真原语(P5)

在 DMX 中,通过对基本语言(BL)仿真原语的高效实现,可确保运行时的高效执行。这部分工作会委托给选定的仿真目标语言。部分目标语言已存在编译器的高效实现,例如 SLX。通过编写从 BL 到 SLX 的映射,不仅能实现快速执行,还能在定义特定领域扩展时提升表达能力。而且,由于扩展的语义是基于 BL 的相同概念定义的,所以扩展也能受益于快速执行。

Java 编写的仿真库也有类似情况,不过其运行时效率可能不如 SLX。例如 DESMO - J,它的协程实现基于 Java 线程,执行速度较慢。但也有更高效的库,如在网络仿真社区中著名的 JiST。JiST 通过 Java 字节码重写实现协程,比 DESMO - J 更快。实现从 BL 到 JiST 的映射(类似于已为 DESMO - J 实现的映射),也能得到一个可行的模拟器。

在一个实验中,使用包含两个计数器(计数上限为 10⁶)的示例模型,测量了 SLX 和 Xtext/DESMO - J 的执行时间。实验环境为 Intel Core i7 2.6 GHz 处理器、8 GB 主内存和固态硬盘。结果显示,SLX 仅需 0.06 秒完成仿真,而 Xtext/DESMO - J 则需要 186 秒,使用 DESMO - J 的对应 DMX 模型执行时间为 144 秒。基于 Xtext 的状态机语言(SML)执行时间略有增加,可能是因为处理事件的状态机语义采用了面向对象的方式,遵循状态机模式实现;而基于 DMX 的 SML 语义是通过一些简单的 if 语句确定当前状态来定义的。

此外,通过定义从 BL 到 SLX 的转换,DMX 的执行时间可以轻松达到与纯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值