Contact information
http://www.modelbenders.com
[email protected]
ph: 407.977.3310
SIMULATION LANGUAGES AND PACKAGES

A number of simulation languages and packages have been developed specifically to assist developers in constructing models of their systems. These languages are intended to serve a specific problem domain, rather than support general purpose programming as do FORTRAN, C, Pascal, and Ada. However, general purpose languages are still widely used to construct simulations in domains for which simulation specific languages or packages do not yet exist or where the problem is so unique that simulation tools can not be created economically.

Some of the more popular languages and packages are described below and a sample comparison of three provided in the table.

Discrete Event Simulation:
Discrete event simulation includes a wide array of both problems and commercial tools for solving them. The descriptions below are separated into those that use an actual programming language and those that are simulation applications or toolkits.

Languages

Simula, the first simulation-specific programming language, was developed by O.J. Dahl and K. Nygaard of the Norwegian Computer Center in 1967 as an extension of ALGOL 60. The language is actually a general purpose programming language with specific extensions to support simulation. Simula was the first object oriented programming language, providing support for objects, classes, inheritance, encapsulation, multi-threading, and garbage collection. It was the motivation for the later development of the C++ language.

GPSS/H from Wolverine Software is a block programming language improved from the original GPSS developed at IBM in 1969. This language provides an interactive debugging environment, a floating-point clock, and built in mathematic, trigonometric, and statistical functions. It automatically collects basic simulation output data and supports the extension of this collection by the programmer.

SIMSCRIPT II.5 from CACI Products is an event-oriented and process-oriented language that evolved from the original SIMSCRIPT developed at the Rand Corporation in 1962. The language is actually a complete general programming language that can be used to build discrete-event, continuous, and combination simulations. It is supplemented by SIMGRAPHICS that allows the user to develop input forms, output displays, and interactive controls for the simulation.

SIMAN/Cinema from Systems Modeling is a combined simulation language and animation system. SIMAN models are constructed graphically using the Cinema package and automatically converted into code. The language includes built-in functions for manufacturing and material handling systems, an interactive debugger, and analyzers for input and output data.

SLAM II from Pritsker Associates is predominantly used for process-oriented simulation, with extensions that support event-oriented simulation and combinations of the two. The language represents models in a network-like structure that includes nodes and branches. Support packages allow the developer to draw a network, which is then converted into the simulation code.

MODSIM from CACI is an object-oriented programming language with graphic extensions to support data input, execution monitoring and control, and output analysis. The language includes built-in routines for statistical distributions and simulation management operations. Interaction with the language is through a development environment that includes a compiler, object manager, and debugger.

Language Comparison

To illustrate the syntax of some of the more common simulation languages, Table 1 provides the code for the same problem in GPSS/H, SIMAN, and SLAM II. This code represents a simple single-server queue with exponential inter-arrival and service times, such as a barbershop with one barber and a waiting queue. Though these languages are designed to efficiently serve the needs of model builders, their syntax is often equal or more complex than general purpose programming languages. This fact has motivated the creation of the simpler graphic packages and toolkits described in the next section.

Table 1. Simulation Language Comparison
GPSS/H SIMAN SLAM II
II
SIMULATE
GENERATE RVEXPO(1, 1, 0)
QUEUE SERVERQ
SEIZE SERVER
LVEQ DEPART SERVERQ
TEST L N$LVEQ, 1000, STOP
ADVANCE RVEXPO(2, 0.5)
STOP RELEASE SERVER
TERMINATE 1
START 1000
END
BEGIN;
CREATE,,EX(1,1) :EX(1,1) :MARK(1);
QUEUE, 1;
SEIZE :SERVER;
TALLY :1, INT(1);
COUNT :1,1;
DELAY :EX(2,2);
RELEASE :SERVER :DISPOSE;
END;
GEN, 1,,,,,,72;
LIM,1,1,100;
NETWORK;
RESOURCE/SERVER(1),1;
CREATE,EXPON(1.0,1),1,1;
AWAIT(1),SERVER;
COLCT,INT(1),DELAY IN QUEUE,,2;
ACTIVITY,EXPON(0.5,2),,DONE;
ACTIVITY,,,CNTTR;
DONE FREE,SERVER;
TERM;
CNTR TERM,1000;
END;
;
INIT;
FIN;

