特願 2026-046620 (請求項 11 / 14d — レガシー言語方言処理にアセンブラを含む)

SlimeASM — z/Architecture HLASM + x64 MASM → Java bit-exact 変換

COBOL 移行が止まる本当の理由 — 「ASM hot-loop と OS exit」に bit-exact で蓋がける。

銀行・保険・年金の COBOL 移行が完了しないのは、~1-5% の LOC が CPU 時間の 30-50% を占める ASM hot-loop と OS マクロ (SVC / GETMAIN / ESTAE / DCB) がそのまま残るからです。SlimeASM はここに bit-exact + 監査チェーン 付きで蓋をかぶせ、 Modern Systems / Heirloom / Astadia / IBM Wazi に対する 移行プロジェクト完走の最後のピース を提供します。

  • z/Architecture HLASM: Phase A→C-3.7 まで完了。49 sample × S9 全 5 軸 = 245/245 PASS(2026-05-10)。整数・packed decimal (AP/SP/MP/DP/ZAP)・HFP (LE/AE/ME/DE)・vector SIMD (VL/VA/VC/VCE/VPERM/VSEL)・EX (Execute trick)・TR/TRT (Translate)・ED (Edit mask)・AR/AMODE 切替・DCB EODAD ファイル I/O まで動作
  • Windows x64 MASM (ml64): Phase A=整数 hot-loop transpiler。5 sample × S9 全 5 軸 = 25/25 PASS(2026-05-11)。MOV/LEA/ADD/SUB/IMUL/IDIV/CMP/JMP/Jcc/LOOP/CALL/RET/PUSH/POP + Win64 ABI shim (GetStdHandle/WriteFile/ExitProcess)
  • SlimeNENC 共通 9 ステージ基盤を共有。S2 Slot 符号化、S3 Π_R 正規化、S4 SOLOT、S5 受理 f、S7 監査チェーン、S8 Mini-PSV、S9 5 軸 bench は SlimeCOBOL / SlimePL/I / SlimeRPG / SlimeMUMPS と完全共有。S1 (FST) と S6 (emitter) のみ言語固有
  • PC-based switch dispatch による Java 翻訳。EX trick / 自己改変以外のあらゆる制御フローを bit-exact で再現
  • Java 出力を canonical runtime として 5 軸 bench (dialect / token-recover / mutation / determinism / java round-trip) で証明。実 ml64+link.exe バイナリ検証は Phase A-2 で追加軸として実装予定

銀行 IBM z/OS 系 COBOL 移行プロジェクトの 「ASM 残骸」問題に対する業界初の決定論変換器(弊社調べ)。
SlimeCOBOL + SlimeJCL に SlimeASM を加えることで、移行ツールの 三点セット完成 となります。

ASM PoC・資料請求 →

主要計測値 (2026-05-10 / 2026-05-11 実測)

245 / 245
z/Arch HLASM
49 sample × S9 全 5 軸 = ALL AXES PASS (Phase C-3.7)
25 / 25
x64 MASM (ml64)
5 sample × S9 全 5 軸 = ALL AXES PASS (Phase A)
Phase C-3.7
z/Arch カバレッジ
整数 / 10 進 / HFP / SIMD / EX / TR/TRT / ED / DCB EODAD ファイル I/O
Phase A
x64 カバレッジ
整数 hot-loop + Win64 ABI shim (GetStdHandle/WriteFile/ExitProcess)
9 段階
SlimeNENC 共通基盤
S2-S5 / S7-S9 を SlimeCOBOL と完全共有、S1 / S6 のみ言語固有
2 系統
対象アーキテクチャ
z/Architecture (IBM mainframe) + x86_64 (Windows / Linux 拡張予定)

市場文脈 — レガシーアセンブラが残る場所

銀行 (IBM mainframe)勘定系・与信・決済システム。COBOL 80-95% / HLASM 5-15% の構成が一般的だが、HLASM が CPU 時間の 30-50% を占める。Heirloom / Astadia 等は HLASM を 1-line ずつ手作業で C/C++ にリライトし、per-LOC 数千〜数万円の課金。
保険・年金年金計算・契約管理の HLASM hot-loop。AP / ZAP / packed decimal による高速 10 進演算と DCB ファイル I/O が混在、20-30 年無修正で稼働中の例多数。
防衛・宇宙x86 16-bit / 32-bit / 64-bit MASM 系。組込 Win32 DLL、レーダ信号処理、シミュレータ。Visual Studio + MASM (ml64) でビルドされた閉じたバイナリ群が更新止まり。
製造・組込Windows ベース計測機・ライン制御。x64 MASM hot-loop が DLL に閉じ込められ、保守元不明・ソースのみ残存のケース。
競合状況Heirloom Computing / Modern Systems / Micro Focus 等の COBOL 移行ツールはいずれも HLASM はサポート外 or 別契約(per-LOC 課金)。SlimeASM は WASM converter ツール課金のみ、出力 Java は永久無償デプロイ可

