Eberhard Karls Universität Tübingen      

Objektorientierte Programmiersprachen

Wer war Wilhelm Schickard?

Start
Hilfe, Fragen
Material
Übungsblätter
Termine
Software
     

Software zur Vorlesung

In der Vorlesung wird die Software Objective Caml verwendet. Auf den Rechnern des WSI ist Objective Caml bereits installiert.

Objective Caml im Web

Objective Caml zu Hause installieren

Die Distribution könnt ihr für verschiedene Betriebssysteme hier herunterladen

Objective Caml im XEmacs laufen lassen

Objective Caml ist am einfachsten unter XEmacs zu betreiben.

Im Pool genügt es, XEmacs regulär (via xemacs von der Kommandozeile oder vom Start-Menü aus) zu starten. Alle Dateien mit den Endungen .ml oder .mli werden automatisch in einen speziellen O'Caml-Modus versetzt, der auch ein Caml-Menü besitzt. Von dort läßt sich Code automatisch einrücken, und die häufigsten Caml-Ausdrucksformen lassen sich automatisch als Schablone einfügen.

Der Menüpunkt Caml -> Start subshell öffnet ein XEmacs-Fenster, in dem eine Caml-REPL läuft. Der Vorteil gegenüber einer REPL, die etwa in einem xterm läuft ist, daß sich die eingegebenen Zeilen editieren lassen, und daß sich früher eingegebene Zeilen (via M-p und M-n) zurückholen lassen.

Der Caml-Mode stellt eine Reihe von Tastaturkürzeln bereit, welche die Tastenkombination C-h m angezeigt. Besonders hilfreich sind dabei:

  • C-c C-e um die Definition, in dem der Cursor sich gerade befindet zum Interpreter zu schicken.
  • C-c ` um bei einer Fehlermeldung an die entsprechende Stelle zu springen.
  • C-c C-s um den Buffer mit dem Caml-Interpreter anzuzeigen.
  • C-c C-q um die momentane Definition schön einzurücken.

Caml Mode für den XEmacs installieren

  1. Für den Betrieb von O'Caml im XEmacs zu Hause ist es notwendig, die Dateien aus dem emacs-Verzeichnis der O'Caml-Distribution an eine für XEmacs zugängliche Stelle zu kopieren. Dazu gibt es zwei Möglichkeiten.
    1. Verzeichnis xemacs-packages der XEmacs-Installation finden und daneben ein Verzeichnis site-packages zu erzeugen. Die Situation sieht dann so aus:
      .../lib/xemacs/xemacs-packages
      .../lib/xemacs/site-packages

      Dann innerhalb von site-packages ein Unterverzeichnis lisp und darin ein Unterverzeichnis ocaml-mode einrichten, etwa so:

      .../lib/xemacs/site-packages/caml-mode

      In dieses Verzeichnis die Dateien mit der Endung .el aus dem emacs-Verzeichnis der O'Caml-Distribution kopieren. Außerdem noch die Datei auto-autoloads.el ebenfalls in dieses Verzeichnis kopieren.

    2. Wenn das xemacs-packages Verzeichnis nicht auffindbar ist, kann man die .el-Dateien auch im eigenen Home-Verzeichnis ablegen und Emacs mitteilen, wo er sie findet. Im folgenden Beispiel liegt das emacs-Verzeichnis aus der Distribution in ~/tmp/emacs.
  2. Als letztes muss der XEmacs noch wissen, dass er Dateien mit den Endungen .ml und .mli mit dem caml-mode aufmachen soll, dass er dabei den font-lock-mode verwenden soll. Dazu fügt man folgende Zeilen in die Datei ~/.xemacs/init.el (bzw. ~/.emacs für dem normalen Emacs) ein.

    (add-to-list 'load-path
    	     '"~/tmp/emacs") ;; ANPASSEN, WENN NICHT IN site-packages
    (add-to-list 'auto-mode-alist
    	     '("\.ml[iylp]?$" . caml-mode))
    (add-hook 'caml-mode-hook 'font-lock-mode)
    (autoload 'caml-mode "caml")
    (autoload 'camldebug "camldebug" "Run the Caml debugger" t)
    

Neben dem genannten caml-mode, der mit OCaml geliefert wird, gibt es einen erweiterten tuareg-mode , der den Quellcode farbiger gestaltet. Bei der Installation geht man analog zum caml-mode vor, ersetzt aber caml durch tuareg.

Jetzt ggf. XEmacs neu starten und (hoffentlich) presto!

Objective Caml interaktiv in der Shell

Wer ocaml direkt in der Shell startet, stört sich wahrscheinlich daran, dasskeine Unterstützung zum Editieren (Cursor bewegen etc.) vorhanden ist.Hier hilft das Programm ledit , welches auf den WSI-Rechnern bereits vorinstalliert ist.

Einfach ocaml als Argument an ledit übergeben:

> ledit ocaml
        Objective Caml version 3.08.4

# 

Und schon funktioniert alles wie gewünscht.

Kommandos für ocaml

Der ocaml -Interpreter versteht einige Kommandos, die im Handbuch im Abschnitt "Toplevel directives" aufgeführt sind.

Für den Anfang ist das Kommando #use wohl am wichtigsten: Es lädt den Inhalt einer Datei in den Interpreter.

       

Martin Gasbichler
Zuletzt geändert: Fri Oct 21 09:24:29 2005

powered by scsh