frontend für LLVM-basierten compiler

Ich versuche zu entwickeln, die ein compiler basiert auf der LLVM-Infrastruktur. Meine Sprache hat eine C-ähnliche syntax, und so möchte ich bereits vorhandene C-Compiler. Jetzt konzentriere ich mich auf das frontend (lexikalische Analyse, parsing), aber ich bin verwirrt, das frontend wäre der beste Ansatz. Clang, llvm-gcc oder traditionelle flex/bison-tools?

Ich bin speziell interessiert, ist die einfachste Lösung, die mir erlauben würde, zu generieren LLVM-IR-code für die späteren Stadien von meinem compiler.

  • Wenn Sie tun, Ihre eigene Analyse und die semantische Analyse, Generierung von LLVM IR wäre leicht genug. Sie könnten wiederverwendet einer bestehenden frontend, wie die Klappern, wenn Sie zu leihen, einen großen Teil der C-syntax. Sonst ist es nicht Wert, die Erzeugung IR ist trivial, sobald Sie haben einen gültigen AST.
  • Danke. Was sollte ich verwenden für die Erzeugung von IR aus dem AST?
  • verwenden Sie nur einfache substitution Regeln - siehe die LLVM-Kaleidoskop-Beispiel.
  • Blick auf dieses tutorial: gnuu.org/2009/09/18/writing-your-own-toy-compiler es zeigt, wie bison+flex zu erstellen, ein AST-und exportieren Sie Sie dann in LLVM I. R.
  • Vielen Dank für Eure Antworten. Meine Sprache leiht sich eine Menge von C, so dachte ich, es ist besser, hack bestehende compiler-frontends (clang). Jetzt bin ich interessiert, einfach meine eigenen Stichworte, um den lexer für einen start, aber ich bekomme ein bisschen Angst durch die Größe des codes in die lex-Bibliothek. Kann mir jemand zeigen Sie mir, welche Dateien sollte ich ändern, damit dies geschieht. Ich bin die Dokumentation Lesen, aber es braucht eine gewisse Zeit, um sich an alle Klassen..
  • stackoverflow.com/questions/4736738/...

InformationsquelleAutor Ali J | 2012-07-15
Schreibe einen Kommentar