독시겐

Doxygen
독시겐
Doxygen.png
개발자디미트리 반 헤슈
초기 릴리즈1997년 10월 26일; 24년 전(1997-10-26)[1]
안정된 릴리스
1.9.4[2] / 2022년 5월 5일; 3개월 전(2022-05-05)
저장소
기입처C++
운영 체제크로스 플랫폼
유형문서 생성기
면허증.GPLv2
웹 사이트doxygen.nl

Doxygen(/'d'ksid'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 툴킷에서 사용되는 문서 태그를 지원하며 HyperText Markup Language(HTML)Microsoft Compiled HTML Help(CHM), RTF(Rich Text Format), Portable Document Format(PDF), LaTEX, PostScript출력을 생성할 수 있습니다.

사용하다

Doxygen에서 지원되는 프로그래밍 언어에는 C,[8] C++, C#, D, Fortran, IDL, Java, Objective-C,[9] Perl,[10] [11]PHP, [12][13]PythonVHDL[11]포함됩니다.추가 코드를 사용하여 다른 언어를 지원할 수 있습니다.

Doxygen은 대부분의 Unix 계열 시스템, MacOSWindows에서 실행됩니다.

Doxygen의 첫 번째 버전은 DOC++의 초기 버전에서 코드를 차용했으며, 이 버전은 베를린 Zuse Institute의 Roland Wunderling과 Malte Zöckler에 의해 개발되었습니다.나중에 Doxygen 코드는 Dimitri van Heesch에 의해 다시 작성되었다.

Doxygen에는 C++ 클래스에 대한 상속 다이어그램을 생성할 수 있는 기본 지원 기능이 있습니다.고급 다이어그램과 그래프를 보려면 Doxygen은 Graphviz[14]"점" 도구를 사용할 수 있습니다.

코드 예시

문서 주석의 일반적인 구문은 주석 선두 구분 기호 '/*' 뒤에 추가 별표와 함께 주석을 시작하는 것입니다.

/** <한 줄의 짧은 설명>  <자세한 설명> <필요에 따라 여러 줄 또는 단락에 걸쳐도 상관없습니다>  @param 메서드 또는 함수의 입력 파라미터 설명 @param... @return 반환값 설명 */ 

많은 프로그래머는 다음과 같이 각 행의 시작을 스페이스 아스터리스크 스페이스로 표시하고 싶어하지만, 그럴 필요는 없습니다.

/** * <한 줄의 짧은 설명> * * <자세한 설명> * <필요에 따라 여러 줄 또는 단락으로 구분 가능> * * @param 메서드 또는 함수의 입력 파라미터 설명 * @filename... * @return 반환값 설명 */ 

많은 프로그래머는 C스타일의 코멘트를 사용하지 않고 C++스타일의 싱글라인 코멘트를 사용합니다.Doxygen은 추가 슬래시가 포함된 주석을 Doxygen 코멘트로 받아들입니다.

// <한 줄의 짧은 설명> /// // <자세한 설명> // <필요에 따라 여러 줄 또는 단락에 걸쳐도 상관없습니다> /// // @param 메서드 또는 함수의 입력 파라미터 설명 // @filename... /// @return 반환값 설명 

다음은 C++ 소스 파일을 문서화하는 방법을 보여 줍니다.

HTML 출력의 스크린샷
/** * @file * @author John Doe <jdoe@example.com> * @version 1.0 * * @section 라이선스 * * 이 프로그램은 무료 소프트웨어이므로 재배포 및/또는 둘 다 가능합니다. * GNU General Public License의 조건에 따라 다음과 같이 수정합니다. * Free Software Foundation에 의해 발행된 버전2 중 하나 * 라이선스 또는 (임의로) 그 이후의 버전. * * 이 프로그램은 유용하게 사용할 수 있기를 바라며 배포하고 있습니다만, * 어떠한 보증도 하지 않습니다.또한 묵시적인 보증도 하지 않습니다. * 특정 목적에 대한 상품성 또는 적합성'GNU' 참조 * General Public License 자세한 내용은 다음 웹 사이트를 참조하십시오. * https://www.gnu.org/copyleft/gpl.html * * @섹션 설명 * * 시간 클래스는 시간의 순간을 나타냅니다. */  학급 시간을 {      일반의:         /** * 시간을 지정된 값으로 설정하는 생성자. * * @timemillis는 밀리초 단위입니다. * 1970년 1월 1일 이후 경과. */        시간을 (인트 타임밀리) {            // 코드        }         /** * 현재 시간을 가져옵니다. * * @return 현재 시간으로 설정된 시간 개체. */        정적인 시간을 지금이다 () {            // 코드        } }; 

파라미터를 문서화하기 위한 대체 접근방식을 다음에 나타냅니다.그러면 동일한 문서가 생성됩니다.

       /** * 시간을 지정된 값으로 설정하는 생성자. */        시간을 (인트 타임밀리 //< 1970년1월 1일 이후 경과한 밀리초 수>             )        {            // 코드        } 

보다 풍부한 마크업도 가능합니다.예를 들어, LaTeX 명령을 사용하여 방정식을 추가합니다.

/** * * 인라인 방정식 @f$ e^{\pi i}+1 = 0 @f$ * * 표시된 방정식: @f[ e^{\pi i}+1 = 0 @f] * */ 

독소원 및 개발

Doxygen 소스는 현재 GitHub에서 호스팅되고 있으며, 주요 개발자인 Dimitri van Heesch는 "doxygen"[15]이라는 사용자 이름으로 기여하고 있습니다.Doxygen은 C++로 작성되며 약 300,000개의 코드 소스 행으로 구성됩니다.어휘 분석의 경우 표준 도구 Lex(또는 대체 Flex)는 약 35,000줄의 어휘 스크립트를 통해 실행됩니다.해석 도구 Yacc(또는 그 대체 Bison)도 사용됩니다.단, 언어 해석의 대부분은 네이티브 C++ 코드로 이루어집니다.빌드 프로세스는 CMake를 기반으로 하며 일부 Python 스크립트도 포함합니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Announcement: 2011년 10월 4일 Wayback Machine에서 아카이브 완료, 발표: C++ 문서 시스템인 Doxygen의 출시.발신: Dimitri van Heesch, 날짜: Sun, 1997년 10월 26일, Qt-Inter 아카이브.
  2. ^ "Doxygen Manual: Changelog". www.doxygen.nl.
  3. ^ "Doxygen Manual: Frequently Asked Questions". www.doxygen.nl.
  4. ^ Perkel, Jeffrey M. (2015-11-22). "Get With the Program: DIY tips for adding coding to your analysis arsenal". The Scientist (Journal). The Scientist.
  5. ^ Sabin, Mihaela (2015-11-22). "Doxygen". OpenComputing (Wiki). University of New Hampshire. Archived from the original on 2015-11-23.
  6. ^ "Doxygen". Free Software Directory (Wiki). 2015-11-22.
  7. ^ "Documentation". Rosetta Code (Wiki). 2015-11-22.
  8. ^ "Documentation: C". Rosetta Code (Wiki). 2015-11-22.
  9. ^ "Documentation: Objective-C". Rosetta Code (Wiki). 2015-11-22.
  10. ^ "Doxygen::Filter::Perl - A perl code pre-filter for Doxygen - metacpan.org". metacpan.org.
  11. ^ a b "Doxygen Manual: Getting started". www.doxygen.nl.
  12. ^ "Automatic Python API documentation generation tools". python.org wiki (Wiki). 2015-11-22.
  13. ^ Brown, Eric W. "doxypypy: A Doxygen filter for Python" – via PyPI.
  14. ^ "Doxygen Manual: Graphs and diagrams". www.doxygen.nl.
  15. ^ "doxygen/doxygen". June 9, 2021 – via GitHub.

외부 링크