SlimeJava — Bit-Exact Java → Rust Isolate Model
レガシーの COBOL / JCL / MUMPS / PL/I / RPG を Java・Rust へ変換してきた同じ構造的トランスレーション・エンジンが、Java にも対応します。Java ソースが Rust ソースになり、同じ入力に対して両者が byte 完全一致(SHA-256)の出力を生成します。「ほぼ等価」ではありません。1 ビットまで一致です。
LANGUAGE · SlimeNENC
意味を理解しない。構造を Rust へ射影する。
Java の「意味を理解して」書き直すのではありません。意味は人間の感覚に依存し、そこに数学的厳密性はない。ソースは 構造です。SlimeJava はその構造を Slot IR へ射影 (π) し、構造を保存したまま Rust へ転写します。Java 整数の二の補数 wrapping・シフトマスク・ゼロ除算例外まで、Java の意味論を Rust で 1 ビット違わず再現。確率的なコード生成も、経路上の LLM もなし — 決定論的・bit-exact・第三者再現可能。
古い Java のプログラムを、頑丈な Rust へ「引っ越し」させる道具。意味を解釈せず「骨組み」だけをそのまま写すので、計算の中身(整数核)は元と 1 ビットも違わない出力に(約 6 万件の自動テストで実証)。引っ越し後は起動が速く・メモリが軽く・予測しやすい。全部 Rust にはせず、写せる所だけ正直に写します。
Java を手で Rust に書き換えると整数のオーバーフローや例外の違いで必ず挙動がズレます。整数トラップ(wrapping・シフトマスク・ゼロ除算例外)まで 1 ビット違わず再現し、約 6 万件の差分ファジングで逸脱ゼロ + SMT 全入力形式証明 31 件・反例 0。UAT を機械検証可能な「振る舞い不変の証明書」へ。速度は正直に ― ホット throughput は Java 互角、効くのは起動・メモリ。
全 Java を Rust 化せず 3 領域に自動分割(Hybrid Bit-Exact Isolate)。静的核は Slot IR 経由で純 Rust へ射影(a+b→wrapping_add(b)、>>>→論理シフト、MIN/-1 まで)。動的は決定論 JVM Isolate、真の非決定性は明示 reject。受理率 98.7〜100%、起動 約 41×・RSS 約 22× 小・p99 平坦。
ソースを意味論でなく一意な構造として Slot IR へ射影(π)。primitives は二の補数=SMT ビットベクタ理論で厳密化し Z3 が全入力(2³²/2⁶⁴/2⁸)で反例なし(UNSAT)で形式証明 31 件。ループ系は Csmith 流差分ファジング(約 63,000 ケース)が担保する二層保証。動的は実行時確定の瞬間に ②層 Lisp-JIT が bit-exact コードを生成。
📋 「このレベルで AI に質問」= 選んだ解像度に合った指示つきで、このページの解説をコピーします。お手元の AI(Claude · GPT · Gemini · Grok 等)に貼れば、その目線でさらに深掘りできます。
何をするか
SlimeJava は 静的解析可能な Java サブセット(int/long の演算・制御フロー・ビット演算・配列・例外経路)を Rust (Cargo) プロジェクトへ変換します。契約は厳密 — 同じ入力に対し、元の Java と生成 Rust は byte 単位で一致した出力を生成します。各変換には Java/Rust 差分検証ハーネスが付属し、第三者が sha256sum で再実行できます。
「理解」しない。だから bit-exact。
肝は「意味を理解する」工程をあえて捨てることです。「意味」は人間の感覚に依存し揺れる — だから「理解して書き直す」移行はその揺れを持ち込みます。SlimeJava はソースを構造(曖昧さなく一意)として扱い、Slot IR へ射影し、構造を保存したまま Rust へ転写します。意味の層を通らないので結果は数学的に厳密 — 整数の二の補数 wrapping・シフトマスク・ゼロ除算例外まで、Java の意味論を 1 ビット違わず再現します。
全 Java 対応 — Hybrid Bit-Exact Isolate
「全 Java 対応」とは、全部を Rust に書き換えることではありません(オブジェクト/String/double/反射は bit-exact に Rust 化できない)。全 Java を受理することです。任意の Java を 3 領域に自動分割し、領域ごとに最も強い正直な保証を貼ります:
| 領域 | 変換先 | 保証 |
|---|---|---|
| 静的核(整数/制御/配列/ビット) | → 純 Rust | 100% bit-exact(+ SMT で全入力 形式証明可) |
| 動的(オブジェクト/String/double/反射) | → Java のまま、決定論 JVM Isolate | 固定 JVM 前提 95-99% |
| 真の非決定性(seed無 random/実時刻/I/O/並行) | → reject | bit-exact を保証しない(明示) |
実測 Hybrid 受理率は 98.7–100%(静的のみ 37% の壁を突破)。自動パーティショナが混在 Java を 1 コマンドで Hybrid 化し、原 Java と byte 一致を検証します。
実証 — すべて第三者が手元で再現可能
主張はすべて実コンパイル & byte-diff / SMT 全入力証明で裏付けています:
- 穴なし証明約 6 万ケースの差分ファジング(ランダム + 全極値総当たり)で Java と完全 byte 一致、逸脱 0。実 OpenJDK 23 本 603 ケースも一致。
- 形式検証(SMT)bitCount(32/64bit)が popcount に等しい等、12 メソッド + 除算を全入力で機械証明(反例 0)。
- 性能throughput は互角、起動 ~41×・RSS ~22×小・p99 テールは GC 無で平坦。価値は「軽い・予測可能・bit-exact」。
- Hybrid 検証330 プログラムを自動 Hybrid 化、境界呼び出し 2,259 件・例外境界まで byte 一致。
計測手続き・全検証データ・再現コマンドは リソースページ(計測手続きと一次資料) に集約しています。
3 層モデル — SlimeNENC の机
| 層 | 計算 | 保証 |
|---|---|---|
| ① 静的射影(SlimeJava) | 再現する整数 / 論理 | byte 一致 |
| ② Lisp-JIT | 実行時に確定すれば再現 | byte 一致(確定後) |
| ③ 意味判定 | 再現しない(浮動小数 / 並列 / AI) | 意味同値 + 収束 + 残差 |
製品として使う — 証明書 + CI ゲート
1 コマンドで 変換 → 実行 → byte-diff → 証明書発行。exit code で CI ゲートに組め、振る舞いが 1 ビットでも変われば赤で止まります。証明書には入力 SHA-256・変換メソッド・出力ハッシュ・判定を記録、第三者が自環境で再実行できます。人手の UAT が、機械検証可能な「振る舞い不変の証明書」に置き換わります。
| tier | 内容 | 保証 |
|---|---|---|
| Free / Open | 変換器 + 差分検証 + 証明書 CLI | byte-diff 0(実務的) |
| Pro | + SMT 全入力 形式証明 + CI 統合 + 監査証跡 | 全入力 機械証明 + 差分 |
価格・SLA は用途と規模により個別にご提示します — お問い合わせ。COBOL / PL/I 等のレガシー移行の延長で「整数核を Java→Rust に剥がす」フェーズに最適です。
ステータス
SlimeJava は 隔離方式 PoC 段階で、上記すべてを実証済みです。SlimeNENC 構造的トランスレーション・ファミリーの一員 — レガシー側は COBOL / JCL / MUMPS / PL/I / RPG・アセンブラ、モダン側は Python を変換します。全検証データは リソースページ へ。価格・契約は お問い合わせください。
