Fortress — это прекращенный экспериментальный язык программирования для высокопроизводительных вычислений , созданный Sun Microsystems при финансовой поддержке проекта DARPA High Productivity Computing Systems . Одним из разработчиков языка был Гай Л. Стил-младший , чья предыдущая работа включала Scheme , Common Lisp и Java .
Название «Крепость» должно было означать безопасный Фортран , то есть «язык для высокопроизводительных вычислений, который обеспечивает абстракцию и безопасность типов наравне с принципами современных языков программирования». [1] Возможности языка включали неявный параллелизм , поддержку Unicode и конкретный синтаксис , похожий на математическую нотацию . Язык не был разработан, чтобы быть похожим на Фортран. Синтаксически он больше всего напоминает Scala , Standard ML и Haskell . Fortress с самого начала разрабатывался с учетом нескольких синтаксических таблиц стилей. Исходный код может быть отображен как текст ASCII , в Unicode или как красивое изображение. Это позволит поддерживать математические символы и другие символы в отображаемом выводе для облегчения чтения. Инструмент fortify на основе emacs преобразует исходный код Fortress на основе ASCII в выходные данные LaTeX . [2]
Fortress также был спроектирован как высокопараллельный и обладающий богатой функциональностью, содержащейся в библиотеках, основанных на Java. Например, for
конструкция цикла представляла собой параллельную операцию, которая не обязательно выполнялась строго линейно, в зависимости от базовой реализации. Однако эта for
конструкция представляла собой библиотечную функцию и могла быть заменена другой версией по вкусу программиста, а не встроена в язык.
Разработчики Fortress максимально приблизили синтаксис к псевдокоду и проанализировали сотни статей, курсов, книг и журналов по информатике и математике , используя псевдокод, чтобы извлечь общие шаблоны использования английского языка и стандартные математические обозначения, используемые для представления алгоритмов в псевдокоде. . Затем они заставили компилятор пытаться поддерживать однозначное соответствие между псевдокодом и исполняемым файлом Fortress. [3] [ нужен лучший источник ]
Fortress был одним из трех языков, созданных при финансовой поддержке проекта «Вычислительные системы высокой производительности» ; остальными были X10 от IBM и Chapel от Cray, Inc. В ноябре 2006 года, когда DARPA одобрило финансирование третьей фазы проекта HPCS, X10 и Chapel получили финансирование, а Fortress — нет, [4] что привело к неопределенности относительно будущего Fortress.
В январе 2007 года Fortress был выпущен с открытым исходным кодом. [5] Версия 1.0 спецификации языка Fortress была выпущена в апреле 2008 года вместе с совместимой реализацией, предназначенной для виртуальной машины Java .
В июле 2012 года Стил объявил, что активная разработка Fortress прекратится после непродолжительного периода свертывания, сославшись на сложности с использованием системы типов Fortress на существующих виртуальных машинах. [6]
Это версия Fortress архетипической программы hello world , представленная в справочной карте Fortress : [2]
компонент приветэкспортировать исполняемый файлrun() = println("Привет, мир!")конец
Оператор экспорта делает программу исполняемой, и каждая исполняемая программа в Fortress должна реализовывать функцию run() . Файл, в котором программа сохраняется для компиляции, должен иметь то же имя, что и имя, указанное в исходном операторе компонента . Функция println() выводит сообщение «Hello, World!» слова на экране.