Packages

Extend from Imagine That is a visual, interactive simulation package for discrete event and continuous modeling that allows users to build models and user interfaces graphically. Model execution is carried out interactively on the graphic model representation. The package can accept data input through the interfaces or from separate files. Extend provides built-in mathematic and statistical functions and can be customized through the addition of C and FORTRAN routines. It also supports a client/server relationship with spreadsheet programs.

Workbench from SES is a visual simulation environment that allows models of complex systems to be built and executed graphically for performance analysis and functional verification. A model is specified graphically, as a hierarchy of directed graphs; declaratively, by filling in forms attached to each node in a graph; and procedurally, by specifying procedural methods attached to the nodes where desired in an internal language that is a superset of C.

TAYLOR II from F&H Simulations is a graphic model building package based on four fundamental entities - elements, jobs, routings, and products. These are manufacturing oriented where elements can represent machines, buffers, conveyors, transport, paths, warehouses, and reservoirs. The three basic operations supported are processing, transport, and storage. During simulation execution, graphic interfaces provide 2D and 3D views of factory activities.

COMNET III from CACI Products is designed to simulate communications networks. It provides a graphic interface for model building, execution, and data analysis. It specifically provides statistical distributions and control data for communications and computer networks as used by telephone companies, cable television broadcasters, and computer networks.

BONeS Designer from the Alta Group models the protocol and messaging layers of computer architectures and communications systems. The tool provides graphical user interfaces for defining data structures, analyzing results, generating finite state machines, and directing interactive simulation runs.

CSIM18 from Mesquite Software is a library of classes, functions, procedures, and header files that describe the activities and statistical distributions of communications, transportation, microprocessors, and manufacturing systems. Library components can be combined with developed software in C and C++ to create a simulation model that has fast execution.

SimPack from the University of Florida is a toolkit written in C and C++ to support the development of simulation programs by the user. It contains routines to support basic simulation operations and management of declarative, functional constraint, and combination models. The software can be combined with software written by the user.

CPSim from BoyanTech provides an execution kernel that manages synchronization, scheduling, deadlock prevention, and message passing, as well as a library of C functions that can be used to build an application. CPSim represents the system being modeled as a directed graph of communicating objects that are categorized as sources, nodes, and sinks. The tool supports portable models across single and multi-processor computers.

Continuous Simulation:
The Advanced Continuous Simulation Language (ACSL) from MGA Software was developed specifically for modeling time-dependent, nonlinear differential equations and transfer functions. The language allows the user to develop code from block diagrams, mathematical equations, and FORTRAN statements. There are two distinct groups of user interactions: the first, define the model and the structure of the system being represented; the second, exercise the model allowing input variation and output analysis.

The Continuous System Modeling Program (CSMP) is constructed from three general types of statements - structural, which define the model, data, which assign numerical values to parameters, and control, which manage the execution of the model.

Interactive Simulation:
In the interactive training arena a number of simulation products have emerged, particularly with military domain applications.

VRLink from MAK Technologies supports network protocols and simulation management for distributed military simulations. This package provides routines that format messages according to defined standards and manage the delivery and receipt of these messages across a number of computer platforms.

ITEMS from CAE Electronics provides a graphic environment for constructing simulated virtual worlds and the entities that populate them. The tool allows the creation of vehicles, aircraft, and humans and the specification of the physical characteristics and behavioral patterns. Terrain and weather data can be imported from standard formats or generated internally to create an operational environment. It provides a graphical user interface for executing and managing simulation runs.

MultiGenII from Multigen Paradigm is a three dimensional modeling tool for generating the visual representations of simulated objects, terrain, and cultural features for a complete synthetic environment to support training simulations. The tool simplifies the creation of the visual objects, allowing simulation developers to focus on more specific physical and behavioral models within the simulation.

(Click to continue to the next page)