Compiler schreiben/anpassen? (FPGA-CPU-Thread)

Gast #1968095
Lesenswert?

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...
#1968293
Lesenswert?

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).
#1969975
Lesenswert?

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.
#1969988
Lesenswert?

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.
#1969992
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren