Doxygen
![]() |
אנו דנים כעת בשאלה האם ערך זה עומד בקריטריונים להיכלל בוויקיפדיה. אתם מוזמנים לשפר ולהרחיב את הערך על מנת להסיר את הספקות, וכן להשתתף בדיון בדף השיחה של הערך.
| |
אנו דנים כעת בשאלה האם ערך זה עומד בקריטריונים להיכלל בוויקיפדיה. אתם מוזמנים לשפר ולהרחיב את הערך על מנת להסיר את הספקות, וכן להשתתף בדיון בדף השיחה של הערך. | |
![]() | |
![]() | |
מחזור חיים |
26 באוקטובר 1997 – הווה (27 שנים) ![]() |
---|---|
גרסה אחרונה |
1.13.2 (9 בינואר 2025) ![]() |
גרסת בטא |
1.9.1[1] ב־תבנית:Start date and age |
מערכת הפעלה |
Mac OS, Microsoft Windows, מערכת הפעלה דמוית יוניקס ![]() |
נכתבה בשפות | C++ |
סוג רישיון |
GPL-2.0 ![]() |
קוד מקור |
https://github.com/doxygen/doxygen ![]() |
Cross-platform | |
| |
www | |
![]() ![]() |
דוקסיג'ן (באנגלית: Doxygen /ד ɒ k s i dʒ ən / DOK -see-jən)[2] הוא מחולל תיעוד,[3][4][5][6] כלי לכתיבת תיעוד הפניה לתוכנה. התיעוד נכתב בתוך מקטע הקוד ובכך קל יחסית לשמור על עדכניותו. דוקסיג'ן יכול להצליב תיעוד וקוד, כך שקורא המסמך יכול להתייחס בקלות לשורות הקוד בפועל.
דוקסיג'ן הוא תוכנה חינמית, המופצת תחת תנאי גרסת הרישיון הציבורי הכללי של GNU 2 (GPLv2).
עיצוב
כמו Javadoc, דוקסיג'ן מחלץ תיעוד מהערות בקובץ המקור. בנוסף לתחביר Javadoc, דוקסיג'ן תומך בתגי התיעוד המשמשים בערכת הכלים Qt ויכול להפיק פלט בשפת HyperText Markup (HTML) כמו גם ב- Microsoft Compiled HTML Help, תבנית מלל עשיר (RTF), תבנית מסמך נייד (PDF), LaTeX, PostScript או דפי man.
שימושים
שפות תכנות הנתמכות על ידי דוקסיג'ן כוללות C,[7] C ++, C #, D, Fortran, IDL, Java, Objective-C,[8] Perl,[9] PHP,[10] Python,[11][12] ו-VHDL.[13] ניתן לתמוך בשפות נוספות באמצעות הוספת קוד.
דוקסיג'ן פועל ברוב המערכות דמויי יוניקס, MacOS ו-Windows.
הגרסה הראשונה של דוקסיג'ן השאילה קוד מגרסה מוקדמת של ++DOC, שפותחה על ידי רולנד וונדרלינג ומלטה זוקלר במכון Zuse Berlin. מאוחר יותר, קוד דוקסיג'ן שוכתב מחדש על ידי דימיטרי ואן היץ'.
לדוקסיג'ן תמיכה מובנית ליצירת דיאגרמות ירושה עבור שכבות ++C. לקבלת דיאגרמות ותרשימים מתקדמים יותר, דוקסיג'ן יכול להשתמש בכלי "dot" של Graphviz.[14]
קוד לדוגמה
התחביר הגנרי של הערות תיעוד הוא להתחיל הערה בכוכבית נוספת לאחר תיחום ההערות המוביל
'/ *':
/**
<A short one line description>
<Longer description>
<May span multiple lines or paragraphs as needed>
@param Description of method's or function's input parameter
@param ...
@return Description of the return value
*/
תוכניתנים רבים אוהבים לסמן את ההתחלה של כל שורה רווח-כוכבית-רווח, כדלקמן, אך אין זה הכרחי.
/**
* <A short one line description>
*
* <Longer description>
* <May span multiple lines or paragraphs as needed>
*
* @param Description of method's or function's input parameter
* @param ...
* @return Description of the return value
*/
תוכניתנים רבים נמנעים משימוש בהערות בסגנון C ובמקום זאת משתמשים בהערות בשורה יחידה בסגנון ++C. דוקסיג'ן מקבל הערות עם קו נטוי נוסף כהערות דוקסיג'ן.
/// <A short one line description>
///
/// <Longer description>
/// <May span multiple lines or paragraphs as needed>
///
/// @param Description of method's or function's input parameter
/// @param ...
/// @return Description of the return value
להלן המחשה על אופן תיעוד קובץ מקור ++C.

