Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

Как настроить SML с помощью Sublime Text 2

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

Для этого руководства для работы вы уже установили smlnj.

Шаг 1: установите высочайший текст и управление пакетами

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

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

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

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

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

Как только вы установили пакет SML, если вы откроете файл SML, вы должны получить возможности выделения синтаксиса в редакторе. Он даже предоставляет тему Sublime Text, называемую Son of Obsidian, которую вы можете включить в настройках → Цветовая схема → SML → Son of Obsidian. Но вы не обязаны включать тему для работы с SML, это только предпочтение.

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

Шаг 3: Горячие клавиши

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

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

    [
        {
            "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"
            }
        }    
    ]
    
  • Теперь, в том же каталоге, что и в предыдущем файле, отредактируйте файл 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"
                            }
                        }
                    ]                                
                }]
            }]
        }
    ]
    
  • Последний шаг - добавить сочетания клавиш для этих двух команд. Перейдите в раздел "Настройки" → "Ключи привязки" и отредактируйте файл со следующими двумя дополнительными командами. Не стесняйтесь менять свои ключи и использовать любые другие сочетания клавиш, которые вам подходят, если они не используются для других функций.

    [
        {  
          "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, чтобы отправить его на новый сеанс REPL. SML.

Шаг 4: Сборка системы

Sublime Text предоставляет конфигурации, которые позволяют анализировать ваш файл кода и определять, что-то не так, и сообщить вам, где именно проблема. Для этого мы должны настроить "систему сборки". Конфигурация - это просто файл, который сообщает возвышенному тексту, какую команду запускать и как интерпретировать вывод. Если sml-парсер не сможет проанализировать или выполнить вашу программу, тогда на выходе указывается, где проблема. Система сборки позволяет нам определить регулярное выражение для синтаксического анализа такого вывода и помочь 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. Затем, чтобы проверить ваш файл, вы можете сделать Инструменты → Сборка, чтобы проанализировать ваш файл и найти какие-либо ошибки. И используя опцию меню "Инструменты" → "Результат сборки" → "Следующий результат" и "Предыдущий результат", вы можете перемещаться между ошибками, обнаруженными параметром системы сборки, а Sublime Text позиционирует курсор в точном месте ошибки, как сообщает компилятор SML.

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

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

Ответ 2

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

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

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

SML-PIDE

Ответ 3

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

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

Ответ 4

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

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

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

Ответ 5

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

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

Ответ 6

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

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

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

  • Чтобы построить с помощью внешнего компилятора из Eclipse, можно использовать стандартную функцию Program Builder. Строитель запускается, когда выдается стандартная команда Build Project. Чтобы настроить новый строитель: Свойства проекта → Строители → Создать... → Программа или используйте плагин плавного построения маркера ниже.

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

  • Чтобы запустить скомпилированные программы из Eclipse, используйте функцию "Внешние инструменты". (Run → External Tools)

  • Расширенная поддержка навигации по коду и выбора текста может быть добавлена ​​с некоторыми другими плагинами проекта Laid Project: Выбор блока маркеров может использоваться для выбора заключенных в текст скобок. Модуль Редактор Utilities может использоваться, среди прочего, для перехода между блоками кода, разделенными пустыми строками.

  • Используйте стандартную команду Word Completion (Shift + Alt + 7) в качестве вспомогательного контента для бедного человека.

  • Используйте стандартную команду Toggle Block Selection (Shift + Alt + A), чтобы одновременно вставлять/удалять комментарии строк на нескольких строках.

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

    • Команда Open Resource (Ctrl + Shift + R)
    • Команда поиска файлов (Ctrl + H)
    • Функция закладок (Edit → Add Bookmark). Обязательно установите флажок Включить в следующем/предыдущем навигационном поле (Настройки → Общие → Редакторы → Текстовые редакторы → Аннотации → Закладки).

Обновить сайт для проекта Laid:

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

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

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

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