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 ... end fü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) und RR (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.