Geeks With Blogs

News I am a long-in-the-tooth (or short-in-the-gum) SharePoint architect and now even a Geeks-With-Blogs blogger. Wow!!
Points To Share Mostly SharePoint

Yesterday I had the pleasure of meeting Chris malavarca who is an account executive for Matalogix. The name Metalogix immediately brought me to think about language and meta-language, rule and meta-rule, and the dangers of mixing between them.

Alan Turing envisioned a machine with states, code and an infinite tape. The tape could be in any of infinite positions and be made to move forwards or backwards, the machine could be in any of a finite number of states. The code was a finite transition table that determined how the machine moved from state to state depending on the current input from the tape and the current state. Obviously the Universal Turing Machine separated the input or data from the code.

John Von Neumann came with the idea that both program and data will share a common memory. This is the architecture of the modern computer.

We can go into years of discussions of what all of this really means and of defining what are the limits of computation, but I am too slow a typist to be able to do all this. I want to concentrate on one of the problems that such an architecture presents – the problem of un-stratified control. If program and data share the same space and the program manipulates the data, what will prevent the program from manipulating itself? Indeed one of the early procedural languages – the ubiquitous COBOL - had an ALTER instruction by which the programmer could change a GOTO command so its next branch will no longer be to A but B (or C, or D…). This created a multitude of problems and rendered debugging close to impossible. You can only imagine how our modern day hackers would have enjoyed such capabilities (they actually do, but this is another story preserved for another day). In short we needed to do something about it, and we did. We strongly separate program and data.

A similar separation in logic helps a great deal. Here is a case in point. How many times have you heard, or, horror of horrors, said: “This is the exception that proves the rule,” or “There is no rule without exceptions.” Is it really so? If there is no rule w/o exceptions than this rule must have its exceptions as well – so there is a rule w/o exceptions! Oops – a paradox. Turn it in your head and scratch to the brink of baldness, you still cannot resolve this paradox unless… Unless you stratify controls! So how do we do this? We declare the rule “There is no rule without exceptions” To be a meta-rule; A rule about rules, but itself above the rules that it regulates. Itself the program, the other rules the data. Do this and the paradox will evaporate. So if rules are Logix, this rule is Metalogix!

I doubt if the founders of Metalogix had this in mind, but it sure is a nice name!

Posted on Thursday, January 26, 2012 1:42 PM | Back to top

Comments on this post: Stratified controls, Rule and Meta-rule or Logix and MetaLogix.

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © PointsToShare | Powered by: