ML IDE и компилятор для Windows, Linux или Mac

Я должен написать код в ML, и это мой первый раз, когда я собираюсь использовать язык. Существует ли среда разработки для Standard ML? (желательно под Windows). Я попытался погуглить (и stackOverFlowing ! ) но все, что я нашел, это простые компиляторы для Linux (максимум с интерактивной консолью), но без IDE или плагина Eclipse/NetBeans. Есть предложения ?

6 ответов


как настроить SML с Sublime Text 2

для тех, кто предпочитает Sublime Text вместо Emacs в качестве редактора выбора для программирования SML, следующее руководство описывает, как настроить Sublime Text для работы с SML.

чтобы это руководство работало на вас, вы должны уже установить smlnj.

Шаг 1: Установите Sublime Text и пакет управления

начать Загрузка Sublime Text 2. Убедитесь, что загрузите версию 2, поскольку поддержка синтаксиса SML еще не работает с версией 3.

Sublime Text поддерживает удивительный набор пакетов (т. е. плагинов), которые вы можете установить отдельно. Один из этих пакетов называется Package Control. Вы должны сначала Установить Пакет Управления чтобы иметь возможность устанавливать другие пакеты непосредственно из редактора. Предоставленная ссылка объясняет, что вам нужно сделать, чтобы установить этот пакет.

Шаг 2: Установите SML и Sublime REPL

теперь, когда у вас установлен контроль пакетов, будет очень легко установить другие пакеты. Есть два пакета, которые мы должны установить сейчас: SML для поддержки функций подсветки синтаксиса для языка программирования и SublimeREPL, который, как вы могли догадаться, является пакетом, который добавляет возможности REPL для многих различных языков программирования в Sublime Text.

чтобы установить эти пакеты, вы должны перейти в меню и искать инструменты - > палитра команд и введите "установить пакет". В поле поиска вы пишете имя пакета, который хотите установить, выбираете пакет из найденного списка и нажимаете enter, чтобы установить его. Сделайте это для двух пакетов, упомянутых выше: "SML"и " SublimeREPL"

после установки пакета SML, если вы открываете файл SML, вы должны получить возможности подсветки синтаксиса в Редакторе. Он даже предоставляет возвышенную текстовую тему под названием Сын обсидиана, которую вы можете включить в настройках - > цвет Схема - > SML - > сын обсидиана. Но вы не обязаны включать тему для работы с SML, это просто предпочтение.

после установки пакета SublimeREPL вы сможете перейти в меню Сервис - > SublimeREPL - > SML и открыть сеанс SML REPL, который будет поддерживать подсветку синтаксиса с помощью пакета SML, а также историю команд, редактирование строк и автозаполнение. Вы можете сделать свою жизнь очень простой, если вы откроете две бок о бок вкладки и в левой вкладке вы можете иметь ваш файл кода SML и справа от вас сеанс SML REPL. Вы можете сделать это, используя параметры View - > Layout.

Шаг 3: Сочетания Клавиш

