Loment
日本語

標準

Loment 言語標準

この言語には名前を持ち、引用できる標準がある —— LLS、すなわち Loment Language Standard(Loment 言語標準)—— そしてそれは、このページではなく、 それが記述するコードの隣、リポジトリにある。

何のためのもので、何になることを拒むか

標準が存在するのは、「この実装は正しいか?」への答えが、誰に尋ねたかによって変わらなく なるようにするためである。ほとんどの標準は、規則そのものを述べることでそれに答える。 これはそうしない —— このプロジェクトの規則は、何であれ権威ある写しはただ一か所にのみ 存在するというもので、だからこの標準は言語の規則をみずから一切述べない。 それは規則を囲む枠であり、その中身はすべて、唯一の出所へのポインタか、適合とは何かを 述べたもののどちらかである。

その枠で、この標準は二つのことをする。ひとつは表層を固定すること —— 言語のどの部分が、定められた手続きによってのみ変わりうるのか、そしてその手続きとは 何か。もうひとつは適合を決めること —— それを決める判定スイートを 名指しすることによって。

適合を決めるのは何か

文書ではない。どの実装でもない。標準はそう明言している: 散文と実装と判定基準が食い違う とき、正しいのは判定基準である。失敗している判定基準は、その基準を 緩めることでは通せない —— 実装を変えるか、定められた手続きの下で表層を変えるか、 そのどちらかによってのみ通せる。

そして、判定スイートに見えないもの。なかには、あるマシンには無い かもしれないツールを必要とする判定基準があり、そうした基準は合格ではなくスキップ と報告される —— だから「緑」とは、走った判定基準が緑だったという意味である。標準は そのひとつひとつを名指しし、この文書全体で最も居心地の悪い一文も書き留めている: 判定スイートは実装と同じ著者によって書かれているので、二つの実装が一致することは、 それらが一致していることの証拠である。

スイッチ

標準は Loment を、それが欠いているものではなく、そのスイッチによって記述する。言語が 持ちうるあらゆるサブシステム —— プログラムが使ってよい層、メモリを誰が回収するか、 バイナリが runtime を積むかどうか、外界への口を持つかどうか、そしてどの実行モデルに 向けたものか —— は、プログラムが自分の根のユニットに一度だけ述べ、ビルドがそれを 記録する設定である。既定は、既存のプログラムを従来どおりに振る舞わせ続ける位置である。 それは既定の性質であって、言語についての主張ではない。

標準はまた、見落としやすい一線を引く。スイッチの組み合わせのなかには、二つの値が 正反対のことを意味するために拒否されるものがあり、まだ誰も作っていないという 理由だけで拒否されるものもある。切れているスイッチは、禁じられたスイッチでは ない —— 標準はその二つを意図的に区別している。

どこにあるか

それが記述するコードの隣に、そしてそれと同じように版付けられている: 標準のバージョン が、それが定義する表層のバージョンである。二つではなくひとつの番号 —— 別のエディション軸を立てれば、エディションを言語のバージョンに対応付ける表が必要になり、 その表が第二の真実の出所となってしまうからである。

standard/LLS.md 標準そのもの。英語で書かれており、規範として参照するものの大半は中国語で書かれている、と明言している。 docs/158 凍結された表層と、それを変えるための手続き —— 標準がその両方について指し示す記録。中国語で書かれている。 リリース履歴 実際に出荷されたもの —— 標準はそれではなく、そう主張することも決してない。 フロントページへ戻る Loment とは何か、そしてそれがビルドする二種類のプログラム。