Je recherche une machine virtuelle open source qui est: p>
4 Réponses :
Lua est célèbre pour être ridiculement facile à incorporer en C / C ++. Sa machine virtuelle est une source ouverte et une plate-forme inter-plate-forme, très petite (ensemble d'instructions de taille EXE et de bytecode) et en même temps assez rapidement. Mais son bytecode ne convient pas à votre langue. Le format ByTecode est documenté ici. P>
La machine virtuelle de Lua n'est pas une machine virtuelle à usage général mais elle peut fonctionner pour votre langue personnalisée si votre langue et votre Lua ne sont pas trop éloignées sémantiquement. Une brève description de la machine virtuelle de Lua est à Lua.org/source/5.1/ lopcodes.h.html # op_move . Si vous allez de cette façon, je vous suggère d'essayer d'essayer de compiler votre langue de la langue à Lua Code source.
Nekovm est une langue de programmation et une machine virtuelle légère conçue comme une cible générique pour les écrivains du compilateur. La documentation montre qu'il semblerait vraiment facile d'intégrer la machine virtuelle dans une application C ou C ++, mais il semble que la VM L'API n'est pas encore documenté. P>
Pourquoi filtrer LLVM? C'est Un ensemble de bibliothèques C P>
Je suppose que ce n'est pas aussi facile à intégrer que Lua, mais LLVM est si génial que cela viendrait probablement surmonter les tracas de l'intégrer. Voir cette question à la question , aidez-t-elle? P>
Autre réponse possible: pourquoi ne pas sortir assembleur à la place? Il est rapide et léger, et vous n'avez pas besoin de VM du tout. Puisque vous cible X86 seulement, cela pourrait avoir du sens, en fonction de ce que vous essayez de faire. P>
Hmm, personne jamais i> demande une solution lente, lourde et source fermée. Pourquoi n'utilisez-vous pas simplement le Java JVM?