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・第三者再現可能。
何をするか
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 を変換します。全検証データは リソースページ へ。価格・契約は お問い合わせください。
