stringtranslate.com

Doxígeno

Doxygen ( / ˈd ɒ k s i ən / DOK -see-jən ) [3] es un generador de documentación [4] [5] [6] [7] y una herramienta de análisis estático para árboles de código fuente de software . Cuando se utiliza como generador de documentación, Doxygen extrae información de comentarios especialmente formateados dentro del código. Cuando se utiliza para análisis, Doxygen utiliza su árbol de análisis para generar diagramas y gráficos de la estructura del código. Doxygen puede realizar referencias cruzadas entre documentación y código, de modo que el lector de un documento pueda consultar fácilmente el código real.

Doxygen es software libre , publicado bajo los términos de la Licencia Pública General GNU versión  2 (GPLv2).

Diseño

Al igual que Javadoc , Doxygen extrae la documentación de los comentarios de los archivos fuente. Además de la sintaxis de Javadoc, Doxygen admite las etiquetas de documentación utilizadas en el kit de herramientas Qt y puede generar resultados en lenguaje de marcado de hipertexto ( HTML ), así como en Microsoft Compiled HTML Help (CHM), formato de texto enriquecido (RTF), formato de documento portátil (PDF), LaTeX , PostScript o páginas de manual .

Usos

Los lenguajes de programación compatibles con Doxygen incluyen C , [8] C++ , C# , D , Fortran , IDL , Java , Objective-C , [9] Perl , [10] PHP , [11] Python , [12] [13] y VHDL . [11] Se pueden admitir otros lenguajes con código adicional.

Doxygen se ejecuta en la mayoría de los sistemas tipo Unix , macOS y Windows .

La primera versión de Doxygen tomó prestado el código de una versión anterior de DOC++, desarrollada por Roland Wunderling y Malte Zöckler en el Zuse Institute de Berlín . Más tarde, el código de Doxygen fue reescrito por Dimitri van Heesch.

Doxygen tiene soporte integrado para generar diagramas de herencia para clases C++. Para diagramas y gráficos más avanzados, Doxygen puede utilizar la herramienta "punto" de Graphviz . [14]

Código de ejemplo

La sintaxis genérica de los comentarios de la documentación es comenzar un comentario con un asterisco adicional después del delimitador de comentario inicial '/*':

/** <Una breve descripción de una línea><Descripción más larga> <Puede abarcar varias líneas o párrafos según sea necesario>@param Descripción del parámetro de entrada del método o función @param ... @return Descripción del valor de retorno */

A muchos programadores les gusta marcar el inicio de cada línea con espacio-asterisco-espacio, como se muestra a continuación, pero eso no es necesario.

/** * <Una descripción corta de una línea> * * <Descripción más larga> * <Puede abarcar varias líneas o párrafos según sea necesario> * * @param Descripción del parámetro de entrada del método o función * @param ... * @return Descripción del valor de retorno */

Muchos programadores evitan usar comentarios de estilo C y, en su lugar, usan comentarios de una sola línea de estilo C++. Doxygen acepta comentarios con una barra adicional como comentarios de Doxygen.

/// <Una descripción corta de una línea > /// /// <Descripción más larga> /// <Puede abarcar varias líneas o párrafos según sea necesario> /// /// @param Descripción del parámetro de entrada del método o función /// @param ... /// @return Descripción del valor de retorno

A continuación se ilustra cómo se puede documentar un archivo fuente de C++ .

