ABC (Programmiersprache)
ABC | |
---|---|
Paradigmen: | Multiparadigmen-Programmiersprachen: imperative Programmierung, prozedurale Programmierung, strukturierte Programmierung |
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 |
ABC ist eine imperative Allzweck-Programmiersprache und Entwicklungsumgebung, die von Leo Geurts, Lambert Meertens und Steven Pemberton bei CWI, in den Niederlanden, entwickelt wurde. Die Programmiersprache ist interaktiv, strukturiert, hochrangig und soll anstelle von BASIC, Pascal oder AWK verwendet werden. Sie wurde jedoch nicht entwickelt um eine System-Programmiersprache zu sein, sondern um das Unterrichten oder Prototyping zu fördern.
Die Sprache hatte einen großen Einfluss auf das Design der Python-Programmiersprache (als Gegenbeispiel); Guido van Rossum, der Python entwickelte, arbeitete zuvor bereits seit einigen Jahren auf dem ABC-System (anfangs der 80er Jahre)[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 des Weiteren 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 von 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 – und 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
- ↑ "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]).
- ↑ Federico Biancuzzi: Masterminds of Programming: Conversations with the Creators of Major Programming Languages. 2009, ISBN 978-0-596-51517-1, S. 32 (englisch).
- ↑ Computerworld Australia - The leading source of technology news, analysis and tools for IT decision makers, managers and professionals. (Nicht mehr online verfügbar.) Archiviert vom Original am 29. Dezember 2008; abgerufen am 13. März 2017.
- ↑ Bruce Stewart: An Interview with Guido van Rossum - O'Reilly Media. (Nicht mehr online verfügbar.) Archiviert vom Original am 13. März 2013; abgerufen am 13. März 2017. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.