| LISP | |||||
|
List Processing Language (LISP) ist eine höhere Programmiersprache, 1957 am Dartmouth College in den USA entwickelt und 1959 von John McCarthy erstmals auf einem Rechner implementiert. Die Besonderheit von LISP ist die grosse Bedeutung im Bereich der Künstlichen Intelligenz (KI) und der Symbolverarbeitung. Mit List Processing bezeichnete man FORTRAN-Unterprogramme welche auf dem Lambda-Kalkül beruhten. Damit wurden symbolische Berechnungen durchgeführt. Ein Student McCarthy's, Steve Russel, entwickelte einen Interpreter für diese Kalküle und hob damit LISP aus der Taufe. LISP-Sprachelemente LISP besteht aus Skalar- oder Einzelwerten (Atome) und Listen. Die Listen können ineinander verschachtelt werden (Listen von Listen). Mit diesen Elementen können höhere Strukturen wie z. B. Arrays entwickelt werden. Eine weitere Besonderheit von LISP ist die Möglichkeit, Teile von Programmstrukturen zur Laufzeit zu verändern, da LISP-Befehle auch als Listen vorliegen. Dies ermöglicht weitere höhere Strukturelemente zu erschaffen, (z. B. OOP-Elemente, Abfragen oder Verzweigungen u.ä.). Deswegen nennt man LISP auch eine programmierbare Programmiersprache. Weitere Eigenschaften von LISP sind: - Automatische Speicherbereinigung (es muss vom Entwickler kein Speicherplatz für Variablen oder Datenstrukturen reserviert oder freigegeben werden) - keine explizite Deklaration von Datenstrukturen notwendig - durch ein LISP-Symbol können beliebig viele Objekte angesprochen werden. Wegen der dynamischen Speicherbelegung belegten LISP-Programme für damalige Verhältnisse viel Speicherplatz und Ressourcen. LISP-Maschinen Um LISP-Programme schneller ausführen zu können wurden deswegen ab den 70er Jahren spezielle LISP-Maschinen (LispM) entwickelt und vertrieben. Diese LISP-Maschinen sind für LISP-Programme optimiert und verfügen über ein Betriebssystem welches selber in LISP entwickelt wurde. Auch viele Anwendungen wurden in LISP programmiert. LISP-Maschinen bieten eine komfortable Entwicklungsumgebung für LISP-Entwickler, können jedoch auch als reine Application-Server konzipiert sein. Viele moderne Konzepte wie die Fenstertechnik, Computer-Netzwerke, inkrementelle Kompilierung, Mäuse oder Hypertext wurden auf LISP-Maschinen erprobt. Weltweit wurden ca. 7000 LISP Maschinen hersgestellt - die Ära der LISP- Maschinen endete Anfang der 90er Jahre mit dem Aufkommen leistungsfähigerer Mikroprozessoren und grösserer Speicherreserven. Hinzu kam ein zunehmender Pessimismus was KI-Anwendungen anging. LISP-Dialekte Bekannte LISP-Dialekte sind: Common LISP ist heute Industriestandard und beruht auf ZetaLISP Franz LISP und InterLISP erlauben prozedurale, 'unhygienische' Makros sowie dynamische und lexikalische Variablenbildung Scheme erlaubt Continuations: call/cc (call-with-current-continuation), ausschliesslich lexikalische Verbindungen und hygienische Makros, findet wegen ihrer klaren Struktur oft Anwendung im akademischen Bereich AutoLISP (für AutoCAD) MacLISP, Emacs LISP, NewLISP, xLISP JESS: Java-basierte Regel Engine und Obermenge der Programmiersprache CLIPS (C Language Integrated Production System), ein freies Software-Werkzeug zum Entwickeln von Expertensystemen. Im Bild ist der Sortieralgorithmus 'Insertion Sort' in LISP wiedergegeben. |
|||||
| Siehe auch: LISP-Maschine Künstliche-Intelligenz ADA FORTRAN Objektorientierte-Programmierung Metadaten Expertensystem Sortieralgorithmus Roboter Robotik | |||||