特願 2026-046620 (請求項 11 / 14d / 0018 — MUMPS 明示カバー)

SlimeMUMPS — MUMPS → Java / Clojure bit-exact 変換

医療 EHR と金融 MUMPS の決定論的近代化、HIPAA 監査要件まで一気通貫。

VistA / Epic / Meditech / Ameritrade / Bank of England 等で稼働する 世界数千万 LOC の MUMPS 資産 を、 bit-exact + 監査チェーン + 改ざん検出 付きで Java / Clojure へ移植。

  • 8 方言を自動検出 (ANSI 95 / Caché / GT.M / YottaDB / IRIS / FreeM / MiniM / MV1)
  • MUMPS globals (sparse 階層 KV) を SlimeTree-RLM B-Tree に自然対応 (4 層 tier 自動配置)
  • S9 bench 全 5 軸 100.0000%combined 171/171 + Rosetta 98/98 + synth 73/73 全件 javac PASS、emit 決定論、変異検出
  • InterSystems Caché 独特拡張 14 機能を実機完動##class / Embedded SQL / Dynamic SQL / $$$macro + 引数付き / %Stream / %ResultSet / $LIST* / %DynamicObject / %XML / %Net.HttpRequest / HL7 v2 / Pick MV
  • $$$macro プリプロセッサは WorldVistA + InterSystems サンプルで #DEFINE 用法カバー率 ≈ 99%

HIPAA / 金融監査が要求する Round-trip + 改ざん即検出 を実装、 「変換が情報を捨てていない」ことを監査人が事後再現できる、
世界初の MUMPS 向け決定論的トランスパイラ (弊社調べ) です。

医療 EHR PoC・資料請求 →

主要計測値 (2026-05-07 実測)

342 / 342
3 corpus 合計 javac PASS
combined 171 + Rosetta 98 + synth 73
171 / 171
corpus_combined
方言 / token / javac / 変異 / 決定論 全 100%
98 / 98
Rosetta Code 野良 MUMPS
無修正で javac PASS、改善前 57.31% → 100%
14 機能
Caché 独特拡張 完動
##class / &sql / $$$macro / %Stream / HL7 ほか
~99 %
$$$macro #DEFINE 用法カバー
WorldVistA + InterSystems サンプル基準
8 方言
自動検出 (8/8 PASS)
ANSI 95 / Caché / GT.M / YottaDB / IRIS / FreeM / MiniM / MV1
19 段階
Phase 1-19 機能実装
SET/FOR/IF… → Caché ObjectScript / OO / SQL / Macro / Stream / JSON / XML / HTTP / HL7 / MV
2 言語
出力 emitter
Java (enterprise) + Clojure (構造的純度)

InterSystems Caché 独特拡張 — 14 機能 実機動作確認済

Caché / IRIS で稼働するアプリケーションが MUMPS 単体ではなく Caché 拡張 に依存している現実に応えました。 以下 14 機能はすべて 2026-05-07 の実測で generated Java を java -jar で起動 → 期待出力一致 を確認 (sqlite-jdbc + slf4j 依存):

PhaseCaché 機能サンプル / 確認内容
13Embedded SQL &sql(SELECT ...)M_17: 2 行 SELECT、SQLCODE=0 確認
14ObjectScript ##class().%New() / %Save()M_18: save → reload → kill、extent 2→1 全動作
15Dynamic SQL %SQL.Statement (%Prepare/%Execute)M_19: rowcount=2、再 execute も正常
16$$$macro + #DEFINE NAME body 展開M_20: 4 macro (GREETING/TARGET/BANG/LIMIT) 全展開、sum 1..10=55
16$SYSTEM.SQL.Execute(sql, args...)M_21: ranking 結果 3 件出力、6-token pattern 検出
17引数付きマクロ (%1/%2/${name} 全置換)M_22: LOG / FMT / NAMED / POS 4 形式すべて動作
17%Stream.GlobalCharacterM_22: Write / Rewind / ReadLine / Clear loop 動作
17legacy %ResultSetM_23: %Prepare/%Execute/%Next/%Get、rowcount=2
18$LISTBUILD / $LIST / $LISTGET / $LISTLENGTH / $LISTFINDM_24: 5 items walk、デフォルト値 fallback、find
18%DynamicObject / %DynamicArray (Caché JSON)M_25: 構築 → toJSON → parse round-trip
18%XML.Reader / %XML.WriterM_26: 3 elements parse、orders/order 構造
19%Net.HttpRequest (GET / POST)M_28: status=200、本文 echo 確認
19HL7 v2 message parser (MSH / PID / PV1)M_29: 3 segments、family/given/MR id 抽出
19Pick / Universe MV constants @VM / @AM / @SM / @TM / @FMM_27: 4 attrs + sub-value split、VM=253/AM=254/SM=252

