プログラミング
MUMPSの最初の標準について、多くの歴史が誤っていること
What most histories get wrong about MUMPS's first standard (github.com)
要約
MUMPSの最初の標準は1977年のANSI規格ではなく、1976年1月に発行されたNBSハンドブック118であると著者は指摘しています。MUMPSは1966年にマサチューセッツ総合病院で開発されましたが、複数の互換性のない方言に分裂しました。これを解消するため、1972年にNBSの委託を受けたMUMPS開発委員会(MDC)が設立され、1975年9月までに言語仕様を策定し、NBSがそれを連邦標準として発行しました。
全文翻訳
MUMPSが最初の標準を取得した方法、ANSIより1年早く
Rochus Keller著
2026年7月7日
ほとんどの人にMUMPSプログラミング言語が最初に標準化されたのはいつかと尋ねると、同じ答えが返ってくるでしょう。それは1977年、ANSI X11.1-1977としてです。これはWikipediaのインフォボックス、数え切れないほどの回顧録、そしてより良く知っているはずの論文の参考文献にある日付です。それはまた、間違っているか、少なくとも不完全です。最初の正式なMUMPS標準は、1976年1月に発行された米国政府の出版物、NBSハンドブック118、MUMPS言語標準でした。私は最近、1976年MUMPS標準の実装を完了し公開しましたが、それについて初めて聞いた人々から多くの驚きの反応を受けました。したがって、この標準とその歴史をここで詳しく見ていくことは理にかなっています。
問題:1つの言語、7つの方言
MUMPS(マサチューセッツ総合病院ユーティリティマルチプログラミングシステム)は、1966年にマサチューセッツ総合病院のコンピュータサイエンス研究所で誕生しました。そこでは、当時の商用ベンダーが提供できなかったミニコンピュータ上のタイムシェアリングシステムを必要とするチームがありました[^1]。その設計は顕著な成功を収めました。わずか32Kワードのメモリを搭載したPDP-9上で、最大20人の同時ユーザーがデータベースを共有できました[^2]。成功は模倣を生み、模倣は断片化を生みました。異なるグループがMUMPSを独立して移植・拡張するにつれて、言語は分裂しました。1972年までに、成長するユーザーコミュニティ全体で少なくとも7つの異なる方言が識別できました[^2]。これは学術的な迷惑以上の問題でした。保健サービス研究国立センター(NCHSR)は、保健教育福祉省(HEW)の一部門でしたが、ある病院で書かれたMUMPSアプリケーションパッケージが、MUMPSを実行している他のすべての機関と自由に共有できることを期待していました。これにより、連邦政府が資金提供した多数の医療システム全体での無駄な重複を避けることができました。互換性のない方言の広がりは、その移植性をますます不可能にしていました[^2]。
対応:NBS、フィールドスタディ、MDCの誕生
この分岐を止めるために、1988年に「NIST」に改名される商務省の機関である標準局(NBS)は、1972年にMUMPS方言を調査し推奨を行う契約を受けました[^2]。その調査の中心的な推奨事項は構造的なものでした。言語を管理する組織を作成することです。「この調査の結果、NBSはMUMPS開発委員会(MDC)の設立を推奨しました」[^2]。1972年の秋、競合する方言の主要な実装者とユーザーがボストンでの会議に集まり、MUMPSユーザーグループ(MUG)とその姉妹組織であるMUMPS開発委員会(MDC)の両方を形成しました[^3]。MDCは、NCHSRとNBSからの支援を受けて資金提供されました[^4]。重要なことに、MDCは内部政府委員会ではありませんでした。その憲法はANSI X3言語標準委員会のモデルに明確に倣っており、MUMPSを販売するベンダーとそれを使用する機関の両方からメンバーを募りました[^2]。それは真の公開された、業界を横断する組織でした。その憲法は次のように説明しています。「MDCは、関心のある個人の非公式で自発的な組織であり、その機関によって支援され、幅広いアプリケーションの要件を満たすコンピュータプログラミング言語の開発を目的として、その努力とリソースを提供しています。MDC活動の結果は、MUMPS言語の共通性とコンピュータ間の互換性を促進することを意図して、パブリックドメインになります。」[^2]そして、その表明された技術的目標は、移植性の危機に対処することでした。「MDCの目標は、ソースプログラムの変換または交換に必要な変更の数を継続的に削減しながら、互換性のある統一されたMUMPSソースプログラムと実行結果を可能にすることです。」[^2]MDCの最初の会議は1973年3月に開催され、35の機関がメンバーとして参加しました[^2]。
作業:タスクグループから完全な仕様へ
標準化は遅く、慎重な作業でした。MUMPS標準の基盤は、1973年に小規模な言語タスクグループによって敷かれました。1974年半ばまでに、標準言語のコア機能について合意が形成され、タスクグループが詳細を処理し、その結果を完全なMDCメンバーシップの承認のために文書化しました[^2]。MDCは一連の番号付きリリースを通じて作業しました。初期のMUMPS言語部分標準(MDC/25)は1974年10月14日に登場し、続いて1975年2月10日に暫定MUMPS言語仕様(MDC 1/8)が登場しました。決定的な文書は、1975年に3つの正式に承認された「タイプAリリース」としてまとめられました。パートI — MUMPS言語仕様(MDC/28)、BNFメタル言語を使用した記述的な説明で、1975年3月12日にタイプAリリースとして採用・承認されました。パートII — MUMPS遷移図(MDC/33)、決定グラフによる言語の正式な定義で、1975年9月17日にタイプAリリースとして承認されました。パートIII — MUMPS移植性要件(MDC/34)、最大プログラム制限と最小実装要件を設定し、これも1975年9月17日にタイプAリリースとして承認されました。こうして、1975年9月までに、MUMPS仕様の完全なセットが合意され、完全なMDCメンバーシップによって正式に承認されました[^2]。承認された仕様は、最初のMUMPS標準として組み立てて発行するためにNBSに引き渡されました。
出版:NBSハンドブック118、1976年1月
ここで役割が重要になり、それらはハンドブックの冒頭部分に正確に文書化されています。MDCの議長であるコネチカット州ハートフォードにあるThe Institute of LivingのR. Peter Ericsonは、1975年9月17日付の序文を書いており、これは最後の2つのパートが承認された日と同じ日です。彼の言葉遣いは正確で示唆に富んでいます。「読者はここに、この標準に含まれる言語仕様がMUMPS開発委員会によって承認されていることを通知されます…」[^1]。その一文は、2つのもの、つまり言語仕様(MDCの承認された作業)とこの標準(それを含む文書)の間に線を引きます。それらは同じ成果物ではなく、一方が他方に埋め込まれています。数週間後の1975年10月14日、NBSのコンピュータ科学技術研究所長であるRuth M. Davisが前書きに署名しました。そこでは、3つのパートそれぞれがMDCリリース番号と承認日付で特定され、NBSの役割が説明されています。「MUMPSユーザーおよびMUMPS開発委員会の設立メンバーとして、国立標準局は、このNBSハンドブックの発行を通じてこの情報を提供する機会を得られたことを嬉しく思います。」[^1]その後、文書はプリプレスに進み、1976年1月にNBSハンドブック118、MUMPS言語標準として発行されました。編集者はシステム・ソフトウェア部門のJoseph T. O'Neillで、NCHSRが後援し、米国商務省の下で発行されました[^1]。記録の明確な読み取りは次のとおりです。MDCは1975年に基礎となる言語仕様を作成・承認しました。NBSはその後、それらを組み立て、枠組みに入れ、MUMPS言語標準というタイトルの連邦ハンドブックとして発行しました。「連邦の自動データ処理機器、技術、およびコンピュータ言語の標準開発における行政府内の主要な焦点」としての明示的な連邦の権限を持つ機関として、それはMDCの承認された資料に米国政府標準文書の正式な地位を与えました。ANSIを待つのではなく、なぜ出版を急いだのか?政府は連邦政府が資金提供したMUMPS医療システムの大きな既存基盤を保護する必要があり、民間の標準化プロセスがどれだけかかるかを知る方法がありませんでした。すぐに引用可能な、権威ある連邦参照は、その投資をすぐに保護しました。これはまた、真の広がりを持つ文書でした。1976年初頭にMDCとMUGのメーリングリストに数千部が配布され、NBSハンドブックであったため、全国の1000以上の政府リポジトリライブラリにも配布されました[^2]。ANSIがその後どうしたか NBS H