サポート機能一覧

z/Architecture HLASM (Phase A→C-3.7、49 sample 全 PASS)

整数 (Phase A)L / LR / LA / LH / LM / ST / STH / STM / A / AR / AH / S / SR / SH / M / MR / MH / D / DR / C / CR / CH / CL / CLR / CLC / B / BR / BC / BE / BNE / BL / BH / BCT / BCTR / BAS / BAL / MVC / MVI / XC / OC / NC
10 進 (Phase B-1)AP / SP / MP / DP / ZAP / CP / CVB / CVDBigDecimal バッキングで IBM mainframe 4-bit packed decimal を完全再現
HFP (Phase B-2)LE / LD / AE / AD / SE / SD / ME / MD / DE / DD short / long 双方 — IBM 4-bit 指数 hex float ↔ IEEE 754 双方向 bit-exact 変換
OS マクロ shimGETMAIN / FREEMAIN / ABEND / SVC / RETURN / OPEN / CLOSE / GET / PUT / READ / WRITE / DCB — z/OS マクロを POSIX/Java shim に翻訳
変換 (Phase B-3)PACK / UNPK (zoned ↔ packed) / TR / TRT (Translate / Translate-and-Test、256-byte 任意テーブル対応) / ED / EDMK (Edit mask、digit selector + verbatim pass-through)
SIMD (Phase C / C-3.5)z/Arch Vector レジスタ V0..V31VL / VST / VA / VS / VLR / VLEG / VSTEG / VC / VCE / VPERM / VSEL(lane-wise compare-equal / byte permute / select)
制御 (Phase C-3.6)EX (Execute trick、saved-PC stack で機能版実装) / SAR / EAR / CPYA (AR mode) / SAM24 / SAM31 / SAM64 / BSM / BASSM(AMODE 切替 + Branch-and-Set-Mode 真分岐)
ファイル I/O (Phase C-3.7)DCB DDNAME=... DSORG=PS MACRF=GM / PM EODAD=... + OPEN / GET / PUT / CLOSE + EODAD 真接続(EOF で指定ラベルへ分岐)。echo loop が stdin/stdout で動作

Windows x64 MASM (ml64) (Phase A、5 sample 全 PASS)

命令 (整数)mov / lea / xchg / push / pop / add / sub / inc / dec / imul (2-op) / idiv (1-op) / neg / and / or / xor / not / shl / shr / sar / cmp / test / jmp / je / jne / jl / jle / jg / jge / loop / call / ret
レジスタRAX/RCX/RDX/RBX/RSP/RBP/RSI/RDI/R8..R15 + サブレジスタ全種 (eax/ax/al/r8d/r8w/r8b 等)。32-bit 書込はゼロ拡張、16/8-bit は上位保持を bit-exact 再現
データ定義db / dw / dd / dq + equ $ - label(サイズ算出)。データセグメントは合成リニアアドレス (0x1000 起点 16-byte aligned) で再現
セクションoption casemap:none / includelib / extern / .code / .data / proc / endp / end
Win64 ABI shimGetStdHandle / WriteFile (RCX=hFile, RDX=lpBuffer, R8=nBytes, R9=lpWritten, [rsp+32]=lpOverlapped) / ExitProcessSystem.out.write に翻訳。32-byte shadow space + push 引数も honored

変換例 — z/Arch HLASM の echo loop (Phase C-3.7)

DCB EODAD で stdin の EOF を捕捉し、PUT を通って出力に転写する典型形:

* SlimeASM sample 49 — echo until EOF using DCB EODAD= branch.
ECHOL    CSECT
         OPEN  (INDCB,(INPUT),OUTDCB,(OUTPUT))
LOOP     GET   INDCB,RECBUF
         PUT   OUTDCB,RECBUF
         B     LOOP
EOFRTN   DS    0H
         CLOSE (INDCB,,OUTDCB)
         WTO   'ECHO_LOOP_OK'
         BR    14
INDCB    DCB   DDNAME=DDIN,DSORG=PS,MACRF=GM,EODAD=EOFRTN
OUTDCB   DCB   DDNAME=DDOUT,DSORG=PS,MACRF=PM
RECBUF   DS    CL80
         END   ECHOL

