mikrocontroller.net

Forum: FPGA, VHDL & Co. Compiler schreiben/anpassen? (FPGA-CPU-Thread)


Autor: AooA (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: dito (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal das LLVM-Compiler-Framework an. Könnte für dich 
interessant sein.

Autor: AooA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ;-)

Autor: AooA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Fpga Kuechle (fpgakuechle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt zum Thema Compilerbau dieses Standardwerk (das "Drachenbuch"):
http://www.amazon.de/Compilers-Principles-Techniqu...

Wie brauchbar ist das für einen CPU-designer?

MfG,

Autor: Hisar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: lil' joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.