Versuch einer Anleitung zu CLISP ================================ Mit CLISP wird die hier vorliegende Implementierung von COMMON LISP auf Atari ST bezeichnet. Dazu geh”ren folgende Files: LISP.PRG LISP-Hauptprogramm LISPINIT.MEM fr Warmstart ben”tigte LISP-Daten CONFIG.LSP Konfigurationsparameter IMPSTAND.TXT aktueller Implementierungsstand IMPDOC.TXT Dokumentation zur Implementierung ANLEITUN.TXT diese Anleitung Was ist LISP? ------------- LISP ist eine Programmiersprache, die 1959 von J. McCarthy erfunden wurde. Frher gab's viele verschiedene Dialekte, heute ist LISP durch den Industrie- Standard COMMON LISP standardisiert und weit verbreitet worden. Anwendungen reichen von der symbolischen Wissensverarbeitung (KI) ber die Numerik (MACLISP lieferte einen ebensoguten Numerik-Code wie FORTRAN) bis hin zu kommerziellen Programmen wie Editoren (EMACS) oder CAD-Systemen (AUTOCAD). Eine Einfhrung in die Sprache ist: Sheila Hughes: Lisp. Pitman Publishing Limited, London 1986. 107 Seiten. ca. DM 15,80. Nach einiger Zeit unentbehrlich ist das Standardwerk mit der Sprachdefinition Guy L. Steele Jr.: Common Lisp - The Language. Digital Press. 1. Auflage 1984, 465 Seiten, ca. DM 73,60. 2. Auflage 1990, 1032 Seiten. ca. DM 94,90. LISP liegt in einer interaktiven Umgebung vor, d.h. man gibt Formen ein, die dann sofort ausgewertet werden. So kann man Variablen inspizieren, Funktionen mit wechselnden Argumenten aufrufen oder auch eigene Funktionen definieren. Installation: ------------- Mit einem Texteditor die Strings innerhalb von CONFIG.LSP anpassen. Dann LISP.PRG starten. Auf den LISP-Prompt > _ hin eingeben: (compile-file "config") (load "config") und dann mit (saveinitmem) die Datei LISPINIT.MEM berschreiben und auf den neuesten Stand bringen. (Dies bitte nur einmal machen!) Besonderheiten: --------------- Der aktuelle Implementierungsstand ist in IMPSTAND.TXT aufgelistet. Implementierungsdetails findet man in IMPDOC.TXT. Tastatureingaben finden zeilenorientiert statt. Dabei werden folgende Sondertasten erkannt: Tab 1 bis 8 Leerzeichen Backspace l”scht ein Zeichen nach links Delete l”scht ein Zeichen nach rechts Insert fgt eine Leerstelle ein <- Cursor ein Zeichen nach links -> Cursor ein Zeichen nach rechts Shift <- Cursor an den Zeilenanfang Shift -> Cursor ans Zeilenende Return, Enter beendet das Editieren dieser Zeile Help, Undo, F1-F10 je nach Kontext Dreht man den Lautst„rkeregler am Monitor auf, so kann man die Garbage Collections mitverfolgen: Es bimmelt am Beginn und am Ende jeder GC. Laufende Bildschirm-Ausgaben kann man durch Drcken der rechten Maustaste vorbergehend anhalten. Durch Bewegen der Maus bei gleichzeitig gedrckter rechter Maustaste kann man die Bildschirm-Ausgabe langsam weiterlaufen lassen. Laufende Programme k”nnen meist durch gleichzeitiges Drcken der beiden Maustasten abgebrochen werden. Sollte dies nicht funktionieren (und nur dann), kann durch gleichzeitiges Drcken einer Shift- und beider Maustasten abgebrochen werden. Mit (exit) verl„žt man das System wieder. Neue Version ------------ In dieser Version sind gegenber der letzten Version (vom April 1991) folgende gr”žere Žnderungen erfolgt: - Das Format der compilierten Programme hat sich ge„ndert. Von der alten Version compilierte Programme sind mit der neuen Version nicht ausfhrbar. Daher sollten alle alten .LIB- und .FAS-Dateien gel”scht werden. - Compilierte Programme sind im Durchschnitt um ca. 7% schneller geworden, der Compiler selbst um ca. 35%. - Hash-Tabellen sind implementiert. - Potenzier-, Arcus- und Area-Funktionen sind vollst„ndig implementiert. - File-Streams k”nnen als Elementtypen auch Integers (insbesondere Bits) und allgemeine Characters haben. Weitere Žnderungen betrafen die Namen von Characters, die Bildschirmausgabe, die Abfrage von Sondertasten im *KEYBOARD-STREAM*, das Anhalten laufender Programme, die Fehlermeldung bei voller Diskette u.a. Wenn's Probleme gibt: --------------------- Bei Errors befindet man sich im Debugger: 1. Break> _ Hier kann man wie blich Formen auswerten. Aužerdem: Help ruft Hilfestellung an. Undo steigt hoch in die n„chsth”here Hauptschleife. (show-stack) zeigt den Stackinhalt an. Das hilft bei der Fehlersuche. Aužerdem kann man sich die Werte der Variablen der Funktion anzeigen lassen, in der der Absturz passierte. Bei Speichermangel (was man an immer h„ufiger werdender GC und anschliežender Fehlermeldung bemerkt) sollte man einige Platzfresser aus dem Speicher entfernen. Ist man jedoch bereits so weit, daž der Platz nicht einmal zum Auswerten von Formen reicht, sollte man dreimal hintereinander die Form 0 auswerten lassen und dann aufr„umen oder mit (exit) LISP verlassen. Tips, um Speicher zu sparen: Keine Programme im Hintergrund lassen, wenn LISP gestartet wird. Nicht mehr auszutestende Funktionen compilieren. Bei gr”žeren Problemen, z.B. harten Abstrzen, bitte Fehlerbeschreibung und reproduzierbare Vorgehensweise zur Erzeugung dieses Fehlers an die Autoren senden. Autoren: -------- Bruno Haible Michael Stoll Ritterstraže 42 Riesenfeldstraže 96 7500 Karlsruhe 1 8000 Mnchen 40