[拼音]:lisan xitong fangzhen yuyan
[外文]:discrete system simulation language
实现离散事件系统数字仿真的专用的程序设计语言,是一类重要的仿真软件。离散事件系统仿真语言一般由文本和软磁盘的形式提供。它由模型定义语言、处理程序、实用程序库和运行支持程序等组成。离散事件系统仿真语言按照对系统的描述方式而分为进程型、事件型和活动参考型三种形式。目前大多数离散事件系统仿真语言都属于前两种形式。
进程型语言进程型语言是面向进程的仿真语言。进程型语言按照系统表达方式又可分为网络型、语句型和框图型三种类型。1961年美国国际商业机器公司(IBM)的G.戈登提出的GPSS语言就属于框图型语言。美国宝来公司的A.J.迈耶霍夫等人提出的宝来操作系统仿真语言BOSS(英文 Burroughs Operational System Simulator的缩写)有很强的仿真功能,允许用户在编码过程中运用自己的与流程图类似的模块。BOSS语言也属于框图型语言。1966年挪威计算中心的 O. J.达尔和K.尼加德提出另一种面向过程的仿真语言 SIMULA(英文 Simulation Language的缩写),它是在通用算法语言 ALGOL的基础上扩展而成的,属于语句型语言。一种连续离散混合系统仿真语言──交替建模仿真语言 SLAM(英文Simulation Language for Alternative Modeling的缩写)则属于网络型语言(见SLAM语言)。
事件型语言事件型语言是基于事件调度的仿真语言。用事件型语言编制的源程序中,由主程序调用执行程序以控制仿真运行。执行程序首先调用初始化程序设置仿真语言中各变量的初值,并读入描述模型的标准输入语句。在执行程序中通常采用事件单位增长的方法拨动时钟。初始化后,从事件表中找出第一个事件。执行程序随之调用事件控制程序转至相应的事件程序。其执行的结果是再调度其他事件发生,或修改系统状态,或收集统计数据等。支持子程序库会提供所需的程序。如此进行下去。仿真终止后,自动产生报告。事件型仿真语言提供一系列方便而直观的语句供用户定义系统及书写主程序和事件程序。1963年美国兰德公司的H.马尔科维茨等人提出最早的事件型语言──仿真描述程序设计语言 SIMSCRIPT(英文Simulation Scripture的缩写),它是在通用程序设计语言 FORTRAN的基础上扩展而成的。用 SIMSCRIPT语言书写的仿真程序,描述了整个系统的活动,程序设计的中心任务是安排将要产生的下一个事件。在 SIMSCRIPT语言系统中,对于实体及其属性的操作是用事件例行程序来实现的。事件例行程序完成系统活动和事务处理的仿真。系统活动不论采用同时进行或顺序进行的方式,均由事件表排定事件例行程序。为了执行的需要,可以重新调度事件例行程序。通过事件例行程序的执行,将改变仿真时钟,并根据时间调度下一个事件。这在离散事件系统仿真中称为按时间顺序调度事件。B.普里兹克尔等人提出另一种事件型语言──一般活动仿真语言GASP(英文General Activity Simulation Program的缩写)。这种仿真语言也是在 FORTRAN语言的基础上扩展而成的。用户必须熟悉 FORTRAN语言程序设计。
80年代后离散事件系统仿真语言又有了新的发展。离散事件系统仿真语言与仿真环境软件(包括数据获取与分析、仿真结果显示分析、实验设计等软件)相结合而构成仿真软件系统。并优化编译程序。改善与数据库的接口。引入连续系统仿真语言,发展成为连续离散混合系统仿真语言。
- 参考书目
- A.Alan,B.Pritsker,C.D.Pegden, Introduction to Simulation and SLAM, Halsted Press, New York,1979.
- G.戈登著,杨金标译:《系统仿真》,冶金工业出版社,北京,1982。 (G.Gordon, System Simulation, Prentice-Hall, Inc.,1978.)