Software sources.
This software makes heavy use of the object-oriented paradigm. A typical experiment consists of a sequence of commands sent to and responses read from some collection of instruments. Each instrument is represented, naturally enough, by an Instrument object, and each operation on a given instrument is represented by an Action object (or an object of one of its subclasses).