Information Technology Reference
In-Depth Information
(( ATOM X ) ( COND
(( ATOM Y )( EQ X Y ))
(( QUOTE T )( QUOTE F ))))
(( ATOM Y ) ( QUOTE F ))
(( EQUAL ( CAR X )( CAR Y )) ( EQUAL ( CDR X ) ( CDR Y )))
(( QUOTE T ) ( QUOTE F )))
transformiert werden.
Durch ihre Anlehnung an den Lambda-Kalkül war die
Sprache LISP eine der ersten Implementierungen eines Lo-
gikkalküls auf einem Computer. Sie war besonders im Be-
reich der Künstlichen Intelligenz verbreitet.
allerdings selbst in einer einfachen Teilsprache von LISP
geschrieben war, war dadurch streng genommen allerdings
keine Semantik deiniert.
Diese Art der Semantikdeinition funktionierte nur da-
durch, dass für die im Interpretierer verwendete Teilsprache
ein sehr einfaches intuitives Verständnis vorausgesetzt wer-
den konnte.
Somit existierten zwei Darstellungsformen für Pro-
gramme: In der Form, in der u. a. der Interpretierer geschrie-
ben war (Meta-Sprache) und in der Form von Daten (S-Aus-
drücke), wie sie der Interpretierer als Eingabe erwartete.
In ihrer ursprünglichen Form war es eine einfache Spra-
che, die sich stark an dem Lambda-Kalkül orientierte. Sie
besaß nur einen Datentyp (binäre Bäume), fünf Basisopera-
toren, einen Verzeigungsoperator und einen Vergleichsope-
rator.
Ausgehend von LISP-1.5 entstanden jedoch eine Reihe
von großen LISP-Systemen, wie z. B. INTERLISP, MAC-
LISP und CommonLISP. Die Erweiterungen lassen sich grob
in folgende Kategorien einteilen:
• Erweiterungen um zusätzliche (atomare) Datentypen.
• Erweiterungen um zusätzliche Basisfunktionen (meh-
rere Hundert !!!), teils in Maschinencode, teils in LISP
programmiert.
• Konzeptionelle Erweiterungen.
• Erweiterungen des Systems zu einer integrierten Pro-
grammierumgebung mit Editoren, Debugger, Tracer,
Interfaces zu anderen Sprachen usw.
• LISP-Compiler.
Ein Nachteil von LISP war, dass, bedingt durch die beson-
ders dynamischen Strukturen, die Programme im Wesentli-
chen interpretiert wurden, was zu relativ langen Laufzeiten
führte. Daher entwickelte man spezielle LISP-Maschinen,
die viele Funktionalitäten von LISP hardwaremäßig unter-
stützten. Erst Anfang der 80er-Jahre gelang es F.M. Simon
und W.-M. Lippe an der Universität Kiel, Übersetzertechni-
ken auf der Basis der ALGOL-Display-Technik für LISP zu
entwickeln.
Das folgende LISP-Programm überprüft zwei Daten (Bi-
näre Bäume x und y ) auf ihre Gleichheit:
COBOL
Der erste Entwurf für COBOL entstand im Jahre 1960. Der
Name steht für CO mmon B usiness O rientated L anguage . Als
Grundlage für COBOL diente unter anderem die Program-
miersprache FLOW-MATIC und die Sprache COMTRAN ,
die 1957 von Bob Bemer bei IBM entwickelt worden war.
John Backus speziizierte die Syntax für COBOL. Ab 1959
wurde die Entwicklung unter der Regie von IBM von einem
gemeinsamen Komitee geleitet, welches im Jahre 1960 seinen
ersten Report vorlegte.
Da die von IBM zuvor entwickelte Sprache FORTRAN
primär für den wissenschaftlichen Bereich ausgelegt war,
wurde bei der Entwicklung von COBOL das Ziel gesetzt,
eine leicht lesbare Sprache zu schaffen, deren Hauptaufgabe
die Verarbeitung von Daten und Texten sein sollte. Da man
in COBOL sehr einfach Zahlen formatieren, ausgeben und
sortieren konnte, und auch die Bearbeitung von Texten für die
damalige Zeit sehr komfortabel war, war es insbesondere für
die Erstellung von kaufmännischer Software geeignet. Es ver-
breitete sich schnell in der Wirtschaft, bei Banken und in der
Verwaltung. Auch heute sind noch viele COBOL-Programme
im Einsatz.
Die angestrebte leichte Lesbarkeit wurde jedoch nur sehr
eingeschränkt erreicht. So war COBOL extrem textlastig.
Bevor der Programmierer seine erste Zeile an ausführbarem
Code erstellen konnte, musste er zunächst fast eine halbe
Seite an Deinitionen schreiben. Mathematische Operationen
hatten extrem lange Namen (MOVE ZERO TO XYZ; MUL-
TIPLY XYZ BY 5 …). Dazu kamen unzählige Parameter bei
einzelnen Befehlen. Des Weiteren kannte auch COBOL die
bereits in FORTRAN berüchtigten GOTO Sprungmarken, die
ein strukturiertes Programmieren erschwerten. Sie mussten in
COBOL fast noch öfters als in FORTAN verwendet werden,
denn es gab keine echten Unterprogramme mit Rücksprün-
gen.
Auch COBOL wurde standardisiert. Auf den ersten Stan-
dard von 1960 folgten weitere 1968, 1974, 1985 und 2002.
Doch ähnlich zu FORTRAN ging die Weiterentwicklung von
Cobol nur langsam voran und es wurden keine Anstrengungen
unternommen, das Einsatzspektrum von Cobol zu erweitern.
Ein COBOL-Programm war in Teile (DIVISION), Kapi-
tel (SECTION) und Abschnitte (PARAGRAPH) gegliedert.
label [ equal ; λ [ [ x ; y ];
[ atom [ x ] → [ atom [ y ] → eq [ x ; y ];
T F
];
atom [ y ] → F ;
equal [ car [ x ]; car [ y ]] → equal [ cdr [ x ]; cdr [ y ]];
T F
]]]
Um dieses Programm interpretieren zu lassen, musste es
erst in den binären Baum (Liste)
( LABEL EQUAL ( LAMBDA ( X Y )
( COND
 
 
Search WWH ::




Custom Search