I'm motivated by the vast chasm between the products of human engineering and those of the biological world.
I mentioned this here. I'm using the techniques in Christopher Alexander's The Nature of Order, that is, using feeling as a test procedure. The test procedure uncovers what has strong biological coherence, and what doesn't. It is analogous to Noam Chomsky's linguistic test procedure, to determine what is, and what is not, part of the human faculty of language. The Alexandrian version of the Chomsky approach, has helped me to find a strong notation, one that can actually give us a comfortable, natural, humane encoding for systems with the mind-boggling complexity of natural organisms.
At the center of Alexander's current approach is the notion of coherence. Some fields of centers ('centers' are things with a field-like property, without necessarily having a distinct boundary) work together, and support each other, holistically, with different degrees of coherence.
I considered what it was that best held everything together coherently, at least for me, in a computing system. And I know it sounds trite, but it seems that I always come back to the idea that a grammar defines the system -- it's kin to Aristotle's loosely-hierarchical formal cause, the essence of a thing, which still works to describe structure everywhere in the universe.
Now, even though programming systems always seem to have some holistic grammatical properties, for some reason we never express them grammatically. We express them as categories, functions, sets, classes, statements etc. But the only system that actually looks and feels like the grammar of language, is the attribute-grammar toolset of YACC, and its derivatives.
For decades, I've said to myself: "why do we only use grammars at the input and the output of a system?" We know from various kinds of re-writing systems (L-systems and Markov algorithms) that grammars are very powerful computationally. As a consequence of Chomsky's linguistics work, it's clear that various kinds of deep grammar must be at the core of our natural enumerative capacity. So, why are we using functional notation, or trivial imperative notation, when grammar is actually the heart of the form of a system?
I also take to heart Feyerabend's prescription for progress: we've been incrementally building a body of doctrine about programming language semantics, in part to maintain logical consistency in the face of engineering demands -- yet we seem no closer to bridging the chasm between ourselves and nature. Maybe we need to throw out our carefully-constructed mathematical deductions. Maybe we need to dig more deeply, not just into what nature is doing, not just into what mathematics calls for, but into what we do best, mentally, as natural organisms. Our mathematical and symbolic ability is a consequence of our faculty of language. What could be more natural than putting language at the center?
So grogix: a grammar-operated general information computing system. The grammar is the heart of the system. You can have other systems. But if you want a coherent system, it must have one grammar, explicitly, facilitated and protected, at its heart.
Monday, March 8, 2010
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment