Doxygen

Doxygen is a Logiciel free Informatique making it possible to create Documentation starting from the Source code of a program. For that, it takes account of the grammar of the language in which the source code is written, as well as comments if they are written in a particular format.

The code of Doxygen was written mainly by Dimitri van Heesch.

Presentation

Doxygen is the contraction of dox ( docs , English abbreviation of documents ) and of gen ( generator ), generator of documentation.

Doxygen is able to analyze source files written in the languages C, C++, Java, Objective C, Python, IDL and to a certain extent, C# and D.

Documentation can be generated in one or several of the following formats: HTML (compressed or not), Latex, rtf, PostScript, pdf with Hyperlink S, and soon XML (under development).

Interest

By allowing the integration of documentation directly in the source code, Doxygen makes it possible to support coherence between documentation and the code and to systematize the behavior of the Développeur S so that they document the code which they produce.

It is also possible to extract from documentation starting from a source code not documented as a preliminary, which can facilitate the comprehension of a program whose code is complicated.

Many projects, such as KDE, use Doxygen to create the documentation of their API. KDevelop integrates the support of Doxygen. Many text editors propose modes or scripts to facilitate the writing of the Doxygen comments and the generation of documentation.

Following information can be extracted the sources:

  • Prototype and documentation of the functions, which they are local, private or public, etc
  • Liste of the files included
  • Documentation of the structures of data
  • Prototype and documentation of the classes and their hierarchy
  • Différents types of graphs: diagrams of class, collaboration, calls, inclusion, etc to generate some of these diagrams, the free tool Dot is necessary.
  • an index of all the identifiers
  • Of the source files annotated (for example with the number of lines) and navigable (for example with HTML, with which the identifiers return towards associated documentation)

Example

The code below illustrates the way in which Doxygen makes it possible to document the code.

/** * The class Time represents one moment. * @author Paul Hochon * class Time { /** * Manufacturer. * Fix the moment at a precise value. * @param timemillis Milliseconds run out since January 1st, 1970 * Time ( int timemillis) { … } /** * Recover the current moment. * @return One moment corresponding to the moment present * static Time now () { … }}

The comments of the language targets (here Java) are specialized to indicate to Doxygen which it must take them into account. Thus, the comments are open with /** rather than /*. Specific beacons inside these comments are also interpreted by Doxygen (for example: @param).

In this example, the drafting of the comments uses the format Javadoc, with which Doxygen is compatible. Doxygen proposes its own format, which is functionally equivalent.

Platform

Doxygen is written under Linux and Mac OS, with a concern posted of portability. It functions on the majority of the systems Unix and it is available in achievable version on Microsoft Windows.

DoxyWizard

DoxyWizard is an graphical interface making it possible to configure the options of generation of Doxygen and launching the extraction of documentation. Like Doxygen, it is available on various platforms.

License

Doxygen is published under license LPG.

See too

  • Javadoc, tool for generation of documentation Java of SUN
  • XMLDoc, tool for generation of documentation. Net of Microsoft

External bond

  • Official site

Random links:In an obscure cattle shed | Jay Kogen | Scott Valentine | KV48 | France 3 South | 177_AVANT_JÉSUS_CHRIST