/**
* @file
* @author John Doe <jdoe@example.com>
* @version 1.0
*
* @section LICENSE
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details at
* https://www.gnu.org/copyleft/gpl.html
*
* @section DESCRIPTION
*
* The time class represents a moment of time.
*/
class Time {
public:
/**
* Constructor that sets the time to a given value.
*
* @param timemillis is a number of milliseconds
* passed since Jan 1, 1970.
*/
Time (int timemillis) {
// the code
}
/**
* Get the current time.
*
* @return A time object set to the current time.
*/
static Time now () {
// the code
}
};
גישה חלופית לתיעוד משתנים מוצגת להלן. תוצאת מבנה התיעוד תהיה זהה.
/**
* Constructor that sets the time to a given value.
*/
Time (int timemillis ///< Number of milliseconds passed since Jan 1, 1970.>
)
{
// the code
}
שפת סימון עשירה יותר אפשרית גם כן. לדוגמה, הוספת משוואות באמצעות פקודות LaTeX :
/**
*
* An inline equation @f$ e^{\pi i}+1 = 0 @f$
*
* A displayed equation: @f[ e^{\pi i}+1 = 0 @f]
*
*/
מקור ופיתוח דוקסיג'ן
קוד המקור של דוקסיג'ן מתארח כיום ב-GitHub, שם המפתח הראשי, דימיטרי ואן היץ', תורם תחת שם המשתמש "דוקסיג'ן".[15] דוקסיג'ן כתוב בשפת ++C, וכולל למעלה מ-300,000 שורות קוד מקור. לצורך ניתוח לקסיקלי, הכלי הסטנדרטי <a href="https://en.wikipedia.org/wiki/Lex_(software)" rel="mw:ExtLink" title="Lex (software)" class="cx-link" data-linkid="126">Lex</a> (או מחליפו Flex) מופעל על יותר מ-35,000 שורות של תסריטי Lex. נעשה שימוש בכלי הניתוח Yacc (או מחליפו Bison), אך רק למשימות קלות; עיקר ניתוח השפה נעשה על ידי קוד ++C מקורי. תהליך הבנייה מבוסס על CMake וכולל גם כמה תסריטים של פייתון.
ראו גם
עיינו גם בפורטל: | |||
---|---|---|---|
![]() |
פורטל מחשבים |
קישורים חיצוניים
הערות שוליים
- ^ http://www.doxygen.nl/manual/changelog.html
- ^ FAQ: How did doxygen get its name?
- ^ Perkel, Jeffrey M. (2015-11-22). "Get With the Program: DIY tips for adding coding to your analysis arsenal". The Scientist (Journal). The Scientist.
- ^ Sabin, Mihaela (2015-11-22). "Doxygen". OpenComputing (Wiki). University of New Hampshire. אורכב מ-המקור ב-2015-11-23.
- ^ "Doxygen". Free Software Directory (Wiki). 2015-11-22.
- ^ "Documentation". Rosetta Code (Wiki). 2015-11-22.
- ^ "Documentation: C". Rosetta Code (Wiki). 2015-11-22.
- ^ "Documentation: Objective-C". Rosetta Code (Wiki). 2015-11-22.
- ^ http://search.cpan.org/perldoc?Doxygen%3A%3AFilter%3A%3APerl
- ^ http://www.doxygen.nl/manual/starting.html
- ^ "Automatic Python API documentation generation tools". python.org wiki (Wiki). 2015-11-22.
- ^ https://pypi.python.org/pypi/doxypypy/
- ^ http://www.doxygen.nl/manual/starting.html
- ^ http://www.doxygen.nl/manual/diagrams.html
- ^ https://github.com/doxygen/doxygen