はじめに
コンピュータ間のネットワーク通信はますます重要になりつつある。しかし、この分野で作業している各種の設備は多様であるため、コンピュータ間メッセージの内容と形式を標準化することはおそらく不可能である。ただし、メッセージ形式を定義し記述する標準的な方法を開発し、それをコンピュータ間の通信を促進するために用いることができるという希望はいくらかある。ちょうど ALGOL が多数のアルゴリズムを記述するための標準的な媒体として、また BNF が言語の構文を記述するための標準として機能するように、メッセージ記述言語はメッセージ形式を定義するための標準的な媒体として有用であろう。
メッセージ処理プロトコルの低レベルではかなりの進展があり、ASCII プロトコルが用いられることが期待できる。以下の議論は、メッセージの交換、チェックサム、再送要求などの仕組みがすでに解決されていることを前提とする。関心の的は、ネットワークのヘッダとトレーラの詳細が取り除かれた後で、バイナリメッセージ本体の内容と意図をどのように記述するかである。
バイナリメッセージの内容を記述する試みのほとんどは、直ちに使用するビット符号化の検討に飛び込んでしまう。バイナリビット列を表すために長く細い矩形が描かれ、この列はボックスに切り分けられ、各ボックスのビットオプションが一般に表で記述される。より良い方法は、メッセージを記述するための記号的な手法を提供することであろう。この記号化は、具体的なビットの詳細への直接的な言及を避けることにより、メッセージの内容とメッセージ本体で利用可能な選択肢の理解を助けるはずである。バイナリメッセージ本体の基本形式が明らかになれば、実際のビットフィールドの符号化の詳細を示すことができる。
バイナリメッセージ本体の記述は、テキスト本体や言語の記述と大差ない。テキストは、それぞれ 1 文字を含む固定のビットフィールドを前提とする。標準的な言語記述方式 (BNF) は、それらの文字をどのように連結できるか、また文字のまとまりにどのような解釈を置くべきかを示す。バイナリメッセージの記述には、メッセージ内のさまざまな大きさのフィールドを定義する能力と、そのフィールドに含まれるビットに置くべき解釈という、追加の能力が必要である。
メッセージ記述は当初、紙に書き留めてコンピュータネットワークの新規利用者に提供する参照標準として意図されている。この標準から、新規利用者はネットワーク上で交換されるバイナリデータの種類と形式を知ることができる。これが分かれば、ネットワーク設備を利用するために必要なプログラムを作成できる。その後、確立されたネットワークでは、新たに開発されたバイナリ形式の標準が、郵便による紙ではなく、ネットワーク自体の上で ASCII テキストメッセージを交換することによって公布されるであろうことを想定できる。さらに遠い将来には、バイナリ形式標準のテキストをコンパイラ類似のプログラムへの入力として用い、あるバイナリ形式を別の形式に変換するデータ変換プログラムを自動的に生成させることができるであろう。しかし現時点では、どんなに素朴であれ、何らかのバイナリデータ記述方式が切実に必要とされている。