Lieber_Gott Geschrieben 28. September 2010 Teilen Geschrieben 28. September 2010 Hallo Zusammen, ich bin derzeit auf der Suchen nach Lösungen. SCL (ST - Structured Text - Pascal ähnlich) in Ansi-C zu übersetzen, und später auch wieder zurück. Ich gehe davon aus das der Quellcode richtig ist und nicht mehr optimiert werden muss und auch keine Semantische Analyse erforderlich ist. Im Prinzip: ---------- Frontend: Quellcode+Grammatikdefinition->Lexer->Parser-> Syntax-Tree Backend: Syntaxtree->Back-End->Zielcode Zur estellung des Frontends hab ich verschiedene Möglichkeiten 1) Gold Parsing System Gold Bulider zur Erstellung des Grammatik-Files in EBNF und BNF und zum übersetzen des Grammatik-Files in ein .cgt-File. Das ganze dann mit dem Quellcode in einem Engine Programm zu einem Parse-Tree übersetzen. 2)GCC für GCC unter Cygwin gibt es wohl einen Befehl wie man sich einen Parse-Tree von einem Ansi-C-Programm erzeugen kann. (gcc -fdump-tree-original-raw ./test.c) Ich habe es mal ausprobiert. Es kommt bei mir ein File (test.c.003t.orginal) raus mit dem ich aber bisher sehr wenig anfangen kann. Mir ist nicht erkenntlich wie ich den Orginalquellcode in dem File wiederekenne. 3)lex&yacc Das schein wohl die geläufigste Methode zu sein das Frontend zu realisieren. Ich selbst hab damit noch kaum Erfahrung. Ich habe die Programme Flex und Yacc mal unter Cygwin installiert, bin aber noch zu keinem Ergebnis gekommen. Frontend und Backend 4)Die Programmiersprache TXL (TXL Home Page) Das Programm besteht aus 4 .exe Dateien die man mit dem Comandwindow in Windows bedienen kann. Man definiert wieder eine Grammatik des Quellcodes und zusätzlich Übersetzungsregeln und Muster. Wie mir scheint kann man damit einen kompletten Compiler realisieren. Falls mir jemand zu einer der Fragen weiterhelfen kann oder damit Erfahrung hat, bin ich für jeden Hinweis dankbar. Darüberhinaus hab ich noch ein paar weitere Fragen. (?) Gibt es eine allgemeine Darstellungsform für Parse-Bäume. (?) Gibt es einen Parser der Parse-Bäume in XML ausgiebt ? (?) Wie kann ich das Backend realisieren ? (?) Ich habe davon gehört das man den Parse-Tree, wenn er in XML vorhanden ist, mit XSLT zu Zielcode übersetzen kann. Hat jemand damit Erfahrung ? Herzlichen Dank Thomas Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.