ich bin grad dabei mir eine eigene ScriptEngine zu schreiben(Diese soll zu ByteCode compiliert werden und dann in einer VM ausgeführt werden). Konkret bin ich grade dabei zu definieren, wie mein Bytecode aussehen soll, wobei ich natürlich auch meine VM, die den Code dann ausführen soll, berücksichtigen sollte(Besser wäre es zumindest ). Bin dann über die Libary ASMJIT (Beispiel http://code.google.com/p/asmjit/wiki/Examples) gestoßen, mit der man, so wies aussieht, relativ einfach zu Laufzeit Code generieren kann. (Was natürlich in punkto Performance bei der Ausführung einiges bringen würde ) Ich wollte mal fragen, ob ihr mit dieser Libary Erfahrung habt oder ob ihr mir eine andere empfehlen könnt, die soetwas ebenfalls kann.
Ich arbeite mit C++, hab aber auch etwas "Erfahrung" mit asm x86 als auch asm x86-64.
Ps. Ich mache das ganze nur aus Spaß an der Freude und möchte deshalb keine fertige Script Engine nehmen.
Registriert: Mo Nov 08, 2010 18:41 Beiträge: 769
Programmiersprache: Gestern
ne sry, hab ich leider keine Erfahrung mit (ist auch in 99% der Fälle nicht nötig). Aber du könntest dir ja mal den Code von Androids Dalvik VM besorgen die müsste das doch können.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Von den Beispielen her sieht das ziemlich fancy aus. Das Problem wird aber imo sein, den Bytecode deiner VM in nativen ASM-Code umzuwandeln. Den Zwischenschritt wirst du trotzdem haben müssen (wollen). Allein um erstmal nur mit der VM arbeiten zu können, und dir keine gedanken um die nativen Probleme (wie z.B. alignment) zu machen. Einfach um schneller einen Fortschritt zu haben.
grüße
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Also ich würde den LLVM verwenden. Der besitzt integrierte umfangreiche Optimierungen, ist Platformunabhänig, kann also Code für viele Prozessoren genrieren. Er besitzt auch einen JITer, einen Debugger und vieles Mehr. Außerdem steht er unter BSD und man darf ihn deshalb bedenkenlos statisch linken. In Sachen Codegenerierung dürfte der so ziemlich das Beste/Umfangreichste sein, das es gibt. Es gibt auch ein Tutorial: llvm.org/docs/tutorial
Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.