Fortress (programming language)

FortressDeveloper| Sun Labs

|

First appeared| 2006
Final release|

1.0_5033 / September 7, 2011; 14 years ago (2011-09-07)

Typing discipline| Static
Platform| Java SE 1.6+
OS| Cross-platform
License| BSD
Website| github.com/stokito/fortress-lang
Influenced by
Fortran, Scala, Haskell

Fortress is a discontinued experimental programming language for high-performance computing, created by Sun Microsystems with funding from DARPA's High Productivity Computing Systems project. One of the language designers was Guy L. Steele Jr., whose previous work includes Scheme, Common Lisp, and Java.

## Contents

* 1 Design
* 2 History
* 3 Example: Hello world!
* 4 See also
* 5 References
* 6 External links

## Design

The name "Fortress" was intended to connote a secure Fortran, i.e., "a language for high-performance computation that provides abstraction and type safety on par with modern programming language principles".[1] Language features included implicit parallelism, Unicode support and concrete syntax similar to mathematical notation. The language was not designed to be similar to Fortran. Syntactically, it most resembles Scala, Standard ML, and Haskell. Fortress was designed from the outset to have multiple syntactic stylesheets. Source code can be rendered as ASCII text, in Unicode, or as a prettied image. This would allow for support of mathematical symbols and other symbols in the rendered output for easier reading. An emacs-based tool called fortify transforms ASCII-based Fortress source code into LaTeX output.[2]

Fortress was also designed to be both highly parallel and have rich functionality contained within libraries, drawing from Java. For example, the `for` loop construct was a parallel operation, which would not necessarily iterate in a strictly linear manner, depending on the underlying implementation. However, the `for` construct was a library function and could be replaced by another version of the programmer's liking rather than being built into the language.

Fortress' designers made its syntax as close as possible to pseudocode and analyzed hundreds of computer science and mathematics papers, courses, books and journals using pseudocode to extract the common usage patterns of the English language and standard mathematical notation when used to represent algorithms in pseudocode. Then they made the compiler trying to maintain a one-to-one correspondence between pseudocode and executable Fortress.[3][better source needed]

## History

Fortress was one of three languages created with funding from the High Productivity Computing Systems project; the others were X10 from IBM and Chapel from Cray, Inc. In November 2006, when DARPA approved funding for the third phase of the HPCS project, X10 and Chapel were funded, but Fortress was not,[4] leading to uncertainty about the future of Fortress.

In January 2007, Fortress was released as open-source.[5] Version 1.0 of the Fortress Language Specification was released in April 2008, along with a compliant implementation targeting the Java Virtual Machine.

In July 2012, Steele announced that active development on Fortress would cease after a brief winding-down period, citing complications with using Fortress's type system on existing virtual machines.[6]

## Example: Hello world!

This is the Fortress version of the archetypal hello world program, as presented in the Fortress Reference Card:[2]

component hello
export Executable
run() = println(“Hello, World!”)
end

The export statement makes the program executable and every executable program in Fortress must implement the run() function. The file where the program is saved for compilation must have the same name as the one specified in the initial component statement. The println() function is what outputs the "Hello, World!" words on the screen.

## See also

* Partitioned global address space
* SISAL

## References

1. ↑ "The Fortress Language Specification: Version 1.0". Sun Microsystems. 2008-03-31. http://research.sun.com/projects/plrg/Publications/fortress.1.0.pdf.
2. ↑ 2.0 2.1 "Project Fortress Reference Card" (PDF). https://java.net/downloads/projectfortress/reference.pdf.
3. ↑ "pseudocode - Standards for pseudo code?". Stack Overflow. 2009-10-16. https://stackoverflow.com/a/2302499.
4. ↑ Josh Simons (November 22, 2006). "Sun Not Selected for HPCS Phase III: My Thoughts". The Navel of Narcissus. https://blogs.oracle.com/simons/entry/sun_not_selected_for_hpcs.
5. ↑ "What's Cool about Fortress". Greater Boston Chapter of the ACM. http://www.gbcacm.org/website/semInfo.php?id=1137.
6. ↑ Gls-Oracle (2012-07-20). "Fortress Wrapping Up". Project Fortress. https://blogs.oracle.com/projectfortress/entry/fortress_wrapping_up.

## External links

* Project Fortress website
* Active Timeline of Specification and Reference Implementation
* The Fortress Language Specification (Latest version is 1.0, March 31, 2008)
* The Soul of Fortress - Interview with Fortress developer Guy Steele
* Fortress Open Source Project Home (BSD License)
* Sun's Programming Language Research Group
* Fortress Publications and Specifications
* Fortress Plugin For Eclipse (alpha)
* Fortress FAQ
* Fortress Tutorial Slides
* Fortress Mailing Lists
* Lambda the Ultimate article
* Sun's Fortran replacement goes open-source (CNET News.com, January 12, 2007)
* Fortress presentation
* Parallel By Default -- An Annotated Fortress Overview presentation

* v
* t
* e

Sun Microsystems (acquired by Oracle Corp, 2010)

Hardware|

* Sun-1
* Sun-2
* Sun-3
* Sun386i
* Sun-4
* SPARCstation
* Netra
* Ultra
* Enterprise
* Sun Blade
* Sun Fire
* SPARC Enterprise
* SPARC
* JavaStation
* Sun Ray
* Sun Modular Datacenter
* more...

Software|

* SunOS
* Solaris
* NIS (+)
* NFS
* ZFS
* SunView
* NeWS
* OpenWindows
* Java Desktop System
* Sun Studio
* Java
* StarOffice
* iPlanet, Sun ONE, Java Enterprise System
* Sun Secure Global Desktop
* MySQL
* Sun xVM
* GlassFish
* VirtualBox
* more...

Storage|

* StorageTek
* Sun Open Storage
* QFS
* ZFS

High-performance computing|

* Sun Cloud
* Sun Constellation System
* Sun Visualization System
* Sun Grid Engine
* Lustre

Research|

* Sun Labs
* picoJava
* Fortress
* Project Looking Glass

Education|

* SCPs
* BlueJ

Community|

* Common Development and Distribution License
* Java Community Process
* NetBeans
* OpenOffice.org
* OpenSolaris
* OpenSPARC
* OpenJDK
* OSUM

People|

* Bill Joy
* Andy Bechtolsheim
* Scott McNealy
* Vinod Khosla
* List of notable employees

* v
* t
* e

Numerical-analysis software

Free|

* Advanced Simulation Library
* ADMB
* Chapel
* Euler
* FEATool Multiphysics
* Fortress
* FreeFem++
* FreeMat
* Genius
* Gmsh
* GNU Octave
* gretl
* Julia
* Maxima
* MFEM
* OpenFOAM
* R
* SageMath
* Salome
* ScicosLab
* Scilab
* X10
* Weka

Proprietary|

* DADiSP
* GAUSS
* LabVIEW
* Maple
* Mathcad
* Mathematica
* MATLAB
* Speakeasy
* VisSim

* List of numerical-analysis software
* Comparison of numerical-analysis software

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Fortress (programming language). Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Fortress_(programming_language)&oldid=177319"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template