| |
|
BRIEF HISTORY of EAS-E Concepts
EAS-E stands for Entities, Attributes, Sets and Events. These concepts
constituted the "worldview" of the 1962 SIMSCRIPT programming language,
referred to here as SIMSCRIPT [I] to distinguish it from subsequent
versions.
Reference to "SIMSCRIPT" without further qualification refers to features common
to all versions of SIMSCRIPT.
SIMSCRIPT [I] was developed at the RAND Corporation in Santa Monica, primarily
as a language for programming discrete events (as distinguished from continuous
time) simulation programs. In a SIMSCRIPT simulation, as of any instant in time
the simulated system has a status described in terms of how many of various types
of entities exist, what are the values of their attributes , what sets they belong
to and who are the members of the sets they own. Status changes at points in
time called events. An event can create or destroy entities, change attribute
values, file entities into or remove them from sets, and cause (or cancel) future
event occurrences. These actions can occur conditionally, e.g., IF certain conditions
are true, or repeatedly FOR EACH member of some set that meets specified conditions.
Events can either occur exogenously -- at times specified in advance, "outside" the
simulation -- or endogenously, caused by prior events inside the simulation.
In SIMSCRIPT [I] the Entity-Attribute-Set structure of a simulation program (a.k.a.
a "simulator") was described on a "Definition Form". This had columns in which
to specify the names of entity types, their attributes, and the sets they owned
or to which they could belong; and other information such as the data types of
attributes, the organization of sets (FIFO, LIFO or "Ranked" on one or more attributes)
and whether a given entity type was "temporary" (individual entities of the type
could be created and destroyed during the course of a simulation run) or "permanent" (all
individuals are created at the start of the run and persist throughout the run).
Information on the Definition Form was punched onto cards (remember, this was
in the early 1960's). The need to supply users with Definition and other forms
presented logistics problems. With SIMSCRIPT II all forms were deleted from the
language, other means being found to convey the same information. If SIMSCRIPT
were reimplemented today a variation of the Definition Form might return as a
GUI (Graphical User Interface). Other forms in SIMSCRIPT [I] were an Initialize
Form used to describe the status of the simulated systems at the beginning of
a specific run, and a WYSIWYG ("what you see is what you get") Report Generator
that included the option of row and/or column repetition (e.g., for each member
of a set meeting specified conditions).
The events of a SIMSCRIPT simulation are described in "event routines" written
in the SIMSCRIPT ([I] or II) programming language. These include key words specifying
CREATE, DESTROY, FILE, REMOVE, FOR EACH [of set] and WITH [conditions], as well
as conventional constructs such as IF, GO TO and assignment.
RAND placed SIMSCRIPT in the public domain through the SHARE organization. When
SIMSCRIPT [I] was finished, Herb Karr and Harry Markowitz formed a software company
initially called California Analysis Center, Inc., later Consolidated Analysis
Centers, Inc., always abbreviated CACI. Initially, Markowitz continued to consult
part time at RAND on the development of SIMSCRIPT II. At first, CACI gave SIMSCRIPT
[I] courses and consulted on the use of SIMSCRIPT [I]. Subsequently, IBM engaged
CACI to adapt SIMSCRIPT [I] to a new operating system. CACI used this as the
opportunity to upgrade SIMSCRIPT [I] producing the product called SIMSCRIPT I.5,
since it was an enhancement of SIMSCRIPT [I] rather than the SIMSCRIPT II then
under development at RAND. In particular, SIMSCRIPT I.5 compiled into assembly
language as compared to SIMSCRIPT [I] which was a preprocessor into FORTRAN.
SIMSCRIPT [I] was developed primarily as a "simulation programming language".
SIMSCRIPT II, on the other hand, was developed as a general purpose programming
language, with set processing capabilities, of course, and with the option of
enhanced SIMSCRIPT [I]-like simulation capabilities. The enhancements were mostly
based on extensive use of SIMSCRIPT [I] at RAND, especially for logistics system
simulation.
It was planned to include database capabilities in SIMSCRIPT II. The idea was
that--not only can the status of a simulated world be represented by entities,
attributes and sets--but so too can the status and history of the "real" world
as represented in a database. RAND implemented SIMSCRIPT II, including simulation
capabilities but without the database capabilities, and released it to SHARE.
About a decade later, at IBM's T.J. Watson Research Center, Malhotra, Markowitz
and Pazel (MMP) used the RAND-SHARE version as a starting point for developing
a version of SIMSCRIPT II with database capabilities (but with simulation capabilities
deleted). This database version of SIMSCRIPT was titled EAS-E. We will refer
to this implementation as [TJW]EAS-E to distinguish it from the general idea
of an Entity-Attribute-Set and Event system description or a possible new language
implementation.
[TJW]EAS-E was a technical success, as demonstrated in one large practical application
in the T.J. Watson Center. In addition to the SIMSCRIPT II language for "canned" programs--now
applied to database as well as RAM entities-- an interactive "Browser" was added
to allow the user to examine entities directly by navigating database sets. To
support concurrent users, data was locked (read-only or read-write) at an entity
level (rather than at a page or file level). Ranked sets were organized so as
to permit rapid filing and finding of entities in enormous sets. See Markowitz,
Malhotra and Pazel [ ], Malhotra, Markowitz and Pazel [ ] and Pazel, Malhotra
and Markowitz [ ].
Unfortunately, MMP were unable to persuade IBM to release EAS-E as a product.
IBM had recently converted from IMS (Information Management System) to their
new "Relational" data base system with SQL front end. MMP thought EAS-E to be
demonstrably more convenient and more efficient. But IBM did not buy the argument.
Markowitz left IBM, accepting a chair in finance at Baruch College, CUNY. Malhotra
and Pazel remained with IBM, working on other things.
Currently, an enhanced version of SIMSCRIPT II, called SIMSCRIPT II.5, is marketed
by CACI. This has the SIMSCRIPT II simulation capabilities, but not the database
capabilities such as in [TJW]EAS-E. (It does have an interface to SQL.) Among
its major enhancements is an animated output capability not part of SIMSCRIPT
II, circa 1968. Its chief drawback, for most, is its price; namely, it is priced
well beyond the pocket of individual PC users. Nevertheless, SIMSCRIPT, in the
form of SIMSCRIPT II.5, continues to gain adherents, mostly by word-of-mouth,
among large corporate and government simulation users.
The present site aims to fill a hole left by the fact that [TJW]EAS-E is dead
and SIMSCRIPT II.5 is prohibitively expensive for most users. The site does not
present a complete EAS-E based programming language like SIMSCRIPT [I] or II.
Rather, its more limited objective is to explain the EAS-E worldview and present
free software of use to the programmer who adopts this worldview and then programs
in C++.
|
|
|