Goto: Documentation Home
Gds machines create a series of primitive steps that can be applied to data and processing. These primitive steps (or "chips") are similar to electronics integrated circuits; each chip performs a specialised task, but without much knowledge of the overall environment. These chips can be dynamically assembled to create large processing machines in much the same way as electronic components are assembled together to create larger machines.
Gds machines are often quite high level in action. There is a machine that reads CSV format files and produces output, others provide a range of filtering and sorting, while still others perform dictionary lookups.
Gds machines were primarily designed to allow compotent but non technical users to describe a process, such as creating a report, without having to learn a programming language. As machines are dynamic, users can experiment with actual data and see results immediately. With machines being high level, much of the technical detail is abstracted away, allowing reasonably simple graphical depections of the process.
Machines have the following characteristics
Each operating machine has a "base" definition. This defines the actual code stream to execute, its input and output buses and constants. In OO programming terms, this is an instance of an object.
Machines are wired to each other via a BUS. Multiple machines can share the same input bus, it is not limited to 1-1 linking. In electronic terms, the fan-in is 1, the fan-out is unlimited.
Each bus, carries "data-nodes", which are objects holding data from previous steps. Each machine is free to add, edit, delete, hold etc the data nodes. Individual machines can only communicate via data-nodes, if there is a need for other types of communication for some reason, then combine the routines and create an uber-machine.
Machines do not need to buffer explicitly or flow control. The machine executor will select machines for execution and manage the flow control between machines.