Supposing we use JavaML as the HLML.
Breaking the project up:
Compiling Java to JavaML
- Using the Jikes compiler which comes with JavaML.
- Its GPL, which I hate.
- Using BNF for Java
XML for LangML
For each target language, an XML equivalent must be defined.
XSLT for LangML
For each language equivelent, an XSLT transform must be written to convert the XML to the language.
Providing a runtime library
A pure Java runtime library must be written. For the methods that cannot be implemented in pure Java (eg. I/O), there will need to be a runtime stub in each target language. This could be implemented as a factory.
XLang to JavaML
To convert an arbitrary high level language to JavaML, it would need:
- An XML equivalent, "LangML"
- A compiler to such a "LangML"
- A transform to JavaML
- Some sort of runtime, preferably a shim for "XLang's" own runtime, implemented in XLang, and using abstract functions, to be implemented by a factory class in Java, which would use the JavaML runtime discussed above