① マルチランタイム言語
OCaml・Python・ブラウザ JS で同一意味論を実装。アクター+スケジューラ+ビルトイン。
AIPL(Actor-based Intelligent Parallel Language)は、研究用に設計された アクターモデルの並列言語です。3 つの柱で構成されています。
OCaml・Python・ブラウザ JS で同一意味論を実装。アクター+スケジューラ+ビルトイン。
MAP-Elites GA が .aice 仕様から普遍的な言語設計軸を経験的に導出。
AIPL 自身が AIPL を解析・型検査・評価・スケジュール(Level A → C-3、37/37 smoke)。
AIPL は二層です。核は三つの独立した処理系(OCaml / Python / JavaScript)すべてが実装し、出力の一致を検証しています。拡張は Python 実装のみで動く実験的な機能です。
注釈・ユニオン・ジェネリクス・長さ付き配列。HM スタイルの推論(OCaml infer.ml)。
!{ai, net, io, mut, time, mem, fs, log} の 8 種で副作用を静的追跡。now/await で呼び先から伝播するので、一段隔てても隠せません。
待ちには timeout を要求。else を書かなければ result<τ> が返り、確かめずには使えません。
replyto / answer を線形型で扱い、委譲しても「ちょうど一度」を保ちます。
acquire/release の対に加え、取得の入れ子から全体順序を読み取り、逆順の取得を止めます。
待ちの循環を型で止めます。@n と書けますが、書かなければ推論されます。
役割どうしのやり取りの順序を静的に照合。同期の呼び先は展開するので、セッションがアクターをまたいでも追えます。
アクターのソースを他ノードへ送り、相手先で構文解析・型検査してから実体化。効果注釈が国境で照合されます。
要素型付きチャネルでアクター間通信を構造化。
use-after-move 検出と pub 可視性による所有モデル。
scope { future ... } による自動 join と線形 future ハンドル。
記録型と行多相、where による精緻化型。
Python アクター ⇆ OCaml アクターを共通 HTTP ワイヤ形式で相互呼び出し。
| Phase | 機能 |
|---|---|
| 11 | 型注釈 / ユニオン / ジェネリクス / 長さ付き配列 |
| 12 | 能力エフェクト !{fs,ai,net,mut} |
| 13 | CSP チャネル |
| 14 | 線形 / use-after-move |
| 15 | 所有(pub 可視性) |
| 16 | any 境界での transient cast |
| 17 | 構造化並行 scope { future ... } |
フロントは静的 HTML/CSS、バックエンドは Express。訪問カウンターは MongoDB Atlas に保存され、Atlas 接続の疎通確認も兼ねています。