| 開発者 | ディミトリ・ファン・ヒーシュ |
|---|---|
| 初回リリース | 1997年10月26日[1] |
| 安定リリース | 1.12.0 [2]
/ 2024年8月7日 |
| リポジトリ |
|
| 書かれた | C++ |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | ドキュメントジェネレーター |
| ライセンス | GPLv2 |
| Webサイト | ドキシゲン |
Doxygen(/ ˈ d ɒ k s i dʒ ən / DOK -see-jən)[3]は、ソフトウェアソースツリーのドキュメント生成ツール[4] [5] [6] [7]および静的解析ツールです。ドキュメント生成ツールとして使用する場合、Doxygenはコード内の特別にフォーマットされたコメントから情報を抽出します。解析に使用する場合、Doxygenは解析ツリーを使用してコード構造の図やチャートを生成します。Doxygenはドキュメントとコードを相互参照できるため、ドキュメントの読者は実際のコードに簡単に参照できます。
Doxygen は、 GNU General Public License バージョン2 (GPLv2) の条件に基づいてリリースされたフリー ソフトウェアです。
デザイン
Javadocと同様に、Doxygen はソース ファイルのコメントからドキュメントを抽出します。Javadoc 構文に加えて、Doxygen はQt ツールキットで使用されるドキュメント タグをサポートし、ハイパーテキスト マークアップ言語 ( HTML ) だけでなく、Microsoft コンパイル済み HTML ヘルプ(CHM)、リッチ テキスト形式(RTF)、ポータブル ドキュメント形式(PDF)、LaTeX、PostScript 、またはマニュアル ページでも出力を生成できます。
用途
Doxygenがサポートするプログラミング言語には、 C、[8] C++、C#、D、Fortran、IDL、Java、Objective-C、[9] Perl、[10] PHP、[11] Python、[12] [13] VHDL [11]などがあります。他の言語も追加コードでサポートできます。
Doxygen は、ほとんどのUnix 系システム、macOS、Windowsで動作します。
Doxygen の最初のバージョンは、ベルリンの Zuse Instituteで Roland Wunderling と Malte Zöckler が開発した DOC++ の初期バージョンからコードを借用しました。その後、Doxygen コードは Dimitri van Heesch によって書き直されました。
DoxygenにはC++クラスの継承図を生成するためのサポートが組み込まれています。より高度な図やグラフを作成するには、DoxygenでGraphvizの「dot」ツールを使用できます。[14]
サンプルコード
ドキュメント コメントの一般的な構文は、先頭のコメント区切り文字 '/*' の後に追加のアスタリスクを付けてコメントを開始することです。
/**
<短い一行の説明>
<より長い説明>
<必要に応じて複数の行または段落にまたがる場合があります>
@param メソッドまたは関数の入力パラメータの説明
@param ...
@return 戻り値の説明
*/
多くのプログラマーは、次のように各行の先頭をスペース、アスタリスク、スペースでマークすることを好みますが、これは必須ではありません。
/**
* <短い1 行の説明>
*
* <長い説明>
* <必要に応じて複数の行または段落にまたがる場合があります>
*
* @param メソッドまたは関数の入力パラメータの説明
* @param ...
* @return 戻り値の説明
*/
多くのプログラマーは C スタイルのコメントの使用を避け、代わりに C++ スタイルの 1 行コメントを使用します。Doxygen は、スラッシュを追加したコメントを Doxygen コメントとして受け入れます。
/// < 1行の短い説明
> ///
/// <長い説明>
/// <必要に応じて複数行または複数段落にまたがる場合があります>
///
/// @param メソッドまたは関数の入力パラメータの説明
/// @param ...
/// @return 戻り値の説明
以下は、C++ソース ファイルをドキュメント化する方法を示しています。

