Hinweise zur Abgabe der Compilerbau-Hausübung 2

Die nachfolgend genannten Regeln sind verbindlich. Werden sie nicht exakt befolgt, gilt die Hausübung als nicht abgegeben.

Die Abgabe erfolgt als Tar-Archivdatei (siehe unten)

  1. per Email an mich ( ) und zusätzlich
  2. durch Hochladen auf den THM-Rechner saturn.mni.thm.de in das Verzeichnis
    /home/hg52/compilerbau-hu2.

Tar-Archiv: Name, Inhalt und Zugriffsrechte

Die Lösung ist ein gzip-komprimiertes tar-Archiv, dessen Name und dessen Inhalt genau den folgenden Vorschriften entsprechen muss:

  1. Die Archivdatei heißt USERID.tar.gz, wobei USERID der Login-Benutzername eines Teammitglieds auf den Rechnern der THM ist. Im Beispiel verwenden wir user123.

  2. Das Archiv besteht auf der obersten Ebene aus einem Verzeichnis, dessen Name diese USERID ist.

  3. Alle Dateien und ggf. Unterverzeichnisse ihrer Lösung befinden sich in diesem Verzeichnis. Die automatische Auswertung erfolgt in diesen Verzeichnis:

    • Die Erzeugung des Compilers aus den Quelltexten durch das Kommando "make"

    • Die Aufrufe des erzeugten Compilers mit den Testprogrammen durch das Kommando "./spl" mit entsprechenden Argumenten.

  4. Ihr Lösungsverzeichnis muss ein korrektes Makefile enthalten, so dass ihr Compiler sich mit dem Befehl "make" auf dem Rechner 'saturn.mni.thm.de' ohne Fehler erzeugen und mit "spl" aufrufen lässt. Bei Java-Lösungen muss dazu das ausführbare Shellscript "spl" vorhanden sein, das den Compiler korrekt startet.

  5. Sie müssen die in der letzten Aufgabenstellung mitgelieferte Datei "main.c" bzw. "main/Main.java" verwenden, damit die Aufruf-Optionen funktionieren.

  6. Das Verzeichnis enthält eine Textdatei mit dem Namen "team.txt". Diese Datei muss die UTF-8 Textkodierung verwenden. Sie enthält eine Zeile für jedes Teammitglied. Jede Zeile enthält durch Kommata getrennt: Nachname, Vorname, Matrikel-Nummer. Pro Team sind maximal zwei Mitglieder möglich.

  7. Bevor Sie aus dem Verzeichnis mit tar die Archivdatei erzeugen, führen Sie in diesem Verzeichnis

       make dist-clean
    aus, damit alle automatisch erzeugbaren Dateien gelöscht werden und das Archiv nicht unnötig groß wird.
  8. Wie die Archivdatei mit System-Kommandos erzeugt wird, zeigt folgendes Beispiel:

       cd compilerbau/hu2/user123
       make dist-clean
       cd ..
       tar cvzf user123.tar.gz user23
       chmod 600 user123.tar.gz
          
    Ersetzen Sie user123 durch Ihre Benutzerkennung und compilerbau/hu2 durch den Dateipfad des Verzeichnisses, in dem ihre Lösung steht. Der tar-Befehl im Beispiel erzeugt eine neue mit gzip komprimierte Archivdatei namens user123.tar.gz, wobei der Inhalt das komplette Verzeichnis user123 ist.
       tar cvzf user123.tar.gz user123
    
    ist die Kurzform von
       tar --create --verbose --gzip --file=user123.tar.gz user23
    
  9. Die Zugriffsrechte der Archivdatei auf dem THM-Rechner müssen so gesetzt werden, dass nur Sie selbst die Datei lesen können:

       chmod 600 user123.tar.gz

Hochladen und Testen

Das Hochladen auf den MNI-Server saturn für das obige Beispiel mit scp:
   scp user123.tar.gz user123@saturn.mni.thm.de:/home/hg52/compilerbau-hu2
Das Testen, ob make auf dem THM-Server ihren Compiler korrekt baut:
   # Archiv in ihr eigenes Verzeichnis auf Saturn kopieren:
   scp user123.tar.gz user123@saturn.mni.thm.de:

   # Login auf saturn
   ssh user123@saturn.mni.thm.de

   # Tar-Archiv auspacken in das Verzeichnis user123
   tar xvfz user123.tar.gz

   # Compiler bauen
   cd user123
   make dist-clean
   make

   # Test ob ihr Compiler funktioniert mit einem SPL-Beispiel
   ./spl test01.spl test01.asm 

Format der Mail

Die Mail hat folgendes Format:

Sonstige Hinweise

  1. Ein Tipp: Bevor Sie die Hausübung endgültig abgeben, schicken Sie sie sich selbst zu, entpacken sie (dabei muss das Unterverzeichnis entstehen!) und lassen sie mit "make" auf "saturn" zusammenbauen. Erst wenn das zur Zufriedenheit funktioniert, geben Sie die Hausübung ab.

  2. Dateien können Sie mit dem Befehl "scp" über das Internet auf THM-Rechner kopieren. Mit dem Befehl "ssh" können Sie über das Internet eine interaktive Sitzung auf einem THM-Rechner erzeugen und die Funktionsfähigkeit ihrer Lösung vor der Abgabe testen.

  3. Typische Fehler, die zum Scheitern führen:

    • Die Datei "team.txt" fehlt. (Stattdessen gibt es eine Datei "Team.txt" oder "TEAM.TXT" oder ...)

    • Die Archivdatei ist kein TAR-Archiv, sondern ein ZIP-Archiv. (Die Umbenennung von "archiv.zip" in "archiv.tar.gz" ändert daran auch nichts!)

    • Das Archiv ist zu groß, weil es außer den zwingend benötigten noch weitere Dateien enthält. ("make dist-clean" vergessen, oder die letzten Partybilder versehentlich mit eingepackt?)

    • Die Verzeichnisstruktur oder die Dateinamen entsprechen nicht den Regeln, so dass das Auswertungsprogramm ihre Lösung oder Teile davon nicht finden kann.

    • Der Aufruf "make" liefert auf "saturn" einen Fehler, statt den SPL-Compiler zu bauen.

Viel Erfolg!