LunarML」タグアーカイブ

Successor MLの話

Successor MLとは

Standard MLの仕様は、1997年に出版されたThe Definition of Standard ML (Revised)が最後の版である。しかし、その後も仕様を修正・改良しようという努力が断続的に行われており、Successor MLと呼ばれている。

現行の仕様は以下のGitHubリポジトリーで管理されている:

https://github.com/SMLFamily/Successor-ML

現在のLaTeXではそのままでは処理できないので、https://github.com/SMLFamily/Successor-ML/pull/46の変更を参考にされたい。また、電子的に閲覧したい場合はdefinition/root.texの

%\usepackage{hyperref}

をコメント解除すると良いだろう。ClutTeXを使うと

cd definition && cluttex -epdflatex --bibtex=bibtex root.tex

で処理できる。

ゼロ年代の古いWikiは以下のリンクから辿れる:

https://smlfamily.github.io/successor-ml/

続きを読む

LunarML進捗:signatureの実装に向けて

自作SML処理系進捗:Hello Lua! の続き。

自作SML処理系「LunarML」の言語機能の実装も佳境に入ってきて(equalityやexception等の厄介な奴らはだいたい片付けた)、残すところは

  • withtype (derived form)
  • abstype(Successor MLに従いderived formとして実装する予定)
  • signature
  • functor

くらいとなってきている。

続きを読む

自作SML処理系で 1 + 2 がコンパイルできた

2年ほど前からSML処理系を自作している。それがこの度、「動作するターゲットコード (Lua) を出力する」という重要なマイルストーンに到達したので記念に記事を書いておく。

この処理系については、2018年9月に開催された勉強会「ML Day #2」で進捗報告のLTをしたこともあった。(あれから2年も経ってまだこの段階かよ!)

続きを読む