Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenSonntag, 19. Mai 2013 

LISP


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
LISP ist eine Programmiersprache die 1959 am Massachusetts Institute of Technology (MIT) als Implementation des Lambda-Kalküls entstand.
LISP steht für Lis t P rocessing damit waren ursprünglich FORTRAN -Unterprogramme gemeint mit denen symbolische Berechnungen durchgeführt sollten wie sie im Lambda-Kalkül gebraucht werden. Einer der Studenten von McCarthy kam dann auf die fundamentale Idee Interpreter für diese Ausdrücke zu programmieren womit Programmiersprache LISP geboren war.

Die Grunddatenstrukturen von LISP sind Einzelwerte die Atome genannt werden und Listen . Die Listen können beliebig verschachtelt werden Listen von Listen ). Damit lassen sich auch leicht Datenstrukturen ein assoziatives Array implementieren. Die Listen werden mit runden dargestellt:

 (A B C)  

Auch Programmanweisungen sind Listen was es Programmteile wie Daten beliebig zu manipulieren. Dies z.B. wichtig wenn der Programmierer neue Kontrollstrukturen oder Objektsysteme ( OOP ) entwickeln will ( Metaprogrammierung Macros ).

Lisp bietet dem Programmierer große Flexibilität weitreichende Einflussmöglichkeiten weshalb es manchmal auch als Programmiersprache" bezeichnet wird. Datenstrukturen werden dynamisch aufgebaut dass der Programmierer explizit Speicherplatz reservieren oder muss (s.a. Garbage Collection ). Deklarationen für Daten sind nicht nötig ein Lisp-Symbol kann als Variable beliebige Arten Objekten bezeichnen. Viele dieser Eigenschaften sind im der Zeit in weitere Programmiersprachen übernommen worden. Anfang der 50er waren sie sicherlich ihrer Zeit weit

Programme in Lisp können interpretiert oder von einem Compiler in effizienten Machinencode übersetzt werden. Dadurch sich für die Programmiererin die Vorteile einer Scriptsprache (schnellere Entwicklungszyklen einfachere Testbarkeit höhere Flexibilität) denen einer compilierten Sprache (Ausführgeschwindigkeit).

Inhaltsverzeichnis

Minimaler Funktionsumfang für Lisp

Nur ganz wenige Operatoren und ein Mechanismus zur Funktionsdefinition ist nötig um ein Lisp-System zu implementieren. Die folgenden Funktionen sind ursprünglichen Bericht von McCarthy enthalten.

  • car (gibt das erste Element einer zurück)
  • cdr (gibt die Restliste (ohne das 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 Lispfunktionen erzeugen wenn auch recht ineffizient. Die LISP-Versionen implementieren einen großen Teil ihrer Funktionen C oder in Maschinensprache.

Lisp und KI

Historisch war LISP mit PROLOG die Programmiersprache der Künstlichen Intelligenz .

Lisp-Dialekte

Bekannte Abkömmlinge:
Common LISP
Emacs-LISP
Logo
MacLisp
InterLisp
Scheme
AutoLisp
muLISP
SML (System Management Language)

Das berühmte Hello World in Common-Lisp:

 (defun hello-world () (print "hello world!")) 

Ein Lisp-Programm zur Berechnung der Fakultät :

 (defun ! (n) (cond ((= n 1) ; 0! = 1 ((> n (* n (! (- n 1)))))) ; = n * (n - 1)!  

Aufruf: (! 6)

Weblinks




Bücher zum Thema LISP

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/LISP.html">LISP </a>