2009-06-12 11 views
1

Jungs, was sind die besten Online-Ressourcen für das Lernen Compiler Design?Compiler Design-Ressourcen

Würde Perl eine brauchbare Sprache sein, um einen Compiler zu schreiben?

Antwort

4

Anstatt online, wie in der obigen Antwort erwähnt, greifen Sie sich eine Kopie des Drachen Buch Compilers: Principles, Techniques, and Tools. Eine Kopie der ersten Ausgabe sollte Sie nicht zu sehr zurückwerfen.

Nicht sicher über Perl als eine Sprache der Wahl für die Implementierung eines Compilers obwohl.

+4

Eine gegenteilige Ansicht: das Dragon Book ist ein sehr hartes Lesen und behandelt nicht die einfachste Methode der Compiler-Konstruktion, rekursive Abstammung, in jedem Detail. Vermeiden. –

+0

@Neil, ich würde zustimmen, dass es nicht leicht zu lesen ist, aber dann ist es kein Buch für das Lesen von Cover zu Cover. Es deckt jedoch viele Themen ab, die für das Compilerdesign von Bedeutung sind. Es muss einen Grund geben, warum dieses Buch die Compiler-Bibel für die Anzahl der Jahre war, die es hat. (-: –

+3

Leute empfehlen es aus Gründen, die ich ehrlich nicht verstehen kann. Ich vermute, die meisten haben es nicht gelesen. –

2

Einige Dinge sind nicht am besten online gelernt, und etwas von der Komplexität des Compiler-Designs ist einer von ihnen. Für eine Liste der Bücher zu diesem Thema, werfen Sie einen Blick auf this question. Wie wähle ich es mehr oder weniger zufällig von vielen ähnlichen Fragen - für

site:stackoverflow.com compiler design books 

Wie für Perl als geeignete Sprache eine Liste von allen, Google zu bekommen - ja, Sie einen Compiler in Perl schreiben können, aber ich persönlich würde es nicht gerne versuchen. Wenn ich du wäre, würde ich etwas sauberer sehen, wie Python.

1

Jack Crenshaw schrieb eine großartige Serie über Compiler-Konstruktion - finden Sie unter http://compilers.iecc.com/crenshaw/ (Beispiele sind in Pascal, aber immer noch sehr nützlich).

Es gibt auch eine c-Version irgendwo herum schweben, aber ich kann den Link zu ihm atm nicht finden (jemand andere portierte den gesamten Code in den Artikeln in ANSI-C).

0

Ich habe ursprünglich Perl gelernt, weil ich dachte, es könnte ein yacc drin haben.

Es tut es nicht.

Während ich bin sicher, dass es Module gibt, die diese Art von Verhalten hinzufügen, und Perl 6 sieht aus, als wäre es in dieser Hinsicht besser, würden Sie gut tun, stattdessen lex und yacc (oder Bison) zu studieren.

Ich bin immer noch froh, dass ich Perl gelernt habe.

4

Software optimization resources ist ein Muss vor dem Entwurf eines Compilers lesen. Es enthält wichtige Dokumente zur Code-Optimierung.

+2

) Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier einzubeziehen und die Link als Referenz Link-only-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert - [Aus Bewertung] (/ review/low-quality-posts/17231843) –