Zum Forum
Passwort vergessen?
Noch keinen Account?
lexikon
Hauptseite
Zufälliger Artikel
Diskussion
Diskussion : LISP
Links
Forum
Portale
Reisen
Versicherung
Inhaltsverzeichnis
Hauptmenü
Home
Editorial
Bildung
E-Learning
Fremdsprachen
Magazin
Wissen
Wörterbücher
Enzyklopädien
Expertendienste
Wissenswertes
Praktische Ratgeber
--------------------------
Biologie
Chemie
Computer
Film/ Theater
Geografie
Geschichte
Jura
Kunst
Literatur
Mathematik
Medizin
Musik
Philosophie
Physik/ Astronomie
Politik
Psychologie
Religionen
Sport
Umwelt
Wirtschaft
Reisen
Lexikon
Versicherung
Suchen
Schnellsuche
Suchmaschinen
Metasuchmaschinen
Webkataloge
News
Treffpunkt
Chat
Forum
Suche
Schnellsuche
Sitemap
Kontakt
Impressum
LISP
Stichpunkte
Allgemein
die 1959 am Massachusetts Institute of Technology (MIT) als Implementierung des Lambda-Kalküls entstand
LISP ist eine Programmiersprache
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
womit die Programmiersprache LISP geboren war
einen Interpreter für diese Ausdrücke zu programmieren
die Atome genannt werden und Listen
Die Grunddatenstrukturen von LISP sind Einzelwerte (Skalarwerte)
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
Programmteile beliebig zu manipulieren
wenn der Programmierer neue Kontrollstrukturen oder Objektsysteme (OOP) entwickeln will (Metaprogrammierung
Dies ist beispielsweise wichtig
Makros)
weshalb es manchmal auch als „programmierbare Programmiersprache“ bezeichnet wird
Lisp bietet dem Programmierer große Flexibilität und weit reichende Einflussmöglichkeiten
ohne dass der Programmierer explizit Speicherplatz reservieren oder freigeben muss (siehe auch Garbage-Collection)
Datenstrukturen werden dynamisch aufgebaut
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 50er waren sie sicherlich ihrer Zeit weit voraus. Programme in Lisp können interpretiert oder von einem Compiler in effizienten Maschinencode übersetzt werden
höhere Flexibilität) mit denen einer kompilierten Sprache (Ausführungsgeschwindigkeit). Inhaltsverzeichnis showTocToggle("Anzeigen"
einfachere Testbarkeit
Dadurch verbinden sich für den Programmierer die Vorteile einer Skriptsprache (schnellere Entwicklungszyklen
"Verbergen") 1 Minimaler Funktionsumfang für Lisp 2 Lisp und KI 3 Lisp-Dialekte 4 Unterschiede zum Lambda-Kalkül 5 Weblinks [Bearbeiten]
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 übliche Lisp-Systeme mitbringen
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 Bereits mit diesen Sprachmitteln kann ein bemerkenswerter Teil der Funktionen
definiert werden
Typischerweise besteht ein Lisp-System auch aus einem kleinen
oft in C implementierten Kern
und einer großen Bibliothek von weiteren Lisp-Definitionen. [Bearbeiten]
Lisp und KI
Historisch war LISP mit PROLOG die Programmiersprache der künstlichen Intelligenz. [Bearbeiten]
Lisp-Dialekte
Bekannte Abkömmlinge: Common LISP Emacs Lisp Logo MacLisp InterLisp Scheme AutoLISP muLISP SML („System Management Language“) Tcl Das berühmte Hallo-Welt-Programm in Common-Lisp: (format t "Hallo Welt!~%") Ein Lisp-Programm zur Berechnung der Fakultät (nach den Semikola folgt ein einzeiliger Kommentar): (defun ! (n) (cond ((= n 0) 1) ; 0! = 1 ((> n 0) (* n (! (- n 1)))))) ; n! = n * (n - 1)! Aufruf: (! 6) [Bearbeiten]
Unterschiede zum Lambda-Kalkül
Lisp implementiert den Lambda-Kalkül nur ungenau
Nach dessen Definition ist λxy.Funktionskörper äquivalent zu λx.λy.Funktionskörper
da bei einem Aufruf der Funktion mit 2 Argumenten die äußere Funktion das erste Argument und die innere Funktion das zweite Argument konsumiert. (s
Currying) Folglich sollten auch diese beiden Lisp-Ausdrücke äquivalent sein: (lambda (x y) ...) (lambda (x) (lambda (y) ...)) Dies ist jedoch nicht der Fall
verursacht ((lambda (x) (lambda (y) (+ x y))) 1 2) einen Fehler
Während (λx.λy.(x+y)) 1 2 den Wert 3 ergibt
da die äußere Funktion zu viele Argumente erhält und die innere Funktion das zweite Argument nicht konsumiert. [Bearbeiten]
Weblinks
John McCarthys Originalarbeit über Lisp (http://www-formal.stanford.edu/jmc/recursive.html) Eine konzise Einführung in Anlehnung an McCarthys Arbeit (http://www.paulgraham.com/lib/paulgraham/jmc.ps) Common Lisp HyperSpec (http://www.lispworks.com/reference/HyperSpec/Front/index.htm) – Referenz für den Common Lisp Standard Ein interaktiver LISP-Kurs (http://www.psychologie.uni-trier.de/projects/ELM/elmart.html) Clisp – ein Open Source Common LISP für verschiedene Plattformen (http://clisp.sourceforge.net/) Lispworks – Eine für Privatpersonen kostenlose LISP Entwicklungsumgebung (http://www.lispworks.com/) Franz - Eine weitere Lisp Entwicklungsumgung mit einer kostenlosen Trial-Version (http://www.franz.com/) Slime (http://common-lisp.net/project/slime/) – eine freie Common LISP Entwicklungsumgebung zur Basis von Emacs Structure and Interpretion of Computer Programms (http://www.mitpress.mit.edu/sicp/) (kostenloses eBook
englisch) cs:Lisp da:Lisp en:Lisp programming language eo:LISP (programlingvo) es:Lisp fr:Lisp he:LISP hu:Lisp programozási nyelv it:Lisp ja:LISP ko:리스프 프로그래ë°? 언어 lt:Lisp nl:Lisp pl:LISP pt:LISP ru:ЛиÑ?п sv:Lisp tr:Lisp zh:LISP
englisch) Paul Graham On Lisp (http://www.paulgraham.com/paulgraham/onlisp.html) (kostenloses eBook
Dieser Artikel basiert auf dem Artikel
LISP
aus der freien Enzyklopädie
wikipedia
und steht unter der
GNU Lizenz für freie Dokumentation
. In der wikipedia ist eine
Liste der Autoren
verfügbar.
Hyperlink
Leni Riefenstahl
Low-Key-Beleuchtung
Ludwig Erhardt
Ludwig Wittgenstein
Lanthan
Lithium
Lutetium
[ Zurück ]
Inhalt Lexikon:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
1
2
3
4
5
6
7
8
9
Chat
|
Lexikon
|
Reisen
|
Versicherung
|
Forum
|
Kontakt