Open Source Virtual Machine
-
30-09-2019 - |
Frage
Ich bin für eine Open-Source-virtuelle Maschine suche, ist:
- schnell und so leicht wie möglich
- unterstützt eine minimale Menge von Bytecode (wie LLVM IR)
- leicht implantierbare aus einer C ++ Anwendung
- Cross-Plattform (Linux, Windows und OS X)
- x86-Unterstützung
Lösung
Warum ausfiltern LLVM? Es ist einer Reihe von C-Bibliotheken
Ich denke, es ist nicht so einfach einzubetten als Lua, aber LLVM ist so groß, dass es wahrscheinlich die Mühe zu integrieren es überwinden würde. Siehe href="https://stackoverflow.com/questions/3527467/how-to-embed-llvm">, tut es Hilfe?
Andere Tipps
Lua ist berühmt für lächerlich einfach ist in C / C ++ einbetten. Seine VM ist Open Source und plattformübergreifende, sehr klein (beide exe Größe und Bytecode-Befehlssatz) und zugleich recht schnell. Aber seine Bytecode kann für Ihre Sprache nicht geeignet. Das Bytecode-Format ist hier dokumentiert.
NekoVM ist eine Programmiersprache und eine leichte virtuelle Maschine ausgeführt als generisches Ziel für Compiler Schriftsteller. Die Dokumentation es scheint einfach einzubetten der VM in einem C oder C ++ Anwendung macht, aber es scheint die VM API ist noch nicht dokumentiert.
Weitere mögliche Antwort: Warum stattdessen nicht ausgegeben Assembler? es ist schnell und leicht, und Sie nicht über eine VM überhaupt benötigen. Da Sie nur Ziel x86, könnte es sinnvoll sein, je nachdem, was Sie zu tun versuchen.