Ein Interpreter für LISP
Eingabe- und Ausgabefunktionen
Aufgabenbeschreibung
Die Eingabefunktionen lesen LISP-Ausdrücke
von einem Eingabemedium und erzeugen die interne Darstellung
des gelesenen Ausdrucks. Die Eingabefunktionen müssen
geeignete Hinweise ausgeben, wenn sie auf eine Zeichenfolge treffen,
die nicht als fehlerfreier LISP-Ausdruck gedeutet werden kann.
Die Ausgabefunktionen wandeln die interne
Darstellung von LISP-Ausdrücken in eine Schreibform um und geben
diese Schreibform in ein Ausgabemedium aus. Dabei ist zu
berücksichtigen:
- Zirkuläre Strukturen haben keine Schreibform, die ausgegeben werden
könnte. Es ist darauf zu achten, dass eine Ausgabefunktion beim Versuch,
eine zirkuläre Struktur auszugeben, möglichst nicht in eine unendliche
Schleife oder in unendliche Rekursion eintritt.
- Es sollte die optionale Möglichkeit bestehen, Listen und vor allem
Funktionsdefinitionen formatiert auszugeben.
Unter Formatierung soll dabei eine Einrückung verstanden werden, die
es ermöglicht, Beginn und Ende zusammengesetzter Ausdrücke rasch
zu erfassen.