EQN

The software began as a simple algebraic calculator. Send it an algebraic expression in a string and it would return a string representing the numeric result.

The idea was that software using the system would be able to keep equations in a parameter file or database table allowing the user to manipulate not just the numbers for a value in the system, but how to calculate that value to begin with!
Imagine allowing a user to not only tweak numbers of an inventory level equation, but to configure the actual equation to determine inventory levels!

Soon it became obvious we should have the ability to have user defined formulas available to the application. Users needed some formula’s that would be used in other formulas. Having a notation and ability for the system to know about all the formulas without programmer intervention was needed.

Users being users soon discovered that under some conditions values needed to be evaluated in one fashion and under other conditions they needed it evaluated in another fashion. Formulas are good for functional decomposition, but they were evaluated the same way all the time. Sometimes formulas needed to be evaluated multiple times with different values. User’s needed the power to set a formula for a value under varied conditions, and so they needed a language to aid in when to calculate a value and when to define how to calculate a value.

More: browse the EQN project:
http://www.oehive.org/amduus/EQN/