Phase 別実装マップ — Phase 1-2: SET/WRITE/QUIT/TSTART/TCOMMIT/TROLLBACK/LABEL/NEW/FOR/IF/ELSE/DO/Q:cond  |  Phase 12: Caché/IRIS $Z* intrinsic (top 7 by WorldVistA freq)  |  Phase 13: Embedded SQL → JDBC  |  Phase 14: ##class OO surface  |  Phase 15: Dynamic SQL  |  Phase 16: $$$macro + $SYSTEM.SQL.Execute  |  Phase 17: 引数付きマクロ + %Stream + legacy %ResultSet  |  Phase 18: $LIST* + %DynamicObject/Array + %XML  |  Phase 19: %Net.HttpRequest + HL7 + Pick MV

市場文脈 — 世界に眠る MUMPS 資産

VistA米退役軍人省 EHR、2.1 M LOC。Oracle Cerner 移行が数十億ドル規模で遅延中、純国産 + bit-exact の SlimeMUMPS が射程。
Epic世界最大 EHR ベンダ、Caché ベース。Epic 顧客 (Mass General Hospital 等) の段階移行需要。
Meditech米中堅病院の主流、MUMPS 派生。ベンダロックイン解除の現実解。
Ameritrade金融機関の MUMPS 利用、TD Ameritrade 等。
Bank of England / Barclays欧州金融の MUMPS 残存、決済基幹で稼働中。
市場規模世界数千万〜1 億 LOC、年間維持コスト数十億ドル。競合 (TSRI 等) は per-LOC 課金で数十億円規模、SlimeMUMPS は WASM converter ツール課金のみ、出力コードは永久無償

8 方言の自動検出 (8/8 PASS)

S1 FST が方言別 fingerprint で識別、後続パイプラインに dialect meta を伝搬:

ANSI 95 InterSystems Caché InterSystems IRIS GT.M (FIS) YottaDB FreeM MiniM MV1
GT.M$ZT / $ZTRAP trap、$ZV system var、NAKED reference 挙動
Caché ObjectScript##class(...).%New()&sql(...) embedded SQL、&js(...) embedded JS
IRISENSEMBLE/csp/ production patterns
YottaDB$ZVERSION + "YottaDB"、ydb_* 関数群
その他FreeM (GPL)、MiniM、MV1 (Ray Newman) を fingerprint 一致で識別

MUMPS globals → SlimeTree-RLM の自然対応

MUMPS の 階層 sparse KV は SlimeTree-RLM の S 式類似 Slot IR構造同型。 60 年越しの独立収束で、変換は「写像」ではなく「同型写像の具体化」になります。

; MUMPS
SET ^PATIENT(123,"DOB")="1955-08-15"
// Java (SlimeMUMPS emit)
rt.set("PATIENT", new Object[]{123, "DOB"}, "1955-08-15");
;; Clojure (SlimeMUMPS emit)
(rt/set-global! [:PATIENT 123 "DOB"] "1955-08-15")

4 層 tiered storage (auto-demote)

Hot Shelf
L1/L2 cache + DRAM
入院中の患者バイタル / ICU monitor / 当日処方
Treap、頻アクセス
Cold Shelf
DRAM
退院 30 日以内 / 外来 6 ヶ月
RB-Tree、安定 slot
B-Tree Storage
SSD/NVMe
6 ヶ月-2 年 / 画像 thumbnail meta
SQLite/lmdb、auto-demote
Archive
Object Storage
2 年以上 / HIPAA 保存義務
Hilbert ordering で配置

