HN 日本語サマリー

← 一覧へ戻る
プログラミング

MUMPS 76 プライマー – アニバーサリーエディション

The MUMPS 76 Primer – anniversary edition (github.com)

76 pointsby Rochus42 コメント

要約

この記事は、1976年に標準化されたMUMPS(Massachusetts General Hospital Utility Multi-Programming System)の入門書兼チュートリアルです。MUMPSは、統合されたプログラミング言語と階層型データベースを特徴とし、今日のNoSQLデータベースやキーバリューストアの概念を先取りしていました。プログラマー向けに、MUMPSの歴史的意義、言語の仕組み、基本的なコマンドや関数、特殊変数を網羅的に解説しています。

全文翻訳

MUMPSプライマー: 1976年標準の紹介とチュートリアル 目次 1. はじめに 1.1. MUMPSとは? 1.2. 1976年標準 1.3. この本の対象読者 1.4. はじめに 2. 言語の概要 2.1. すべてが文字列 2.2. 演算子の優先順位なし 2.3. 行指向の構造 2.4. コマンドは簡潔 2.5. 組み込みの永続データベース 3. 変数とデータ型 3.1. ローカル変数 3.2. 添字付き変数 3.3. 文字列、数値、および自動変換 3.4. 真偽値 4. 式と演算子 4.1. 厳密な左から右への評価 4.2. 算術演算子 4.3. 単項演算子 4.4. 関係演算子 4.5. 論理演算子 4.6. 連結演算子 4.7. パターンマッチ 5. コマンド 5.1. SET — 値を割り当てる 5.2. WRITE — データを出力する 5.3. READ — データを入力する 5.4. IF と ELSE — 条件付き実行 5.5. ポストコンディショナル 5.6. FOR — 繰り返し 5.7. DO — サブルーチンを呼び出す 5.8. GOTO — 制御を移す 5.9. QUIT — サブルーチンから戻る、またはFORを終了する 5.10. HALT と HANG 5.11. XECUTE — 文字列をコードとして実行する 5.12. KILL — 変数を削除する 5.13. BREAK 6. 文字列関数 6.1. $LENGTH — 文字列の長さ 6.2. $EXTRACT — 位置による部分文字列 6.3. $PIECE — 区切り文字による部分文字列 6.4. $FIND — 部分文字列の検索 6.5. $JUSTIFY — 右寄せと数値の書式設定 6.6. $ASCII と $CHAR — 文字コード変換 6.7. $RANDOM — 乱数 6.8. $SELECT — 条件式 6.9. $TEXT — ソース行の取得 7. グローバルデータベース 7.1. グローバル変数 7.2. データモデルの構築 7.3. $DATA — ノードの存在テスト 7.4. $NEXT — ツリーの走査 7.5. Naked Reference 7.6. グローバルに対するKILL 8. 入出力 8.1. 出力フォーマット 8.2. 特殊変数 $X と $Y 8.3. デバイスI/O (概要) 9. 間接参照 9.1. 名前間接参照 9.2. 添字間接参照 9.3. 引数間接参照 9.4. パターン間接参照 10. 特殊変数 10.1. $HOROLOG — 日付と時刻 10.2. $IO — 現在のデバイス 10.3. $JOB — プロセス識別子 10.4. $STORAGE — 利用可能な領域 10.5. $TEST — 最後のテスト結果 10.6. $X と $Y — カーソル位置 11. ルーチンとプログラム構造 11.1. ルーチン構造 11.2. 行とラベル 11.3. エントリ参照 11.4. コマンド省略形 12. すべてをまとめる 13. コマンドリファレンス 13.1. BREAK 13.2. CLOSE 13.3. DO 13.4. ELSE 13.5. FOR 13.6. GOTO 13.7. HALT 13.8. HANG 13.9. IF 13.10. KILL 13.11. LOCK 13.12. OPEN 13.13. QUIT 13.14. READ 13.15. SET 13.16. USE 13.17. VIEW 13.18. WRITE 13.19. XECUTE 14. 関数リファレンス 14.1. $ASCII 14.2. $CHAR 14.3. $DATA 14.4. $EXTRACT 14.5. $FIND 14.6. $JUSTIFY 14.7. $LENGTH 14.8. $NEXT 14.9. $PIECE 14.10. $RANDOM 14.11. $SELECT 14.12. $TEXT 15. 特殊変数リファレンス 15.1. $HOROLOG 15.2. $IO 15.3. $JOB 15.4. $STORAGE 15.5. $TEST 15.6. $X 15.7. $Y 16. 演算子リファレンス 16.1. 単項演算子 16.2. 二項演算子 17. 構文の概要 17.1. 行構造 17.2. ルーチン構造 17.3. 名前構文 17.4. 変数構文 17.5. 数値リテラル構文 17.6. 文字列リテラル構文 17.7. エントリ参照構文 付録 A: ASCIIコード表 付録 B: 用語集 18. カバーしていない内容 参考文献 1. はじめに 1.1. MUMPSとは? 1966年、ボストンのマサチューセッツ総合病院コンピューター科学研究所で、Octo Barnett、Neil Pappalardo、Curtis Marbleは、MUMPS — Massachusetts General Hospital Utility Multi-Programming System — と呼ばれるプログラミング言語を作成しました。MUMPSは実用的なニーズから生まれました。病院では、医師と看護師が複数の端末からリアルタイムで患者データに同時にアクセスし、更新できるシステムが、手頃な価格のハードウェアで必要とされていました。1966年、「手頃な価格のハードウェア」とは、8Kワードのメモリと小さなディスクを備えたDEC PDP-7を意味しました。別々のレイヤー(オペレーティングシステム、ファイルシステム、データベースサーバー、アプリケーション言語がそれぞれ積み重ねられたもの)のためのスペースはありませんでした。すべてが1つの統合システムである必要がありました。 そこで登場したのは注目すべきものでした。それは、組み込みの階層型データベースを持つプログラミング言語です。データベースの世界では、この概念が40年後まで名前を与えられないことになります。すなわち、統合されたプログラミング言語を持つNoSQLデータベースです。MUMPSの核となるデータ抽象化はグローバル変数です。これは、ディスクに永続的に保存され、すべての同時ユーザー間で共有される階層型のスパースアレイです。今日の言葉で言えば、グローバルは、スキーマフリーで順序付けされたキーバリューストアであり、複合キーを持ち、最初の代入時に作成され、要求に応じて削除されます。 SET ^PATIENT(12345,