Стандартный ML Нью-Джерси
Парадигмы | Мультипарадигмальность : функциональная , императивная. |
---|---|
Семья | ML : Стандартный ML |
Разработчики | Лаборатории Белла , Принстонский университет Люсент Технологии, Йельский университет (проект FLINT), Исследования AT&T [1] |
Впервые появился | 1988 год |
Стабильная версия | |
Дисциплина набора текста | сильный , статичный , предполагаемый |
Язык реализации | Стандартный МЛ , С |
Лицензия | BSD-подобный [2] |
Расширения имен файлов | .sml |
Веб-сайт | www |
Под влиянием | |
Стандартный ML | |
Под влиянием | |
Мифрил |
Standard ML of New Jersey ( SML/NJ ; Standard Meta-Language of New Jersey) — компилятор и интегрированная среда разработки для языка программирования Standard ML . Он написан на Standard ML, за исключением системы времени выполнения на C. языке Первоначально он был разработан совместно Bell Laboratories и Принстонским университетом . [1] Это бесплатное программное обеспечение с открытым исходным кодом, выпущенное по разрешительной лицензии на программное обеспечение (подобно BSD).
Его название является отсылкой как к американскому штату Нью-Джерси, в котором расположены Принстон и лаборатории Белла, так и к Standard Oil of New Jersey , знаменитой нефтяной монополии начала 20 века.
Функции
[ редактировать ]SML/NJ расширяет базовую библиотеку SML'97 несколькими добавленными структурами верхнего уровня: [3]
- Информация о системе –
SysInfo
Структура предоставляет информацию о системе выполнения, такую как тип, тип и версия операционной системы , а также о том, поддерживает ли машина многопроцессорную обработку . [4] - Слабые указатели –
Weak
Структура обеспечивает поддержку слабых указателей . [5] - Ленивые подвески –
Susp
структура реализует приостановки, необходимые для ленивых вычислений (в отличие от нетерпеливых вычислений ). [6] - компилятора Внутреннее устройство –
Internals
Структура обеспечивает доступ к некоторым внутренним компонентам компилятора, включая методы для создания экземпляров и изменения таблицы сигналов. [7] - Небезопасный доступ –
Unsafe
структура обеспечивает небезопасный доступ к структурам данных и функциям системы времени выполнения. [8] - Видимые структуры компилятора . SML/NJ также включает структуры, обеспечивающие доступ к компилятору ML, который содержит подструктуры для профилирования выполнения, управления печатью сообщений об ошибках компилятора и предупреждений, а также настраиваемой красивой печати. [9]
Кроме того, SML/NJ предоставляет некоторые синтаксические конструкции, которые не являются стандартными функциями SML'97: [3]
- Векторные выражения и шаблоны – SML/NJ позволяет создавать векторы с
#[exp0, exp1, ..., expn−1]
синтаксис и позволяет сопоставлять их с образцом с помощью аналогичного синтаксиса. - Шаблоны «или» — SML/NJ расширяет синтаксис шаблонов SML'97, позволяя сопоставлять несколько шаблонов в одном правиле, при условии, что каждый шаблон имеет один и тот же тип, используя
(apat1 | ... | apatn) => exp
. - Встраивание объектного языка . SML/NJ предоставляет синтаксис кавычек/антикавычек, который позволяет встраивать выражения в конкретный синтаксис объектного языка в выражения и программы ML. [10]
- Модули более высокого порядка — SML/NJ поддерживает параметризацию функторов, позволяя функторам быть компонентами структур в дополнение к параметрическим модулям Standard ML в форме функторов.
Разработка
[ редактировать ]Преемник ML — это термин, используемый для описания следующей версии языка. Документы, описывающие его, были извлечены из файлов SML/NJ '97 и доступны в виде GitHub репозитория документов TeX , с которым сообщество, как ожидается, будет сотрудничать и развивать язык. [11] Функции преемника ML можно включить с помощью параметра командной строки. -Cparser.succ-ml=true
. [12]
По крайней мере, с 1998 г. [13] МЛтон [14] является стандартным компилятором начальной загрузки и включает в себя некоторые [15] поддержка Преемника ML.
В 2008 году началась работа над HaMLet , [16] эталонная реализация Successor ML, полностью написанная на Standard ML. [17] По состоянию на 2018 год [update]HaMLet остается единственной полной реализацией Successor ML с добавленными новыми функциями. [15]
С 2015 года [18] эволюция SML/NJ, направленная на развитие библиотеки Basis [19] и добавление поддержки определения преемника ML с выпуском версии 110.79. [12]
В конце 2020 года 64-битной версии . с выпуском версии 110.99 была добавлена поддержка [18]
См. также
[ редактировать ]Внешние ссылки
[ редактировать ]- Официальный сайт
- Стандартное семейство языков ML на GitHub
- Преемник ML на GitHub
- Стандартная базовая библиотека машинного обучения на GitHub
- Гамлет
Ссылки
[ редактировать ]- ^ Jump up to: а б «Справочная информация SML/NJ» . Smlnj.org . Проверено 5 сентября 2018 г.
- ^ «Стандартная лицензия ML Нью-Джерси» . www.smlnj.org .
- ^ Jump up to: а б «Особые возможности SML/NJ» . www.smlnj.org . Проверено 5 сентября 2018 г.
- ^ «Подпись SYS_INFO» . www.smlnj.org . Проверено 5 сентября 2018 г.
- ^ «СЛАБАЯ подпись» . www.smlnj.org . Проверено 5 сентября 2018 г.
- ^ «Подпись СУСП» . www.smlnj.org . Проверено 5 сентября 2018 г.
- ^ «Внутренняя подпись» . www.smlnj.org . Проверено 5 сентября 2018 г.
- ^ «Небезопасная конструкция» . www.smlnj.org . Проверено 5 сентября 2018 г.
- ^ «Видимый компилятор» . www.smlnj.org . Проверено 5 сентября 2018 г.
- ^ «Цитата/антицитата SML/Нью-Джерси» . www.smlnj.org . Проверено 5 сентября 2018 г.
- ^ «Определение преемника ML» . Гитхаб .
- ^ Jump up to: а б «Стандартный ML Нью-Джерси версии 110.79 Новости» . 04.10.2015.
- ^ «MLton 19 марта 1999 г., изменения примечаний» . Гитхаб .
- ^ «Репозиторий MLton» . Гитхаб .
- ^ Jump up to: а б «Три попытки внедрения для поддержки преемника ML» . Гитхаб .
- ^ Россберг, Андреас. «HaMLet S: Стать или не стать преемником ML» (PDF) .
- ^ «Справочный интерпретатор SML» . Гитхаб .
- ^ Jump up to: а б «Стандартный журнал изменений ML штата Нью-Джерси для версии 110.99» .
- ^ «Стандартная базовая библиотека машинного обучения» .