auto-demote 実測 (2026-05-07): hot tier 上限 100、batch demote 100、1000 set + 900 demote、RAM audit 1900 entries 全 verify PASS、tamper detection 動作確認。
BTree 永続層実測: persistBatch 3600 records single-tx 34 ms (9.36 µs/rec)、per-record fsync 200 records 690 ms (3.45 ms/rec)、計 3800 records on disk 596 KB、reopen verify PASS、tamper 1 byte flip 即 DETECTED。

S9 ベンチ結果 (2026-05-07 実測 — 3 corpus 全 5 軸 100%)

Corpus件数Axis 1 dialectAxis 1 tokensAxis 1 javacAxis 2 mutationAxis 3 determinism
corpus_combined (自社 + 公開合成)171171/171171/171171/171154/154171/171
corpus_rosetta (Rosetta Code 野良 MUMPS)9898/9898/9898/9882/8298/98
corpus (synth)7373/7373/7373/7372/7273/73
合計全 corpus 全 5 軸 100.0000% (失敗ゼロ)

Honest 数値開示: 公開時点 (旧版ページ) では Rosetta Code 野良コード 98 件で 57.31% PASS と公表していました。 Phase 12-19 の InterSystems / Pick MV 拡張対応により、 Rosetta 98 件すべて javac PASS、 さらに combined 171 件、自社 synth 73 件すべて 100% PASS を 2026-05-07 に実測。改ざん検出 (Axis 2) は変異を 308/308 全件 reject、 emit 決定論 (Axis 3) は連続 emit が byte-identical で 342/342 全件 PASS。 S6 byte-exact regression 用 expected 出力は 0 件 (リファレンス未保存) のため、 現状は emit 後の javac compile + Axis 3 を等価条件として扱っています。

サポート構文・コマンド (ANSI MUMPS + Caché ObjectScript)

ANSI MUMPS コア (Phase 1-2)
変数NEW / SET / KILL / $LENGTH / $EXTRACT / $FIND
制御フローIF / ELSE ($T 連鎖) / FOR / QUIT (postcondition Q:cond) / GOTO
Globals$ORDER / $DATA / 多階層 subscript
Pattern match?N / ?A / ?L / ?U / ?P / ?C / ?E、class combination (AN)、alternation ((A,N))、count range (1.10A)
間接実行@XD @X 静的還元 (90% 静的解決可能)、$$LABEL^ROUTINE reflective dispatch
TransactionTSTART / TCOMMIT / TROLLBACK、tx snapshot で復元
I/OWRITE / READ / OPEN / USE / CLOSE
その他HALT / HANG / LOCK / MERGE / VIEW
InterSystems Caché / IRIS 拡張 (Phase 12-19)
$Z* intrinsic$ZV / $ZVERSION / $ZTIMEZONE / $ZH / $ZP / $ZTRAP / $ZD ほか top 7 by WorldVistA freq
Embedded SQL&sql(SELECT ... INTO :var) / &sql(INSERT INTO ...) → JDBC 透過
ObjectScript OO##class(Pkg.Class).%New() / %Save() / %Open() / %Kill() / .Property / .%Method() chain / extent walk
Dynamic SQL##class(%SQL.Statement).%New() / %Prepare() / %Execute(args...) / %Next() / %Get(col) / %ROWCOUNT / %SQLCODE
Macro 系 (Phase 16/17)#DEFINE NAME body 収集 → $$$NAME 最長一致置換 (pre-pass、_ は MUMPS 連結 OP) / 引数付き #DEFINE LOG(msg,sev) + %1/%2 / ${name} 形式
1-line SQL$SYSTEM.SQL.Execute(sql, args...) 6-token pattern 検出 → SlimeSqlStatement 経由
Stream 系%Stream.GlobalCharacter / %Stream.FileCharacter — Write / Rewind / ReadLine / AtEnd / Size / Clear
レガシー %ResultSetCaché 旧 API、Phase 15 と同パスにエイリアス
$LIST family$LISTBUILD / $LIST / $LISTGET (デフォルト fallback) / $LISTLENGTH / $LISTFIND
Caché JSON%DynamicObject / %DynamicArray%New / %Set / %Get / %ToJSON / %FromJSON
XML I/O%XML.Reader / %XML.Writer — element parse、attribute、自前 build
HTTP%Net.HttpRequest — GET / POST、status / body / header アクセス
HL7 v2HL7.Message — MSH / PID / PV1 セグメント分解、^/~/\/& separator、コード抽出
Pick / Universe MV@VM=253 / @AM=254 / @SM=252 / @TM=255 / @FM=254 自動登録、attribute / sub-value 分解

