Second Order Metaprogramming
- Copyright 2009 David Dodds
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 metalcraft 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 Augustas 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
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]