1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「できない」を「必要ない」と言い換えるな ― NIST CCVS85 501/501を人手ゼロで通過して見えたCOBOL移行の現実

1
Posted at
  • NIST CCVS85は459本の連邦COBOL適合性テスト。40年分の地雷原
  • ほとんどのCOBOL変換ツールはこの名称に一切触れない。GnuCOBOLですらEXEC CICS/SQL入りは0-6%しか受理できない
  • 「実資産は方言とCICSが大事だからCCVSは不要」というのは論理のすり替え。できないから言及しない
  • SlimeCOBOLはNIST 459 + 自社金融42 = 501/501を100.000% bit-exactで通過。人手ゼロ、目視レビュー例外ゼロ、手書き書き直しゼロ。改竄検知シール付き
  • 加えて14方言自動検出、方言検証18/18 bit-exact、外部11コーパス919ファイル×5言語=4,595/4,595 byte-exact

1. よく聞く便利な言い訳

COBOL移行の打ち合わせで必ず出るフレーズがあります。

「NIST CCVS85なんて古い。実資産は方言やCICSが重要だから必要ない」

合理的に聞こえます。しかしこれは典型的な「できない」を「必要ない」に言い換えるレトリックです。

2. NIST CCVS85とは何か

NIST CCVS85 (FIPS 21-3)は、米国連邦政府がCOBOLコンパイラを認証するために作った公式適合性スイートです。

  • 459プログラム
  • 詰め込み小数(COMP-3)のオーバーフロー、符号ビットの反転バリエーション、SIZE ERROR / GIVING / multi-targetの組み合わせ、REPORT WRITERのレアな組み合わせ
  • つまり、仕様書を読んだだけでは絶対に気づかない40年間の実装の差異の集積

IBM、富士通、日立が何年も専任チームを張って潰してきた領域です。

3. なぜベンダーは言及しないのか

数字で見ると明らかです。

処理系 対象 受理率
GnuCOBOL -std=cobol2014 Defects Suite 35%
GnuCOBOL -std=ibm / -std=mf Defects Suite 75%
GnuCOBOL EXEC CICS / EXEC SQL入り (CBSA/carddemo等) 0-6%
SlimeNENC NIST 459 + Portfolio 42 = 501 501/501 = 100.000% プログラム単位 bit-exact

vanillaなコンパイラですらEXECが入ると6%しか受理できない。CCVS85の地雷を踏まずに「方言対応」を語るのは、基礎工事をスキップして内装の話をするのと同じです。

合格できないから、言及しない。それだけです。

4. 「方言こそ重要」は本当か?

これは半分正しく、半分すり替えです。

正しいのは、実資産には確かにIBM Enterprise / z/OS、Burroughs/Unisys、日立OpenTP1などの方言差があること。

すり替えなのは、「だからCCVSは不要」という結論です。論理的にはこうなるはずです:

  1. 数値核をbit-exactにできない → どの方言でも1円ズレる
  2. 数値核をbit-exactにできる → その上で方言差分を吸収できる

順序が逆なのです。

SlimeCOBOLはこの順序を守りました。

  • 5 SKU umbrella: lineage別にS1 tokenizerのみ特化、Slot IR + S2-S9 + 5言語emitは完全共有。狭く硬いscope claim
  • 14方言自動検出: 識別子マーカー分類でIBM / Burroughs / Unisys / Hitachi OpenTP1などを自動判定
  • 方言検証: 18/18 dialect-verify × 5言語 = 90/90 cells bit-exact、Round-trip token-exact

「方言が大事だからCCVSは不要」は、CCVSに受かって、14方言も自動検出して、初めて言えるセリフです。

5. SlimeCOBOLは何をやったか

2026-05-20時点の実測値です。サンプリングなし、全数監査です。

  • NIST CCVS85 459 + Portfolio Mgmt 42 = 501/501 = 100.000% プログラム単位 bit-exact
  • 外部11コーパス 919ファイル × 5言語 = 4,595/4,595 = 100.000% byte-exact
    • 内訳: AWS CardDemo 44、IBM CBSA 29、Rocket BankDemo 81、ACAS 3.01.07 production 10万行 137ファイル含む
  • 人手ゼロ: ビジュアルレビュー例外ゼロ、「ここだけ手書きで直す」ゼロ
  • 監査適合: 全変換にAudit chain(FNV-1a-64 hash-chain)で改竄検知シール付与、Round-tripでトークン完全一致
  • 決定論: 同一入力+同一バージョンでSHA-256完全一致。LLMは構築時のみに使用、ランタイムはルールベース
  • 性能: median 62ms / p95 145ms / O(N)
  • 再現コマンド: wasmtime run --dir=. java_emit.wasm < input.cbl | sha256sum でELF直接実行とWASI経由が一致することを第三者が再現可能

監査に耐える、1円も狂わないCOBOL → Java / Rustトランスパイラ。変換後コードもRound-tripで完全に戻せる

これが「第3の道:決定論的トランスパイル」の中身です。

6. なぜCCVS85に受かることが実資産で効くのか

CCVS85は古いテストだから実務に関係ない、と思われがちですが、逆です。

実資産のバグの9割は数値核です。COMP-3の10進9桁と10桁の境界、符号ニブル0xC/0xD/0xFの扱い、ON SIZE ERRORの発火条件。これが1ビットずれると利息計算で1円ズレる。1円ズレると監査で止まる。

方言やCICSは、その数値核が正しいという前提の上に乗る「配線」です。配線だけ綺麗にしても、核が1ビットずれたら全損です。

だから私たちは40年分の地雷原を、人手を介さず歩きました。

7. まとめ

業界への問いです。

業界はいつまで「できない」を「必要ない」と呼び続けるのでしょうか?

CCVS85という客観的な物差しがある。459本という誰でも検証可能な地雷原がある。それを語らずに「方言が重要」「CICSが重要」と言うのは、測定から逃げているだけではないか。

私たちは測定しました。501/501。4,595/4,595。14方言自動検出。18/18。

できないなら、できないと言えばいい。その上でどう超えるかを議論すればいい。「必要ない」という言い訳は、もう通用しません。


製品: SlimeCOBOL-MF / SlimeCOBOL-GnuCOBOL RELEASED、MicroFocus / RM / ACUは案件先行受付
特許: 特願 2026-046620 SlimeNENC family (Core64+Ext32固定bit Slot IR)
検証: NIST CCVS85 + Portfolio Mgmt + 外部11コーパス、WASI 40.0.0で第三者再現可能
詳細: https://www.javatel.co.jp/ja/products/slimenenc/slimecobol/

#COBOL #Mainframe #Modernization #NIST #CCVS85 #LegacyMigration

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?