Thursday, December 13, 2018

Architecting the command and control

Pondering some issues.

Shun is always loaded, it seems to me, the module has such strong and widespread use it should be default.

Second, since my language, Default is simple, why not have Shunt handle it?  Just send the source to shunt and it returns the source unfolded, ready for execution. Mainly because Default allows pass through of valid linux cmd sequences, and I don't want that specific code in Shunt. Default still requires an execution unit, that is not provided by Shunt.

Why no a general purpose symbol table?  Likely such a thing will not work in all cases, my text8 system is special purpose, great for 8 byte symbol names, say Fortran or Forth, but no general purpose.

So Default keeps a very simple symbol table. It executesa simple procedural syntax engine to deal with linux pass thru. But it uses Shunt for expressions.  Hence, Shun is always loaded,  a necessity, a violation of the plain vanilla start idea, a violation of the Default no dependency rule. but it is such a general purpose parser we never leave it out.

Hence I am slowly stepping through the default engine, but spending a lot of time dealing with other potential loadable modules. The Default engine likely has three or four bugs and is a week away at my pace. It remains mostly self contained, and still comes in at 400 lines of code. It still only includes while, brackets, and simple variables with arithmetic simple expressions.

No comments: