Compilerbau-Praktikum 2019

Praktikumsthemen

1. Lexikalische Analyse
2. Syntaktische Analyse
3. Konstruktion des abstrakten Syntaxbaums
4. Semantische Analyse
5. Laufzeitorganisation
6. Codegenerierung

Praktikum und Notengebung

Aufgabe: Konstruktion eines SPL-Compilers für die RISC-Plattform ECO32
Organisation: Einzelarbeit oder Zweiergruppen
Zwei akzeptierte Hausübungen sind Voraussetzung für die Zulassung zur Klausur.
Die in der Veranstaltung erzielte Note wird alleine durch das Klausurergebnis bestimmt.
Bei der Klausur sind keine Hilfsmittel zugelassen.

Referenzimplementierung

Auf den MNI-Servern 'saturn.mni.thm.de' oder 'proteus.mni.thm.de' finden Sie die
Referenzimplementierung des Compilers für Linux, die Laufzeitbibliothek,
den Assembler, den Linker und den ECO32-Simulator sowie Hinweise zur Benutzung. Diese Ressourcen sind nicht über einen Webserver verfügbar, sondern können per sftp, scp oder rsync aus dem Verzeichnis /home/hg52/spl abgerufen werden oder nach einem ssh-Login auf einem dieser MNI-Rechner direkt benutzt werden.

Beispiel für ssh-Login mit Benutzer-ID user1234 von der Kommadozeile:

      $ ssh -l user1234 saturn.mni.thm.de
      user1234@saturn.mni.thm.de's password: StrengGeheim
      saturn:~$ cd /home/hg52/spl
      saturn:~/spl$  ls -l
      insgesamt 14
      -rwxr-xr-x+ 1 hg52 4552 3190 27. Mär 16:18 bigtest.spl
      drwxr-xr-x+ 2 hg52 4552    7 27. Mär 16:14 bin
      -rwxr-xr-x+ 1 hg52 4552  206 27. Mär 16:18 compile.sh
      drwxr-xr-x+ 2 hg52 4552    6 27. Mär 16:14 lib
      -rw--wx-wx+ 1 hg52 4552  432 27. Mär 16:29 README
      -rwxr-xr-x+ 1 hg52 4552   50 27. Mär 16:22 run.sh

Kopieren vom entfernten Rechner auf den lokalen Rechner mit rsync:

   Syntax:  rsync -r REMOTEPATH LOCALPATH

Die Option "-r" steht für rekursives Kopieren von ganzen Verzeichnissen. Dabei ist es wichtig, ob am Ende eines Pfads ein "/" steht (nur Inhalt kopieren) oder nicht (Verzeichnis mitsamt Inhalt kopieren)!

Beispiel: Entferntes SPL-Verzeichnis mit Inhalt in das lokale aktuelle Verzeichnis unter dem Namen spl-toolchain kopieren:

   $ rsync -r user1234@saturn.mni.thm.de:/home/hg52/spl spl-toolchain