Es gibt ja aktuell die Diskussion über die FPGA-CPU. Dort könnte man einerseits eine bestehende Architektur nutzen, andererseits aber auch etwas neues entwickeln. Einen eigenen Assembler zu bauen, dürfte machbar sein. Aber wie baut man sich am besten einen C-Compiler? Soweit ich weiss, gibt es ein paar freie Projekte, die an eigene Sprachen angepasst werden könnten. Welche eignen sich besonders? Wie sieht es aufwandmässig aus? Selber schreiben wäre natürlich das andere. Ich habe allerdings gewisse Zweifel, ob man in vernünftiger Zeit einen vollständigen und fehlerfreien Compiler hinkriegt...
AooA schrieb: > Soweit ich weiss, gibt es ein paar > freie Projekte, die an eigene Sprachen angepasst werden könnten. Willst du nun einen bestehenden C Compiler eine neue Programmiersprache E anpassen? Oder willst du ihn an eine neue Zielarchitektur anpassen? Ist nicht ganz die gleiche Sache. > Selber schreiben wäre natürlich das andere. Ich habe allerdings gewisse > Zweifel, ob man in vernünftiger Zeit einen vollständigen und > fehlerfreien Compiler hinkriegt... Letzteres sicherlich nicht, denn das hat für die üblichen Programmiersprachen wohl noch nie jemand geschafft. Andererseits gibt es Compiler, die etwas übersichtlicher sind als der recht grosse GNU Compiler. Ich habe meine Erfahrungen mit dem Portable C Compiler gemacht. Der ist nicht mehr ganz neu (70er) und war längere Zeit in der Versenkung verschwunden, ist aber mittlerweile renoviert. Der ist recht einfach aufgebaut und leicht an registerorientierte Maschinen anpassbar (Stack- oder Akkumaschinen mag er nicht so).
Schau dir mal das LLVM-Compiler-Framework an. Könnte für dich interessant sein.
A. K. schrieb: > Willst du nun einen bestehenden C Compiler eine neue Programmiersprache > E anpassen? Oder willst du ihn an eine neue Zielarchitektur anpassen? > Ist nicht ganz die gleiche Sache. Da hab ich mich verschrieben. Natürlich meine ich Architektur ;-)
Der Portable C Compiler sieht ziemlich interessant aus. Allerdings habe ich keine Ahnung, wie aufwendig die Portierung tatsächlich sein wird. Kann jemand etwas dazu sagen?
Es gibt zum Thema Compilerbau dieses Standardwerk (das "Drachenbuch"): http://www.amazon.de/Compilers-Principles-Techniques-Access-Gradiance/dp/0321547985/ref=sr_1_6?ie=UTF8&qid=1291896210&sr=8-6 Wie brauchbar ist das für einen CPU-designer? MfG,
Drachenbuch habe ich gelesen, das Buch geneignet zu Grundlage, in der Praxis kan man nicht anfangen, wenn due ein neue Sprache, Parser schreiben willst ANTLR (www.antlr.org) hilft viel.
AooA schrieb: > Der Portable C Compiler sieht ziemlich interessant aus. Allerdings habe > ich keine Ahnung, wie aufwendig die Portierung tatsächlich sein wird. > Kann jemand etwas dazu sagen? Schwer zu sagen ohne deinen Kopf aufzuschrauben und reinzusehen. ;-) Ich das hatte jedenfalls gemacht, wobei ich aufgrund völlig unpassender Zielarchitektur (Transputer, d.h. Stack-Architektur) den kompletten Codegenerator ersetzte. Bei passender Zielarchitektur ist das eher eine Frage, wie lange man braucht um Prinzip der Maschinenspezifikation und dessen Details zu verstehen, als eine des Codings. Zumal dieser Compiler ziemlich klein ist.
Fpga Kuechle schrieb: > Wie brauchbar ist das für einen CPU-designer? Ungefähr so sinnvoll wie der Tietze-Schenk für einen Compilerbauer. ;-) Der Drachentöter ist das Standardwerk für Compilerbau. Vor allem, wenn man den Compiler komplett selbst bauen will. So konnte man beim C++-Compiler von Walter Bright (Zortech, Symantec, Digital Mars) die Optimierungsstrategien ziemlich eins zu eins den entsprechenden Kapiteln vom Drachentöter zuordnen. Wenn du den PCC um eine Zielarchitektur bereichern willst, dann ist er hingegen nicht zwingend erforderlich.
PS: Zum PCC gibt es zudem eine Rarität: Einen Text, der dessen Arbeitsweise beschreibt. Der ist zwar so alt wie der Compiler selbst und damit nicht mehr ganz auf der Höhe der aktuellen Version, aber nach dem zu urteilen, was ich vom Code der aktuellen Version gesehen habe, ist das kein grosses Problem.
dito schrieb: > Schau dir mal das LLVM-Compiler-Framework an. Könnte für dich > interessant sein. Dem kann ich mich nur anschließen. LLVM ist recht einfach anzupassen und man bekommt sehr viel Codeoptimierung gratis dazu. :3
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.