/**
* @file
* @author John Doe <jdoe@example.com>
* @version 1.0
*
* @section ライセンス
*
* このプログラムはフリーソフトウェアです。フリーソフトウェア
財団が発行したGNU 一般公衆利用許諾書の条項に従って、再配布および/または改変することができます。
ライセンスのバージョン 2 または (オプションで) それ以降のバージョンのいずれかです。* * このプログラムは有用であることを期待して配布されていますが、いかなる保証もありません。商品性や特定目的への適合性についての暗黙の保証さえありません。詳細については、GNU 一般公衆利用許諾書を参照してください。* https://www.gnu.org/copyleft/gpl.html * * @section 説明* * time クラスは、時間の瞬間を表します。*/
クラスTime {
公共:
/**
* 時間を指定された値に設定するコンストラクタ。
* * @param timemillis は
1970 年 1 月 1 日から経過した ミリ秒数です。
*/ Time ( int timemillis ) { // コード}
/**
* 現在の時刻を取得します。
*
* @return 現在の時刻に設定された時間オブジェクト。
*/
static Time now () { // コード} };
パラメータを文書化する別の方法を以下に示します。同じ文書が生成されます。
/**
* 時間を指定された値に設定するコンストラクタ。
*/
Time ( int timemillis ///< 1970 年 1 月 1 日から経過したミリ秒数。> ) { // コード}
より豊富なマークアップも可能です。たとえば、LaTeXコマンドを使用して数式を追加します。
/**
*
* インライン方程式 @f$ e^{\pi i}+1 = 0 @f$
*
* 表示された方程式: @f[ e^{\pi i}+1 = 0 @f]
*
*/
Doxygenのソースと開発
Doxygenのソースは現在GitHubでホストされており、主な開発者であるDimitri van Heeschがユーザー名「doxygen」で貢献しています。[15] DoxygenはC++で書かれており、約300,000行のソースコードで構成されています。字句解析には、標準ツールのLex(または代替のFlex)が約35,000行のlexスクリプトを介して実行されます。構文解析ツールのYacc(または代替のBison)も使用されますが、これはマイナーなタスクにのみ使用され、言語構文解析の大部分はネイティブのC++コードによって行われます。ビルドプロセスはCMakeに基づいており、Pythonスクリプトもいくつか含まれています。
参照
参考文献
- ^ アナウンス: doxygen 0.1 Archived October 4, at the Wayback Machine 2011年10月4日、アナウンス: C++ ドキュメント システム Doxygen の最初のリリース。、From: Dimitri van Heesch、Date: Sun, 26 Oct 1997、Qt-interest アーカイブ
- ^ 「Doxygen release 1.12.0」。2024年8月7日。 2024年8月7日閲覧。
- ^ 「Doxygen マニュアル: よくある質問」www.doxygen.nl。
- ^ Perkel, Jeffrey M. (2015-11-22). 「Get With the Program: 分析の武器にコーディングを追加するための DIY のヒント」The Scientist (ジャーナル)。 The Scientist。
- ^ Sabin, Mihaela (2015-11-22). 「Doxygen」. OpenComputing ( Wiki ). University of New Hampshire. 2015-11-23時点のオリジナルよりアーカイブ。
- ^ 「Doxygen」。フリーソフトウェアディレクトリ(Wiki)。2015年11月22日。
- ^ 「ドキュメント」。Rosetta Code ( Wiki )。2015-11-22。
- ^ 「ドキュメント: C」。Rosetta Code ( Wiki )。2015-11-22。
- ^ 「ドキュメント: Objective-C」。Rosetta Code ( Wiki )。2015-11-22。
- ^ 「Doxygen::Filter::Perl - Doxygen 用の Perl コード プレフィルター - metacpan.org」。metacpan.org。
- ^ ab 「Doxygen マニュアル: はじめに」www.doxygen.nl。
- ^ 「自動 Python API ドキュメント生成ツール」. python.org wiki ( Wiki ). 2015-11-22.
- ^ Brown, Eric W. 「doxypypy: Python 用の Doxygen フィルター」 – PyPI 経由。
- ^ 「Doxygen マニュアル: グラフと図」www.doxygen.nl。
- ^ 「doxygen/doxygen」。2021年6月9日 – GitHub経由。
外部リンク
- 公式サイト
