LISP (list processing language)

Von allen höheren Programmiersprachen ist LISP (List Processing Language) die zweitälteste Programmiersprache. Nur noch Fortran ist älter als Lisp. Die Grundideen des Lisp wurde ab dem Jahre 1956 von John McCarthy an der MIT in Cambridge entwickelt. Die ersten Implementierungen und Tests erfolgten 1958-1962 auf einer IBM-Maschine. Es wurde damals oft darüber diskutiert, ob Lisp oder Fortran die erste höhere Programmiersprache werden soll.


Die zur damaligen Zeit sehr teuren Kernspeicher und die sich zunächst anbahnende hauptsächliche numerische Nutzung der Computer führten zur Entscheidung zu Gunsten von Fortran, was sich in den nachfolgenden Jahrzehnten als richtig erweisen sollte. Die direkte Adressierung, statische Speicherbelegung u.a.m. bei Fortran erlaubten nicht nur einen sparsamen Umgang mit dem Kernspeicher, sondern brachten auch eine höhere Effizienz in Bezug auf die Rechengeschwindigkeit.

Die Entwicklung von LISP

Nachdem IBM und danach fast alle Firmen auf Fortran setzten, entwickelte sich Lisp nur an Universitäten weiter, insbesondere an MIT und an der Stanford University. Im Jahre 1962 standen schließlich auch der Öffentlichkeit ein Lisp-Übersetzer und das Manual von John McCarthy "Lisp 1.5 Programmers Manual" zur Verfügung.

Beginnend mit diesen ersten Implementierungen und auch viele Jahre danach hatte man auf den sogenannten "pure Lisp" gesetzt. Der "pure Lisp" war völlig frei von Seiteneffekten. Im Wesentlichen geht es darum, dass bei der Auswertung der programmierten Ausdrücke keine ungewollten Veränderungen anderer Werte auftreten. Außerdem hatte man auf die in anderen höheren Sprachen üblichen Schleifen, DO-Schleifen oder ähnliches verzichtet und versuchte, allein mit Rekursionen auszukommen. Diese beiden und einige andere Ideen sind dann jedoch zum Teil aufgegeben worden.

Lisp ist im Vergleich zu anderen höheren Sprachen der genannten Zeit etwas ganz anderes. Während bei den meisten höheren Sprachen die statische Datenverwaltung überwiegt, werden bei Lisp die Daten hauptsächlich dynamisch oder in Stapeln abgelegt, was eine fast beliebige Erweiterung der Dateien auch während der Ausführung der Programme ermöglicht. In Lisp sind sowohl Programme als auch Daten Listen. Die Elemente der Listen sind entweder weitere Listen oder Atome als kleinste semantische Elemente. Die Sprache verarbeitet primär symbolische Ausdrücke. Sie verfügt über viele und recht effiziente Funktionen zur Verarbeitung von Listen.

Die Syntax und Semantik von LISP

Lisp hat eine sehr flexible Syntax und Semantik, wodurch die Programmierung komplizierter Prozesse, z.B. im Rahmen der Künstlichen Intelligenz (KI), erleichtert oder gar erst ermöglicht wird. So entwickelte sich diese Sprache parallel mit den Bemühungen der Universitäten und der Firmen in den USA um die Verwirklichung der intelligenten Software. In den nachfolgenden Jahren kam es zu zahlreichen Implementierungen von Lisp, die aber untereinander nur wenig kompatibel waren. So sind heute mehr als ein Dutzend Lisp-Dialekte bekannt. Es wurde dabei auch immer häufiger von einigen Prinzipien des "pure Lisp" abgewichen, hauptsächlich aus Gründen der Praktikabilität und der Recheneffizienz. Die vielen, recht verschiedenen Implementierungen förderten zwar die Entwicklung des Lisp, behinderten aber zugleich die Verbreitung der Sprache.

Wegen der großen Anzahl der Lisp-Dialekte hat man in Ende der achtziger Jahre in den USA ein umfangreiches Projekt aufgegriffen mit dem Ziel, Lisp weitgehend zu standardisieren. Das Ergebnis ist Common-Lisp, welches die Grundlage für die spätere Erweiterung zu Common Lisp Object System (CLOS) -mit der dann realisierten Möglichkeit der Objektorientierten Programmierung - bildete.

Informationen zum Artikel
Deutsch:
Englisch: list processing language - LISP
Veröffentlicht: 08.11.2013
Wörter: 561
Tags: #Sonstige Programmiersprachen
Links: Adressierung, CLOS (common LISP object system), Computer, Datei, Daten