stringtranslate.com

Крепость (язык программирования)

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!» слова на экране.

Смотрите также

Рекомендации

  1. ^ Эрик Аллен; Дэвид Чейз; Джо Халлетт; Виктор Лучанко; Ян-Виллем Мессен; Сукён Рю; Гай Л. Стил младший; Сэм Тобин-Хохштадт; и другие. (31 марта 2008 г.). «Спецификация языка Fortress: версия 1.0» (PDF) . www.research.sun.com . Сан Микросистемс. Архивировано из оригинала (PDF) 20 января 2013 г.
  2. ^ ab «Справочная карта проекта Fortress» (PDF) . Java.net . Архивировано из оригинала (PDF) 4 марта 2016 г. Проверено 24 сентября 2016 г.
  3. ^ «псевдокод - Стандарты псевдокода?». Переполнение стека. 16 октября 2009 г. Проверено 24 сентября 2016 г.
  4. Джош Саймонс (22 ноября 2006 г.). «Солнце не выбрано для фазы III HPCS: мои мысли». Пупок Нарцисса . Архивировано из оригинала 6 января 2012 г. – на сайте blogs.oracle.com.
  5. ^ «Что хорошего в Fortress» . gbcacm.org . Большое Бостонское отделение ACM. Архивировано из оригинала 2 августа 2012 г.
  6. ^ Gls-Oracle (20 июля 2012 г.). «Завершение крепости». Проект Крепость . Архивировано из оригинала 24 сентября 2016 г. – на сайте blogs.oracle.com.

Внешние ссылки