Крепость (язык программирования)
![]() | в этой статье Использование внешних ссылок может не соответствовать политике и рекомендациям Википедии . ( сентябрь 2016 г. ) |
Разработчик | Сан Лабс |
---|---|
Впервые появился | 2006 |
Финальный выпуск | 1.0_5033 / 7 сентября 2011 г |
Дисциплина набора текста | Статический |
Платформа | Ява ЮВ 1.6+ |
ТЫ | Кросс-платформенный |
Лицензия | БСД |
Веб-сайт | github |
Под влиянием | |
Фортран , Скала , Хаскелл |
Fortress — это прекращенный экспериментальный язык программирования для высокопроизводительных вычислений , созданный Sun Microsystems при финансовой поддержке проекта DARPA Systems High Productivity Computing . Одним из разработчиков языка был Гай Л. Стил-младший , чьи предыдущие работы включали Scheme , Common Lisp и Java .
Дизайн
[ редактировать ]Название «Крепость» должно было означать безопасный Фортран , то есть «язык для высокопроизводительных вычислений, который обеспечивает абстракцию и безопасность типов наравне с принципами современных языков программирования». [1] Возможности языка включали неявный параллелизм , поддержку Unicode и конкретный синтаксис, аналогичный математической записи . Язык не был разработан, чтобы быть похожим на Фортран. Синтаксически он больше всего напоминает Scala , Standard ML и Haskell . Fortress с самого начала проектировался с возможностью использования нескольких синтаксических таблиц стилей. Исходный код может быть отображен как ASCII текст , в Unicode или как красивое изображение. Это позволит поддерживать математические символы и другие символы в отображаемом выводе для облегчения чтения. Инструмент emacs на основе fortify преобразует исходный код Fortress на основе ASCII в выходные данные LaTeX . [2]
Fortress также был спроектирован как высокопараллельный и обладающий богатой функциональностью, содержащейся в библиотеках, основанных на Java. Например, for
Конструкция цикла представляла собой параллельную операцию, которая не обязательно выполнялась строго линейно, в зависимости от базовой реализации. Однако for
Конструкция была библиотечной функцией и могла быть заменена другой версией по вкусу программисту, а не встроена в язык.
Разработчики Fortress максимально приблизили синтаксис к псевдокоду и проанализировали сотни статей, курсов, книг и журналов по информатике и математике , используя псевдокод, чтобы извлечь общие шаблоны использования английского языка и стандартные математические обозначения, используемые для представления алгоритмов в псевдокоде. . Затем они заставили компилятор пытаться поддерживать однозначное соответствие между псевдокодом и исполняемым файлом Fortress. [3] [ нужен лучший источник ]
История
[ редактировать ]Fortress был одним из трех языков, созданных при финансовой поддержке проекта «Вычислительные системы высокой производительности» ; остальными были X10 от IBM и Chapel от Cray, Inc. В ноябре 2006 года, когда DARPA одобрило финансирование третьей фазы проекта HPCS, X10 и Chapel получили финансирование, а Fortress — нет. [4] что приводит к неуверенности в будущем Крепости.
В январе 2007 года Fortress был выпущен с открытым исходным кодом. [5] Версия 1.0 спецификации языка Fortress была выпущена в апреле 2008 года вместе с совместимой реализацией, предназначенной для виртуальной машины Java .
В июле 2012 года Стил объявил, что активная разработка Fortress прекратится после непродолжительного периода свертывания, сославшись на сложности с использованием системы типов Fortress на существующих виртуальных машинах. [6]
Пример: Привет, мир!
[ редактировать ]Это версия Fortress архетипической программы hello world , представленной в справочной карте Fortress : [2]
component helloexport Executablerun() = println(“Hello, World!”)end
Оператор экспорта делает программу исполняемой , и каждая исполняемая программа в Fortress должна реализовывать функцию run() . Файл, в котором программа сохраняется для компиляции, должен иметь то же имя, что и имя, указанное в исходном операторе компонента . Функция println() выводит сообщение «Hello, World!» слова на экране.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Эрик Аллен; Дэвид Чейз; Джо Халлетт; Виктор Лучанко; Ян-Виллем Мессен; Сукён Рю; Гай Л. Стил младший; Сэм Тобин-Хохштадт; и др. (31 марта 2008 г.). «Спецификация языка Fortress: версия 1.0» (PDF) . www.research.sun.com . Сан Микросистемс. Архивировано из оригинала (PDF) 20 января 2013 г.
- ^ Jump up to: а б «Справочная карта проекта Крепость» (PDF) . Java.net . Архивировано из оригинала (PDF) 4 марта 2016 г. Проверено 24 сентября 2016 г.
- ^ "псевдокод - Стандарты псевдокода?" . Переполнение стека. 16 октября 2009 г. Проверено 24 сентября 2016 г.
- ^ Джош Саймонс (22 ноября 2006 г.). «Солнце не выбрано для фазы III HPCS: мои мысли» . Пупок Нарцисса . Архивировано из оригинала 6 января 2012 г. – на сайте blogs.oracle.com.
- ^ «Что такого крутого в Fortress» . gbcacm.org . Большое Бостонское отделение ACM. Архивировано из оригинала 02 августа 2012 г.
- ^ Глс-Оракул (20 июля 2012 г.). «Завершение крепости» . Проект Крепость . Архивировано из оригинала 24 сентября 2016 г. – на сайте blogs.oracle.com.
Внешние ссылки
[ редактировать ]- Сайт проекта «Крепость»
- Активный график спецификации и эталонной реализации
- Спецификация языка Fortress (последняя версия — 1.0, 31 марта 2008 г.)
- The Soul of Fortress - Интервью с разработчиком Fortress Гаем Стилом
- Домашняя страница проекта Fortress с открытым исходным кодом (лицензия BSD)
- Группа исследования языков программирования Sun
- Публикации и спецификации Fortress
- Плагин Fortress для Eclipse (альфа)
- Часто задаваемые вопросы по крепости
- Слайды урока по крепости
- Списки рассылки Fortress
- Лямбда: окончательная статья
- Замена Fortran от Sun становится открытой (CNET News.com, 12 января 2007 г.)
- Презентация крепости
- Параллельно по умолчанию — обзорная презентация крепости с аннотациями
- Языки программирования массивов
- Параллельные языки программирования
- Языки программирования, выпуск которых прекращен
- Семейство языков программирования Фортран
- Языки программирования JVM
- Языки числового программирования
- Языки программирования, поддерживающие единицы измерения
- Языки программирования, созданные в 2006 году.
- Программное обеспечение, использующее лицензию BSD