ABC (Programmiersprache)

ABC
Paradigmen: Multiparadigmen-Programmiersprachen: imperative Programmierung, prozedurale Programmierung, strukturierte Programmierung
Erscheinungsjahr: 1975
Designer: Leo Geurts, Lambert Meertens, Steven Pemberton
Entwickler: CWI
Aktuelle Version: 1.05.02  ()
Typisierung: Starke Typisierung, Polymorphie
Beeinflusst von: SETL & Algol 68[1]
Beeinflusste: Python
homepages.cwi.nl/~steven/abc/

ABC ist eine imperative Allzweck-Programmiersprache und Entwicklungsumgebung, die von Leo Geurts, Lambert Meertens und Steven Pemberton am nationalen Forschungsinstitut für Mathematik und Informatik der Niederlande (CWI) in Amsterdam entwickelt wurde. ABC ist eine interaktiv, strukturierte und höhere Programmiersprache, die anstelle von BASIC, Pascal oder AWK verwendet werden kann. Wie ursprünglich BASIC und Pascal wurde auch ABC als Lehrsprache entwickelt, um Technikern und Wissenschaftlern das Erlernen der Softwareentwicklung oder Prototyping zu erleichtern.

Die Sprache hatte einen großen Einfluss auf das Design der ebenfalls am CWI entstandenen Programmiersprache Python, da deren Entwickler Guido van Rossum seit Anfang der 80er Jahre mit ABC gearbeitet hatte und u. a. mit der fehlenden Erweiterbarkeit von ABC unzufrieden war.[2][3][4]

Funktionen

Die Entwickler der Programmiersprache behaupten, dass ABC-Programme nur rund ein Viertel der Größe eines entsprechenden Pascal- oder C-Programm einnehmen würden und besser lesbar seien. Einige Hauptmerkmale der Programmiersprache sind:

  • nur fünf Grunddatentypen
  • Variablen müssen nicht deklariert werden
  • Explizite Unterstützung für Top-Down-Programmierung.
  • unendliche Präzisionsarithmetik, unbegrenzte Listen und Strings und andere Merkmale, die Orthogonalität und Benutzerfreundlichkeit für Anfänger unterstützen

ABC war ursprünglich eine monolithische Implementierung, was dazu führte, dass es nicht möglich war sich an neue Anforderungen anzupassen, wie beispielsweise das Erstellen einer grafischen Benutzeroberfläche. Des Weiteren konnte ABC nicht direkt auf das zugrunde liegende Dateisystem und Betriebssystem zugreifen.

Das vollständige ABC-System umfasst eine Programmierumgebung mit syntaxgesteuerter Bearbeitung, Vorschlägen, persistenten Variablen und mehreren Arbeitsbereichen. Es ist als Interpreter / Compiler aktuell (mit Version 1.05.02) auf Unix, DOS, Atari und Apple verfügbar.

Beispiel

Eine Beispielfunktion, um die Menge aller Wörter in einem Schriftstück zu sammeln:

PUT {} IN collection
FOR line IN document:
    FOR word IN split line:
        IF word not.in collection:
            INSERT word IN collection
RETURN collection

Einzelnachweise

  1. "He was clearly influenced by Algol 68's philosophy of providing constructs that can be combined in many different ways to produce all sorts of different data structures or ways of structuring a program." - Guido van Rossum Federico Biancuzzi, Shane Warden: Masterminds of Programming: Conversations with the Creators of Major Programming Languages. Hrsg.: O’Reilly Media. 2009, ISBN 0-596-51517-0, S. 32 (Google Books [abgerufen am 14. Dezember 2009]).
  2. Federico Biancuzzi: Masterminds of Programming: Conversations with the Creators of Major Programming Languages. 2009, ISBN 978-0-596-51517-1, S. 32 (englisch).
  3. Computerworld Australia - The leading source of technology news, analysis and tools for IT decision makers, managers and professionals. Archiviert vom Original (nicht mehr online verfügbar) am 29. Dezember 2008; abgerufen am 13. März 2017.
  4. Bruce Stewart: An Interview with Guido van Rossum - O'Reilly Media. Archiviert vom Original am 13. März 2013; abgerufen am 21. März 2024.