Fortress war eine von Sun Microsystems Laboratories entwickelte Forschungssprache für paralleles Rechnen. Das Projekt wurde maßgeblich von Guy L. Steele Jr. geleitet und 2006 erstmals vorgestellt. Fortress sollte die Lehren aus Java auf die Programmierung von Multicore- und Massiv-Parallel-Systemen übertragen — der Name ist bewusst an „Fortran“ angelehnt, weil numerisches Rechnen im Fokus stand.
Design und Besonderheiten
- Parallele Schleifen als Sprachkonstrukt:
for i <- 1:10 do ... endführt Iterationen automatisch parallel aus. - Locales und Regionen: Verteilte Speicherhierarchien werden explizit adressiert (
do ... in locale). - Mathematische Notation: Unicode-basierte Syntax erlaubt
x := 1, griechische Symbole und Formeln wie im Mathematikbuch; Kommentare(*) ... *). - Beliebig große Zahlen: Die Typen
ZZ(unbegrenzte Ganzzahlen) undRR(reelle Zahlen) sind eingebaut — kein Overflow wie bei festen Breiten. - Zwanglose Parallelität: Ausdrücke sind nebenläufig auswertbar, wo es keine Abhängigkeiten gibt;
atomic-Blöcke und Transaktionen ergänzen das Modell.
Kommandozeile
fortress script.frs // Interpreter fuer Fortress-Programme
fortressc // Compiler (JVM-Backend)
fortress -e "..." // Ausdruck direkt auswerten
fortress -p file.frs // Parser-Test
Ein klassisches Hallo-Welt-Programm:
component hello
export Executable
run() = println("Hallo Fortress")
end
Projektende
Nach der Übernahme von Sun durch Oracle wurde das Fortress-Projekt im Juli 2012 eingestellt. Die Spezifikation (Version 1.0) und die Referenzimplementierung wurden als Open Source veröffentlicht und sind weiterhin archiviert. Fortress gilt heute als wichtiger Meilenstein der Parallelsprachen-Forschung — viele Ideen wie explizite Nebenläufigkeit und mathematische Syntax fanden später Eingang in andere Sprachen.
Verwandte Grundlagen
Fortress steht in der Tradition von Java-Befehle (Sun-Herkunft) und Haskell-Befehle (funktionale Wurzeln). Parallelitäts-Konzepte vertiefen Nebenläufigkeit, Multikern-Prozessor und Amdahlsches Gesetz.