MSS Code Factory: A Fractal Programming System    Get MSS Code Factory at Fast, secure and Free Open Source software downloads

Prev Documentation Home Next

The Manufactured Object Model

Useful and functional code supporting the business application model is produced to support any generic business logic or application code. This is the "Code Manufacturing" aspect of the project and why it was called a "Factory".

The layers and modules currently produced include:

What gets manufactured for a custom expert system?

When you enable "ExtendCFCore" for a schema, the system produces a customized General Expansion Language (GEL) interpreter that is designed to work with the business application model data that you've specified.

This process goes far beyond a framework approach of creating a catalog of objects that implement framework interfaces. Instead, I create interpreter bindings that link the language directly to the application data through custom code, which results in astonishingly tight and fast execution despite the size of the overall manufactured code base. You could do the same thing with introspection and less code, but it would be slower.

While the simple grammar of the GEL languages remains unchanged from one application to the next, the syntax of the language as a whole adapts itself using the business model's terminology to provide a richly expressive syntax for navigating the data of that model.

See the Generic Expansion Language (GEL) page for a better explanation of how MSS Code Factory adapts the CFCore technology to define an expert system capable of understanding your business application model.

The expert system itself is a functional signature matching language, which means that the current scope and generation definition in the context of the current expansion is considered when searching for an expansion name during GEL expansion.

The fundamental expansion performed by the GEL interpreter is based on the idea of inverting a LALR parser, so it produces predictable, uniform code. The interpreter uses techniques common to functional languages in the way that it considers the scope and generation definitions of the current context when searching for expansion rules.