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++.