Kennt jemand Online-Vorlesungen / Vorlesungen, die einen typischen Compiler-Kurs beinhalten? Ich hatte eine Computer-Theorie, aber leider hat meine Schule keinen Kurs in Compiler-Konstruktion angeboten.
Ich weiß, dass da draußen Vorlesungen sind; Ich habe auf Empfehlungen für besonders gute Angebote gehofft.
Gibt es Bücher für Anfänger auf dem Feld? Zumindest etwas außer dem Drachenbuch. Anfänger Niveau ist in Ordnung, ich weiß, dass es viele fortgeschrittene Texte auf dem Markt gibt.Danke!
Bearbeiten : Falls diese SO-Fragen nicht geschlossen werden, überprüfen Sie doppelte SO-Veröffentlichung , die die Frage viel ausführlicher beantwortet.
Ein paar Ressourcen auf der OpenCourseWare-Site von MIT:
6.035 Computersprachen-Engineering
6.827 Multithread-Parallelität: Sprachen und Compiler
Ersteres wahrscheinlich nach dem, was Sie vorhatten. Es enthält auch einige der Videos der Vorträge.
Letzteres ... positiv ein Graduate-Level-Kurs. Außerdem liegt der Schwerpunkt mehr auf Multithreading als auf der traditionellen Kompilierungskette. (Aber andererseits, um Code-Threads effizient zu chunken, muss man die Semantik, die im ursprünglichen Programm ausgedrückt wird, gut verstehen ...)
Sie können diesen Kurs besuchen: Ссылка
Kursinformationen
High-Level-Programmiersprachen wie Python macht die Programmierung zum Kinderspiel, aber wie arbeiten Sie? Da ist eine große Lücke zwischen Python und Maschine Anweisungen für moderne Computer. Erfahren Sie, wie Sie Python-Programme übersetzen den ganzen Weg zu Intel x86-Assembly Sprache.
Die meisten Compilerkurse vermitteln eine Phase des Compilers zu einer Zeit, wie z Analyse, semantische Analyse und Registerzuordnung. Das Problem mit Dieser Ansatz ist schwierig verstehe, wie der ganze Compiler passt zusammen und warum jede Phase ist so konzipiert wie es ist. Stattdessen jeder Woche implementieren wir sukzessive größere Teilmenge der Python-Sprache. Die allererste Teilmenge ist eine winzige Sprache der arithmetischen Aussagen, und Zu der Zeit sind wir fertig mit der Sprache enthält Objekte, Vererbung und erstklassige Funktionen.
Voraussetzungen: Fließend in mindestens einem Programmiersprache (Java, C, C ++, Python usw.). Studenten werden viel tun der Programmierung in Python, aber vorher Kenntnisse von Python sind nicht erforderlich. Der Kurs beginnt mit einem Absturz Kurs auf Python und Python ist einer von die einfachsten zu lernenden Sprachen. Vorher Kenntnis einer Assemblersprache hilft, ist aber nicht erforderlich.
Tags und Links dfa compiler-construction context-free-grammar