Script/Code übersetzen zur laufzeit (ähnlich .NET CodeDOM)



  • Hallo Leute,

    gibt es die möglichkeit in C++ "Code" welcher ich zur laufzeit als text vorliegen hben zu übersetzen und auszuführen, generell soll das ganz schlicht sein:

    (In dem beispiel soll eben der Code der Funktion zur laufzeit übersetzt werden , componenten wie Foo und Bar sind im programm bekannt!)

    void MyCodeExecuter(Components component, String data)
    {
       Foo *pFoo = components.getFoo();
    
       if(pFoo->validate(data))
    {
       Bar *pBar = components.getBar();
    
    pBar->DoAnything(data);
    }
    
    }
    

    später möchte ich dann den code zur laufzeit ändern nur neu compilieren!
    In C# geht sowas mit CodeDOM

    Glaube in C++ geht das nur mit SCript interpretert etc. oder? was nich tragisch wäre, aber ich will halt componetne wie Foo und Bar nutzen können!

    Grüße und Danke



  • Ich arbeite aktuell an einer in C++ geschriebenen VM, die in der Lage sein wird LLVM IR Code auszuführen. Dabei ist viel Aufmerksamkeit dem Nutzen nativem Code geschenkt. Man kann native Typen verwenden, native Funktionen aufrufen, native Exceptions fangen, etc.
    Aber ich denke du kannst nicht warten, bis ich fertig bin. ^^



  • Du Freak!! :p

    Hmm oder gibts es ne script interpreter?? den ich mit schlüssenwörter füttern kann, damit ich eigene komponenten ansprechen kann? irgendwioe sowas?;)



  • Wenn du unter der Win-API arbeitest, kannst du vielleicht mit LoadLibrary was deichseln. Weil alles andere eine Statik besitzt, die du nicht haben willst.



  • Kommt CINT in Frage?



  • hmm ja CINT höt sich gut an:)
    Danke .. aber muss überlegen ob sich der aufwand lohnt.. evtl. mach ich nen simplen interpreter selbst bisschen mit regex und so:)



  • Nathan schrieb:

    Ich arbeite aktuell an einer in C++ geschriebenen VM, die in der Lage sein wird LLVM IR Code auszuführen.

    Was ist jetzt der Unterschied zur normalen JIT Umsetzung von LLVM?


Anmelden zum Antworten