Стандартный 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
- Гамлет
Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Справочная информация SML/NJ» . Smlnj.org . Проверено 5 сентября 2018 г.
- ^ «Стандартная лицензия ML Нью-Джерси» . www.smlnj.org .
- ^ Перейти обратно: а б «Особенности 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» . Гитхаб .
- ^ Перейти обратно: а б «Стандартный ML Нью-Джерси версии 110.79 Новости» . 04.10.2015.
- ^ «MLton 19 марта 1999 г., изменения примечаний» . Гитхаб .
- ^ «Репозиторий MLton» . Гитхаб .
- ^ Перейти обратно: а б «Три попытки внедрения для поддержки преемника ML» . Гитхаб .
- ^ Россберг, Андреас. «HaMLet S: Стать или не стать преемником ML» (PDF) .
- ^ «Справочный интерпретатор SML» . Гитхаб .
- ^ Перейти обратно: а б «Стандартный журнал изменений ML штата Нью-Джерси для версии 110.99» .
- ^ «Стандартная базовая библиотека машинного обучения» .