home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
language
/
clisp
/
anleitun.txt
next >
Wrap
Text File
|
1993-10-23
|
6KB
|
136 lines
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 für 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.
Früher 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 Einführung 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 fügt 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 Drücken der rechten Maustaste
vorübergehend anhalten. Durch Bewegen der Maus bei gleichzeitig gedrückter
rechter Maustaste kann man die Bildschirm-Ausgabe langsam weiterlaufen
lassen.
Laufende Programme können meist durch gleichzeitiges Drücken der beiden
Maustasten abgebrochen werden. Sollte dies nicht funktionieren (und nur
dann), kann durch gleichzeitiges Drücken einer Shift- und beider Maustasten
abgebrochen werden.
Mit (exit) verläßt man das System wieder.
Neue Version
------------
In dieser Version sind gegenüber 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 ausführbar.
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 Abstürzen, 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 München 40