CMS-2 - 百科事典
CMS-2は、アメリカ海軍が使用する嵌入式システムのプログラミング言語です。これは、コードの移植性と再利用性を向上させるために開発された標準化された高レベルのコンピュータプログラミング言語の初期の試みでした。CMS-2は主にアメリカ海軍の戦術データシステム(NTDS)のため開発されました。
CMS-2は1970年代初頭にRAND Corporationによって開発され、「Compiler Monitor System」の略称です。文献では「CMS-2」という名前の後には、ターゲットシステムの種類を示す文字が続きます。例えば、CMS-2Mは、AN/AYK-14などの16ビットプロセッサをターゲットとしています。
歴史
CMS-2はカリフォルニア州サンディエゴのFCPCPAC(Fleet Computer Programming Center - Pacific)で開発されました。1968年にComputer Sciences Corporationによって実装され、Intermetricsからの設計支援を受けています。その後、この言語は開発が続けられ、AN/UYK-7やAN/UYK-43、UYK-20、UYK-44などの多くのコンピュータをサポートするようになりました。
言語の特徴
CMS-2はプログラムのモジュール化を促進するように設計されており、システムの一部を独立してコンパイルすることができます。言語は文指向で、ソースコードは自由形式で、プログラミングの便利さのために並べ替えられます。データタイプには、固定小数点、浮動小数点、ボールーン、文字、ステータスが含まれます。文字やビットストリングへの直接参照と操作が許可され、シンボリックマシンコード(直接コード)が含まれることもあります。
プログラム構造
CMS-2プログラムは文で構成されています。文は区切り記号で区切られたシンボルで構成されています。シンボルのカテゴリには、演算子、識別子、定数が含まれます。演算子は、特定の操作やプログラム内の定義に割り当てられたコンパイラの言語の基本的な構成要素です。識別子は、プログラマーがデータユニット、プログラム要素、文ラベルに割り当てるユニークな名前です。定数は、数値、Hollerith文字列、ステータス値、ボールーンなどの既知の値です。
CMS-2の文は自由形式で、ドル記号で終了します。文ラベルは参照のために文の先頭に置かれることができます。
CMS-2のソースプログラムは、宣言文と動的文の2つの基本的なタイプの文で構成されています。宣言文はコンパイラに基本的な制御情報を提供し、特定のプログラムに関連するデータの構造を定義します。動的文はコンパイラが実行可能なマシンコード(オブジェクトコード)を生成するようにします。
プログラムのデータを定義する宣言文は、データデザインと呼ばれるユニットにグループ化されます。データデザインは、一時的なおよび永続的なデータストレージエリア、入力エリア、出力エリア、特別なデータユニットの正確な定義を含みます。データや計算を行う動的文はプロシージャにグループ化されます。データデザインとプロシージャはさらにCMS-2プログラムのシステム要素としてグループ化されます。コンパイラはシステム要素をコンパイル時システムに組み合わせます。コンパイル時システムは独立しているか、もしくはより大きなプログラムの一部として存在することができます。
データ宣言文
データ宣言文はコンパイラにデータ要素の定義に関する情報を提供し、コンパイル時システム内のデータ要素のフォーマット、構造、順序を定義します。主なデータの種類はスイッチ、変数、集約です。
= スイッチ =
スイッチはコンパイル時システム内の特定の場所へのプログラムコントロールの転送を提供します。スイッチには、プログラムの転送や分岐を促進するための識別子やスイッチポイントのセットが含まれています。スイッチは文ラベルやプロシージャ名のプログラムアドレスを表します。
= 変数 =
変数は単一のデータピースです。それは1ビット、複数のビット、ワードで構成されることができます。変数定義内に値が割り当てられます。変数は定数または変動する値を保持できます。データタイプには、整数、固定小数点、浮動小数点、Hollerith文字列、ステータス、ボールーンが含まれます。
= 集約 =
テーブルは同様に構成された情報の並び替えられたセットを保持します。テーブル内のデータの一般的なユニットはアイテムです。アイテムはフィールドに分割されることができ、テーブルの最小の分割単位です。フィールド内に含まれる許可されたデータタイプには、整数、固定小数点、浮動小数点、Hollerith文字列、ステータス、ボールーンが含まれます。配列はテーブル概念の拡張です。配列の基本的な構造単位はアイテムで、プログラマーによって定義されたフィールドを含みます。
動的文
動的文は処理操作を指定し、コンパイラによって実行可能なコードの生成に結果します。動的文は演算子と、演算子とオペランドのリスト、追加の演算子で構成されています。オペランドは単一の名前、定数、データ要素の参照、または式で構成されることができます。
= 文演算子 =
主要なCMS-2演算子は以下にまとめられました。
= 特別な演算子 =
特別な演算子はデータ構造への参照を促進し、その操作を簡単にします。
プログラム構造宣言
プログラムの処理操作を説明する動的文は、プロシージャと呼ばれる文のブロックにグループ化されます。
高レベルの入出力文
入出力文は、モニターシステム下で非リアルタイム環境で実行中にハードウェアデバイスとの通信を提供します。
Compiler Monitor System 2 (CMS-2)
Compiler Monitor System 2 (CMS-2)は、UNIVAC CP-642B(AN/USQ-20)上で動作するシステムです。システムソフトウェアには、モニタ、コンパイラ、ライブラリ、CP-642ローダー、テープユーティリティ、フローチャートが含まれています。
= MS-2モニタ =
バッチ処理オペレーティングシステムで、CP-642コンピュータ上で実行されるCMS-2コンポーネントやユーザージョブの実行を制御します。入出力、ソフトウェアライブラリ機能、デバッグツールが提供され、ジョブアカウントも提供されます。
= CMS-2コンパイラ =
CS-1とCMS-2言語用のコンパイラで、CP-642、L-304、AN/UYK-7、1830A、1218/1219コンピュータ用のオブジェクトコードを生成します。1970年代には、コードをコンパイルするコンピュータに応じて異なるバージョンのCMS-2コンパイラがありました。一部のソースコードは特定の機能を回避するために書き換えられました。そして、異なるバージョンのCMS-2はデバッグツールと問題がありました。
= XCMS-2コンパイラ =
AN/UYK-7コンピュータ用の拡張されたCMS-2コンパイラで、AN/UYK-7オブジェクトコードを生成します。
= CMS-2ライブラリ =
ソースコードとオブジェクトコードのストレージとアクセスを提供するファイル管理システムです。
= CP-642オブジェクトコードローダー =
絶対またはリロケート可能なオブジェクトコードをロードする2つのオブジェクトコードローダーです。
= テープユーティリティ =
磁気テープ上のデータを管理するユーティリティのセットです。
= CMS-2フローチャート =
フローチャートソフトウェアはCMS-2ソースコード内のフローチャート文を処理し、高速プリンターにフローチャートを出力します。
参考リンク
Ada
AN/AYK-14
AN/UYK-7
AN/UYK-20
AN/UYK-43
AN/UYK-44
AN/USQ-17
AN/USQ-20
JOVIAL
Naval Tactical Data System
参考文献
[ここに参考文献を挿入してください]
外部リンク
CMS-2Yプログラマーズリファレンスマニュアル(AN UYK-7およびAN UYK-43用、1986年10月)
| AN/UYK-7コンピュータのエミュレーションの可能性について
Dictionary of Programming LanguagesのCMS-2エントリー