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