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." 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 named
fortify transforms ASCII-based Fortress source code into
LaTeX output. 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. == History ==