M言語がどのようなものか、日本エム・テクノロジー学会JIS化記念出版委員会で監修した「Mプログラミング入門,共立出版」の一部を基に紹介致します。
M言語は,近年に創造された新しい言語ではなく,すでに30余年近い歴史の中で高度に磨きあげられ,熟成されてきた言語です。M言語は,開発当初からすでに大規模データベース・アプリケーションと,マルチユーザ・システムを開発するための,最も効率の高い方法を追求しながら作り上げられました。約30年前の初期のM言語設計基準から,ツリー型データベース構造や,ミニコンピュータへの搭載計画,マルチユーザ・システムの実現という目標を明確に打ち出し,比較的小規模なハードウェア・プラットホーム上で,多くのユーザを同時に対話形式でサポートする,大規模なデータベース・アプリケーションを開発することが可能な言語として長年の歳月をかけ育成されてきました。M言語に関する機能,標準化などについては,M言語の個々のメーカの先導により決められるものではなく,米国政府,ユーザ,M言語研究者より構成されたMDC(MUMPS Development Committee : マンプス開発委員会)の審議により行なわれます。したがって,M言語の標準仕様が厳しく守られ,異機種間,M言語間の移送性が保たれています。
(1)M言語は標準言語です
国際標準言語ISO/IEC 11756 International technology-Programming language-MUMPS),日本工業規格標準言語(プログラミング言語MUMPS JIS X 301l-1995),米連邦標準言語(American National Standard for Information System-Programming Languages-MUMPS ANSI/MDC X11.1-1977,1984, 1990),米連邦情報処理標準言語(政府調達標準:Federal Information Process-ing Standard:FIPS PUB 125-1)などの標準規格プログラミング言語です。
なお,M言語は当初 MUMPS と呼ばれていましたが,次期国際標準からM言語と呼ばれることが決まっていますので,この本ではM言語で統一しました。
(2)M言語はユーザが開発し,発展させている言語です
M言語の発展のために,世界中にエム・テクノロジー学会(MTA:M Technology Association)があります。当初,マンプス・ユーザ・グループ(MUG)と呼ばれていました。日本でも,20年以上の伝統があります。事務局は,本書の236ページの連絡先のところに載っています。
言語仕様を決める組織としてM開発委員会(MDC)があります。
(3)M言語は人間に近い言語です
宣言文が一切ありません。データベースのスキーマ定義も不要です。実際,データ形式,文字数,データ量などをシステム稼働前に決めておく従来のコンピュータ・システムは,無理があったと思います。無理やり決めなければならないために,稼働後の修正が避けられないのです。Mは人間らしいシステムなのです。
プログラムを作るとすぐ動きます。コンパイルやリンクなどの手間が不要です。完成前の一部分のプログラムでも動かせます。不備なところは教えてくれます。
(4)M言語は文字が好きな言語です
内部コードにかかわりなく,見た目と同じように文字を処理してくれます。多くの文字処理機能があります。
(5)M言語で経済的なシステムを作れます
例えば,データベース処理では,リレーショナル型との比較で,ディスク容量が4分の1,アクセス時間が10分の1以下です。PCがマルチタスクだけではなく,マルチユーザでも動きます。PC1台に40人以上が同時にログインして軽快に使えます。これらは信じられないかもしれませんが,本当です。PCでUNIXワークステーションと同等の性能が出ます。このことについては,本書を読んで,少し使えば謎が解けます。
1967年 | MUMPS の開発が Massachusetts General Hospital で開始されました。 |
1969年 | Massachusetts General Hospital Utility Multi-Programming System から MUMPS と命名されました。 |
1970年 | DEC 社で PDP-11 に MUMPS を搭載。 |
1972年 | DEC 社の PDP-11 を利用した MUMPS の日本での利用が始まりました。 |
1977年 | FORTRAN,COBOL についで第3番目の言語として,米国のANSI(米国標準規格協会)標準に制定されました。 |
1979年 | (財)医療情報システム開発センター(MEDISL-DC)が国産 MUMPS(JUMPS)を開発しました。 |
1984年 | ANSI 第2版。 |
1986年 | FIPS(連邦情報処理標準)に制定され,米連邦機関での保健医療福祉分野への入札をするには MUMPS の装備が必須となりました。 |
1990年 | ANSI 第3版。 |
1992年 | 12月 MUMPS が ISO に制定されました。次期 ISOではMと改名することが決定され,当面の正式名称がM言語( MUMPS )となりました。 |
1995年 | 2月 MUMPS が JIS「プログラミング言語 MUMPS JIS X 3011」として制定されました。 |
M言語とは,次のような特徴をもった言語です。
(1)マルチユーザ・システムが容易に構築できます(a) | マルチユーザ環境を容易に構築できます |
(b) | ユーザ間のファイル(大域変数)の共有も容易に図れます |
(c) | バックグラウンド処理が可能です |
(d) | リアルタイム処理に優れています |
(e) | 通信機能が優れています |
(f) | 他のマルチユーザ用データベース言語に比較して,圧倒的な低価格でマルチユーザ・システムのデータベースを構築することができます |
(a) | データベースへの書込み,読込みが容易にできます |
(b) | B-plus-Tree 型のデータベースのために高速検索ができます |
(c) | 完全な可変長データの取扱いのために,ディスク格納効率が非常に高くなります |
(d) | 16GBまでのデータベースを単一システムで構築できます |
(e) | データベースのデータを希望最小単位での排他制御が可能です |
(f) | データベースのデータの追加,削除を繰り返したときに発生する処理速度の低減は,他のデータベースに比べて微々たるものですみます |
(3)システム構築の自由度が向上します
(a) | 初期の設備投資額を低く抑え,システム稼働後に機器,機材やユーザ数の変更増設が可能です |
(b) | 処理業務の処理項目の追加,変更にも柔軟に対応できます |
(c) | オンライン中にプログラムの変更やデータベース項目の追加が可能です |
(d) | システム稼働後のデータ量の増加,処理内容の増加,変更にも適切な対策が立てられます |
(e) | 端末装置や機材には,市販の安価な機器,機材が利用でき製品メーカを問いません |
(f) | 端末装置類の接続が簡単です |
(g) | LANを活用することができます |
(h) | 複数台の処理装置を用いて,処理負荷を分散させたシステムが構築できます |
(i) | メーカ,機種,OSを問わず,ソフトウェアの互換性があります |
(j) | スプレットシートや他の市販ソフトや言語と協調したシステムが構築できます |
(k) | SQL や他のデータベースとのデータ交換が可能です |
(l) | リモートメンテナンス機能が利用でき,遠隔地からプログラムの修正やシステムの状態の監視ができます |
(4)言語能力が優れています
(a) | 言語体系が明確でシンプルです |
(b) | 言語の命令が論理的で強力です |
(c) | 言語習得が容易です |
(d) | インタプリタ機能をもっているためプログラムの生産性が向上します |
(e) | 強力なデータベース処理機能が標準装備されています |
(f) | 強力な文字列処理機能や,間接処理機能をもっています |
(g) | 間接指定が使えます |
(h) | 命令実行に条件が付けられます |
(i) | 一般のユーザ・プログラム・レベルで,直接 LAN を利用することができます |
(j) | 記述型言語のため,ユーザの必要とする,きめの細かいアプリケーション・ソフトウェアを作成することができます |
(k) | GUI や DDE に対応し,イベント駆動型のプログラム作成が可能です |
(5)障害対策機能が強力です
(a) | ジャーナリング処理が利用できます |
(b) | ディスクミラー処理機能があります |
(c) | シャドーシステムの構築が可能です |
(d) | データベースの自動異常検知機能と,データベースの復元機能をもっています |
(6)プラットホーム・メーカの機種や OS に関係しません
(a) | MS-DOS,DOS/V,OS/2,UNIX,XENIX,VMS,Windows-3.1/95/NT,NetWare などの上で動作します(もちろん、Windows-2000/XP でも動作します) |
(b) | 機種や OS を超えた移送性をもっています |