Translator für eigene Programmiersprache - Welche Zwischensprache?



  • Hallo miteinander,

    nach vielen verschiedenen Versuchen und Tests bin ich nun dabei, endlich einen Compiler/Translator für meine Programmiersprache zu schreiben. Der Einfachheit halber möchte ich einfach eine Zwischensprache nutzen, die C(++) wäre. Da meine Ausgangssprache P eine ähnliche Syntax und die gleichen Programmierparadigmen aufweist wie z.B. C# ist es offensichtlich nötig OOP umzusetzen. Dafür habe ich sogar für C Klassen und Exceptions implementiert, die sehr einfach und effektiv funktionieren 😛 Leider fehlen einige weitere Bestandteile, die man noch nachimplementieren kann.

    Hier meine Frage: Sollte ich C oder C++ als Zwischensprache hernehmen und auf welche Probleme könnte ich dabei stoßen beim Übersetzen (da C++ zumal sehr eigen sein kann :P)? Gehe ich irgendwelche Overkills ein, wenn ich mich falsch entscheide?

    Ich freue mich Kommentare von euch zu erfahren.

    Gruß,
    Christian



  • Schau dir mal llvm.org assembly als mögliche "Zwischensprache" an.



  • mir fallen noch c-- (als Zwischensprache) und treelang (als Suchbeginn um GCC als Backend zu nehmen) ein.



  • Also noch als Hinweis: Ich werde boost::spirit benutzen um meinen Code in die noch auszuwählende Intermediate Language zu überführen 😃



  • Christian Ivicevic schrieb:

    Also noch als Hinweis: Ich werde boost::spirit benutzen um meinen Code in die noch auszuwählende Intermediate Language zu überführen 😃

    Macht ja nix
    Ändert auch nix
    Spirit ist ein Parser-Framework, kein Code-Generator-Framework.


Anmelden zum Antworten