XMLVM.org Main Page Overview Documentation Stories Download Contribute Contact Check out our tutorials

Overview: Toolchain

The figure below depicts the complete XMLVM toolchain. Each of the boxes represent an artifact while the arrows denote the various transformations between those artifacts. The input to the XMLVM toolchain is either a Java class file or a .NET executable. A Java class file is translated to XMLVMJVM which is an XML-document describing the contents of that class file. Likewise XMLVMCLR is an XML-document describing the contents of a .NET executable. XMLVMCLR can be cross-compiled to XMLVMJVM with the help of a data flow analysis (DFA) which is shown as XMLVMCLR-DFA in the figure below. XMLVMJVM serves as a canonical representation as it acts as a boundary between the front- and back-end of the cross-compiler. Once XMLVMJVM has been generated, it can be mapped to various high-level programming languages. It is also possible to map XMLVMJVM to a Java class file again. This allows various permutations of the XMLVM toolchain. Each of those different arrangements of the XMLVM toolchain is described in more detail on a separate page. First, we describe how a .NET application can be translated to XMLVMJVM. Next, we discuss how XMLVMJVM can be cross-compiled to JavaScript to generate AJAX applications. Note that with the front-end it is possible to generate AJAX applications from Java or any of the .NET applications. The final use case we present here is a backend for Objective-C which effectively allows Java applications to be cross-compiled to native iPhone applications.
XMLVM Toolchain Summary
SourceForge.net Logo