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 Accounts
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. 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. 705 (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)