Zugang zu LISP

Transcrição

Zugang zu LISP
Zugang zu LISP
Franz Inc. Allegro Lisp Version 7.0 ist im Linux Pool installiert.
1. Möglichkeit: Benutzung in der Shell:
1) Aufruf mit älisp”xy@wsl05:~$ alisp
International Allegro CL Enterprise Edition
7.0 [Linux (x86)] (Oct 27, 2005 11:50)
Copyright (C) 1985-2004, Franz Inc., ...
This development copy of Allegro CL is licensed to:
[TC8180] Universitat Ulm
; Loading home .clinit.cl file.
;; Optimization settings: safety 1, ...
CL-USER(1):
3) CL-USER(1): (+ 1 2)
3
CL-USER(2):
4) Beenden mit :ex oder (exit)
Evaluierungsversionen für Studenten (Windows, Linux, OS X) gibt
es unter: http://www.franz.com/
LISP-Intensivkurs
1
Weitere Interpreter
CMU Common Lisp Carnegie Mellon University Lisp
Ebenfalls im Linux Pool installiert: xy@wsl04:~$ cmucl
http://www.cons.org/cmucl/
CLisp Universität Karlsruhe u. München
Zu starten im Pool mit: xy@wsl04:~$ clisp
http://clisp.cons.org/
Jatha Java-Bibliothek eines Teils von Common Lisp
Lisp Kode lässt sich auch über eine rudimentäre GUI interaktiv
entwickeln: http://jatha.sourceforge.net/
LispWorks Kommerzielles ANSI Common Lisp mit IDE
Freie (etwas limitierte) Personal Edition für Windows, Linux Mac
OS X verfügbar: http://www.lispworks.com/
LISP-Intensivkurs
2
EMACS und Lisp
2. Möglichkeit: Benutzung im XEMACS:
1) Herunterladen der EMACS Konfigurationsdatei von:
http://www.informatik.uni-ulm.de/ki/Edu/
Programmierkurse/Lisp/WS0607/.emacs
(Abspeichern im Homeverzeichnis)
2) Starten mit xemacs
Aufruf mit: M-x (ESC+x) und fi:common-lisp
LISP-Intensivkurs
3
EMACS - Überblick
Es existieren 2 Varianten: GNU-Emacs und XEmacs
• Primär: Editor
• Außerdem: Diverse Utilities:
– Shell (starten durch M-x shell)
– Mail (M-x rmail)
– News (M-x gnus)
– Kalender (M-X calendar)
– Sprachunterstützung für Lisp, C, TEX, Ocaml, Typelab etc.
• Leicht konfigurierbar bzw. programmierbar. Sprache: Lisp
• Herkunft: Gnu-Familie bzw. SUN/Lucid/FSF
• Aufruf mit xemacs
Wichtig zu wissen für den Anfänger:
• Tutorial: Elementarer Umgang mit Emacs (Menu “Help”, Rubrik
“Basics Tutorial”)
• Extensive online-Dokumentation (Menu “Help”, Rubrik “Lookup
in Info ..”) Organisiert in Form eines Hypertext-Systems; Fortbewegen durch Klicken der mittleren Maustaste auf vorgehobene
Textstellen
• C-g zum Abbrechen eines Kommandos
Emacs kann in einer Datei .emacs vorkonfiguriert werden. Siehe
WWW-Beispieldatei.
LISP-Intensivkurs
4
Editiermodi in EMACS
EMACS bietet Unterstützung für verschiedene Sprachen. Dabei Verwendung verschiedener Editiermodi.
Allgemein: Editieren in EMACS
• EMACS verwaltet während einer Sitzung mehrere Buffers, die
jeweils Dateien oder besondere Applikationen (Shell, Inferior
Caml) enthalten
• Laden einer Datei mit C-x C-f (“Find”), abspeichern mit C-x
C-s (“Save”).
• Eingabe von Text: Die meisten Tasten “stehen für sich selbst”,
können jedoch auch umdefiniert werden.
• Bewegung des Cursors im Buffer durch Maus, Cursor-Tasten oder
spezielle Tastenkombinationen (C-f “Forwards”; C-b “Backwards”; C-n bzw C-p “Next” bzw “Previous line”)
• Löschen bis zum Ende der Zeile: C-k
Allgemein: Online-Hilfe für Editiermodus
• C-h a “Apropos”: Kommandos zu einem Stichwort, z.B. save
• C-h c “Command”: Kurzbeschreibung einer Tastenkombination,
z.B. C-x C-s
• C-h m “Mode”: Beschreibung des momentanen Emacs-Modus
LISP-Intensivkurs
5
Lisp-Unterstützung in EMACS
Zwei Arten der Lisp-Unterstützung:
• Besonderer Editiermodus für Lisp-Dateien
• Lisp als untergeordneter Prozeß: “Inferior Lisp”
Spezieller Lisp-Editiermodus:
• Manipulation von und Fortbewegung über S-Expressions, z.B.:
– C-M-f “Forwards”; C-M-b “Backwards”
– C-M-k Lösche ganze S-Expression
– C-M-a Gehe zum Anfang einer Funktionsdefinition
• Formatierung beim Editieren von Funktionen etc.
– Automatisches Einrücken bei geschachtelten Strukturen
– C-M-q Formatierung eines Lisp-Ausdrucks
Lisp als untergeordneter Prozess (unter Allegro Common Lisp):
• Unter dem Menupunkt ACLFile / Run/Restart Common
Lisp wird ein untergeordneter Lisp-Prozess gestartet
• Kombination der Möglichkeiten einer Eingabe in eine “Shell” mit
dem Lisp-Editiermodus
• Rückwärts- bzw. Vorwärtsblättern der Eingabe-History durch
C-c C-p bzw. C-c C-n.
• Erzeugen eines Interrupt durch C-c C-c
LISP-Intensivkurs
6
Editieren von Lisp-Buffern
Kommentare in Lisp: Jeglicher Text, der hinter einem Semikolon
auftritt. Achtung: Emacs formatiert Kommentare unterschiedlich, je
nachdem ob sie mit ’;’ oder ’;;’ oder ’;;;’ anfangen
Kommentieren von Text: Per Hand, oder wie folgt:
• Markieren des zu kommentierenden Texts, z.B. mit Maus oder
mit M-C-Space
• Aufruf von M-x comment-region
• Entfernen von Kommentaren einer Region: M-- M-x
comment-region (mit M-- (Meta-minus) können häufig Inverse
von Funktionen angewendet werden)
Nach Änderung einer Funktion in einer Datei ist es nicht immer nötig,
die ganze Datei neu zu laden. Mit C-c C-e wird die Funktionsdefinition, in der sich der Cursor gerade befindet, an den Lisp-Prozeß
gesendet.
Suchen nach einer Funktion, die in einer anderen Datei definiert ist:
• M-x grep, dann Angabe des Suchmusters und der Datei(en) –
ähnlich wie in einer Unix-Shell
• Ausgabe der Vorkommen des Suchmusters erfolgt in einen Buffer
namens *grep*
• Positionieren des Cursors in dem *grep*-Buffer, danach C-c
C-c: Emacs öffnet die entsprechende Datei und springt automatisch an die gesuchte Stelle
LISP-Intensivkurs
7