S6 emitter は EODAD 属性を読み、 GET 命令の EOF パスを EOFRTN ラベルへの直接 PC ジャンプ に翻訳します。stdin 空入力で即 EOFRTN へ落ち、CLOSE → WTO まで直線実行され bit-exact PASS。

変換例 — x64 MASM の整数 hot-loop (Phase A)

Win64 ABI で WriteFile を呼んで「SUM=15」を出力する典型 (1+2+3+4+5):

; SlimeASM-x86 sample 03 — loop sum 1..5 -> 15, print "SUM=15".
.code
main proc
    xor  rax, rax              ; sum = 0
    mov  rcx, 5                ; counter
sum_loop:
    add  rax, rcx
    loop sum_loop              ; dec rcx; jnz sum_loop  → rax = 15

    mov  rcx, 10
    xor  rdx, rdx
    idiv rcx                   ; rax=tens, rdx=ones
    add  al,  '0'
    add  dl,  '0'
    mov  buf,   al
    mov  buf+1, dl

    ; ... GetStdHandle / WriteFile prefix / WriteFile buf ...
    xor  rcx, rcx
    call ExitProcess
main endp
end
// Generated Java (deterministic, byte-exact)
case 1: R[1] = 5L; pc++; break;                   // mov rcx, 5
case 2: R[0] = R[0] + R[1];                       // add rax, rcx
        ZF = (R[0] == 0) ? 1 : 0;
        SF = (R[0] < 0)  ? 1 : 0; pc++; break;
case 3: R[1] = R[1] - 1;                          // loop sum_loop
        pc = (R[1] != 0) ? 2 : pc + 1; break;

監査適合性 (金融・防衛)

  • Bit-exact同一 .s / .asm 入力 → 同一 sha256 Java 出力。HFP / packed decimal / vector / x86 サブレジスタ semantics すべて含めて完全決定論。
  • Java round-tripemit → javac → java → stdout を expected と diff、 HLASM 49/49 + x64 MASM 5/5 PASS(2026-05-10/11 baseline)。s9_bench/bench.py で全 5 軸自動回帰。
  • Mutation 検出SOH (0x01) を任意位置に注入 → トークナイザが reject。HLASM 49/49 / x64 MASM 5/5 で全 mutation を 100% 検出。
  • 決定論同一入力で 2 回 emit → byte-exact 一致を毎 sample で確認。
  • Audit chainSlimeNENC 共通基盤 (S7) と統合可能、SHA-256 monotonic chain。
  • Build-time LLMLLM は変換規則の構築段階のみ。ランタイムは決定論ルールベース、99.9995% 主張の根拠。

SlimeNENC ファミリーでの位置付け

  • SlimeCOBOL の land-and-expand 仕上げ銀行 COBOL 移行プロジェクトでは、HLASM hot-loop が残ると Heirloom 等に per-LOC 課金で再依存する。SlimeASM 同梱で「移行プロジェクト 1 ベンダー完結」が成立する。
  • SlimeJCL とのトリオCOBOL (本体) + JCL (制御) + ASM (hot-loop) の 3 点セットで IBM z/OS バッチ系の移行が完走。
  • x64 への水平展開z/Arch で確立した Slot IR + S2-S9 共通基盤を Windows x64 (Phase A 完了) → Linux x86_64 NASM/GAS (Phase B 予定) → AVX-512/AMX (Phase C) → 16-bit DOS / 自己改変対応 (Phase D) へ展開。
  • 独立 SKU他の SlimeNENC 製品と同じく独立 SKU。並列化 (PSDP) は本製品に含まれない

License モデル

課金対象WASM/WASI converter ツール (開発者側)
非課金変換結果の Java ソース (顧客資産、永久無償デプロイ)
方式Ed25519 署名 144B license + 3-hop air-gap activation (金融・防衛 audit 対応)
並列化 (PSDP)本製品には含まれません。SlimeNENC 配下の独立 SKU として PSDP を別途。

関連資料

  • 技術解説SlimeNENC Technical Overview (アセンブラ章を準備中)
  • 出願明細特願 2026-046620 v15b の請求項 11 / 14d で COBOL / MUMPS / PL/I / RPG / アセンブラ等のレガシー方言処理を明示射程化
  • 兄弟製品SlimeCOBOL / SlimeJCL / SlimePL/I / SlimeRPG / SlimeMUMPS と同じ S2-S5 / S7-S9 共通基盤
  • ベンチマークS9 bench harness (5 軸 correctness)、s9_bench/bench.py で HLASM 245/245 + x64 MASM 25/25 自動回帰

ASM PoC・資料請求 SlimeNENC ファミリーへ戻る SlimeCOBOL を見る SlimeJCL を見る