Während der Vorlesung entsteht ein kompletter Compiler. Da Teile davon Gegenstand von Übungsaufgaben sind, stellen wir den Code des Compilers schrittweise zur Verfügung. Das geschieht mit CVS.
Wir verwalten ein zentrales Repositorium mit dem Code, den wir wöchentlich erweitern. Jeder Teilnehmer kann eine Kopie des Codes "auschecken" und sich dann automatisch alle Neuerungen holen lassen. Das schöne dabei ist, daß CVS dabei die lokalen Änderungen und Erweiterungen nicht blind überschreibt, sondern nach Möglichkeit erhält.
Es gibt damit zwei Möglichkeiten, an den Code zur Vorlesung zu kommen:
cvs -R -d /afs/informatik.uni-tuebingen.de/pu/compilerbau-0304/cvs checkout compilerbauEs entsteht ein Verzeichnis namens compilerbau, in dem sich der Code befindet. Die neusten Änderungen lassen sich dann mit folgendem Befehl (aus just jenem compilerbau-Verzeichnis) aus dem Repositorium holen:
cvs -R update -dEs empfiehlt sich, den update-Befehl mindestens jede Woche unmittelbar vor der Lösung der Übungsaufgaben abzusetzen.
Achtung: Eine Arbeitskopie kann nur auf den oben aufgelisteten Rechnern ausgecheckt werden. Um die Aufgaben zu Hause zu bearbeiten, empfiehlt es sich, auf einem dieser Rechner eine Arbeitskopie auszuchecken und dieses Verzeichnis dann mit entsprechenden Programmen zu synchronisieren (Z. B. scp, rsync oder unison). Generell empfehlen wir allen Teilnehmern die Poolrechner für die Übungen zu benutzen.
Zunächst den Code compilieren mit
makedirekt im Verzeichnis compilerbau.
Dann die Objective-Caml-REPL im compilerbau-Verzeichnis starten, und zwar so, daß es auch in den Unterverzeichnissen nach Dateien sucht, z.B. so:
ocaml -I lex -I mini-caml -I parse
Dann in der REPL:
# #load "regexp.cmo";;usw. für alle zu ladenden Module.
Alternativ können die compilierten Module auch gleich beim Start übergeben werden:
ocaml regexp.cmo lexstate.cmo lex.cmo
dabei ist allerdings auf die richtige Reihenfolge zu achten.