forked from nkofl/simjs-updated
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME
36 lines (27 loc) · 1.84 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
README
*SIM.JS Updated is a general-purpose Discrete Event Simulation library written entirely in JavaScript.*
The original implementation was written in 2011, and can be found at http://www.simjs.com
SIM.JS is a library for modeling discrete time event systems:
* The library provides constructs to create Entities which are the active
actors in the system and encapsulate the state and logic of the system
operations.
* The entities contend for *resources*, which can be Facilities (services
that are requested by entities; facilities have a maximum limit on number
of concurrent users) and Buffers (resources that can store finite amount
of tokens; entities store or retrieve tokens from the buffers).
* The entities communicate by waiting on Events or by sending Messages.
* Statistics recording and analysis capability is provided by Data Series
(collection of discrete, time-independent observations), Time Series
(collection of discrete, time-dependent observations) and Population
(the behavior of population growth and decline).
* SIM.JS also provides a random number generation library to generate seeded
random variates from various distributions, including uniform, exponential,
normal, gamma, pareto and others.
*SIM.JS is written in _idiomatic_ EcmaScript 2015 JavaScript*. The library is
written in event-based design paradigm: the changes in system states are notified
via callback functions. The design takes advantage of the powerful feature sets
of JavaScript: prototype based inheritance, first-class functions, closures,
anonymous functions, runtime object modifications and so on. Of course, a
knowledge of these principles is not required (a lot of this is behind the scenes),
but we do certainly hope that using SIM.JS will be a pleasurable experience for
the amateur as well as the experienced JavaScript programmer.