PAKCS (Portland Aachen Kiel Curry System) ist ein
Interpreter für die logisch-funktionale Programmiersprache
Curry. Da PAKCS die Curry-Programme
in SICStus Prolog, einen nicht frei verfügbarer Prolog-Compiler, übersetzt,
können wir leider keine Version anbieten, die Sie zu Hause auf ihren eigenen
Rechnern installieren können. Sie können PAKCS auf den Rechern des
Lehrstuhls unter Verwendung ihrer Übungsaccounts ausführen.
Benutzung von PAKCS auf den Lehrstuhlrechnern
PAKCS ist unter dem Login pakcs installiert. Der Aufruf erfolgt durch
Eingabe von /home/pakcs/bin/curry2prolog
Sie können auch /home/pakcs/bin/ in ihren Pfad aufnehmen und
PAKCS dann durch Eingabe von curry2prolog starten.
Der erste Start kann ein bisschen länger dauern, weil erst ein Java-Parser im Hintergrund
geladen wird, also nicht wundern ;-)
Nach dem Start steht eine interaktive Umgebung zur Verfügung, die der von Hugs
gleicht. Durch Eingabe von
:h
erhalten Sie eine Liste mit Befehlen, die Sie in PAKCS eingeben können. Die
wichtigsten Befehle sind:
| :l prog |
Einlesen eines Programms prog.curry |
| :r |
Erneutes Einlesen des zuletzt geladenen Programms |
| ausdruck |
Auswertung eines Ausdrucks. Hierbei gibt es einen wichtigen Unterschied zu Hugs:
Aufgrund des möglichen Nichtdeterminismus in logisch-funktionalen Sprachen
können evtl. mehrere Ergebnisse/Lösungen zu einem Ausdruck existieren.
Zunächst wird aber immer nur ein Ergebnis berechnet. Durch Eingabe eines
Semikolons und Return/Enter können Sie die Berechnung eines weiteren
Ergebnisses anfordern. Sollte kein weiteres Ergebnis existieren, antwortet
PAKCS mit No more solutions. Wenn Sie statt eines Semikolons direkt
Return/Enter drücken, wird die Berechnung sofort beendet.
|
| :t ausdruck |
Typ des Ausdrucks anzeigen |
| :e funktionsname |
Auswertungsregeln einer Funktion anzeigen |
| :q |
PAKCS beenden |
Dokumentation
-
Auf den Webseiten zur Sprache Curry
finden Sie eine Menge Informationen über die Sprache selbst sowie über
existierende Implementierungen., insbesondere auch über
PAKCS.
- Der Curry-Report
beschreibt ausführlich die Sprache Curry.
-
Manual zum PAKCS-System
- Doku-Raum Nr. 704 (Büro des Assistenten) ;-)
- Einige Beispielprogramme finden Sie unter /home/pakcs/pakcs/examples.
Eingabe von Programmtexten
Achten Sie bei der Eingabe von Curry-Programmen darauf, keine Tabulatoren
zu verwenden, sondern die Einrückungen nur durch Leerzeichen zu erreichen.
Der Parser von PAKCS kommt mit Tabulatoren nicht zurecht. Wenn Sie aus
Versehen doch einen Tabulator verwenden, wird PAKCS einen Syntaxerror melden oder
ungefähr folgende Fehlermeldung ausgeben:
Lexical error at line 16, column 8. Encountered: "\t" (9), after : ""
Falls Sie zur Eingabe den den (X)Emacs verwenden wollen, können Sie
einen speziellen Curry-Modus verwenden, bei dem z.B. die Schlüsselwörter
eingefärbt werden. Legen Sie dazu eine Datei mit dem Namen .emacs
(den Punkt nicht vergessen!) in ihrem Home-Verzeichnis an und fügen
Sie dort folgende Zeilen ein:
(setq load-path (cons "/home/curry/lib/" load-path))
(setq auto-mode-alist
(append auto-mode-alist
'(("\\.curry$" . curry-mode)
("\\.lcurry$" . literate-curry-mode))))
(autoload 'curry-mode "curry-mode"
"Major mode for editing Curry programs." t)
(autoload 'literate-curry-mode "curry-mode"
"Major mode for editing literate Curry programs." t)
(add-hook 'curry-mode-hook 'turn-on-curry-font-lock)
(add-hook 'curry-mode-hook 'turn-on-curry-decl-scan)
(add-hook 'curry-mode-hook 'turn-on-curry-indent)
(add-hook 'curry-mode-hook 'turn-on-curry-hugs)