1. A method for a user to design a computer system to simulate an external system, said method comprising the steps of: using the Forth collection of programming environment building blocks to create a finite state machine language and an object oriented language; using said Forth collection of programming building blocks, said finite state machine language and said object oriented language to define said external system as a plurality of objects, said plurality of objects consisting of at least one controlling object; said objects comprising a plurality of data where said plurality of data describes said object; and a plurality of operations that can be performed by said computer system on said plurality of data; defining said at least one controlling object as a finite state machine; defining said system as a plurality of finite state machines; defining communication protocols between said plurality of finite state machines; determining a closest match between said object and a previously defined object; selecting said closest match and creating a new object based on said closest match; defining said plurality of data for said object; and defining said plurality of operations for said object.