теперь давайте добавим несколько сочетаний клавиш для работы с REPL. Пакет SublimeREPL предлагает небольшую конфигурацию клавиатуры, и те, которые предоставляются, вероятно, не будут хорошо работать с SML REPL. Вот что я обычно делаю.

  • сначала перейдите в Настройки - > обзор Пакеты
  • перейдите в подпапку SublimeREPL/config/SML.
  • редактировать файл Default.sublime-commands в Sublime текст сам. Этот файл содержит текущие параметры меню SML в меню Сервис - > SublimeREPL. Итак, теперь мы изменим его, чтобы создать второй вариант, который может запустить существующий файл в новом сеансе SML REPL. Мой отредактированный файл выглядит так, как показано ниже. Обратите внимание на поле "Код". Мы можем определить столько различных команд, сколько хотим, давая им другой идентификатор. На следующем этапе мы определим, что делает каждая команда.

    [
        {
            "caption": "SublimeREPL: SML",
            "command": "run_existing_window_command", "args":
            {
                "id": "repl_sml",
                "file": "config/SML/Main.sublime-menu"
            }
        },
        {
            "caption": "SublimeREPL: SML - Run File",
            "command": "run_existing_window_command", "args":
            {
                "id": "repl_sml_run",
                "file": "config/SML/Main.sublime-menu"
            }
        }    
    ]
    
  • сейчас, в том же каталоге, что и предыдущий файл, редактировать . Этот файл содержит сведения о том, что должна делать каждая команда, определенная выше. Мой отредактированный файл определяет две команды, описанные выше, один, чтобы просто открыть REPL и один, чтобы открыть текущий файл в REPL. Это выглядит следующим образом:

    [
         {
            "id": "tools",        
            "children":
            [{
                "caption": "SublimeREPL",
                "mnemonic": "r",
                "id": "SublimeREPL",
                "children":
                [{
                    "caption": "SML",
                    "id": "SML",
                    "children": [
                        {"command": "repl_open",
                         "caption": "SML",
                         "id": "repl_sml",
                         "args": {
                            "type": "subprocess",
                            "encoding": "utf8",
                            "cmd": ["sml"],
                            "cwd": "$file_path",
                            "external_id": "sml",
                            "syntax": "Packages/SML (Standard ML)/sml.tmLanguage"
                            }
                        },
                        {"command": "repl_open",
                         "caption": "SML - Run Current File",
                         "id": "repl_sml_run",
                         "args": {
                            "type": "subprocess",
                            "encoding": "utf8",
                            "cmd": ["sml", "$file_basename"],
                            "cwd": "$file_path",
                            "external_id": "sml",
                            "syntax": "Packages/SML (Standard ML)/sml.tmLanguage"
                            }
                        }
                    ]                                
                }]
            }]
        }
    ]
    
  • последним шагом является добавление сочетаний клавиш для этих двух команд. Перейдите в настройки - > привязки клавиш User и отредактируйте файл с помощью следующих двух дополнительных команд. Не стесняйтесь менять мои клавиши и использовать любые другие сочетания клавиш, которые вы найдете подходящими, при условии, что они не используются для других функций.

    [
        {  
          "keys":["ctrl+alt+j","k"],   
          "command": "repl_open",      
          "args": {  
               "type": "subprocess",  
               "encoding": "utf8",  
               "cmd": ["sml"],  
               "cwd": "$file_path",  
               "syntax": "Packages/SML (Standard ML)/sml.tmLanguage",
               "external_id": "sml"
          }  
        } ,
        {  
          "keys":["ctrl+alt+j","m"],   
          "command": "repl_open",      
          "args": {  
               "type": "subprocess",  
               "encoding": "utf8",  
               "cmd": ["sml", "$file_basename"],  
               "cwd": "$file_path",  
               "syntax": "Packages/SML (Standard ML)/sml.tmLanguage",
               "external_id": "sml"
          }  
        }  
    ]
    

и мы закончили. Теперь вы можете открыть SML REPL, просто нажав CTRL+J,K (это нажмите Ctrl+Alt+J, затем отпустите клавиши и нажмите K). И если вы в настоящее время работая в SML-файле, вы можете нажать CTRL+J,M чтобы отправить его на новый сеанс SML REPL.

Шаг 4: Построить Систему

Sublime Text предоставляет конфигурации, которые позволяют анализировать файл кода и определить, если что-то не так, и пусть вы точно знаете, где проблема. Для этого мы должны сконфигурировать "систему сборки". Конфигурация-это просто файл, который сообщает sublime text, какую команду запускать и как интерпретировать результаты. Если SML parser не сможет проанализировать или выполнить вашу программу, вывод сообщит вам, где проблема. Система сборки позволяет определить регулярное выражение для анализа такого вывода и помочь Sublime text найти строку и столбец, содержащий проблему.

перейдите в Настройки - > обзор пакетов и в папке пользователя создайте новый файл с именем SML.sublime-build и определите файл следующим образом:

{  
  "cmd": ["/usr/local/bin/sml","$file"],  
  "selector": "source.sml",  
  "working_dir": "$file_path",
  "file_regex": "^(.*\.sml):(\d+)\.(\d+)(\-(\d+)\.(\d+))?\s(.*)$"
 } 

обязательно замените путь к команде с допустимым путем в вашей системе. После сохранения файла вы можете перейти в меню и выбрать сервис - > система сборки - > SML. Затем, чтобы проверить файл, вы можете сделать Tools - > Build, чтобы разобрать файл и найти любые ошибки. И с помощью опции меню Tools - > Build Result - > Next Result и предыдущий результат вы можете перемещаться между ошибками, обнаруженными с помощью опции build system и Sublime Text будет позиционировать курсор в точном положении ошибки, как сообщается SML компилятор.

мое регулярное выражение выше может быть не лучшим, поэтому не стесняйтесь улучшать его по своему усмотрению.

и это все. Вы почти готовы начать кодирование с помощью SML и Sublime Text.


