| |
|
This website explains the EAS-E view of modeling and programming,
and provides free software useful to those who adopt this view.
EAS-E stands for Entities, Attributes, Sets and Events. These
concepts were introduced in 1962 in the SIMSCRIPT [I] "simulation programming
language" developed at the RAND Corporation. SIMSCRIPT II, which appeared
in 1968, was developed as a general purpose programming language that
included a simulation capability. It was planned to also have database
capabilities based on the Entity, Attribute, Set and Event view of
system description. RAND developed and released SIMSCRIPT II including
simulation capabilities but not including database capabilities. A
few years later a database version of SIMSCRIPT II, called EAS-E, was
developed at IBM’s T.J. Watson Research Center. We will refer to it
as [TJW] EAS-E. It was a technical success, but IBM declined to release
it as a product, presumably because IBM had just converted from its
antiquated IMS to its new Relational database view with SQL front end.
An advanced version of SIMSCRIPT [I], called SIMSCRIPT I.5, and later
an advanced version of SIMSCRIPT II, called SIMSCRIPT II.5, were developed
by CACI. For many years these CACI versions of SIMSCRIPT were widely
used to program a great variety of commercial and military simulators.
CACI still sells and supports SIMSCRIPT II.5. However, it is priced
well beyond the reach of individual PC users. (For further background,
see Brief History)
This site aims to partly fill a gap due to the facts that [TJW]
EAS-E is dead and SIMSCRIPT II.5 is prohibitively expensive except
for large corporate and government (including military) simulation
users. Specifically, this site includes pages which explain how
to model a system (to be simulated or represented by a database) in
EAS-E terms; how to implement such a system once thus represented;
and how to use the free software presented here. We discuss
these three topics briefly here and more extensively elsewhere in this
site.
It might be simplest to describe Entities, Attributes, Sets and Events
(i.e., EAS-E) as "programming constructs"; but it is more accurate
to call them" modeling" constructs. When the EAS-E view was developed
for SIMSCRIPT [I] it was common to have a division of labor, in the
development of large simulation projects, between a "modeling team" that
would decide the contents of the simulation model and a "programming
team" that would implement it. The goal of SIMSCRIPT [I] was to allow
the model to be specified in a convenient manner, then generate the
simulator from this specification with as little as possible programming
details. SIMSCRIPT [I] was not completely successful in meeting this
goal, since some programming was required. It did succeed, however,
in much reducing the programming required to go from modeling concepts
to simulator. In particular, many modelers who would not have considered
programming a complex simulator themselves before SIMSCRIPT found it
convenient to do-it-themselves after SIMSCRIPT.
The SIMSCRIPT [I] programmer/modeler specified the names of entities,
attributes and sets on the SIMSCRIPT [I] definition form. SIMSCRIPT
II did away with the difinition form for logistics reasons. However,
standard good procedure recommended that the modeler/programmer document
the entity, attribute, set structure of his or her simulation or data
base program with some similar tabular listing of the names of entities,
attributes and sets together with other information. Such a tabulation
is part of "seeing the world" in terms of EAS-E. See ILLLUSTRATIVE
EAS for an example extracted from the actual EAS documentation
of a complex applications system.
As noted above, it was planned that SIMSCRIPT II have both a simulation
and data base EAS-E capability. SIMSCRIPT II with simulation capabilities
was released by RAND and enhanced by CACI . [TJW]EAS-E was developed
at the T.J. Watson Research Center but not released. The software presented
here, in EAS-E CODE and documented
in C++EAS-E MANUAL, is useful
for programmers who wish to develop large RAM (e.g., simulation) programs
in C++. Specifically it provides routines for efficiently filing, removing
and finding entities in very large ranked (ordered) sets. It is hoped
that similar database capabilities can be made available at some later
date. We refer to the routines presented here as C++EAS-E.
|
|
|