データ記述言語

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

テンプレート:出典の明記 テンプレート:Asbox

データ記述言語(データきじゅつげんご)またはデータ言語とは、コンピュータにおいて扱うデータを記述するための人工言語である。プログラミング言語などと同じコンピュータ言語の1種であり、HTMLに代表されるマークアップ言語などがある。

プログラミング言語との違い

データ記述言語には、純粋にデータの格納のみを目的とする言語と、プログラミング言語の特徴も備える言語がある。後者はやや特殊で、プログラミング言語と厳密に区別されるものではない。

プログラミング言語の大きな特徴は制御構造(逐次処理、分岐処理、反復処理)と制御を行うための変数をもつ点にあり、データ記述言語にはこのような要素は含まれない。データ記述言語を用いて値を記述する場合でも、それは定数であって変数ではない。

データ記述言語の1つであるHTMLの場合、初期にはドキュメントの構造のみを格納するマークアップ言語であったが、その後の仕様拡張で他のスクリプト言語も内包するようになった。ただし、HTML自体はスクリプト言語のコードもデータの1つとして扱い、それをどのように処理するかはWebブラウザなどのアプリケーションに委ねられる。この意味では、HTMLは純粋なデータ格納の言語である。一方、携帯電話などの情報機器向けに作成されたHDMLでは、変数や制御文をもつなど言語自身がプログラミング言語の要素を備えている。

データ記述言語登場の背景

データ記述言語は、以下の点に主眼を置いて作られた。

  1. 複雑なデータ構造をもつデータを格納する。
  2. データの記述方法や個々のデータ要素へのアクセス方法の共通化をはかる。
  3. データをテキスト形式で格納する。

1 については、例えば、テキスト文字で表現可能で単純に並列に列挙されるデータであれば、あえてデータ記述言語を用いず、単純なテキストファイルを使用することで対応できる。このようなデータがいくつかのグループに分類され、各グループが並列に列挙されている場合でも、グループ毎に見出しを付ける工夫をすることで対応できる。このような形式は、アプリケーションOS設定ファイル(例えば、Windowsの ini ファイル)などで古くから多用されてきた。

しかし、データ構造が複雑になり、深い木構造をもっていたり、繰り返し現れる要素があったり、要素の現れる順番が意味をもっていたり、さらにこれらが複雑に組み合わさったりすると、単純な列挙の記述では間に合わなくなる。このような複雑なデータでは、従来は、アプリケーションが個別に特殊な表記方法やデータのフォーマットを工夫することにより対処してきたが、それによって 2 の問題が生じた。

2 については、従来、データを格納する方法はシステムやアプリケーションによってばらばらで、さまざまなフォーマットが乱立していた。プログラム開発者はデータを読み書きするプログラムを個々のソフトに合わせてその都度作成せねばならず、また、データファイル自体も特殊な形式をもっているために汎用性が失われる問題が生じていた。インターネットの普及とともに、特にデータの交換が必須な分野でデータファイルのフォーマットや個々のデータへのアクセス方法を統一する必要性が生じた。

3 については、従来のデータファイルではバイナリ形式と呼ばれる方法も多用されていた。これは数値を文字によって記述するのではなく、そのまま値としてファイルに書き込む方法である。バイナリ形式は、同じデータならばテキスト形式に比べて少ないファイルサイズでデータを格納できる利点があり、コンピュータの補助記憶装置の資源が乏しい時代にはごく普通に用いられた。バイナリ形式のデータは現在でも多くのアプリケーションで用いられており、特にデータサイズが重要な意味をもつ圧縮データでは必須となっている。しかし、バイナリ形式は、そのままでは可読性が低く、生のデータを人が読み書きするのが困難であるという欠点をもっている。このため、データ記述言語ではテキスト形式を用いているのが一般的である。

関連項目