Lisp (List Processing Language) ist eine sehr alte und sehr ungewöhnliche Programmiersprache, die im Forschungsbereich der künstlichen Intelligenz entstand. Lisp wurde durch John McCarthy am MIT entwickelt. Die erste Beschreibung der Sprache wurde im Jahr 1962 veröffentlicht.
Der Begriff "künstliche Intelligenz" ist ziemlich undeutlich und zugleich überaus ambitioniert. Es überrascht daher nicht, dass die sehr hochgesteckten Erwartungen nicht immer erfüllt werden konnten. Trotzdem wurden mit Lisp viele originelle und einige wegweisende Arbeiten durchgeführt. Vor allem in der Computeralgebra, dem regelbasierten Programmieren und der Sprachverarbeitung wurden mit LISP wesentliche Fortschritte erzielt. In gegenwärtigen Forschungsvorhaben im Umfeld der künstlichen Intelligenz spielt LISP keine große Rolle mehr.
Ein Kuriosum in der Geschichte der Informatik ist sicher das um 1966 in LISP geschriebene Programm Eliza, das seinen Benutzern die Illusion eines verständnisvollen Dialogs über ihr Befinden vermittelte. Eliza veranlasste Geisteswissenschaftler unterschiedlicher Disziplinen zu komplizierten und gelegentlich ziemlich substanzlosen Grübeleien. Es hätte genügt, Eliza als einen Scherzartikel zu klassifizieren, aber für diese Einsicht fehlte der Bildungselite jener Zeit die Erfahrung im Umgang mit Computern.
Lisp wurde in den 50 Jahren seit seiner erstmaligen Veröffentlichung mehrfach modernisiert. CommonLisp und Scheme sind heute die beiden wichtigsten Varianten. Beide Varianten stehen für den Raspberry Pi zur Verfügung und beide Varianten können auch Gtk+ 2 verwenden.
Lisp ist in vieler Hinsicht einzigartig, und eine unübersehbare Einzigartigkeit der Sprache ist ihre Schreibweise. Eine kleine Kostprobe wird dich überzeugen:
()
So erstaunlich das aussieht; für den an Lisp gewöhnten Programmierer ist das sehr übersichtlich. Für den Augenblick genügt es, zu merken:
Tatsächlich sind Klammern das einzige Strukturierungsmittel der Sprache.
Lisp basiert auf einer Datenstruktur, die für die Darstellung von Daten und Programmen verwendet wird.
Mit Lisp wurden einige grundlegende Ideen erstmals realisiert, die später in Programmiersprachen wie Python, Haskell, OCaml übernommen wurden. Zu nennen sind:
Die Darstellung von Programmcode und Daten erfordert in Lisp nur zwei Datenstrukturen: Atome und Paare. Diese Knappheit an Darstellungsmitteln macht die Programmierung eines einfachen Interpreters für Lisp zu einer recht überschaubaren Aufgabe.
Für die Compilierung wird ISO Pascal (ISO 7185) benötigt. TurboPascal und Delphi genügen der Anforderungen nicht.
Unter den frei verfügbaren Compilern kommen GNU Pascal und FreePascal in Betracht.
sudo apt-get install fpc
Dieser Befehl installiert den Free Pascal Compiler, der ab der Version 3.0 die Norm ISO 7185 Level 0 und Level 1 vollständig implementiert. Für das hier bereitgestellte Programm ist die Implementierung von Level 0 erforderlich und ausreichend. (Das heißt, dass keine konformant arrays verwendet werden.)
Für das Verständnis des hier beschriebenen Programms ist die Kenntnis der Norm ISO 7185 nicht erforderlich.