适用于Windows、Linux或Mac的ML IDE和编译器

适用于Windows、Linux或Mac的ML IDE和编译器,ide,compiler-construction,programming-languages,sml,ml,Ide,Compiler Construction,Programming Languages,Sml,Ml,我必须用ML编写一些代码,这是我第一次使用这种语言。 是否有标准ML的开发环境?(最好在窗户下)。我尝试过谷歌搜索(还有StackOverflow!),但我只找到了Linux的普通编译器(最多有一个交互式控制台),但没有IDE或Eclipse/NetBeans插件。 有什么建议吗?对于SML,存在一些Emacs模式。查看更多信息 sml模式应该为您提供编写sml代码的良好环境。Eclipse&Co.的开发是因为java需要很多样板文件,比如访问器、适配器等等。如果您需要ML的相同特性,那么您应该

我必须用ML编写一些代码,这是我第一次使用这种语言。 是否有标准ML的开发环境?(最好在窗户下)。我尝试过谷歌搜索(还有StackOverflow!),但我只找到了Linux的普通编译器(最多有一个交互式控制台),但没有IDE或Eclipse/NetBeans插件。
有什么建议吗?

对于SML,存在一些Emacs模式。查看更多信息

sml模式应该为您提供编写sml代码的良好环境。Eclipse&Co.的开发是因为java需要很多样板文件,比如访问器、适配器等等。如果您需要ML的相同特性,那么您应该仔细检查您是否设计过度


编辑:顺便说一下,SMLNJ附带了一个eclipse插件。不过,我不能发布链接,只能通过谷歌搜索smlnj eclipse。

在Windows上使用SML时,我一直在使用它进行编译和编辑(Notepad++为Caml提供语法着色,这应该与SML完全相同,以满足您的需要)


如前所述,对于ML来说,一个简单的编辑器就足够了。

我正在为Windows开发Scheme IDE。它叫“巴贝奇”。它还具有OCaml和SML模式。它就像一个最小的Emacs。巴贝奇是非常简单的,有窗口,如钥匙分配。巴贝奇是Unicode编辑器


可以设置Eclipse以获得许多有用的功能,而无需复杂的特定语言插件

我保持一个良好的状态。该文件的一些要点:

  • 语法颜色可以使用以下任一选项添加。它们是为大量语言(包括SML和OCaml)提供语法颜色的插件。使用自定义颜色文件可以轻松添加新语言

  • 要从Eclipse内部使用外部编译器构建,可以使用标准Program Builder功能。当发出“正常生成项目”命令时,将运行生成器。设置新构建器:项目属性->构建器->新建…->编程或使用下面的内置标记插件

  • 要从外部生成器捕获编译错误和警告,可以使用生成输出解析器。是实现此类解析器的插件。解析器在编辑器和Problems视图中放置问题标记。此插件还可用于将程序生成器添加到项目中。阴谋集团的建造者可以作为一个起点

  • 要从Eclipse内部运行编译程序,请使用外部工具功能。(运行->外部工具)

  • 代码导航和文本选择的扩展支持可以与其他一些已部署的项目插件一起添加:该插件可用于选择括号内的文本。除其他外,该插件可用于在由空行分隔的代码块之间跳转

  • 使用标准的单词补全命令(Shift+Alt+7)作为穷人的内容辅助

  • 使用标准切换块选择命令(Shift+Alt+A)可以同时在多行上插入/删除行注释

  • 其他一些有用的标准Eclipse功能包括:

    • 打开资源命令(Ctrl+Shift+R)
    • 文件搜索命令(Ctrl+H)
    • 书签功能(编辑->添加书签)。确保选中“包含在下一个/上一个导航框中”(首选项->常规->编辑器->文本编辑器->注释->书签)
已铺设项目的更新现场:

https://bitbucket.org/lii/laid_language_tools/src/master/se.lidestrom.laid.update_site/
Eclipse Colorer的更新站点:

http://colorer.sourceforge.net/eclipsecolorer/
免责声明:我是Laed项目的作者。

您可以将Isabelle/ML或官方标准ML(SML'97)用作IDE。底层的ML系统是,它以支持多核硬件而著名

严格地说,Isabelle环境用于交互式和自动化的定理证明,但它非常复杂:在用户编辑时,源文件会进行静态检查和语义评估。带注释的源包含关于推断类型的标记、对定义项位置的引用等

作为快速入门,请参阅文档面板的“示例”部分,条目
src/Tools/SML/Examples.thy
(自2014年起)

如何使用Sublime Text 2配置SML 对于那些喜欢使用升华文本而不是Emacs作为SML编程首选编辑器的人,以下指南介绍了如何配置升华文本以使用SML

要使本指南适用于您,您必须已安装

步骤1:安装升华文本和包控件 开始吧。请确保下载版本2,因为SML语法支持还不适用于版本3

Sublime Text支持一组惊人的软件包(即插件),您可以单独安装。其中一个包称为包控制。您必须首先能够直接从编辑器安装其他软件包。提供的链接解释了安装此软件包需要执行的操作

步骤2:安装SML和Sublime REPL 现在您已经安装了Package Control,安装其他软件包将非常容易。我们现在必须安装两个软件包:SML以支持编程语言的语法突出显示功能,SublimeREPL,正如您可能猜到的,它是一个为许多不同编程语言添加REPL功能以使文本升华的软件包

要安装这些软件包,您必须进入菜单,查找工具->命令调色板并键入“安装软件包”。在搜索框中,输入要安装的软件包的名称,从找到的列表中选择软件包,然后按enter键安装。对上面提到的两个包执行此操作:“SML”和“SubmiterePL”

安装SML包后,如果打开SML文件,则编辑器中应具有语法突出显示功能。它甚至
[
    {
        "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"
        }
    }    
]
[
     {
        "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"
      }  
    }  
]
{  
  "cmd": ["/usr/local/bin/sml","$file"],  
  "selector": "source.sml",  
  "working_dir": "$file_path",
  "file_regex": "^(.*\\.sml):(\\d+)\\.(\\d+)(\\-(\\d+)\\.(\\d+))?\\s(.*)$"
 }