можно использовать Изабель/для jedit как IDE для Isabelle / ML или официального стандарта ML (SML'97). Основная система ML Поли/мл, который примечателен своей поддержкой многоядерного оборудования.

строго говоря, среда Isabelle предназначена для интерактивного и автоматического доказательства теоремы, но ее поддержка SML IDE довольно сложный: исходные файлы статически проверяются и семантически оцениваются во время редактирования пользователем. Этот аннотированные источники содержат разметку о предполагаемых видах, ссылки на определяющие позиции товаров и т. д.

в качестве быстрого запуска см. Панель документации, примеры разделов, запись src/Tools/SML/Examples.thy (по состоянию на Isabelle2014).

SML-PIDE


при работе с SML в Windows я использую SML / NJ для составления и Блокнот++ для редактирования (Notepad++ имеет синтаксическую раскраску для Caml, которая должна быть идентична SML для ваших нужд).

Как уже упоминалось, для ML достаточно простого редактора.


для SML существует несколько режимов Emacs. Проверить http://mlton.org/Emacs для получения дополнительной информации.

sml-mode должен предоставить вам хорошую среду для написания SML-кода. Eclipse & Co. были разработаны из-за того, что java требует много шаблонных вещей, таких как аксессоры, адаптеры и так далее. Если Вам требуются те же функции для ML, вы должны дважды проверить, не перегружены ли вы.

Edit: и, кстати, SMLNJ поставляется с затмением плагин. Я не могу опубликовать ссылку, хотя, просто google для smlnj eclipse .


Я разрабатываю схему IDE для Windows. Это называется "Бэббидж". Он также имеет режим для OCaml и SML. Это как минимум Emacs. Babbage очень прост и имеет окна, как ключ назначить. Babbage является редактором Unicode.

http://homepage1.nifty.com / ~skz/Entry/babbage.html


Eclipse можно настроить, чтобы получить много полезных функций, не имея сложного конкретного языка плагина.

Я поддерживаю руководство по настройке Eclipse для новых языков. Некоторые моменты из этого документа:

  • синтаксис цвета можно добавить либо с помощью Eclipse Colorer. Это плагины, которые предоставляют цвета синтаксиса для большого количества языков, включая SML и OCaml. Новый языки могут быть легко добавлены с помощью пользовательских цветных файлов.

  • до построить использование внешнего компилятора изнутри Eclipse standard Программы Строителя функция может быть использована. Конструктор запускается, когда normal Строительство есть. Чтобы настроить новый конструктор:Свойства Проекта - > Строители - > Новый... -> Программа или используйте заложенный плагин маркера сборки ниже.

  • в захват ошибок компиляции и предупреждение из внешнего построителя можно использовать анализатор вывода сборки. Заложен Маркер Строителя-это плагин, который реализует такие Парсеры. Парсеры помещают маркеры проблем в редакторы и в представление проблем. Этот плагин также может использоваться для добавления разработчиков программ в проекты. Строитель для Cabal может использоваться в качестве отправной точки.

  • до run скомпилированные программы изнутри Eclipse используют Внешние Инструменты характеристика. (выполнить ->Внешние Инструменты)

  • расширенная поддержка для навигация по коду и выделение текста может быть добавлен с некоторыми из других заложенных плагинов проекта: Выбор Блока Маркеров плагин может использоваться для выбора текста, заключенного в скобки. The Редактор Коммунальные Услуги plug-in можно использовать, среди прочего, для перехода между блоками кода, разделенными пробелом русло.

  • использовать стандартный Завершение Слов (Shift+Alt+7) как содержание помощи бедного человека.

  • использовать стандартный Выбор Блока Переключения команда (Shift+Alt+A) для вставки/удаления комментариев к нескольким строкам одновременно.

  • некоторые другие полезные стандартные функции Eclipse включает:

    • на Открыть Ресурс команда (Ctrl + Shift+R)
    • на Поиск Файла (Ctrl+H)
    • закладки (Изменить -> Добавить Закладку). Обязательно проверьте включить в next / prev навигации box (Настройки - > Общие - > Редакторы - > Текстовые Редакторы - > Аннотации - > Закладки).

обновить сайт для заложенного проекта:

https://bitbucket.org/lii/laid_language_tools/src/master/se.lidestrom.laid.update_site/

обновление сайт для Eclipse Colorer:

http://colorer.sourceforge.net/eclipsecolorer/

отказ от ответственности: я являюсь автором заложенного проекта.