Loading AI tools
来自维基百科,自由的百科全书
新泽西Standard ML(“Standard ML of New Jersey”或简写SML/NJ:新泽西标准元语言),是针对Standard ML编程语言的自由且开源的编译器和编程环境,它还支持Concurrent ML。除了它的运行时系统是用C写成之外,SML/NJ大部分是用Standard ML写成的。它最初是贝尔实验室和普林斯顿大学联合开发的[2]。
SML/NJ向SML'97基础库扩展了一些额外的顶层结构[3]:
SysInfo
结构提供了关于运行时间系统的信息,比如操作系统种类、类型和版本,是否机器支持多处理器[4]。Weak
结构提供了对弱指针的支持[5]。Susp
结构实现了惰性求值(对立于及早求值)所需的暂停[6]。Internals
结构提供了对一些编译器内部的访问,包括实例化和修改信号表格的方法[7]。Unsafe
结构提供了对数据结构和运行时间系统函数的不安全访问[8]。此外,SML/NJ提供了并非SML'97的标准特征的一些语法构造[3]:
#[exp0, exp1, ..., expn−1]
语言创建向量,并允许以类似的语法在它们上进行模式匹配。(apat1 | ... | apatn) => exp
,允许在一个单一规则中匹配多个模式,这里假定了每个模式都有相同的类型。“Successor ML”是用来描述ML语言的下一个版本的术语。描述它的文档已经从SML/NJ '97文件中提取出来,并放在GitHub仓库中以便获取为TeX文档,它由期望通过协作增进语言的社群维护[11]。Successor ML特征可以使用命令行选项-Cparser.succ-ml=true
来启用[12]。
至少从1998年开始[13],MLton成为了标准引导编译器[14],它拥有对Successor ML的某些支持[15]。
在2008年,开始了在HaMLet上的工作[16],它是完全用Standard ML写成的Successor ML的参考实现[17]。截止2018年,HaMLet仍旧是Successor ML的唯一完整实现,并具有额外的新奇事物[15]。
自从2015年[18],SML/NJ的演进侧重发展基础库[19],并在版本110.79的发行中增加了对Successor ML定义的支持[12]。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.