Введение

Fortress — это прекращенный экспериментальный язык программирования, разработанный Sun Microsystems для высокопроизводительных вычислений при финансировании проекта DARPA High Productivity Computing Systems. Одним из создателей языка был Гай Л. Стил-младший, ранее работавший над Scheme, Common Lisp и Java.

Дизайн

Название "Fortress" было задумано как обозначение безопасного Fortran, то есть "языка для высокопроизводительных вычислений, обеспечивающего абстракцию и типобезопасность на уровне современных принципов программирования". Особенности языка включали неявный параллелизм, поддержку Unicode и конкретный синтаксис, близкий к математической нотации. Язык не разрабатывался как похожий на Fortran. Синтаксически он наиболее близок к Scala, Standard ML и Haskell. Fortress изначально проектировался с возможностью использования нескольких стилей синтаксиса. Исходный код можно представить в виде текста ASCII, в Unicode или в виде отформатированного изображения. Это позволяло поддерживать математические и другие символы в отображаемом выводе для облегчения чтения. Инструмент fortify, основанный на Emacs, преобразует исходный код Fortress, основанный на ASCII, в выходной формат LaTeX. Fortress также был разработан для обеспечения высокой степени параллелизма и богатой функциональности, реализованной в библиотеках, с использованием опыта Java. Например, конструкция цикла for была параллельной операцией, которая не обязательно выполнялась строго линейно, в зависимости от базовой реализации. Однако конструкция for являлась функцией библиотеки и могла быть заменена другой версией по желанию программиста, а не встроена в сам язык. Разработчики Fortress стремились сделать его синтаксис максимально приближенным к псевдокоду и проанализировали сотни научных работ, учебных курсов, книг и журналов по информатике и математике, использующих псевдокод, чтобы выявить общие закономерности использования английского языка и стандартной математической нотации при представлении алгоритмов в псевдокоде. Затем они разработали компилятор, стремясь обеспечить соответствие один к одному между псевдокодом и исполняемым кодом Fortress.

История

Fortress был одним из трех языков программирования, созданных при финансировании проекта High Productivity Computing Systems; другими были X10, разработанный IBM, и Chapel от Cray, Inc. В ноябре 2006 года, когда DARPA одобрило финансирование третьей фазы проекта HPCS, финансирование получили X10 и Chapel, но не Fortress, что вызвало неопределенность в отношении будущего Fortress. В январе 2007 года Fortress был выпущен под открытой лицензией. Версия 1.0 спецификации языка Fortress была опубликована в апреле 2008 года вместе с реализацией, соответствующей спецификации и ориентированной на виртуальную машину Java. В июле 2012 года Стил объявил о прекращении активной разработки Fortress после непродолжительного периода завершения работ, объяснив это сложностями, возникшими при использовании системы типов Fortress на существующих виртуальных машинах.