A software development architecture is provided for constructing a wide
range of software development tools. A software development tool can be
created by integrating a specification specifying functionality specific
to a set of software development scenarios into a software development
scenario-independent framework. The integrated specification can then be
compiled to create the software development tool. Alternatively,
integration can be achieved at runtime without access to source code. The
architecture can use any combination of the following: a software
scenario independent intermediate representation format, one or more
exception handling models capable of supporting a plurality of
programming language specific exception handling models, a type system
capable of representing the type representations of a plurality of source
languages, and a code generator capable of generating code targeted for a
plurality of execution architectures.