SlimeRESCUE-VOS3 RELEASED
z/Architecture ロードモジュールから直接 Java/COBOL/Rust/C#/Kotlin/Go へ bit-exact 変換。
Hitachi VOS3 / Fujitsu MSP / Fujitsu GS21 / IBM z/OS は全て 同一の z/Architecture ISAを使用する PCM (Plug Compatible Mainframe) 互換群。 SlimeRESCUE-VOS3 は単一 codebase で全ベンダーをカバーします。 2026-05-20、1 セッションで 6 Phase 完成 = MVP 達成、 Hercules 3.13 official emulator と cross-validation 完了。
レガシー資産(古い言語のプログラム)を、意味を変えずに現代へ運ぶ製品です。ふつうの書き直しは気づかぬうちに中身がズレて事故になりますが、意味を解釈せず「骨組み(構造)」だけをそのまま写すので計算の中身が元と変わりません。動くことを"証明"してから渡すので移行の不安が消えます。写せる所だけ正直に写し、できない所は隠さず分けます。
手で書き直すと、数値計算や例外の細かな違い(境界条件)で挙動がズレ、その確認(新旧比較テスト)に膨大な人件費がかかります。言語特有のトラップまで忠実に写し、差分テストで「ズレゼロ」を実証、独立した参照実装で裏付け。成果物は人手の UAT でなく機械検証可能な「振る舞い不変の証明書」。誇張せず、対応できない部分は隠しません。
ソースを Slot IR(言語非依存の構造中間表現)へ射影し、構造を保存したままターゲットへ転写。静的に決まる核は bit-exact に、動的・状態依存は隔離帯へ正直に分離(isolate, don't confabulate)。差分ファジング + 適用可能箇所での形式手法で裏付け、第三者が手元で再現できる決定論的検証を提供します。
意味論でなく一意な構造として射影(π)。primitives はビットベクタ理論で厳密化し全入力で形式検証、合成・ループ等は Csmith 流差分ファジングで担保する二層保証。再現しない計算は意味同値+収束+残差の③層へ。「形のある所は bytes で、形のない所は意味で。どちらの面でも嘘をつかない」 ― SlimeNENC の机。
📋 「このレベルで AI に質問」= 選んだ解像度に合った指示つきで、このページの解説をコピーします。お手元の AI(Claude · GPT · Gemini · Grok 等)に貼れば、その目線でさらに深掘りできます。
6 Phase MVP 達成 (2026-05-20)
| Phase | 内容 | 規模 | 検証 |
|---|---|---|---|
| A ✓ | z/Arch 命令 disassembler、33 format families 100% カバー | 757 行 | 28/33 PASS (5 alias)、18 format 20/20 PASS、cobol-like seq 8/8 PASS |
| B ✓ | s390x ELF64 BE parser (Linux file(1) が「IBM S/390」認識) | 260 行 | ELF roundtrip 8/8 PASS |
| C ✓ | Slot IR mapping (67 mnemonic 対応表、既存 SlimeNENC slot.c backend 互換) | 406 行 | Slot IR mapping 8/8 PASS |
| D ✓ | z/OS LOADLIB / PDS parser (256-byte directory blocks、EBCDIC member name、TTR ポインタ) | 275 行 | PDS roundtrip 3 member byte-exact + pipeline 8/8 PASS |
| E ✓ | Python z/Arch interpreter (25 命令 + packed BCD decimal + Hercules-style trace) | 342 行 | behavioural 6/6 PASS + Hercules 3.13 cross-validated 6/6 |
| F-1 ✓ | unified CLI + HTTP service (127.0.0.1:8770、4 endpoints、slot/java/trace/all) | 316 行 | E2E 5 test PASS + curl 動作確認 |
| 合計 | 3,588 行 | 全 8 test PASS / regression 0 | |
Hercules 3.13 official emulator との cross-validation
SlimeRESCUE-VOS3 の信頼性を担保するため、Hercules 3.13 (IBM 公認の open-source z/Architecture emulator、研究機関で標準的使用) と 同一 hex stream を実行した結果を完全比較しました。
| 環境 | Hercules 3.13 (Ubuntu apt-get)、CPUMODEL 3090、MAINSIZE 16MB |
|---|---|
| テスト stream | 32 bytes / 8 instructions (AR / A / LM / STM / MVC / AP / CLI / BCR) |
| Disasm 比較 | 6 / 6 命令で mnemonic + operand 完全一致 (1A12=AR 1,2、5A134FC0=A 1,3(4)、98256F00=LM 2,5,3840(6)、...) |
| Register state | GR1 final = 0x15E (= 350)、SlimeRESCUE interpreter と Hercules で完全一致 |
| Memory state | 0x8000-0x800F の MVC + AP 書込み結果が両者で byte-exact 一致 |
※ Hercules は z/OS 顧客の検証環境としても広く使用されており、これと一致するこ とで「同じ機械語 binary を Hitachi VOS3 / Fujitsu MSP / IBM z/OS 実機で実 行した結果」と同じ振る舞いを Java/COBOL/Rust 移植先で再現できる根拠となります。
動作例 (実 curl)
Phase F-1 HTTP service (port 8770) に s390x ELF を POST した結果:
# 8 命令の z/Arch サンプル (AR/A/LM/STM/MVC/AP/CLI/BCR) を s390x ELF 化
$ curl -s http://127.0.0.1:8770/health
ok
$ curl -s -X POST --data-binary @sample.elf \
http://127.0.0.1:8770/slimerescue/slot
# format: elf
# dialect: s390x-linux
# instructions: 8
# slots: 8
SLOT op=STMT_COMPUTE ck=STMT tt=BIN ext=0x000000c8 ; "ar R1=1 R2=2"
SLOT op=STMT_COMPUTE ck=STMT tt=BIN ; "a R1=1 X2=3 B2=4 D2=4032"
SLOT op=STMT_MOVE ck=STMT tt=BIN ; "lm R1=2 R3=5 B2=6 D2=3840"
... (8 slots total)
$ curl -s -X POST --data-binary @sample.elf \
"http://127.0.0.1:8770/slimerescue/java?class=DemoCobol"
public final class DemoCobol {
public static void main(String[] args) {
long[] R = new long[16];
byte[] M = new byte[1<<20];
/* ar R1=1 R2=2 — COMPUTE */
R[1] = (R[1] + R[2]) & 0xFFFFFFFFL;
...
}
}
技術仕様 (詳細)
| 対応 ISA | IBM S/370 / 390 / z-Architecture (1,778 / 1,962 mnemonics = 91%、33 / 33 format families = 100% 含 vector) |
|---|---|
| opcode source | GNU binutils s390-opc.txt (公式) を機械的に取り込み、独自取得を防止 |
| 対応 binary 形式 | s390x ELF64 BE (Linux) + z/OS LOADLIB (PDS、256-byte directory blocks、EBCDIC name) |
| dialect_id | DIALECT_S390_LINUX = 200、DIALECT_S390_LM = 201 (既存 SlimeNENC dialect 空間と非衝突) |
| Slot IR | SlimeNENC 既存 Core64 + Ext32 互換、slot.c slot_print() 出力一致 (既存 backend 流用可) |
| 出力先言語 | Java / COBOL / Rust / C# / Kotlin / Go (SlimeNENC S6 emitter 5 言語、既存資産) |
| interpreter 命令 | 25 命令 (AR, A, AGR, AHI, SR, LR, LGR, L, LHI, LA, ST, LM, LMG, STM, STMG, MVC, MVI, CLI, CLC, CR, C, BCR, BC, AP, SP, CP, PR) |
| EBCDIC 対応 | Python cp037 codec、PDS member name 復元、COBOL 文字列対応 |
| Packed BCD | COMP-3 互換、AP/SP/CP 命令の decimal 演算 (1-16 byte 長) |
| WASI port | Phase F-2 達成 (2026-05-20) ― C 移植 ~580 行 → clang --target=wasm32-wasi -O2 で slimerescue.wasm = 84,530 byte (84 KB)。当初推定 < 500 KB の 約 1/6、既存 SlimeNENC java_emit.wasm (293 KB) より小さい。3-way 検証 (Python ↔ native C ↔ WASM via wasmtime) で slot stream の audit_hash まで byte-exact 一致 (raw / s390x ELF / PDS member 全 path)、SAB 不要 |
| 政策遵守 | HTTP service 127.0.0.1 enforced (no public exposure)、既存 SlimeNENC service policy 順守 |
適用シナリオ
- Hitachi VOS3 廃止案件: 地方銀行 / 自治体 / 電力会社の VOS3 メインフレーム廃止、ソース消失で頓挫している案件
- Fujitsu MSP / GS21 廃止案件: 旧 Amdahl / 富士通 PCM ユーザー、MSP 周辺は VOS3 と同型対応
- IBM z/OS LOADLIB レガシー: 30-40 年前にコンパイルしたまま使い続けているロードモジュール、ソース管理外
- M&A 後の情報資産整理: 統合後にソース所在が不明、PDS / LOADLIB しか残っていない
- 監査要件対応: ロードモジュールが実装している処理を可視化 (Slot IR + Java 等価) してドキュメント化
関連 / 価格
SlimeRESCUE-VOS3 は Binary 起点プレミアム SKU。 ソース起点 SlimeCOBOL と比較して 5-10x の単価設定 (代替手段ゼロ + 市場独占性)。 PSDP との組合せ、ボリュームディスカウント、SIer パートナー margin は パートナーページ 参照、詳細は NDA 後開示。
関連: SlimeRESCUE ファミリー · SlimeCOBOL (ソース起点) · SlimeASM-rev (x86_64 ELF/PE Binary、現行) · PSDP (同一言語並列化)
