Actor-based Intelligent Parallel Language

並列・アクター・型安全を
一つの言語で。

AIPL はマルチランタイム(OCaml / Python / Browser-JS)のアクター言語です。 姉妹プロジェクト AICE は進化計算(MAP-Elites GA)で 「次世代言語が向かうべき軸」を経験的に導きます。

AIPL とは

AIPL(Actor-based Intelligent Parallel Language)は、研究用に設計された アクターモデルの並列言語です。3 つの柱で構成されています。

① マルチランタイム言語

OCaml・Python・ブラウザ JS で同一意味論を実装。アクター+スケジューラ+ビルトイン。

② 次世代言語予測(AICE)

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 と書けますが、書かなければ推論されます。

セッション型

役割どうしのやり取りの順序を静的に照合。同期の呼び先は展開するので、セッションがアクターをまたいでも追えます。

メッシュ配備

アクターのソースを他ノードへ送り、相手先で構文解析・型検査してから実体化。効果注釈が国境で照合されます。

拡張 — Python 実装のみ

CSP チャネル

要素型付きチャネルでアクター間通信を構造化。

線形・所有

use-after-move 検出と pub 可視性による所有モデル。

構造化並行

scope { future ... } による自動 join と線形 future ハンドル。

記録型・精緻化型

記録型と行多相、where による精緻化型。

クロス言語アクター

Python アクター ⇆ OCaml アクターを共通 HTTP ワイヤ形式で相互呼び出し。

実装フェーズ

Phase機能
11型注釈 / ユニオン / ジェネリクス / 長さ付き配列
12能力エフェクト !{fs,ai,net,mut}
13CSP チャネル
14線形 / use-after-move
15所有(pub 可視性)
16any 境界での transient cast
17構造化並行 scope { future ... }

このサイトの技術スタック

Node.js Express MongoDB Atlas Heroku

フロントは静的 HTML/CSS、バックエンドは Express。訪問カウンターは MongoDB Atlas に保存され、Atlas 接続の疎通確認も兼ねています。