LISP
Sie haben nach der Definition zum Begriff "LISP" gesucht, wir haben für Sie eine passende Erklärung des Begriffes "LISP" gefunden.
LISP ist eine Programmiersprache, die 1959 am Massachusetts Institute of Technology (MIT) als Implementierung des Lambda-Kalküls entstand.
LISP steht für List Processing. Damit waren ursprünglich FORTRAN-Unterprogramme gemeint, mit denen symbolische Berechnungen durchgeführt werden sollten, wie sie im Lambda-Kalkül gebraucht werden. Einer der Studenten von John McCarthy kam dann auf die fundamentale Idee, einen Interpreter für diese Ausdrücke zu programmieren, womit die Programmiersprache LISP geboren war.
Die Grunddatenstrukturen von LISP sind Einzelwerte (Skalarwerte), die Atome genannt werden und Liste (Datenstruktur). Die Listen können beliebig verschachtelt werden (Listen von Listen). Damit lassen sich auch leicht Datenstrukturen wie ein assoziatives Array implementieren. Die Listen werden mit runden Klammern dargestellt:
(A B C)
Auch Programmanweisungen sind Listen, was es ermöglicht, Daten beliebig zu manipulieren. Dies ist beispielsweise wichtig, wenn der Programmierer neue Kontrollstrukturen oder Objektsysteme (OOP) entwickeln will (Metaprogrammierung, Makros).
Lisp bietet dem Programmierer große Flexibilität und weit reichende Einflussmöglichkeiten, weshalb es manchmal auch als "programmierbare Programmiersprache" bezeichnet wird. Datenstrukturen werden dynamisch aufgebaut, ohne dass der Programmierer explizit Speicherplatz reservieren oder freigeben muss (siehe auch Garbage-Collection). Deklarationen für Daten sind nicht nötig und ein Lisp-Symbol kann als Variable beliebige Arten von Objekten bezeichnen. Viele dieser Eigenschaften sind im Laufe der Zeit in weitere Programmiersprachen übernommen worden. Anfang der 1950er waren sie sicherlich ihrer Zeit weit voraus.
Programme in Lisp können interpretiert oder von einem Compiler in effizienten Machinencode übersetzt werden. Dadurch verbinden sich für den Programmierer die Vorteile einer Skriptsprache (schnellere Entwicklungszyklen, einfachere Testbarkeit, höhere Flexibilität) mit denen einer kompilierten Sprache (Ausführungsgeschwindigkeit).
| | Minimaler Funktionsumfang für Lisp |
Nur ganz wenige Operatoren und ein allgemeiner Mechanismus zur Funktionsdefinition ist nötig um ein minimales Lisp-System zu implementieren.
Die folgenden Funktionen sind im ursprünglichen Bericht von McCarthy enthalten.
» car (gibt das erste Element einer Liste zurück)
» cdr (gibt die Restliste (ohne das erste Element) zurück)
» cons (verknüpft zwei Listen)
» quote (verhindert Auswertung)
» eq (Test auf Gleichheit)
» cond (bedingte Ausführung)
» Mechanismus zur Funktionsdefinition
Mit diesen Sprachmitteln kann man alle anderen Lispfunktionen erzeugen, wenn auch recht ineffizient. Die meisten LISP-Versionen implementieren einen großen Teil ihrer Funktionen in C oder in Maschinensprache.
Historisch war LISP mit PROLOG die Programmiersprache der künstliche Intelligenz.
Bekannte Abkömmlinge:
» Common LISP
» Emacs-LISP
» Logo (Programmiersprache)
» MacLisp
» InterLisp
» Scheme
» AutoLISP
» muLISP
» SML ("System Management Language")
Das berühmte Hallo Welt in Common-Lisp:
(defun hallo-welt()
(print "Hallo Welt"))
Ein Lisp-Programm zur Berechnung der Fakultät (Mathematik):
(defun ! (n)
(cond ((= n 0) 1) ; 0! = 1
((> n 0) (* n (! (- n 1)))))) ; n! = n * (n - 1)!
Aufruf: (! 6)
» John McCarthys Originalarbeit über Lisp
» Eine konzise Einführung in Anlehnung an McCarthys Arbeit
» Ein interaktiver LISP-Kurs
» Clisp - ein Open Source Common LISP für verschiedene Plattformen
» Lispworks - Eine für Privatpersonen kostenlose LISP Entwicklungsumgebung
» Structure and Interpretion of Computer Programms (kostenloses eBook, englisch)
» Paul Graham On Lisp (kostenloses eBook, englisch)
tokipona:toki pali pi mun lili
|