Remove ads
来自维基百科,自由的百科全书
新澤西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.