パイプライン構成 (9 ステージ、SlimeNENC 共通)

S2-S5 / S7-S9 は SlimeCOBOL と完全共通、S1 (MUMPS FST) と S6 (Java/Clojure emitter) のみ MUMPS 固有:

FST 字句MUMPS tokenizer + 8 方言検出
Slot IRCore64 + Ext32 + MUMPS meta
(is_global / subscript_depth / dialect)
Π_R 正規化冪等 + 不変量保持
SOLOT4 軸の意味距離 E_D 算出
Acceptor f64 次元 encoder + dφ 判定
EmitterJava / Clojure ソース生成
(2 言語の S6)
Audit chainSHA-256 monotonic chain
+ rollback (tombstone)
Mini-PSVbigram + trigram で halluc 検出
Bench3 軸 correctness、73 + 98 件で実測

監査適合性 (HIPAA / 金融)

  • Bit-exact同一入力 → 同一 sha256。$ORDER walk / pattern match / 間接実行も含めて完全決定論。
  • Audit chainRAM 内 SHA-256 monotonic chain + B-Tree 永続層側にも独立 chain。記録は append-only、過去削除しない。 RAM 1900 entries の例で 0b1297dd50799d3a28e90e57e7ea30ee... 等の 32 文字 hex tail を提示可能。
  • Tamper detectiondisk上の record blob を 1 byte flip で書き換えたとき、verify_chain() が 必ず DETECTED。SmokeTest / BTreeIntegrationTest / AutoDemoteTest の全 3 経路で実証。
  • Rollbacktombstone 方式の論理削除。chain 切らず append-only、時刻指定で過去状態完全復元。AutoDemoteTest で 900 demote 後も 1900 entries 全 verify PASS。
  • $ORDER 決定論subscriptIndex (TreeSet/global per prefix) で O(log N)、並列 psdpWalk でも sorted index → indexed access で deterministic。
  • Hallucination 検出trigram + bigram 言語モデル。Axis 2 で 154/154 反転 mutation を全件 reject。
  • Build-time LLMLLM は変換規則の構築段階のみ。ランタイムは決定論ルールベース、99.9995% 主張の根拠。

典型ユースケース

VistA 移行米退役軍人省 EHR、2.1 M LOC。OpenVistA (GPL、内部 QA 用) で coverage を上げ、本番は顧客実コードで NDA-PoC。Oracle Cerner 移行失敗中の現実的代替。
Caché ObjectScriptInterSystems Caché 系 (##class(...).%New()&sql(...) 等) は graceful degradation で javac PASS、ロジック移植は段階的。
金融 MUMPSAmeritrade / Bank of England 等の決済基盤。bit-exact + transaction で利息 1 円も狂わない移行。
HIPAA 監査変換前後の数値同一性を Round-trip + Audit chain で証明。改ざん 1 byte で必ず DETECTED、監査人事後再現可能。

License モデル

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

関連資料

  • 技術解説SlimeNENC Technical Overview (A5 21 ページ、Subset A 解説に MUMPS 章を追加予定)
  • 出願明細特願 2026-046620 v15b の 請求項 11 (MUMPS 間接参照) / 14d (方言統一) / 0018 で MUMPS 明示カバー
  • 実装サンプル29 sample (Phase 1-19 全機能カバー、Caché ##class / Embedded SQL / Dynamic SQL / $$$macro / param macro / %Stream / %ResultSet / $LIST* / %Dynamic* / %XML / %Net.HttpRequest / HL7 / Pick MV を 1 サンプルずつ含む) + 73 synth + 98 Rosetta + 171 combined = 計 342 件で公開検証可能
  • ベンチマークS9 bench harness (5 軸 correctness、3 corpus 全 100% 実測)、AutoDemoteTest (1000 set + 900 demote + tamper)、BTreeIntegrationTest (3800 records persist + tamper)、SmokeTest (audit chain + tx + tamper)

医療 EHR PoC・資料請求 SlimeNENC ファミリーへ戻る SlimeCOBOL を見る