WikiDer > Крепость (язык программирования)
Эта статья использование внешняя ссылка может не следовать политикам или рекомендациям Википедии. (Сентябрь 2016) (Узнайте, как и когда удалить этот шаблон сообщения) |
Разработчик | Sun Labs |
---|---|
Впервые появился | 2006 |
Окончательный релиз | 1.0_5033 / 7 сентября 2011 г. |
Печатная дисциплина | Статический |
Платформа | Java SE 1.6+ |
Операционные системы | Кроссплатформенность |
Лицензия | BSD |
Интернет сайт | github |
Под влиянием | |
Фортран, 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!" слова на экране.
Смотрите также
Рекомендации
- ^ Эрик Аллен; Дэвид Чейз; Джо Халлетт; Виктор Лучанко; Ян-Виллем Мессен; Сукён Рю; Гай Л. Стил-младший; Сэм Тобин-Хохштадт; и другие. (31 марта 2008 г.). "Спецификация языка Fortress: версия 1.0" (PDF). research.sun.com. Sun Microsystems. Архивировано из оригинал (PDF) на 2013-01-20.
- ^ а б "Справочная карта проекта" Крепость " (PDF). Java.net. Архивировано из оригинал (PDF) на 2016-03-04. Получено 2016-09-24.
- ^ "псевдокод - стандарты псевдокода?". Переполнение стека. 2009-10-16. Получено 2016-09-24.
- ^ Джош Саймонс (22 ноября 2006 г.). "Солнце не выбрано для фазы III HPCS: Мои мысли". Пуп Нарцисса. Архивировано из оригинал 06.01.2012 - через blogs.oracle.com.
- ^ "Что круто в крепости". gbcacm.org. Большой Бостон Отделение ACM. Архивировано из оригинал на 2012-08-02.
- ^ Gls-Oracle (20.07.2012). "Крепость подводит итог". Проект Крепость. Архивировано из оригинал в 2016-09-24 - через blogs.oracle.com.
внешняя ссылка
- Веб-сайт Project Fortress
- Активный график спецификации и справочной реализации
- Спецификация языка Fortress (последняя версия - 1.0, 31 марта 2008 г.)
- The Soul of Fortress - Интервью с разработчиком Fortress Гаем Стилом
- Главная страница проекта с открытым исходным кодом Fortress (лицензия BSD)
- Группа изучения языков программирования Sun
- Публикации и спецификации Fortress
- Плагин Fortress для Eclipse (альфа)
- FAQ по крепости
- Учебные слайды по крепости
- Списки рассылки Fortress
- Lambda the Ultimate статья
- Замена Fortran от Sun выходит на открытый исходный код (CNET News.com, 12 января 2007 г.)
- Презентация крепости
- Параллельно по умолчанию - аннотированный обзор крепости