Una captura de pantalla de cómo se vería la salida en HTML
/** * @file * @author John Doe <[email protected]> * @version 1.0 * * @section LICENCIA * * Este programa es software libre; puede redistribuirlo y/o * modificarlo bajo los términos de la Licencia Pública General de GNU tal como * la publica la Free Software Foundation; ya sea la versión 2 de * la Licencia, o (a su elección) cualquier versión posterior. * * Este programa se distribuye con la esperanza de que sea útil, pero * SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de * COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Vea la Licencia Pública * General de GNU para más detalles en * https://www.gnu.org/copyleft/gpl.html * * @section DESCRIPCIÓN * * La clase time representa un momento del tiempo. */clase Tiempo {   público : /**  * Constructor que establece la hora en un valor dado.  *  * @param timemillis es un número de milisegundos  * transcurridos desde el 1 de enero de 1970.  */ Time ( int timemillis ) { // el código }       /**  * Obtener la hora actual.  *  * @return Un objeto de tiempo establecido en la hora actual.  */ static Time now () { // el código } };       

A continuación se muestra un enfoque alternativo para documentar los parámetros, que producirá la misma documentación.

 /**  * Constructor que establece la hora en un valor dado.  */ Time ( int timemillis ///< Número de milisegundos transcurridos desde el 1 de enero de 1970.> ) { // el código }        

También es posible utilizar un marcado más completo. Por ejemplo, se pueden añadir ecuaciones mediante comandos LaTeX :

/** * * Una ecuación en línea @f$ e^{\pi i}+1 = 0 @f$ * * Una ecuación mostrada: @f[ e^{\pi i}+1 = 0 @f] * */

Origen y desarrollo del doxígeno

Las fuentes de Doxygen están actualmente alojadas en GitHub , donde el desarrollador principal, Dimitri van Heesch, contribuye bajo el nombre de usuario "doxygen". [15] Doxygen está escrito en C++ y consta de alrededor de 300.000 líneas de código fuente . Para el análisis léxico , se ejecuta la herramienta estándar Lex (o su reemplazo Flex) a través de aproximadamente 35.000 líneas de script lex. También se utiliza la herramienta de análisis Yacc (o su reemplazo Bison), pero solo para tareas menores; la mayor parte del análisis del lenguaje se realiza mediante código nativo de C++. El proceso de compilación se basa en CMake y también involucra algunos scripts de Python.

Véase también

Referencias

  1. ^ ANUNCIO: doxygen 0.1 Archivado el 4 de octubre de 2011 en Wayback Machine , Anuncio: el primer lanzamiento de Doxygen, un sistema de documentación de C++. , De: Dimitri van Heesch, Fecha: dom, 26 de octubre de 1997, Archivo de Qt-interest
  2. ^ "Lanzamiento de Doxygen 1.12.0". 7 de agosto de 2024. Consultado el 7 de agosto de 2024 .
  3. ^ "Manual de Doxygen: Preguntas frecuentes". www.doxygen.nl .
  4. ^ Perkel, Jeffrey M. (22 de noviembre de 2015). "Get With the Program: DIY tips for additioncoding to your analysis arsenal" (Póngase al día: consejos para añadir codificación a su arsenal de análisis). The Scientist ( Revista ). The Scientist.
  5. ^ Sabin, Mihaela (22 de noviembre de 2015). "Doxygen". OpenComputing ( Wiki ). Universidad de New Hampshire. Archivado desde el original el 23 de noviembre de 2015.
  6. ^ "Doxygen". Directorio de software libre ( Wiki ). 22 de noviembre de 2015.
  7. ^ "Documentación". Código Rosetta ( Wiki ). 22 de noviembre de 2015.
  8. ^ "Documentación: C". Código Rosetta ( Wiki ). 22 de noviembre de 2015.
  9. ^ "Documentación: Objective-C". Código Rosetta ( Wiki ). 22 de noviembre de 2015.
  10. ^ "Doxygen::Filter::Perl - Un prefiltro de código Perl para Doxygen - metacpan.org". metacpan.org .
  11. ^ ab "Manual de Doxygen: Primeros pasos". www.doxygen.nl .
  12. ^ "Herramientas de generación automática de documentación de la API de Python". Wiki de python.org ( Wiki ). 22 de noviembre de 2015.
  13. ^ Brown, Eric W. "doxypypy: Un filtro Doxygen para Python" – vía PyPI.
  14. ^ "Manual de Doxygen: gráficos y diagramas". www.doxygen.nl .
  15. ^ "doxygen/doxygen". 9 de junio de 2021 – vía GitHub.

Enlaces externos