next previous contents
Next: Entity Previous: Contents Up: Contents

Introduction

Maisie is a C-based discrete-event simulation language. It adopts the process interaction approach to discrete-event simulation. An object (also referred to as a PP for physical process) or set of objects in the physical system is represented by a logical process or LP. Interactions among PPs (events) are modeled by timestamped message exchanges among the corresponding LPs.

One of the important distinguishing features of Maisie is its ability to execute a discrete-event simulation model using several different asynchronous parallel simulation protocols on a variety of parallel architectures. Maisie is designed to cleanly separate the description of a simulation model from the underlying simulation protocol, sequential or parallel, used to execute it. Thus, with few modifications, a Maisie program may be executed using the traditional sequential (Global Event List) simulation protocol or one of many parallel optimistic or conservative protocols.

In addition, Maisie provides powerful message receiving constructs that result in shorter and more natural simulation programs. Useful debugging and message tracing facilities are available. A front-end for visual specification of simulation models, and a runtime output display and visualization environment is currently being designed.



Organization

The next two sections define the two main enhancements that Maisie makes to C -- constructs for defining and creating (simulation) entities, and constructs for message communication. Section 4 describes the remaining enhancements. Section 5 describes the debugging and message tracing support for Maisie. Section 6 presents a set of complete Maisie examples. Appendix A describes the Maisie compiler and the procedure of compiling and executing a Maisie program. A list of language restrictions and known bugs are described in Appendix B. Appendix C describes how to contact the system support group. Sections marked with an asterisk (*) may be skipped during the first reading.


Notation

The reader is assumed to be familiar with the C programming language as defined in [KR78]. The manual uses boolean constants false and true to mean 0 and a non-zero integer value respectively. The syntax of Maisie statements is given in BNF using the following symbols and conventions:

 
	Terminals	: terminal symbols are given in  boldface style

Nonterminals : nonterminal symbols are in italic style

ident : a C identifier (see Appendix B for identifiers reserved by Maisie)

[ ] : symbols occurring within brackets are optional

[ ]... : symbols may be repeated 0 or more times

| : alternative



Richard A. Meyer
Wed Apr 24 12:50:23 PDT 1996