To provide for multi-language compilation, a protocol is established for
compilers. Each of at least two compilers implements the protocol. A
framework is developed which discovers compilers which have implemented
the protocol. The framework allows multi-language compilation using and
coordinating the compliant compilers. The framework is extensible. When a
new protocol-compliant compiler is discovered, the language compiled by
the new compiler can be compiled using the framework and the capabilities
of the protocol-compliant compilers. Similarly, a multi-language
extensible design tool may be created using protocol-compliant design
tools.