C++ Boost

History of the Boost Graph Library

Boost Graph Library は、ノートルダム大学の Lab for Scientific Computing (LSC) のソフトウェアプロジェクト Generic Graph Component Library (GGCL) として、 Andrew Lumsdaine 教授の指導の下でその生涯を開始した。 研究室の研究の方向性としては、数値線形代数、並列コンピューティング、および (ジェネリックプログラミングを含む) ソフトウェアエンジニアリングがある。

標準テンプレートライブラリがリリースされてまもなく、 ジェネリックプログラミングを科学計算に適用する作業が LSC において開始された。 Matrix Template Library (Jeremy Siek の修士論文) は初期のプロジェクトの一つである。 MTL を構築する間に習得された課題の多くは、 GGCL の設計と実装に応用された。

グラフアルゴリズムは疎行列計算(sparse matrix computations)において重要な役割を演じる。 そのため LSC は良質なグラフライブラリを必要としていた。 ところが、利用可能なグラフライブラリ (LEDA 、 GTL 、 Stanford GraphBase) はどれも STL のスタイルのジェネリックプログラミングで書かれておらず、そのため LSC の求めるフレキシビリティと高い性能の要求に叶うものではなかった。 他にも ジェネリックなC++ のグラフライブラリに興味を示す人々がいた。 Bjarne Stroustrup とのミーティングの折り、我々はそうしたライブラリを必要としている AT&T の何人かの人々に紹介された。 そこにもジェネリックなグラフアルゴリズムの領域における、 Alexander Stepanov によって書かれたいくつかのコードや、 Dietmar Kühl の修士論文を含む 初期の仕事が存在した。

このことが頭にあって、また彼のアルゴリズム講座で割り当てられた宿題が動機を与え、 Jeremy はインタフェースといくつかのグラフクラスのプロトタイピングを 1998 年の春に開始した。 その後 Lie-Quan Lee は最初のバージョンの GGCL を開発した。このプロジェクトは彼の修士論文となった。

翌年、 Jeremy は Alexander Stepanov と Matt Austern とともに SGI に就職した。 この間、 Alex の互いに素な集合を基礎とした結合要素アルゴリズムが GGCL に加えられた。 そして Jeremy は Matt の STL のドキュメンテーションと同じように GGCL の概念を 文書化する作業を始めた。

SGI で働く一方、 Jeremy は Boost の話を聞き、高品質の C++ ライブラリを 創造することに意欲を燃やす人々のグループを発見して興奮した。 Boost では何人かの人々がジェネリックなグラフアルゴリズムに興味を持っており、 なかでも Dietmar Kühl は顕著だった。 グラフ構造に対するジェネリックなインターフェイスについての何度かの議論の結果、 現在の Boost Graph Library のインタフェースと非常に近いものに GGCL を路線変更させた。

2000 年 9 月 4 日、 GGCL は Boost の公式レビューを通過し、 Boost Graph Library (BGL) となった。 BGL の最初のリリースは 2000 年 9 月 27 日のことであった。


Copyright © 2000-2001 Jeremy Siek, Indiana University (jsiek@osl.iu.edu)
Lie-Quan Lee, Indiana University (llee@cs.indiana.edu)
Andrew Lumsdaine, Indiana University (lums@osl.iu.edu)

Japanese Translation Copyright © 2003 Kent.N
オリジナルの、及びこの著作権表示が全ての複製の中に現れる限り、この文書の複製、利用、変更、販売そして配布を認める。このドキュメントは「あるがまま」に提供されており、いかなる明示的、暗黙的保証も行わない。また、いかなる目的に対しても、その利用が適していることを関知しない。

このドキュメントの対象: Boost Version 1.29.0
最新版ドキュメント (英語)