nilium leafについて
プロジェクトの目的
- 関数型言語的思想をオペレーティングシステムに組み込む。
- システムの状態を変化させる手段(nilium leafでは「同期」という)が限定されるのでシステムを保護することが出来る。
- 全てのプログラムは終端の情報自体を直接扱うことはなく、その情報を求めるための式のみを扱う。そのため、例えば意図しない情報が外部に送信されないことをOS(の通信API)が保証できる。
- 流出させたくない情報にあらかじめ許可属性をつけておく
- 上と同じ理由で、全ての値はソースから末端まで、その変更がリアルタイムに通知される。(つまり時計アプリで時刻を描画するためのループをまわすひつようがなくなる)
特徴
サンプルソース
f = (
g = 32;
h = g + 2;
g + h
);
g = (
i = f g;
i * 2
);
echo f; //66
echo f h; //34
0 //OSに0で戻る
解説
- echo, '='はAction型を返す。';'はアクション接続演算子で、順につながれたActionを実行する。
- Actionは、そのActionの値を取得しようとしたときに実行され、その結果は';'でつながれたActionでない定義となる。