In your playing, you would notice yourself keying some phrases over and over. So you would define abbreviations. These abbreviations give you higher level toys to play with. You then find yourself creating abbeviations of abbreviations. At each stage you exhaustively test your new tools so that you rely on them 100% to build the next level. The tools at each level give you new concrete ideas with which to design the next higher level. This makes the design process relatively painless. It is merely a matter of combining some very clearly defined lego-pieces.
Gradually, without really thinking, you build a high level robot-control program.
In the Java world, bottom up thinking strongly influenced the design of the Java. Gosling and Joy first designed JVM (Java Virtual Machine), thinking strongly about how it could be efficiently implemented. Then they invented the Java language to generate JVM code. The first cut at Java was essentially a JVM assembler. It had no features that did not map very directly onto byte code. Later, higher level features like autoboxing were added. You can see this sort of thinking most strongly in get/setter attributes, enums and generics. The odd Java language rules derive from a specific implemenation worked out in detail before the language syntax was nailed down.
The main advantages of such as approach are:
This page is posted
Optional Replicator mirror
Your face IP:[188.8.131.52]
You are visitor number|