簡單概述
仿真語言:專門用於仿真研究的計算機高級語言,是一種面向問題的非順序性的計算機語言。仿真語言是一類重要的仿真軟體。在系統仿真時套用仿真語言,不要求用戶深入掌握通用高級語言編程的細節和技巧,因此用戶可用原來習慣的表達方式來描述仿真模型,而把主要精力集中在仿真研究上。
發展歷史
仿真語言是隨著數字計算機的發展而發展起來的。
在連續系統仿真方面,1955年出現第一個框圖式仿真語言,稱為數字模擬仿真語言 DAS(英文 DigitalAnalog Simulator的縮寫)。這種仿真軟體配有一整套對應於模擬計算機中各種標準運算部件的程式模組,用這種仿真語言編寫的源程式分為結構、參數和控制三部分,分別用來指定程式模組間的連線、模組的參數和模組的運行方式。用戶書寫源程式語句的順序則是任意的。源程式經編譯程式翻譯成機器碼,或經解釋程式解釋後執行。因為源程式的編制方法與模擬計算機的編排方式相類似,所以很受仿真界的歡迎,盛行於1955~1965年間。但模型的表達內容要受預先編制好的模組類型的限制。DAS語言吸取了早期許多仿真語言的特點,在仿真語言的發展中起過重要的作用。
60年代初還在 DAS語言的基礎上作了改進,出現改進型數字模擬仿真語言 MIDAS(英文 Modified Digital Analog Simulator的縮寫)。1959年出現系統動力學建模語言DYNAMO(英文 DynamicModels的縮寫)。
1967年美國計算機仿真學會提出一種兼有框圖表示功能的面向方程的仿真語言,稱為連續系統仿真語言CSSL(英文Continuous System SimulationLanguage的縮寫),成為連續系統仿真語言的規範。此後又出現了許多符合CSSL規範的仿真語言。其中套用較廣的有連續系統建模語言CSMP(英文Continuous SystemModeling Program的縮寫)和微分分析器置換語言 DARE(英文Differential Analyzer Replacen ent的縮寫)。由於近代公式翻譯語言 FORTRAN的編譯程式對某些小型計算機也能產生高效率的目標代碼,所以面向方程的仿真語言都是先翻譯成FORTRAN語言,再通過編譯程式生成目標代碼。現在符合CSSL規範的仿真語言有許多版本。
在離散系統仿真方面,1959年出現第一個離散系統仿真程式包MONTECONE。1961年提出進程型仿真語言──通用系統仿真語言GPSS(英文General Purpose SystemsSimulator的縮寫)。1963年出現事件型仿真語言 SIMS-CRIPT。1967年又提出另一種進程型仿真語言SIMULA67。後來又出現另一種事件型仿真語言:一般活動仿真語言GASP(英文General Activity Simulation Program的縮寫)。
70年代以後,仿真語言開始向多功能的方向發展。在離散系統仿真語言中引入連續系統仿真語言, 產生混合系統仿真語言。 其中套用最廣的是GASP語言的兩個新版本GASPⅣ和GASP-PL/1, 和交替建模仿真語言SLAM(英文Simulation Language for Alternative Modeling的縮寫)。混合仿真語言 HL1(英文Hybrid Language 1的縮寫)可用於設計並行計算模組的程式,適用於高速仿真和實時仿真。將仿真語言與控制系統計算機輔助設計軟體包配合使用,使計算機仿真系統成為控制系統設計研究的有力工具。近年來出現的仿真軟體系統和仿真專家系統進一步擴展了仿真語言的功能,成為仿真語言發展的新方向。
分類介紹
仿真語言按被仿真系統的特點分為連續系統仿真語言、離散系統仿真語言和連續離散混合系統仿真語言。按數學模型的型式分為面向框圖的仿真語言和面向方程的仿真語言。按運行方式分為互動式仿真語言和批處理式仿真語言。
組成部分
仿真語言是一類重要的仿真軟體,市售商品均以文本和軟磁碟的形式提供。它由以下四個部分組成:
①模型定義語言:用以定義模型和仿真實驗的語言。
②翻譯程式(用於連續系統仿真)或處理程式(用於離散系統仿真):翻譯程式是將用模型定義語言書寫的源程式翻譯成宿主語言。處理程式是將源程式連線實用程式庫和運行支持程式,形成機器碼。
③實用程式庫:包括算法、專用函式、隨機採樣函式、各種框圖和繪圖程式。
④運行控制程式:供用戶以人機互動的方式控制仿真運行、改變參數、收集數據和顯示數據的程式。
特點特性
仿真語言不同於一般通用的高級語言,具有以下幾個特點:
①仿真語言使用戶可以採用習慣的表達方式來描述仿真模型。
②仿真語言具有良好的並行性。在實際的連續系統中,過程都是並行發生的,而一般數字計算機都是串列計算的。因此,用仿真語言編寫的源程式都有自動分選排序的功能,通過編譯程式將源程式排列成正確的計算順序,供計算機按順序進行計算。
③仿真語言與順序性的通用程式語言(如 FORTRAN語言)有兼容性,以擴展仿真語言的功能。
④仿真語言備有多種積分方法可供用戶選用。
⑤仿真語言配有常用輸入和輸出子程式。
⑥用仿真語言編制的源程式,便於實現多次運行仿真的研究。
⑦用仿真語言編制的源程式,在程式運行的不同階段,可給出診斷程式錯誤的信息,幫助用戶查找程式錯誤。