Najaaaaaaaaaaaaaaaaaaa.....
Kommt immer darauf an, was man an dieser Stelle mit "Compiler" meint. Soo schwierig ist Compilerbau nicht, wenn man einen Compiler erstmal als Applikation versteht, welche "eine Eingabe" in "eine Ausgabe" übersetzt. Rein formal, wenn man das so möchte, spielt man schon selber Compiler, indem man hergeht und Deutsch in Englisch oder Französisch übersetzt.
Wenn man also wirklich für sowas Interesse hat, kann man auch im Compilerbau ganz klein anfangen.
Aber das heißt natürlich nicht, daß nicht jeder einzelne Einwand, der bereits gemacht wurde, irgendwie "falsch" ist - ganz im Gegenteil.
- Für Compilerbau, wenn man das verfolgen will, muß man zwingend theoretisches Verständnis mitbringen. Außerdem, und hier wird es interessant: man muß mit Sprachen genausoviel anfangen können wie mit Mathematik; das sind Dinge, die sich üblicherweise eher ausschließen.
Grammatik ist alles. Wer Grammatik nicht leiden kann, wird mit Programmieren nicht weit kommen und am Compilerbau scheitern.
Wenn ein Studium vorgesehen ist: dort kann man ggf die Fachrichtung Compilerbau wählen. Ja, das ist ein komplettes Fach, was man als solches studieren kann, genauso wie Künstliche Intelligenz oder Mustererkennung oder Softwareentwicklung oder dergleichen.
Anfangen würde ich an der Stelle mit Parsern. Das kann man auch als ganz blutiger Anfänger. Ein Parser ist einfach nur eine Software, welche in der Lage ist, eine eingegebene Zeichenfolge -- das "Programm" bzw dessen "Quellcode" einzulesen und in seine Elemente auseinanderzunehmen. So ziemlich jeder Compiler verwendet einen, denn diese Elemente müssen dann weiterverarbeitet werden und dazu muß man die erstmal haben.
Das geht aber zB auch mit HTML oder PDF. Beides sind Sprachen im weiteren Sinne, die von einem Interpreter (Browser bzw dem Reader) gelesen und verstanden werden müssen. Einem simplen Parser könnte man also ein HTML-Tag füttern (mit Attributen und Werten und einem Taginhalt) und diesen Parser so basteln, daß er hinten nur sagt, was er als was gefunden hat.
Wenn man dann noch nicht die Lust verloren hat, kann man sich einen PDF-Reader basteln. Die Spezifikation ist offen --- gibt's bei ISO für 100 Euro zu lizensieren, Adobe stellt die aber bei sich frei für jeden zur Verfügung (die 100 bezahlt man nur, wenn man das offizielle ISO-Logo braucht; privat tut das niemand).
PDF muß man ebenfalls nicht vollständig implementieren. Rein von der Sache her braucht man nur die Seite, ein paar grundlegende Eigenschaften dazu und Text, den man auf dieser Seite setzt. (Mehr geht natürlich immer,muß aber nicht.) Wenn ich mich recht entsinne müßte irgendwo im Netz eine Kopie von aspdf herumfliegen --- das ist eine Implementierung von PDF in JavaScript. Die ist ebenfalls frei verfügbar, und da das JavaScript ist, kann man da reingucken was der da gemacht hat, ggf mit der Spezifikation daneben im zweiten Fenster offen. Also in etwa so,wie man ggf auch Fremdsprachen lernen könnte (Herr der Ringe links, Lord of the Rings rechts, dann versteht man das schon irgendwann irgendwie).
Wie sich sicherlich erkennen läßt: Compilerbau ist nicht einfach und wie bereits mehrfach angemerkt, Compilersuiten mit allen möglichen Optimierungen gehören zur Königsdisziplin der Informationstechnik. Da geht es dann nämlich nicht mehr hauptsächlich darum,den Quellcode zu lesen, sondern es geht darum, den bescheuerten Programmierer vor sich selber zu beschützen, indem man als Compiler diese albernen Entschuldigungen von sogenanntem Quellcode einliest und dann -- automatisch! --- zu einem ECHTEN Programm übersetzt, was den Namen auch verdient, allen Mühen des Programmierers zum Trotz.
Um sowas dann bauen zu können muß man besser sein als alle anderen.