【发布时间】:2012-12-06 13:43:54
【问题描述】:
我在 vdm++ 中实现了一个随机数生成器。但我想种子是来自计算机的时钟时间。有谁知道是否有与 c++ 函数 time(NULL) 等效的 vdm++ 函数?
谢谢。
【问题讨论】:
我在 vdm++ 中实现了一个随机数生成器。但我想种子是来自计算机的时钟时间。有谁知道是否有与 c++ 函数 time(NULL) 等效的 vdm++ 函数?
谢谢。
【问题讨论】:
不存在像time(NULL) 那样获取系统时间的任何内置库,但如果您使用的是用于 VDM 的 Overture IDE,则可以很容易地在 Java 中创建这样的函数并将其链接到您的模型。
Overture 用户指南有一个关于此的部分:14.1 Defining Your Own Java Libraries to be used from Overture.
您必须使用 java 类创建一个 jar 文件,该类为您提供系统时间,如下所示:
public class SystemTime
{
public static Value time()
{
return new RealValue(System.currentTimeMillis());
}
}
及其 VDM 对应物:
class SystemTime
operations
public static time : () ==> real
time() == is not yet specified;
end SystemTime
然后将 jar 和 vdm 文件放入项目中,如下所示: 项目根/ 库/ 系统时间.jar 系统时间.vdmpp
现在您可以使用 VDM 操作 SystemTime`time() 来获取系统时间。
【讨论】: