【クロスメディアキーワード】コンピューター言語とデータフォーマット

掲載日:2016年8月4日
このエントリーをはてなブックマークに追加

クロスメディアキーワード【第8回】

コンピューター言語

コンピューター言語とは、ソフトウェアを開発するために 人工的に設計された言語で、プログラムとデータを記述する構文と語彙で構成される。コンピューター言語は、コンピューターハードウェアの登場と共に始ま り、約半世紀にわたりコンピューターとその応用の進展につれ、夥しい種類が考案されてきた。

プログラム記述の言語

1960年代までは、FORTARN、COBOL、アセンブリ言語といったプログラミング言語が主流であったが、スパゲッティ状態の(制御が乱雑で保守し にくい)プログラムが作られやすい文法であったため、それらに対する保守コストの増大が「ソフトウェア危機」として問題視されるようになった。問題解決の ために「構造化プログラミング」が提唱され、以降に開発された新たなプログラミング言語は、その考えを反映するようになった。

また、「ソ フトウェア危機」では、大規模で複雑なプログラム開発コストの増大も問題になった。そこで、プログラムの部品化と再利用が提唱された。1970年代から は、部品化と再利用が実現できるSmalltalk、C++、Objective-Cといったプログラミング言語が次々に開発され、「オブジェクト指向プ ログラミング」が提唱された。これらの言語では、オブジェクトを部品として記述できる。具体的には、データの型やそれに対する処理を抽象化し、その検査を 行うことで安全な実現を可能にしている。

しかし、構造化プログラミングやオブジェクト指向プログラミングは、プログラミングの考え方をプ ログラマーに示唆する「パラダイム」に過ぎず、その言語を用いても「ソフトウェア危機」問題が解決するわけではない。現在では、「フレームワーク」という 形で、目的とするプログラムが容易にかつ確実にできるようにするために制約的なプログラミングが行われている。

現在、代表的なプログラム記述の言語は、次のような種類がある。

  • C++、Objective-C、Java:汎用アプリケーションの記述
  • Perl、PHP:WebにおけるCGIの記述
  • JavaScript:Webクライアントプログラムの記述
  • XSLT:XMLボキャブラリ変換の記述
  • SQL:データベースに対する問合せの記述
  • Microsoft .NET Framework、JavaServer Faces:アプリケーション記述のためのフレームワーク

データ記述のための言語

データに関わる記述は、もともとプログラミング言語の一部であったが、1960年代のデータベースシステムの登場により、データの変更を容易にし、プログ ラムへの影響を極力少なくするために、データ記述を「スキーマ」としてプログラムから切り離す「データ独立」の動きが起きた。そうした動きの当初は、デー タベース関連にとどまっていたが、その後、データとそれに対する処理をオブジェクトとして扱うオブジェクト指向プログラミングとあいまって急速に広まっ た。

1980年代に登場したSGML(Standard Generalized Markup Language)は文書のデータ型を定義する「メタ言語」である。データ型は、データ記述の構文と語彙であり、要素の順序や階層関係、要素名(タグ)と 属性名で構成され、それに基づいて具体的なデータをマークアップするHTML、MathML、SVGなどといった言語が定義される。現在では、データ記述 のための言語の定義は、SGMLの後継であるXML(Extensible Markup Language)に集中するようになっている。

現在、XMLで定義された代表的なデータ記述の言語としては次のような種類がある。

  • XML Schema、RELAX、RELAX NG:文書のデータ型の記述
  • XHTML、MathML、SVG:Webコンテンツの記述
  • XAML、XUL:ユーザー・インターフェイスと関連データの記述
  • IDL:ソフトウェアコンポーネント(部品)間のインタフェースの記述

データフォーマット

コンピューター間やアプリケーション間などの情報交換で用いられるデータの形を「データフォーマット」と呼ぶ。その表現はコンピューターの内部表現と異な り、直列化される。データがプログラム内で記述されていた頃は、プログラムごとの暗黙的な形式が採用されていたが、データ独立が指向されるようになると、 ファンクションコードやタグによる構文や語彙が明示的になった。

XMLに基づくデータはテキストデータで表され、そのフォーマットの構文 と語彙は明示的な自己記述である。一方、画像や音楽を表わすデータの多くはバイナリーデータで表され、そのフォーマットの構文と語彙は暗黙的であり、デー タ量をなるべく小さく抑えるために圧縮されることが多い。

EPUBでは、XHTMLデータと画像データなどから構成されているが、書籍そ のものの取り扱いを容易にし、かつデータ量をなるべく小さく抑えるために圧縮されている。また、PDFでは、テキストデータとバイナリーデータが混在し、 部分的に圧縮された表現形式が採用されている。

例題

コンピューター言語に関する記述として最も適切なものはどれか[解答群]から選べ。

ア COBOL、FORTRAN、PL/I、Pascal、C言語は、コンピューターに処理を実行させる問い合わせ言語である。

イ SQLやXQueryなどは、データ記述言語と呼ばれ、主にデータベースからのデータ取得に対する記述をするものである。

ウ XMLは、文書の表示や印刷を行うたのデータ項目を文書構造に合わせて取得することに、困難を伴う言語である。

エ UMLは、ソフトウェア開発においてシステムの構造を表現するためのモデリング言語である。

[解答群]
 ①ア ②イ ③ウ ④エ

[解答]
 ④エ

※本ページの内容は掲載当時(2013年12月9日)のものです。