Cluster (Programmiersprache)
# Cluster (Programmiersprache)

Cluster ist eine Programmiersprache, die Anfang der 1990er von Thomas Pfrengle und Ulrich Sigmund (StoneWare) für das Amiga-Graphikkartensystem EGS entwickelt wurde. Sie ist ein Dialekt der Programmiersprache Modula-2 mit Anleihen aus Oberon (objektorientierte Elemente) und Ada (Ausnahmebehandlung).

## Eigenschaften

* strenge und statische Typen
   * Ordinale Typen: Ganze Zahlen, Aufzählungen, Zeichen, Wahrheitswerte
   * Unterbereiche ordinaler Typen
   * Mengen über ordinalen Typen
   * Felder mit ordinalen Typen für Indizes
   * Gleitkommazahlen
   * Texte
   * Tags, eine Besonderheit des Amiga-Betriebssystems: Paare aus einer Eigenschaft und einem Parameter
   * Datenverbünde und Objekte
   * Unterprogramme und Funktionen
* Module
* Generische Module ohne Maschinencodevervielfältigung
* Objektorientierung (Mehrfachvererbung in Ansätzen)
* automatische Freigabe von Ressourcen, wie Speicher, Fenster, Dateizugriffen usw.; es kann allerdings leicht passieren, dass Ressourcen zu früh freigegeben werden
* Ausnahmebehandlung (Exceptions)
* nebenläufige Programmierung in Ansätzen (Threads)
* Unterstützung von Aufrufen von AmigaOS-Funktionsbibliotheken
* maschinennahe Programmierelemente (Abfrage von Prozessorflags, eingebettete Assemblerprogramme)

## Projekte

Die wohl bekanntesten mit Cluster realisierten Projekte sind

* die objektorientierte grafische Benutzeroberfläche von EGS,
* die Cluster-Entwicklungsumgebung und
* ein Klangverarbeitungsprogramm namens Assampler.
