CMS-2Y プログラマーリファレンスマニュアル | |
| パラダイム | 命令形 |
|---|---|
| デザイン: | RAND、インターメトリクス |
| 開発者 | コンピュータサイエンスコーポレーション |
| 初登場 | 1968 |
| 影響を受けた | |
| CS-1、Fortran、JOVIAL、PL/I [1] | |

CMS-2は、アメリカ海軍が使用する組み込みシステム プログラミング言語です。[2]これは、コードの移植性と再利用性を向上させることを目的とした、標準化された高水準コンピュータプログラミング言語を開発する初期の試みでした。CMS-2は、主にアメリカ海軍の戦術データシステム(NTDS)用に開発されました。[1]
CMS-2 は 1970 年代初頭にRAND 社によって開発され、「Compiler Monitor System」の略称です。文献では、「CMS-2」という名前に続いて、対象システムのタイプを示す文字が付けられます。たとえば、CMS-2M はAN/AYK-14などの海軍の 16 ビット プロセッサを対象としています。[2]
歴史
CMS-2は、カリフォルニア州サンディエゴのFCPCPAC(Fleet Computer Programming Center - Pacific)向けに開発されました。1968年にIntermetricsの設計支援を受けてComputer Sciences Corporationによって実装されました。この言語は開発が続けられ、最終的にはAN/UYK-7、AN/UYK-43、UYK-20、UYK-44 [3]コンピュータを含む多数のコンピュータをサポートするようになりました。[4]
言語機能
CMS-2 はプログラムのモジュール化を促進し、システム全体の各部分を独立してコンパイルできるようにするために設計されました。この言語はステートメント指向です。ソースは自由形式で、プログラミングの利便性のためにアレンジできます。データ型には、固定小数点、浮動小数点、ブール、文字、ステータスがあります。文字とビット文字列の直接参照と操作が許可されています。直接コードと呼ばれるシンボリックマシンコードを含めることができます。[1]
プログラム構造

CMS-2 プログラムはステートメントで構成されています。ステートメントは、区切り文字で区切られたシンボルで構成されています。シンボルのカテゴリには、演算子、識別子、定数があります。演算子は、プログラム内の特定の操作または定義のためにコンパイラによって割り当てられる言語プリミティブです。識別子は、プログラマがデータ ユニット、プログラム要素、ステートメント ラベルに割り当てる一意の名前です。定数は、数値、ホレリス文字列、ステータス値、またはブール値である既知の値です。
CMS-2 ステートメントは自由形式で、ドル記号で終わります。参照目的でステートメントの先頭にステートメント ラベルを配置できます。
CMS-2 ソース プログラムは、2 つの基本的なタイプのステートメントで構成されています。宣言型ステートメントは、コンパイラに基本的な制御情報を提供し、特定のプログラムに関連付けられたデータの構造を定義します。動的ステートメントにより、コンパイラは実行可能なマシン命令 (オブジェクト コード) を生成します。
プログラムのデータを定義する宣言文は、データ設計と呼ばれる単位にグループ化されます。データ設計は、一時的および永続的なデータ ストレージ領域、入力領域、出力領域、および特別なデータ ユニットの正確な定義で構成されます。データに作用したり計算を実行したりする動的ステートメントは、プロシージャにグループ化されます。データ設計とプロシージャはさらにグループ化され、CMS-2 プログラムのシステム要素を形成します。コンパイラは、システム要素をコンパイル時システムに結合します。コンパイル時システムは、単独で存在する場合もあれば、より大きなプログラムの一部である場合もあります。[1]
データ宣言文
データ宣言文は、データ要素の定義に関する情報をコンパイラに提供します。コンパイル時システムにおけるデータ要素の形式、構造、順序を定義します。データには、スイッチ、変数、集約の 3 つの主要な種類があります。[1]
スイッチ
スイッチは、コンパイル時システム内の特定の場所にプログラム制御を転送します。スイッチには、プログラムの転送と分岐を容易にする一連の識別子またはスイッチ ポイントが含まれています。スイッチは、ステートメント ラベルまたはプロシージャ名のプログラム アドレスを表します。
変数
変数は単一のデータです。1 ビット、複数ビット、またはワードで構成されます。値は変数定義で割り当てられます。変数は定数または変化する値を保持できます。データ型には、整数、固定小数点、浮動小数点、ホレリス文字列、ステータス、またはブール値があります。
集計
テーブルには、同じ構造を持つ情報の順序付きセットが保持されます。テーブル内のデータの共通単位はアイテムです。アイテムは、テーブルの最小区分であるフィールドに分割できます。フィールドに含まれるデータ型には、整数、固定小数点、浮動小数点、ホレリス文字列、ステータス、ブール値などがあります。配列はテーブルの概念を拡張したものです。配列の基本構造単位はアイテムです。配列アイテムには、プログラマーが定義したフィールドが含まれます。
動的ステートメント
動的ステートメントは処理操作を指定し、コンパイラによって実行可能なコードが生成されます。動的ステートメントは、演算子とそれに続くオペランドのリストと追加の演算子で構成されます。オペランドは、単一の名前、定数、データ要素参照、または式のいずれかです。[1]
ステートメント演算子
主要な CMS-2 オペレータを以下にまとめます。
特殊演算子
特殊演算子はデータ構造への参照とそれに対する操作を容易にします。[1]
プログラム構造宣言
プログラムの処理操作を記述する動的ステートメントは、プロシージャと呼ばれるステートメントのブロックにグループ化されます。[1]
高レベルの入出力ステートメント
入出力ステートメントは、モニターシステムの下で非リアルタイム環境で実行中にハードウェアデバイスとの通信を提供します。[1]
コンパイラモニターシステム2 (CMS-2)
コンパイラモニターシステム2(CMS-2)は、UNIVAC CP-642B(AN/USQ-20)上で動作するシステムでした。システムソフトウェアには、モニター、コンパイラ、ライブラリアン、CP-642ローダー、テープユーティリティ、フローチャートが含まれていました。[1]
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 ソース コード内のフローチャート ステートメントを処理し、フローチャートを高速プリンタに出力します。
参照
参考文献
- ^ abcdefghij 米海軍 (1978)、デジタルコンピュータ基礎訓練マニュアル、NAVEDTRA 10088-B、米海軍
- ^ ab Neal Ziring (1998-10-19). 「CMS-2」. Ziring MicroWeb. 2014-11-23時点のオリジナルよりアーカイブ。2014-07-08閲覧。
{{cite web}}: CS1 maint: bot: 元の URL ステータス不明 (リンク) - ^ マーク・ウィルソン - イージスORTSでUYK-20とUYK-44と働いた個人的な経験
- ^ 艦隊戦闘指揮システム支援活動(1986年)、AN/UYK-7およびAN/UYK-43コンピューター用のCMS-2Yプログラマーリファレンスマニュアル、米国海軍
外部リンク
- AN UYK-7 および AN UYK-43 用 CMS-2Y プログラマー リファレンス マニュアル (1986 年 10 月)
- AADC 信号処理要素上で AN/UYK-7 コンピュータをエミュレートする可能性[永久リンク切れ]
- プログラミング言語辞書の CMS-2 の項目
