An infrastructure is provided for creating applications for mobile
information devices, using a tag-based markup language. Developers can
use the markup language to define applications and content based on
easily manipulated textual tags, rather than having to write specific
source code. A compiler, processes the tags in several phases. In one
phase, a hierarchical object model of the application is populated with
objects. Then, in another phase, a generator traverses the object model
hierarchy in a top-down manner, producing source code files corresponding
to objects in the object model. The code files may include various
elements, for example screens, forms, and servlets. For each element
required to be generated, an appropriately configured generator class is
invoked. The output code can be Java source code.