Wednesday, September 30, 2009

Mux-Demux: Coherence in Massive Generative Grammars

In the previous post, Grogix, our language for describing an operational sequence of patterns ordered by importance, was given a language structure, "mux-demux", to provide notational equivalence to the multiple application of functions. But more is needed: the higher-order function, where each of the multiple applied functions contains further functions. Our issue is that we still want these sub-functions to be disentangled, unraveled and transparent, so their patterns cannot be hidden, making them available for application globally to our system, so that true minimization of principles and patterns can be possible.

In order to facilitate "higher-order mux-demux", we're going to extend the .demux directive, and turn it into a production. From our previous example (note that templates have step-only local scope):

.step 11 : 'db section'

.template : 'db' : 'NAME'
Class NAME (db.model):

.demux : 'db declarations'
.nt: this
.dnt: 'db references'

.dmP: 'main page'
.t : db ( 'Main' )


So, in a later pattern/step, a further .demux reference to 'db references' will be applied to a spot after each of the .dmP results at this step.

This provides a kind of "multiplexing trunk', where demultiplexing of the original group is done at any number of steps in the morphogenesis of the system.

But we need two more things to complete our analogy with everyday class and functions use:

(1) A way to merge mux groups.
(2) A way to split mux groups.

(1) is easy, and 'free' in my implementation, requiring no new syntax. We simply use the .demux target in more than one .mux statement.

(2) requires new syntax. We attach 'directed non-terminal' .dnt directives to .dmP's, in a .demux block, not just to .mP's in a .mux block.

.dmP: 'main page'
.t : db ( 'Main' )
.dnt : 'page db declarations'

This tags the production for a later .demux: 'page db declarations' directive ... other .dmP's at this level can be so tagged, splitting the mux group, allowing for differentiation of streams of otherwise similar elements. Clearly something like this is done in nature ... and we certainly need it in order to reduce notation, while maintaining global transparency.

No comments:

Post a Comment