Trad4 comprises of a library and a precompiler. You specify your objects using a simple syntax and run the precompiler. Trad4 produces a handful of C files for each object, including a stub file - the calculate method. This gets called each time the object needs to fire, and you need to supply the logic for. Trad4 pulls all the information that object needs to calculate itself into the scope of this function.
These source files are then compiled and together with libtrad4.so are linked into an executable. This then starts against a database.
Change is then fed into the system, and trad4 manages that change up through your graph and keeps the tree up to date in real time.
Trad4 is a new way of arranging programs in memory and a new style of flow-of-control.
Why use trad4?
It's very easy to use. To build a trad4 application to model your problem you need just a good understanding of your problem and knowledge of a small subset of the C programming language.
It's very fast. As you decompose your problem into separate objects, this allows multiple threads to execute different parts of your problem at the same time, so a trad4 application scales linearly on multiple cores. Trad4 itself has very little overhead - there are very few instructions between an object needing to be run and it's calculate function being called.
It's very efficient. As you break your problem out into separate objects, you can arrange your graph in such a way that each individual calculation gets done only once within the application. Other objects that depend on the result of that calculation will read the result from that object.
It's very safe. While trad4 provides full concurrency, it is entirely lock-free. This means you never have to worry about obscure race conditions or deadlocks.
It's very free. Trad4 is released under the LGPL. This is the same licence gcc & glibc use, and it allows you to link trad4 to a proprietary system and release that proprietary system under any licence you choose.