bottom up : Java Glossary

*0-9ABCDEFGHIJKLMNOPQRSTUVWXYZ (all)

bottom up
A design philosophy exemplified by FORTH. If you wanted to control a robot, you would write some words, (aka methods) to perform the various micro-movements the robot was cabable of. Then you would immediately try them out by typing strings of commands.

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:

The disadvantages are:

This page is posted
on the web at:

http://mindprod.com/jgloss/bottomup.html

Optional Replicator mirror
of mindprod.com
on local hard disk J:

J:\mindprod\jgloss\bottomup.html
Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

IP:[65.110.21.43]
Your face IP:[3.142.42.247]
You are visitor number