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, 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 feautures 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:
![]() |
and suggestions to improve this page to Roedy Green : | ||
| Canadian Mind Products | |||
| mindprod.com IP:[65.110.21.43] | |||
| Your face IP:[38.103.63.62] | The information on this page is for non-military use only. | ||
| You are visitor number 11. | Military use includes use by defence contractors. | ||
| You can get a fresh copy of this page from: | or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror) | ||
| http://mindprod.com/jgloss/bottomup.html | J:\mindprod\jgloss\bottomup.html | ||