A simple version of Elephant 2000 will be described in terms of an interpreter. Compiled programs are to have the same input-output behavior, but the object program uses ordinary data structures instead of referring directly to the past.
We suppose that only one input reaches the program at a time; the runtime system is supposed to achieve this. We also suppose that inputs not of the required form are rejected, so that the Elephant program itself doesn't have to say what is done with them.
The program responds to each input as it is received. Thus it can be regarded as a stimulus-response machine. However, in deciding on a response the program may inspect the entire past of its previous inputs and responses. There may also be a permanent database to which the program refers.