Second Order Metaprogramming

Second Order Metaprogramming, when its capabilities are applied to the system itself is called Self-Metaprogramming. Present day computer system designs are derived from thinking that goes back to Charles Babbage, if not earlier.

It is in fact instructive and illuminating to read the correspondence of Charles Babbage and of Ada Augusta Lovelace. The daughter of Lord Byron (the poet guy) she was an accomplished mathematician, no small feat in her day because it was socially the role of woman to make babies and serve their husband, not to have a brain and actually think with it. Our society now is faster and has many motors and lights but the people are still just as arrogant and ignorant and closed-minded.

In Babbage’s day the latest technology was steam powered things, like trains, and machines with gears, the more gears the more impressive. (Kind of like the number of transistors in current devices.)

Babbage was able to visualize that gears assembled in particular collections could perform certain functions such as logic and arithmetic which in those days was supposed the purview only of educated technical humans such as accounting clerks and philosophers.

At the time rather few people of the public would find it credible that such a cognitive feat as doing sums could be performed by a mere machine. Babbage designed and drew diagrams of his machine visualizations. He made working subsystem models of parts of his Analytical Engine but alas the metal craft of the day could not produce the gears and such of his designs with enough accuracy to build a complete system. His designs/drawings were later used by an American University to build a full-scale working replica. One can be see at the British Science Museum. (on the web). Ada Augusta’s correspondence shows clearly that she comprehended what the machine needed to do in order to perform arithmetic calculations. She was arguably the first computer programmer / systems analyst.

I mention these two because there is still debate among many people whether or not a mere machine can do anything beyond rote mathematics, and employ a small set of limited logical operations. Alan Turing described what has now become known as The Turing Machine, a said to be universal machine. No one has yet figured out a design of a Turing machine that is practical to use as a computer. They are much too slow to be practical.

Today’s computers seem very fast to many people. But that is only when they are doing things which are easy for them to do. When today’s computers are pressed to do weather forecasting or nuclear simulations we quickly see that computers are fast only for a limited range of things.

While there are artificial neural networks which are simulated in computers these networks are rather tiny compared with those of most any living biological system, including ants, house flies, bees let alone Alex the Gray Parrot. [continued next posting]

Leave a Reply