Zum Inhalt springen

APL (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 15. Mai 2005 um 22:46 Uhr durch IgelKai (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Überblick

APL, abgekürzt für A Programming Language, ist eine interpretierte Programmiersprache. Sie wurde von Kenneth E. Iverson und seinen Kollegen bei IBM in der 60er Jahren entwickelt und war auf Großrechnern wie auch auf Vorläufern des Personal Computers populär. Sie gilt als zweitälteste Programmiersprache nach FORTRAN. Für die Erstellung der Quelltexte wird ein spezieller Zeichensatz benötigt, so dass man ein spezielles EPROM benötigte. Heute reicht die Installation eines APL-Zeichensatzes aus. Außerdem wurden seinerzeit natürlich spezielle Tastaturen verwendet, die später durch eine Bildschirmanzeige der Tastaturbelegung ersetzt wurden.

Besonderheiten

Interaktivität

APL ist interaktiv: nach der Eingabe eines Befehls bzw. einer Reihe von Befehlen drückt man <Enter>, und der/die Befehle werden vom Interpreter ausgeführt. Tritt ein Fehler auf, erhält man eine entsprechende Meldung. Man kann seine Eingabe modifizieren und erneut ausführen. Die dadurch mögliche direkte Interaktion mit dem Computer ist bis heute zweifellos einer der großen Vorteile von APL.

Datentypen

APL kennt die Datentypen Char, Bool, Int und Float, allerdings muss der Programmierer dies nicht unbedingt wissen bzw. berücksichtigen, denn der Interpreter wandelt die Datentypen automatisch um, wann immer dies notwendig ist. Dies bedeutet natürlich auch, dass APL keine Typenprüfung kennt.

Speicherverwaltung

Auch die Speicherverwaltung wird vom Interpreter übernommen. Ein APL-Programmierer muss sich weder um das Reservieren noch um das Freigeben von Speicher kümmern.

Funktionen und Operatoren

APL kennt sowohl Funktionen als auch Operatoren, aber die Bedeutung der Begriffe ist anders als in der Mathematik: Funktionen werden auf Daten angewendet, Operatoren auf Funktionen und Daten.

Array-Verarbeitung

Eine weitere Besonderheit von APL: fast alle Funktionen sind non-skalar ausgelegt. Dies bedeutet, dass Funktionen nicht nur auf einzelne Skalare, sondern auch auf Vektoren, Matrizen und vieldimensionale Daten angewendet werden können.

Beispiele

In jeder Programmiersprache geht dies:

 2 + 3
 5

In APL geht aber auch:

 2 3 4 + 3
 5 6 7

und auch dies:

 2 3 4 + 5 6 7
 7 9 11

Mächtigkeit und Lesbarkeit

APL ist mächtig: Keine andere Sprache kann mit dieser Kürze und Stringenz aufwarten. Wo in anderen Programmiersprachen viele Zeilen vonnöten sind, reicht bei APL häufig schon ein Statement mit einigen wenigen Symbolen aus. Natürlich bedeutet dies zugleich, dass ein APL-Statement auch schwerer zu verstehen ist.

Schnelligkeit

Da APL interpretiert wird, ist es vergleichsweise langsam in der Ausführung. Dies macht sich besonders dann unangenehm bemerkbar, wenn man sich um einzelne Datenteilchen kümmern muss, zum Beispiel in einem KeyPress-Event-Handler. Andererseits umfasst APL einen großen Vorrat hochspezialiserter Funktionen, die für die Verarbeitung großer Arrays optimiert sind. In solchen Fällen können APL-Programme erstaunlich schnell sein.

Aktuelle Situation

Bis ca. 1985 war die IBM mit ihrem APL2-Interpreter auf PCs wie auf Mainframes der führende Anbieter. In den folgenden knapp 10 Jahren wurde die Sprache dann aber nicht nennenswert weiterentwickelt. Erst seit ca. 1992 haben kleinere Software-Firmen (APL2000, Dyalog APL) APL kontinuierlich weiterentwickelt. Mittlerweile habe diese Implementierungen IBM's APL2 in Sachen Leistungsfähigkeit weit hinter sich gelassen.

Die derzeit beste Implementierung, Dyalog APL, wurde von Microsoft in den Kreis der anerkannten .NET-Sprachen aufgenommen.

In den EDV-Abteilungen großer wie mittelgroßer Firmen konnte sich APL nie richtig durchsetzen. In diesem Bereich hat es in Deutschland daher kaum noch Bedeutung. In der Banken- und Versicherungsbranche wird es mitunter noch in alten Anwendungen eingesetzt.

Heute wird APL in kleinen Projekten von spezialisierten Software-Firmen eingesetzt sowie als Werkzeug von Fachleuten, die keine Programmierer sein. Auch in den Fachabteilungen größerer Unternehmen wird es immer noch gerne eingesetzt.

Implementierungen

Periodika

Über APL