Doxygen

Doxygen（ドキシジェンまたはドクシジェン）は、C++、C言語、Java、C#、Objective-C、Fortran、Python、PHP、IDL、VHDL、Lexに対応したドキュメンテーションジェネレータである。他にも、D言語でもある程度利用可能となっている。多くのUnix系システム、Windows、macOSで動作する。Doxygenのコードの大部分は Dimitri van Heesch によって書かれた。

KDEは文書の一部にDoxygenを利用している。また、KDevelopは組み込むことで利用者の需要に対応している。

 概要 
Javadocのように、Doxygenはコンピュータ言語（プログラミング言語）のソースファイルをパースして、コメントから文書を抽出・変換・生成する。Javadocの文法に加えて、Qtツールキットで使われるドキュメンテーションタグをサポートしており、HTML形式だけでなく、CHM、RTF、PDF、LaTeX、PostScript、manページ形式の文書を生成できる。

統合開発環境 (IDE) の中には、プログラム要素に対して記述されたDoxygenコメントをもとに、ツールヒントでそのプログラム要素に関する情報を表示するものも存在する。コード入力補完の際に関数やメソッドの各パラメータに対する説明を適宜表示するものもある。

 歴史 
Doxygen の最初のバージョンは、Zuse Institute Berlinで Roland Wunderling と Malte Zöckler が開発した DOC++ の初期バージョンからコードを借用した。その後、Doxygen コードは Dimitri van Heesch によって書き直された。

 コード例 
以下のコード例は、Doxygenで文書生成可能な形式である。

/**
 * The time class represents a moment of time.
 *
 * \author John Doe
 */
class Time {
public:
    /**
     * Constructor that sets the time to a given value.
     * \param timeMillis A number of milliseconds passed since Jan 1, 1970.
     */
    explicit Time(long long timeMillis) {
        // ...
    }

    /**
     * Get the current time.
     * \return A time object set to the current time.
     */
    static Time now() {
        // ...
    }
};

コメント内にバックスラッシュ\またはアットマーク@で始まる「特殊コマンド」Doxygen Manual: Special Commandsとその引数 (argument) を記述することで、プログラムソースコード中の各構成要素に対する説明を記述した定形的な文書を自動生成することができる。いくつかの特殊コマンドはJavadocとも互換性があるが、Doxygenでしか使えない独自のものも多い。

 脚注 
 注釈 

 出典 

 関連項目 

ソフトウェアドキュメンテーション
Eclox : Eclipse向けのDoxygenフロントエンド自由ソフトウェアプラグイン。GNU General Public Licenseでライセンスされている。
Graphviz : DoxygenはC++、Java、Pythonなどについてクラス階層図などをGraphVizと連携して生成できる。

 外部リンク 
 SourceForge homepage
 MediaWiki documentation Doxygen で作成
 日本語の非公式翻訳サイト - Doxygen v1.5.9への対応を最後に、更新は止まっている。
 日本語の非公式翻訳サイト - Doxygen v1.8.11への対応を最後に、更新は止まっている。

Category:ソフトウェア開発ツール
Category:オープンソースソフトウェア
Category:クロスプラットフォームのソフトウェア
Category:ドキュメンテーションジェネレータ
Category:C++でプログラムされた自由ソフトウェア
Category:電子帳票