Suchen und Finden

Titel

Autor/Verlag

Inhaltsverzeichnis

Nur eBooks für mein Endgerät anzeigen:

 

Newsletter

Visionäre der Programmierung - Die Sprachen und ihre Schöpfer

von: Federico Biancuzzi, Shane Warden

O'Reilly Verlag, 2009

ISBN: 9783897219359, 502 Seiten

Format: PDF, OL

Mac OSX,Windows PC,Mac OSX,Windows PC Apple iPad, Android Tablet PC's Online-Lesen für: Linux,Mac OSX,Windows PC

Preis: 28,00 EUR

Ersparnis: 6,90 EUR

Mehr zum Inhalt

Visionäre der Programmierung - Die Sprachen und ihre Schöpfer


 

KAPITEL DREI: APL (S. 45-46)

Adin D. Falkoff

In den späten 1950er Jahren ersann Kenneth Iverson an der Harvard University eine Erweiterung der mathematischen Notation für die genaue Beschreibung von Algorithmen. Dann wandelte das Team zusammen mit Adin Falkoff und anderen Forschern bei IBM die Notation in eine vollständige Programmiersprache namens APL um. Die Sprache nutzte einen erweiterten Zeichensatz, der eine spezielle Tastatur benötigte und als Strings mit manchmal ungewohnten Symbolen erschien – aber die zugrunde liegende Konsistenz der Sprache erleichterte das Erlernen, und ihre unerreichten Fähigkeiten bei der Verarbeitung von Arrays machten sie außerordentlich mächtig. Ihre Nachfolger im Geiste, J und K, führen APLs Vermächtnis von exakten und mächtigen algebraischen Manipulationen fort.

Papier und Stift

Ich habe einen Artikel von Ihnen und Ken Iverson gelesen, »The Design of APL«, in dem steht, dass die ersten sieben oder acht Jahre der Entwicklung völlig ohne einen Computer verliefen! So konnten Sie Designaspekte ändern, ohne sich um Altlasten kümmern zu müssen. Wie beeinflusste dann die erste Software-Implementierung die Weiterentwicklung der Sprache?

Adin Falkoff: Ja, in den ersten Jahren der Entwicklung von APL, als sie noch keinen anderen Namen hatte als »Iverson’s Notation«, ging es vor allem um mathematische Anwendungen mit Papier und Stift, die Analyse von digitalen Systemen und das Lehren. Wir gingen weitgehend davon aus, dass Programmierung ein Zweig der Mathematik ist, der sich mit dem Entdecken und Entwerfen von Algorithmen befasst, und dieses Konzept wurde durch die symbolische Form der Notation unterstützt. Die Attraktivität der Notation als allgemeine Programmiersprache wurde nach einer Weile offensichtlich und erhielt Unterstützung durch die Arbeit verschiedener Leute (insbesondere Herb Hellerman bei IBM), die mit Maschinenimplementierungen signifikanter Elemente der Notation experimentierten, einschließlich primitiver Funktionen und Array-Operationen. Trotzdem stimmt es, dass wir in dieser Zeit beim Design der Sprache vollständige Freiheit besaßen und uns nicht um »Legacy«-Probleme kümmern mussten.

Die wichtigste frühe Weiterentwicklung der Sprache geschah in zwei Schritten. Der erste war das Schreiben und Veröffentlichen von »The Formal Description of System 360« (IBM Systems Journal, 1964). Um einen Teil des Verhaltens dieses neu entworfenen Computersystems formal beschreiben zu können, waren ein paar Ergänzungen und Modifikationen der in Iversons Buch (A Programming Language [Wiley]) beschriebenen Notation notwendig. Der zweite war das Design eines Kugelkopfes für Selectric-basierte Terminals, um die Sprache auf einem Rechner nutzen zu können. Durch die lineare Natur der Druckausgabe und die mechanischen Anforderungen des Selectric-Mechanismus ergaben sich deutliche Einschränkungen. Ich glaube, im von Ihnen erwähnten Artikel, »The Design of APL« (IBM Journal of Research and Development, 1974) wird einiges zum Einfluss dieser Schritte auf die Entwicklung beschrieben.

Die erste umfassende Implementierung der Sprache war natürlich APL360. Sie enthielt notwendigerweise die Möglichkeit, definierte Funktionen zu schreiben (also Programme) – die manchmal bei der Verwendung von Papier und Stift als gegeben angenommen wurden – und die Umgebung zu kontrollieren, in der die Programme ausgeführt wurden. Die dann eingeführten Ideen, einschließlich des Workspace- und Bibliothekssystems, der Regeln für den Gültigkeitsbereich von Namen und die Nutzung gemeinsam verwendeter Variablen für die Kommunikation mit anderen Systemen, blieben ohne große Änderungen bestehen. Programme, die für APL360 geschrieben wurden, laufen auf den modernen APL-Systemen, die mir bekannt sind, ohne Änderungen.

Es ist fair, zu sagen, dass das Vorhandensein einer Implementierung die weitere Entwicklung der Sprache beeinflusste – durch die strikte Anwendung des Prinzips, dass neue Ideen immer die früheren einbinden müssen, und durch die fortlaufende kritische Begutachtung, wie die Sprache für neue und andere Anwendungen funktioniert.