J'ai tenté de faire le tour des projets intéressants concernant la cross-compilation et de manière plus générale les ponts entre les différents environnements technologiques (plutôt orienté RIA).
Je tenterai peut être dans le futur de faire une représentation sous forme de matrice.
Si vous pensez qu'un projet intéressant manque à la liste ou souhaitez apporter des précisions/corrections, n'hésitez pas à laisser un commentaire !
NestedVM
http://nestedvm.ibex.org/
Type : ahead-of-time (AOT) compiler
Entrée : Binaire MIPS (gcc)
Sortie : Java bytecode
Permet de compiler n'importe quel language dit "unsafe" supporté par GCC (comme C, C++, Fortran, ...) en bytecode java par l'intermédiaire d'une compilation GCC pour une architecture MIPS.
L'espace mémoire est converti en un grand tableau statique. Utilisé par exemple dans ce driver Sqlite : http://www.zentus.com/sqlitejdbc/
XMLVM
http://xmlvm.org
Type : ahead-of-time (AOT) compiler
Entrée : .NET CIL, Java Bytecode, Ruby YARV
Sortie : .NET CIL, Java Bytecode, ObjectiveC, C++, Javascript, Python
Passe par une représentation intermédiaire en XML.
APIs de l'environnement d'origine traduites :
JVM vers ObjectiveC : sous ensemble de Cocoa, api iphone
JVM vers Javascript : sous ensemble d'AWT
CLR vers Javascript : sous ensemble de Winforms
CLR vers Java : par de generics, sous ensemble de winforms
GCJ
http://gcc.gnu.org/java/
Type : ahead-of-time (AOT) compiler
Entrée : Source Java ou Bytecode
Sortie : Bytecode ou natif
GWT
http://code.google.com/webtoolkit/
Type : ahead-of-time (AOT) compiler
Entrée : Source Java
Sortie : Javascript
Pas de réflexion. Optimisation forte à la compilation. Compilation relativement longue.
APIs de l'environnement d'origine traduites : Sous ensemble de J2SE
Java2Script Pacemaker
http://java2script.org/
Type : ahead-of-time (AOT) compiler
En entrée : Source Java
En sortie : Javascript
Réflexion, annotations.
APIs de l'environnement d'origine traduites : Sous ensemble de J2SE, SWT
SwingWeb
http://swingweb.sourceforge.net/swingweb/
Type : translation à la volée coté serveur
Implémentation d'un Toolkit AWT en HTML et un toolkit avec rendu coté serveur (voir démos). Utilise la session coté serveur pour sauvegarder l'état de l'application.
WebOnSwing
http://webonswing.sourceforge.net
Similaire au précédent.
JSC
http://zproxy.wordpress.com/jsc/
Type : cross-compilation ?
Entrée : MSIL (C#, VB.net)
Sortie : javascript, actionscript, php, java
Pyjamas
http://pyjs.org/
Type : cross compilation
Entrée : Python
Sortie : Javascript
Se veut être le portage de GWT en python.
Microsoft Volta
http://lgmorand.developpez.com/dotnet/volta/part1/
Type : cross compilation ?
Entrée : .NET CLR
Sortie : Javascript
Gordon
http://ajaxian.com/archives/gordon-flash-runtime-implemented-in-javascript
Type : machine virtuelle coté client (conversion au runtime)
Lecture en javascript de fichier SWF (Adobe Flash), affichage à l'aide de SVG.
iSpectrum
http://www.flexycore.com
Entrée : Java
Sortie : Natif iPhone.
Autres
OpenLaszlo http://www.openlaszlo.org/ Conversion coté serveur de LZX/XML + javascript -> Javascript/dhtml ou flash
Propriétaire vers Javascript : http://www.milescript.org/
Propriétaire vers Javascript : http://www.flapjax-lang.org
jeudi 14 janvier 2010
Inscription à :
Articles (Atom)