Стандартный ML Нью-Джерси - Standard ML of New Jersey

Стандартный ML Нью-Джерси
ПарадигмаМультипарадигма: функциональный, императив
Стабильный выпуск
110.98.1 / 25 августа 2020 г.; 3 месяца назад (2020-08-25)[1]
Печатная дисциплинасильный, статический, предполагаемый
ЛицензияBSD-подобная лицензия[2]
Расширения имени файла.sml
Интернет сайтwww.smlnj.org
Под влиянием
Стандартный ML
Под влиянием
Мифрил

Стандартный ML Нью-Джерси (SML / NJ; Стандартный метаязык Нью-Джерси) - это бесплатно и с открытым исходным кодом компилятор и среда программирования для Стандартный ML язык программирования. Помимо его система времени выполнения, что написано в C, SML / NJ написан на стандартном ML. Первоначально он был разработан совместно Bell Laboratories и Университет Принстона.[3]

Его название является ссылкой на американский штат Нью-Джерси в котором расположены лаборатории Princeton и Bell, и Standard Oil of New Jersey, знаменитое масло монополия начала 20 века.

Функции

SML / NJ расширяет базовую библиотеку SML'97 несколькими дополнительными структурами верхнего уровня:[4]

  • Системная информация - в SysInfo структура предоставляет информацию о системе времени выполнения, такую ​​как Операционная система вид, тип и версия, а также поддерживает ли машина многопроцессорность.[5]
  • Слабые указатели - в Слабый структура обеспечивает поддержку слабые указатели.[6]
  • Ленивые приостановки - в Susp конструкция реализует подвески, необходимые для ленивая оценка (в отличие от жадная оценка ).[7]
  • Компилятор внутренности - в Внутренности Структура предоставляет доступ к нескольким внутренним компонентам компилятора, включая методы для создания и изменения таблицы сигналов.[8]
  • Небезопасный доступ - в Небезопасно Структура обеспечивает небезопасный доступ к структурам данных и функциям исполняющей системы.[9]
  • Видимые структуры компилятора - SML / NJ также включает структуры, обеспечивающие доступ к компилятору ML, который содержит подструктуры для профилирования выполнения, управления печатью сообщений об ошибках компилятора и предупреждений, а также настраиваемой красивой печати.[10]

Кроме того, SML / NJ предоставляет некоторые синтаксические конструкции, которые не являются стандартными функциями SML'97:[4]

  • Векторные выражения и паттерны - SML / NJ позволяет создавать векторы с #[exp0, exp1, ..., expп−1] синтаксис и позволяет сопоставить их с образцом с аналогичным синтаксисом.
  • Ор-узоры - SML / NJ расширяет синтаксис шаблонов SML'97, позволяя сопоставить несколько шаблонов в одном правиле при условии, что каждый шаблон имеет один и тот же тип, используя (апат1 | ... | апатп) => exp .
  • Встраивание объектного языка - SML / NJ предоставляет синтаксис кавычек / антицитатов, который позволяет встраивать выражения в объектный язык Конкретный синтаксис в выражениях и программах ML.[11]
  • Модули высшего порядка - SML / NJ поддерживает параметризацию функторов, позволяя функторам быть компонентами структур в дополнение к параметрическим модулям Standard ML в форме функторов.

Возможности преемника ML

В выпуске 110.81 развитие SML / NJ направлено на развитие библиотеки Standard ML Basis и поддержку Преемник ML Особенности.

В текущем выпуске функции Successor ML можно включить с помощью параметра командной строки. -Cparser.succ-ml = истина.

Документы по преемнику ML были извлечены из SML / NJ '97. TeX файлы и доступны как GitHub репозиторий документов TeX, с которыми сообщество, как ожидается, будет сотрудничать и развивать язык.

Кроме того, в HaMLet есть полная реализация функций Successor ML. Полученные таким образом практические знания включаются в SML / NJ по мере его развития в выпусках.

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

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

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

  1. ^ "Стандартный журнал изменений ML штата Нью-Джерси". www.smlnj.org.
  2. ^ "Стандартная лицензия ML of New Jersey". www.smlnj.org.
  3. ^ "Справочная информация о SML / NJ". www.smlnj.org. Получено 2018-09-05.
  4. ^ а б «Особенности SML / NJ». www.smlnj.org. Получено 2018-09-05.
  5. ^ "Подпись SYS_INFO". www.smlnj.org. Получено 2018-09-05.
  6. ^ "СЛАБАЯ подпись". www.smlnj.org. Получено 2018-09-05.
  7. ^ «Подпись SUSP». www.smlnj.org. Получено 2018-09-05.
  8. ^ «ВНУТРЕННЯЯ подпись». www.smlnj.org. Получено 2018-09-05.
  9. ^ «Небезопасная структура». www.smlnj.org. Получено 2018-09-05.
  10. ^ "Видимый компилятор". www.smlnj.org. Получено 2018-09-05.
  11. ^ "SML / NJ Quote / Antiquote". www.smlnj.org. Получено 2018-09-05.