【クロスメディアキーワード】プログラム言語とオープンソース

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

COBOL、FORTRAN、PL/I、Pascal、C 言語などは、コンピューターに実行させる処理を記述するプログラム言語である。ジョブ制御言語(JCL)やオペレーティングシステム(OS)で使用するコマンドは、OSに対し動作指示を行う言語として捉えることができる。
一方、SQL やXQueryなどは、問い合わせ言語とも呼ばれることもあり、主にDB(データベース)からのデータ取得に対する記述をする。PostScript やHTML、XML などは、主にデータの内容を記述するための言語であり、データ記述言語とも呼ばれている。
PostScript やHTML は、主に内容の表示や描画のために使われるようになった。XML は、表示描画機能を切り分け、データに対し意味のある集合体や構造で表現することに主眼を置いた言語である。XML データをディスプレー表示や、印刷する場合は、PostScript やHTML などの形式に置き換え、専用アプリケーションやXSLT などを用いて変換する必要がある。XML データはPostScript やHTML と比較すると、ディスプレー表示や印刷するまでの手順が複雑になる。しかしながら、データ項目を文書構造に合わせて取得することが容易である。UML(Unified Modeling Language)は、ソフトウェア開発においてシステムの構造を表現するためのコンピューター言語であり、モデリング言語の代表的なものである。
プログラミング言語の中で、データを使い行う処理や操作の手順をパッケージ化した独立性があるものを「オブジェクト」と呼ぶ。オブジェクト指向のプログラム言語は、命令から相互に関連し、処理や操作を実行することで、ソフトウェア全体としての動作を制御する。オブジェクト指向は1970 年代から普及し、SmalltalkやCLOSなどオブジェクト指向のプログラム言語が開発された。オブジェクト指向では、すでに存在する「オブジェクト」は、利用の際にその内部構造や動作原理の詳細を知る必要がなく、特に大規模なソフトウェア開発において有効な考え方として知られている。
オープンソースは、無料でソースコードやプログラムが入手できるということを意味しているだけではない。オープンソースに関する定義は、Open Source Initiative(OSI)により策定されている。OSI認定を受けるためには、以下の頒布条件が定められている。

1. 再頒布の自由

「オープンソース」であるライセンス(以下「ライセンス」と略)は、出自のさまざまなプログラムを集めたソフトウェア頒布物(ディストリビューション)の一部として、ソフトウェアを販売あるいは無料で頒布することを制限してはならない。 ライセンスは、このような販売に関して印税そのほかの報酬を要求してはならない。

2. ソースコード

「オープンソース」であるプログラムはソースコードを含んでいなければならず 、コンパイル済形式と同様にソースコードでの頒布も許可されていなければならない。何らかの事情でソースコードと共に頒布しない場合には、 ソースコードを複製に要するコストとして妥当な額程度の費用で入手できる方法を用意し、それをはっきりと公表しなければならない。方法として好ましいのはインターネットを通じた無料ダウンロードである。ソースコードは、プログラマーがプログラムを変更しやすい形態でなければならない。意図的にソースコードを分かりにくくすることは許されず、プリプロセッサーや変換プログラムの出力のような中間形式は認められない。

3. 派生ソフトウェア

ライセンスは、ソフトウェアの変更と派生ソフトウェアの作成、並びに派生ソフトウェアを元のソフトウェアと同じライセンスの下で頒布することを許可しなければならない。

4. 作者のソースコードの完全性(Integrity)

バイナリ構築の際にプログラムを変更するため、ソースコードと一緒に「パッチファイル」を頒布することを認める場合に限り、ライセンスによって変更されたソースコードの頒布を制限することができる。ライセンスは、変更されたソースコードから構築されたソフ
トウェアの頒布を明確に許可していなければならないが、派生ソフトウェアに元のソフトウェアとは異なる名前やバージョン番号をつけるよう義務付けるのは構わない。

5. 個人やグループに対する差別の禁止

ライセンスは特定の個人やグループを差別してはならない。

6. 利用する分野(Fields of Endeavor)に対する差別の禁止

ライセンスはある特定の分野でプログラムを使うことを制限してはならない。 例えばプログラムの企業使用、遺伝子研究の分野での使用を制限してはならない。

7. ライセンスの分配(Distribution)

プログラムに付随する権利はそのプログラムが再頒布された者全てに等しく認められなければならず、彼らが何らかの追加的ライセンスに同意することを必要としてはならない。

8. 特定製品でのみ有効なライセンスの禁止

プログラムに付与された権利は、それがある特定のソフトウェア頒布物の一部であるということに依存するものであってはならない。プログラムをその頒布物から取り出したとしても、そのプログラム自身のライセンスの範囲内で使用あるいは頒布される限り、プログラムが再頒布される全ての人々が、元のソフトウェア頒布物において与えられていた権利と同等の権利を有することを保証しなければならない。

9. ほかのソフトウェアを制限するライセンスの禁止

ライセンスは、そのソフトウェアと共に頒布される他のソフトウェアに制限を設けてはならない。例えばライセンスは、同じ媒体で頒布されるほかのプログラムが全てオープンソースソフトウェアであることを要求してはならない。

10. ライセンスは技術中立的でなければならない

ライセンス中に、特定の技術やインターフェイスの様式に強く依存するような規定があってはならない。

JAGAT CS部
Jagat info 2013年3月号より転載