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

Крепость
РазработчикSun Labs
Впервые появился2006
Окончательный релиз
1.0_5033 / 7 сентября 2011 г.; 9 лет назад (2011-09-07)
Печатная дисциплинаСтатический
ПлатформаJava SE 1.6+
Операционные системыКроссплатформенность
ЛицензияBSD
Интернет сайтgithub.com/ stokito/ fortress-lang
Под влиянием
Фортран, Scala, Haskell

Крепость это прекращенная экспериментальная язык программирования за высокопроизводительные вычисления, сделано Sun Microsystems с финансированием от DARPA с Вычислительные системы высокой производительности проект. Один из разработчиков языка был Гай Л. Стил мл., чья предыдущая работа включает Схема, Common Lisp, и Ява.

Дизайн

Название «Крепость» означало безопасный Фортран, то есть «язык для высокопроизводительных вычислений, который обеспечивает абстракцию и безопасность типов наравне с принципами современного языка программирования».[1] Языковые функции включены неявно параллелизм, Unicode опора и бетон синтаксис похожий на математическая запись. Язык не был разработан, чтобы быть похожим на Фортран. Синтаксически это больше всего напоминает Scala, Стандартный ML, и Haskell. Fortress с самого начала разрабатывался так, чтобы иметь несколько синтаксических таблиц стилей. Исходный код может быть представлен как ASCII текст, в Unicode, или как красивое изображение. Это позволило бы поддерживать математические символы и другие символы в визуализированном выводе для облегчения чтения. An emacs -основанный инструмент называется укреплять преобразует исходный код Fortress на основе ASCII в Латекс выход.[2]

Fortress также был спроектирован так, чтобы быть одновременно высоко параллельным и иметь богатую функциональность, содержащуюся в библиотеках, основанных на Java. Например, за Конструкция цикла была параллельной операцией, которая не обязательно выполнялась строго линейным образом, в зависимости от базовой реализации. Тем не менее за Конструкция была библиотечной функцией и могла быть заменена другой версией по желанию программиста, а не встроена в язык.

Разработчики Fortress максимально приблизили его синтаксис к псевдокод и проанализировали сотни Информатика и математика статьи, курсы, книги и журналы с использованием псевдокода для извлечения общих шаблонов использования английского языка и стандартной математической нотации при использовании для представления алгоритмы в псевдокоде. Затем они заставили компилятор поддерживать взаимно однозначное соответствие между псевдокодом и исполняемым файлом Fortress.[3][нужен лучший источник ]

История

Fortress был одним из трех языков, созданных при финансовой поддержке Вычислительные системы высокой производительности проект; другие были X10 от IBM и Часовня из Cray, Inc. В ноябре 2006 года, когда DARPA одобрило финансирование третьей фазы проекта HPCS, X10 и Chapel были профинансированы, а Fortress - нет.[4] что ведет к неуверенности в будущем Fortress.

В январе 2007 года Fortress был выпущен с открытым исходным кодом.[5]Версия 1.0 спецификации языка Fortress была выпущена в апреле 2008 года вместе с соответствующей реализацией, нацеленной на Виртуальная машина Java.

В июле 2012 года Стил объявил, что активная разработка Fortress прекратится после короткого периода свертывания, сославшись на сложности с использованием системы типов Fortress на существующих виртуальных машинах.[6]

Пример: Привет, мир!

Это крепостная версия архетипического Привет, мир программа, представленная в Справочная карта крепости:[2]

компонент helloexport Executablerun () = println («Hello, World!») end

В экспорт заявление делает программу исполняемый файл и каждая исполняемая программа в Fortress должна реализовывать пробег() функция. Файл, в котором сохраняется программа для компиляции, должен иметь то же имя, что и указанное в исходном компонент утверждение. В println () функция - это то, что выводит "Hello, World!" слова на экране.

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

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

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

внешняя ссылка