코멘트(컴퓨터 프로그래밍)

Comment (computer programming)
프롤로그 주석이 빨간색으로 표시되고 인라인 주석이 녹색으로 표시된 Java 소스 코드의 그림입니다.프로그램 코드파란색입니다.

컴퓨터 프로그래밍에서 주석은 컴퓨터 프로그램의 소스 코드에서 프로그래머가 읽을 수 있는 설명 또는 주석입니다.소스 코드를 사람이 쉽게 이해할 수 있도록 하기 위한 목적으로 추가되었으며, 컴파일러인터프리터에 의해 일반적으로 무시됩니다.[1][2]다양한 프로그래밍 언어의 주석 구문은 상당히 다릅니다.

주석은 또한 문서 생성기에 의해 소스 코드 자체 외부의 문서를 생성하기 위해 다양한 방식으로 처리되거나 소스 코드 관리 시스템 및 기타 종류의 외부 프로그래밍 도구와의 통합을 위해 사용됩니다.

주석이 제공하는 유연성은 다양한 정도의 가변성을 허용하지만 공식적인 사용 규칙은 일반적으로 프로그래밍 스타일 가이드의 일부입니다.

개요

주석은 일반적으로 블록 주석(프롤로그 주석 또는 스트림 주석이라고도 함) 또는 줄 주석(인라인 주석이라고도 함)으로 형식이 지정됩니다.[3]

블록 주석은 여러 줄에 걸쳐 있거나 한 줄의 일부일 수 있는 소스 코드 영역을 구분합니다.이 영역은 시작 구분 기호와 구분 기호로 지정됩니다.일부 프로그래밍 언어(예: MATLAB)에서는 블록 주석을 재귀적으로 서로 중첩할 수 있지만 다른 언어(: Java)에서는 그렇지 않습니다.[4][5][6]

줄 주석은 주석 구분 기호로 시작하여 줄의 끝까지 계속되거나, 경우에 따라 소스 코드의 특정 열(문자 줄 간격띄우기)에서 시작하여 줄의 끝까지 계속됩니다.[6]

일부 프로그래밍 언어에서는 주석 구분 기호가 다른 블록 주석과 줄 주석을 모두 사용합니다.예를 들어, C++에는 다음으로 구분되는 블록 주석이 있습니다./*그리고.*/다음으로 구분되는 여러 줄과 줄 주석을 포함할 수 있습니다.//. 다른 언어는 댓글 유형을 한 가지만 지원합니다.예를 들어, Ada comment는 줄 주석으로 시작합니다.--줄 끝까지 가보세요.[6]

사용하다

어떻게 댓글을 가장 잘 활용할 것인지는 논쟁의 여지가 있습니다. 다른 논평가들은 다양하고 때로는 반대되는 관점을 제시했습니다.[7][8]댓글을 쓰는 방법은 다양하고 많은 해설자들이 상반된 조언을 합니다.[8]

기획검토

댓글은 실제 코드를 작성하기 전에 의도를 개략적으로 설명하는 의사코드의 형태로 사용할 수 있습니다.이 경우에는 코드 자체보다는 코드 뒤에 있는 논리를 설명해야 합니다.

/* 서버가 반환하는 모든 요소를 뒤로 순환합니다. (시간순으로 처리해야 함)*/ 위해서 (i = (numElementsReturned - 1); i >= 0; i--) {     /* 각 요소의 데이터 처리 */     업데이트패턴(i, 반환된 요소[i]); } 

이런 유형의 코멘트를 그대로 두면 코드를 의도한 결과와 직접 비교할 수 있어 검토 과정이 간소화됩니다.일반적인 논리적 오류는 이해하기 쉬운 코드가 당연히 해야 할 일을 한다는 것입니다.

코드설명

코멘트는 코드를 요약하거나 프로그래머의 의도를 설명하는 데 사용될 수 있습니다.이 학파에 따르면, 코드를 간단한 영어로 다시 설명하는 것은 불필요한 것으로 여겨집니다; 코드를 다시 설명할 필요가 있다는 것은 코드가 너무 복잡하고 다시 써야 한다는 신호일 수도 있고, 명명법이 나쁘다는 신호일 수도 있습니다.

"나쁜 코드를 문서화하지 마십시오. 다시 작성하십시오."[9]
"좋은 댓글은 코드를 반복하거나 설명하지 않습니다.그들은 그 의도를 분명히 합니다.댓글은 코드보다 추상화 수준이 높아야 합니다."[10]

주석은 코드 블록이 관례나 모범 사례에 맞지 않는 것처럼 보이는 이유를 설명하는 데도 사용될 수 있습니다.특히 개발 시간이 매우 짧거나 버그 수정이 수반되는 프로젝트의 경우에는 더욱 그렇습니다.예를 들어,

' 양식 데이터 재사용 시 서버 오류로 인한 두 번째 변수 dim입니다. 아니요 ' 서버 동작 문제에 대한 문서를 사용할 수 있습니다. 따라서 이 문제에 대해 코딩만 하면 됩니다. vtx = 서버.지도를 그리다("로컬 설정") 

알고리즘 설명

소스 코드에 특정 문제에 대한 새롭고 주목할 만한 해결책이 포함되어 있는 경우가 있습니다.이 경우 주석에는 방법론에 대한 설명이 포함될 수 있습니다.그러한 설명은 도표와 형식적인 수학적 증명을 포함할 수 있습니다.이것은 코드의 의도에 대한 설명이라기 보다는 코드에 대한 설명을 구성할 수 있지만 코드 기반을 유지하는 업무를 수행하는 다른 사람들은 이러한 설명이 중요하다고 생각할 수 있습니다.특히 고도로 전문화된 문제 도메인의 경우에는 더욱 그러할 수 있습니다. 또는 거의 사용되지 않는 최적화, 구성 또는 함수 호출의 경우에는 더욱 그렇습니다.[11]

예를 들어, 프로그래머는 왜 빠른 정렬 대신 삽입 정렬이 선택되었는지 설명하기 위해 코멘트를 추가할 수 있는데, 이는 이론적으로 전자가 후자보다 느리기 때문입니다.다음과 같이 쓸 수 있습니다.

 목록. = [f (b), f (b), f (c), f (d), f (a), ...];  // 안정적인 종류가 필요합니다.게다가 공연은 정말 중요하지 않습니다.  삽입_ (목록.); 

자원포함

ASCII 아트 구성으로 구성된 로고, 다이어그램, 흐름도를 코멘트 형식의 소스 코드에 삽입할 수 있습니다.[12]또한 저작권 고지사항은 소스코드 내에 댓글로 포함될 수 있습니다.바이너리 데이터는 바이너리-투-텍스트 인코딩이라고 알려진 프로세스를 통해 주석으로 인코딩될 수도 있지만, 그러한 프로세스는 흔하지 않고 일반적으로 외부 리소스 파일로 강등됩니다.

다음 코드 조각은 Windows Script Host(윈도우 스크립트 호스트) 아래에서 실행되는 Windows Script File(윈도우 스크립트 파일)에 포함된 시스템 관리 스크립트에 대한 프로세스 흐름을 보여주는 간단한 ASCII 다이어그램입니다.코드를 표시하는 섹션이 주석으로 나타나지만 다이어그램 자체는 실제로 XML CDATA 섹션에 나타나는데, 이 섹션은 기술적으로 주석과 구별되는 것으로 간주되지만 유사한 용도로 사용될 수 있습니다.[13]

<!-- 시작: wsf_resource_nodes --> <자원 id="프로세스 다이어그램000"> <![CDATA] HostApp (메인_프로세스)           V script.wsf (app_cmd) --> ClientApp (async_run, batch_process)                                                     V mru.ini(mru_history) ]]> </자원> 

이와 같은 동일한 다이어그램이 코멘트로 쉽게 포함될 수 있지만, 이 예는 프로그래머가 소스 코드에 리소스를 포함하는 방법으로 코멘트를 사용하지 않기로 선택할 수 있는 한 가지 예를 보여줍니다.[13]

메타데이터

컴퓨터 프로그램의 주석에는 프로그램 파일에 대한 메타데이터가 저장되어 있는 경우가 많습니다.

특히, 많은 소프트웨어 유지 관리자들은 그 프로그램의 소스 코드를 읽은 사람들이 개선 사항을 유지 관리자에게 다시 보낼 수 있도록 의견에 제출 지침을 포함합니다.

기타 메타데이터에는 프로그램 파일의 원본 작성자의 이름과 최초 버전이 생성된 날짜, 프로그램의 현재 유지자의 이름, 지금까지 프로그램 파일을 편집한 다른 사람들의 이름, 프로그램 사용 방법에 대한 문서의 URL, 소프트웨어 라이센스의 이름이 포함됩니다.r 이 프로그램 파일 등.

프로그램의 일부 섹션에 있는 알고리즘이 책 또는 기타 참고문헌의 설명을 기반으로 할 경우, 주석을 사용하여 책의 페이지 번호와 제목, 주석 요청 또는 기타 참고문헌을 제공할 수 있습니다.

디버깅

일반적인 개발자 관행은 코드 조각을 주석 처리하는 것인데, 이는 해당 코드 블록이 주석이 되도록 하는 주석 구문을 추가함으로써 최종 프로그램에서 실행되지 않도록 하는 것을 의미합니다.이것은 최종 프로그램에서 특정 코드 조각을 제외하기 위해 수행될 수도 있고, 오류의 원인을 찾는 데 사용될 수도 있습니다.프로그램의 일부를 체계적으로 주석을 달아 실행함으로써 오류의 원인을 파악하여 수정할 수 있습니다.

많은 IDE를 사용하면 단일 메뉴 옵션이나 키 조합으로 그러한 주석을 빠르게 추가하거나 삭제할 수 있습니다.프로그래머는 주석을 달기 원하는 텍스트 부분만 표시하고 적절한 옵션을 선택하기만 하면 됩니다.

문서 자동생성

프로그래밍 도구는 문서와 메타데이터를 주석에 저장하기도 합니다.[14]여기에는 자동 헤더 파일 포함을 위한 삽입 위치, 파일의 구문 강조 모드를 설정하는 명령 또는 [15]파일의 수정 번호가 포함될 수 있습니다.[16]이러한 기능 제어 주석은 일반적으로 주석이라고도 합니다.문서화를 소스 코드 주석 내에 유지하는 것은 문서화 프로세스를 단순화하고 코드 변경에 따라 문서화가 최신 상태로 유지될 가능성을 높이는 한 가지 방법으로 간주됩니다.[17]

문서 생성기의 예로는 Java, Ddoc for D, Doxygen for C, C++, Java, IDL, Visual Expert for PL/SQL, Transact-SQL, PowerBuilder, PHP용 PHPDoc 등이 있습니다.문서 문자열 형식은 Python, Lisp, ElixirClojure에서 지원합니다.[18]

C#, F#Visual Basic.NET은 컴파일된 것으로부터 IntelliSense에 의해 읽혀지는 "XML Comments"라는 유사한 기능을 구현합니다.NET 어셈블리.[19]

구문 확장

때때로 원래 주석으로 사용하려고 했던 구문 요소가 "조건부 주석"과 같은 추가 정보를 프로그램에 전달하기 위해 용도를 변경합니다.이와 같은 "핫 코멘트"는 하위 호환성을 유지하는 유일한 실질적인 해결책일 수도 있지만, 일반적으로 슬러지로 간주됩니다.[20]

지시 용법

편집자나 통역사를 위한 특별한 지침을 만들기 위해 일반적인 주석 문자를 함께 사용하는 경우가 있습니다.

인터프리터를 지시하는 두 가지 예는 다음과 같습니다.

  • 유닉스 "shebang" -#!– 사용할 인터프리터를 가리키기 위해 스크립트의 첫 줄에 사용됩니다.
  • 소스 파일이 사용하는 인코딩을 식별하는 [21]"Magic Comments"([22]예: Python's PEP 263).

유닉스 계열 시스템의 아래 스크립트는 다음 두 가지 용도를 모두 보여줍니다.

#!/usr/bin/env python3 # -*- 부호화 : UTF-8 -*- 활자로 찍어내다("테스트") 

와 유사한 것은 C의 주석을 사용하여 컴파일러가 사례 문의 기본 "fallthrough"가 의도적으로 이루어졌다는 것을 전달하는 것입니다.

스위치를 (지휘권을) {     사례. CMD_SHOW_HELP_AND_EXIT:       do_show_help();       /* 폴스루 */     사례. CMD_EXIT:       두_();       브레이크.;     사례. CMD_기타:       do_other();       브레이크.;     /* ... 등등... */   } 

그런 것을 삽입하는 것./* Fall thru */인간 독자를 위한 코멘트는 이미 일반적인 관례였지만, 2017년에 GCC 컴파일러는 이것들(또는 고의적인 의도의 다른 표시)을 찾기 시작했고, 만약 발견되지 않는다면, "경고: 이 진술은 실패할 수 있습니다"를 방출합니다.[23]

많은 편집자들과 IDE들이 특별한 형식의 코멘트를 읽을 것입니다.예를 들어, Vim의 "모델린" 기능은 파일 상단 근처에 이 주석이 포함된 소스를 편집하는 동안 탭 처리를 변경합니다.

# vim : tabstop=8 expand tab shift width=4 soft tabstop=4

스트레스 해소

때때로 프로그래머들은 개발 도구, 경쟁자, 고용주, 작업 조건 또는 코드 자체의 품질에 대해 논평함으로써 스트레스를 해소하는 방법으로 논평을 추가할 것입니다.[24]이러한 현상의 발생은 소스 코드에서 비속어를 추적하는 온라인 리소스에서 쉽게 확인할 수 있습니다.[25]

규범적 견해

소스코드에 댓글을 적절히 사용하는 것에 대해서는 다양한 규범적 견해와 오랜 의견이 존재합니다.[26][27]이 중 일부는 비공식적이고 개인적 선호에 기반을 두고 있으며, 다른 일부는 특정 지역 사회의 공식 지침으로 출판되거나 공포됩니다.[28]

코멘트 필요

전문가들은 소스코드에서 댓글이 적절한지, 언제가 적절한지에 대해 다양한 의견을 가지고 있습니다.[9][29]일부에서는 소스 코드가 자체 설명 또는 자체 문서화되어야 한다는 근거로 소스 코드를 주석이 거의 없이 작성해야 한다고 주장합니다.[9]다른 사람들은 코드를 광범위하게 주석을 달아야 한다고 제안합니다(소스 코드의 공백이 아닌 문자의 50% 이상이 주석에 포함되는 것은 드문 일이 아닙니다).[30][31]

이러한 견해들 사이에 댓글은 그 자체로 유익하지도 않고 해롭지도 않으며, 중요한 것은 댓글이 정확하고 소스코드와 일치하게 유지되고, 불필요하거나 과도하거나 유지하기 어렵거나 그렇지 않은 경우에는 생략된다는 주장이 있습니다.[32][33]

주석은 때때로 프로그래밍에 대한 계약 접근 방식에 의해 설계에 계약을 문서화하는 데 사용됩니다.

상세도

코드의 의도된 사용자 및 기타 고려 사항에 따라 세부 사항 및 설명 수준이 상당히 다를 수 있습니다.

예를 들어, 다음과 같은 자바 코멘트는 프로그래밍을 시작하는 것을 가르치기 위해 고안된 소개 텍스트에 적합할 것입니다.

 s = 위키백과; /* 변수 s에 "Wikipedia" 값을 할당합니다.*/ 

그러나 이러한 수준의 세부 사항은 생산 코드나 경험이 풍부한 개발자를 포함하는 다른 상황에서는 적합하지 않습니다.이와 같은 초보적인 설명은 "좋은 논평... 의도를 분명히 하라"[10]는 지침과 일치하지 않습니다.또한 전문적인 코딩 환경의 경우 일반적으로 세부 수준이 비즈니스 운영에 의해 정의된 특정 성능 요구 사항을 충족하도록 잘 정의되어 있습니다.[31]

스타일스

주석이 소스 코드에 어떻게 표시되어야 하는지 고려할 때 많은 스타일리시한 대안이 있습니다.개발자 팀과 관련된 대규모 프로젝트의 경우, 주석 스타일은 프로젝트가 시작되기 전에 합의되거나 프로젝트가 성장함에 따라 관례 또는 필요에 따라 진화합니다.보통 프로그래머들은 일관되고, 방해되지 않으며, 수정하기 쉽고, 깨지기 어려운 스타일을 선호합니다.[34]

댓글차단

C의 다음 코드 조각은 동일한 기본 정보를 전달하면서 코멘트가 스타일리시하게 변화할 수 있는 아주 작은 예를 보여줍니다.

/* 댓글 본문입니다. 변주 1. */ 
/***************************\ *                           * * 댓글 본문입니다. * * 변주 2. * *                           * \***************************/ 

개인 선호도, 프로그래밍 도구의 유연성 및 기타 고려 사항과 같은 요소는 소스 코드에 사용되는 스타일 변형에 영향을 미치는 경향이 있습니다.예를 들어, Variation Two는 주석에서 텍스트의 정렬과 시각적인 모양을 자동화할 수 있는 소스 코드 편집기를 가지고 있지 않은 프로그래머들에게 불리할 수 있습니다.

소프트웨어 컨설턴트이자 기술 해설가인 Allen Holub[35] 의견의 왼쪽 가장자리를 맞추는 것을 옹호하는 전문가 중 한 명입니다.[36]

 /* 홀럽에서 추천하는 C++ 스타일입니다. * 규칙 29의 '충분한 밧줄'에 나와 있습니다. */ 
 /* 이것은 C에서도 할 수 있는 또 다른 방법입니다. ** 자동으로 들여쓰기하지 않는 편집기에서 더 쉽게 작업할 수 있습니다. ** 댓글의 마지막 줄을 통해 첫 번째 줄에서 한 칸. ** 그것은 홀럽의 책 규칙 31에서도 사용됩니다. */ 

/*와 */를 블록 주석 구분자로 사용한 것은 PL/I에서 C 프로그래밍 언어의 바로 이전인 B 프로그래밍 언어로 계승되었습니다.[37]

줄댓글

줄 설명은 일반적으로 설명의 시작을 나타내기 위해 임의의 구분 기호 또는 토큰 시퀀스를 사용하고 설명의 끝을 나타내기 위해 줄 문자를 사용합니다.

이 예제에서는 ASCII 문자 //에서 줄 끝까지의 모든 텍스트가 무시됩니다.

// ------------------------- // 댓글 본문입니다. // ------------------------- 

종종 그러한 코멘트는 맨 왼쪽에서 시작해서 전체 라인으로 확장되어야 합니다.그러나 많은 언어에서 명령줄에 주석을 추가하여 주석을 추가할 수도 있습니다(이 Perl 예에서와 같이).

활자로 찍어내다 몇달러씩 . "\n";     # 인쇄 후 새 줄 문자 추가 

언어가 줄 댓글과 블록 댓글을 모두 허용하는 경우 프로그래밍 팀은 이를 다르게 사용하는 규칙을 결정할 수 있습니다. 예를 들어, 작은 댓글에 대해서만 줄 댓글을 사용하고 상위 수준의 추상화를 설명하기 위해 블록 댓글을 사용하는 것입니다.

태그

프로그래머들은 일반적인 이슈를 색인하는 데 도움을 주기 위해 코멘트에 비공식적인 태그를 사용할 수 있습니다.그런 다음 Unix grep 유틸리티나 텍스트 편집기 내에서 구문이 강조 표시된 것과 같은 일반적인 프로그래밍 도구로 검색할 수 있습니다.이를 "코드 태그"[38][39] 또는 "토큰"이라고 부르기도 하며, 개발 도구는 이를 모두 나열하는 데 도움이 될 수도 있습니다.[40]

이러한 태그는 매우 다양하지만 다음을 포함할 수 있습니다.

  • BUG, DEBUG — 수정해야 하는 알려진 버그입니다.
  • FIXME — 수정해야 합니다.
  • HACK, BODGE, Kluzy — 해결책.
  • TODO — 해야 할 일.
  • 참고 - 특히 주목할 만한 고차를 강조하는 데 사용됩니다.
  • 실행 취소 - 이전 코드의 반전 또는 "롤백"입니다.
  • XXX — 다른 프로그래머에게 문제가 있거나 잘못된 코드를 알려줍니다.

비교

주석을 지정하는 타이포그래픽 규칙은 매우 다양합니다.또한 개별 프로그래밍 언어는 때때로 고유한 변형을 제공합니다.

에이다

에이다 프로그래밍 언어는 '--'를 사용하여 줄 끝까지 주석을 표시합니다.

예를 들어,

  -- 항공 교통 관제사 업무는 이착륙 요청을 받습니다.    작업 유형 컨트롤러 (마이_런웨이:활주로_액세스)        -- 동기식 메시지 전달을 위한 태스크 항목       입선 요청_벗다 (신분증:인에 비행기_ID; 벗다:나가. 활주로_액세스);       입선 요청_접근(신분증:인에 비행기_ID; 접근:나가. 활주로_액세스);    끝. 컨트롤러; 

APL

APL 사용줄 끝까지 댓글을 표시합니다.

예를 들어,

⍝ 이제 숫자를 더합니다. ca+b ⍝ 덧셈 

다음과 같은 방언에서.("왼쪽") 및("right") 프리미티브, 주석은 종종 무시된 문자열의 형태로 내부에 있거나 별도의 문일 수 있습니다.

d2×c '어디' ca+ '바운드' b 

애플스크립트

AppleScript 코드의 이 섹션은 해당 언어에서 사용되는 두 가지 스타일의 주석을 보여줍니다.

(* 이 프로그램은 인사말을 표시합니다. *) 위에 환영하다(마이그리팅)      화면표시 대화상자 마이그리팅 & " 세상에!" 끝. 환영하다  -- 인사말 표시 환영하다("안녕하세요") 

기본의

이 고전적인 초기 베이직 코드 조각에서는 코멘트를 추가하기 위해 REM ("Remark") 키워드를 사용합니다.

10 REM 이 BASIC 프로그램은 PRINT 및 GOTO 문의 사용법을 보여줍니다. 15 REM "HELLO" 문구로 화면 가득 채웁니다. 20 프린트 "HELLO" 30 에 가다 20 

이후에는 퀵 베이직, Q 베이직, 비주얼 베이직, 비주얼 베이직을 포함한 마이크로소프트 베이직.NET, VB ScriptFreeB와 같은 하위 항목ASICGambas는 '(사후) 문자 뒤의 행에 있는 모든 텍스트도 주석으로 처리됩니다.

Visual Basic .NET의 예:

일반의 학급 양식 1     사적인 후보선수 버튼1_클릭(발송인 ~하듯이 물건, e ~하듯이 이벤트Args) 핸들 버튼1.클릭         ' 사용자가 다음 코드를 실행할 때         ' 프로그램 창에서 단추를 클릭합니다.         rem 댓글은 여전히 존재합니다.          메시지 상자.("안녕, 세상이여) '인사와 함께 팝업 창을 표시합니다.     끝. 후보선수 끝. 학급 

C

이 C 코드 조각은 조건문의 목적을 설명하기 위해 프롤로그 주석 또는 "블록 주석"을 사용하는 것을 보여줍니다.댓글에는 주요 용어와 개념이 설명되어 있으며 코드를 작성한 프로그래머의 짧은 서명이 포함되어 있습니다.

 /* * 우리가 최대 공정 제한을 초과했는지 확인해 보되, 반드시 다음과 같이 하십시오. * 뿌리를 빼다이것은 로그인을 가능하게 하기 위해 필요합니다. * 사용자별 프로세스 제한을 더 낮은 수준으로 설정하는 친구 * 루트가 실행 중인 프로세스의 양보다 많습니다. -- 릭 */  한다면 (atomic_read(&p->사용자->과정) >= p->림의[RLIMIT_NPROC].rlim_cur      && !유능한(CAP_SYS_ADMIN) && !유능한(CAP_SYS_RESOURCE))      에 가다 나쁨_fork_free; 

C99 이후로 C++의 // 구문을 사용하여 한 줄짜리 주석을 나타내는 것도 가능해졌습니다.


블록 주석을 사용할 수 있게 되면 구조적 중단, 즉 구조적 프로그래밍의 단일 입력/단일 출구 규칙을 눈에 띄게 위반할 수 있게 됩니다.

정적인 가장자리 가장자리_애니(마디 n, 마디 m) {     // 노드 $n과 $m 사이에 에지가 있는지 여부를 반환합니다.     가장자리 e;     위해서 (e=n->가장자리; e; e=e->다음 분.) {         한다면 (e->dst == m) { /*********/ 돌아가다 e; } }     위해서 (e=m->가장자리; e; e=e->다음 분.) {         한다면 (e->dst == n) {     /*****/ 브레이크.; } }     돌아가다 e; } 

블록 코멘트가 부족한 많은 언어에서, 예를 들어 awk와 같은 문장 구분자의 시퀀스를 사용할 수 있습니다.;대신.그러나 파이썬과 같이 들여쓰기를 의도된 블록 구조의 엄격한 표시로 사용하는 언어에서는 불가능합니다.

Cisco IOS 및 IOS-XE 구성

느낌표(!)는 Cisco 라우터의 구성 모드에서 주석을 표시하는 데 사용될 수 있지만 이러한 주석은 비휘발성 메모리(startup-config 포함)에 저장되지 않으며 "show run" 명령에 의해 표시되지도 않습니다.[41][42]

실제로 구성의 일부인 사람이 읽을 수 있는 컨텐츠를 삽입할 수 있으며 다음을 통해 NVRAM startup-config에 저장할 수 있습니다.

  • 인터페이스 또는 BGP 네이버의 구성에 설명을 추가하는 데 사용되는 "description" 명령
  • 정적 경로에 주석을 추가하기 위한 "name" 매개 변수
  • 액세스 목록의 "remark" 명령
!트래픽을 수동으로 재라우팅하려면 아래 텍스트를 붙여넣어 tint gi0/2 no shut ip route 0.0.0.0.0 gi0/2 이름 ISP2 no ip route 0.0.0.0 gi0/1 이름 ISP1 int gi0/1 shut exit

콜드퓨전

ColdFusionHTML 주석과 유사한 주석을 사용하지만 두 개의 대시 대신 세 개를 사용합니다.이러한 코멘트는 ColdFusion 엔진에 의해 포착되어 브라우저에 출력되지 않습니다.

그런 댓글은 네스팅 가능합니다.

 <!--- 브라우저에 "Hello World"가 인쇄됩니다.   <!--- 첫번째 댓글 안에 사용된 댓글입니다. ---> ---> <cfoutput> Hello World <br /> </cfoutput>

D

D는 C++ 스타일의 주석과 함께 '/+'로 시작하여 '+/'로 끝나는 네스팅 가능한 D 스타일의 다중 줄 주석을 사용합니다.

// 한 줄짜리 댓글입니다. /* 이것은 여러 줄로 된 댓글입니다.  */ /+ 이거는. /+ 중첩 +/ 코멘트 +/ 

포트란 IV

Fortran IV 코드 조각은 해당 언어에서 주석이 어떻게 사용되는지 보여주며, 이는 매우 열 중심적입니다.열 1의 "C" 문자는 전체 행을 주석으로 처리하게 합니다.

C C 'C'로 시작하는 줄(첫 번째 또는 '댓글' 열)은 주석입니다. C       쓰기 (6,610)   610 포맷(12H 안녕하세요. 세계)       끝. 

선의 열은 그렇지 않으면 4개의 필드로 취급됩니다. 1 ~ 5는 레이블 필드이고, 6은 선을 이전 문장의 연속으로 간주합니다. 그리고 선언과 문장은 7 ~ 72에 들어갑니다.

포트란 90

Fortran 코드 조각은 해당 언어에서 주석이 어떻게 사용되는지 보여주며 주석 자체는 기본 형식 지정 규칙을 설명합니다.

!* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * !* 느낌표 뒤의 모든 문자는 코멘트로 간주됩니다 * !* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 프로그램.comment_test     활자로 찍어내다 '(A)', '헬로 월드' ! 포트란 90은 인라인 코멘트를 위한 옵션을 도입했습니다. 프로그램 종료 

해스켈

하스켈의 줄 주석은 '--'(하이픈 두 개)로 시작하여 줄이 끝날 때까지 계속되고, 여러 줄 주석은 '{-}'로 시작하여 '-}'로 끝납니다.

{- 댓글입니다. 더 많은 라인에서 -} -- 그리고 이건 한 줄에 달린 댓글입니다. StrLn을 넣다 위키백과  -- 이것은 또 다른 코멘트입니다. 

해스켈은 또한 "버드 스타일"로 알려진 해설의 적절한 프로그래밍 방법을 제공합니다.[43]>로 시작하는 모든 행은 코드로 해석되며, 다른 모든 것은 주석으로 간주됩니다.한 가지 추가적인 요구 사항은 코드 블록 앞과 뒤에 항상 빈 줄을 남겨두는 것입니다.

버드 스타일에서는 코드 앞에 빈칸을 남겨야 합니다.> fact :: 정수 -> 정수 > fact 0 = 1 > fact (n+1) = (n+1) * fact n 그리고 코드 뒤에도 빈 줄을 남겨야 합니다.

Lattery 프로그래밍은 LaTeX를 사용하여 Haskell에서도 할 수 있습니다.Richard Bird's 스타일 대신 코드 환경을 사용할 수 있습니다. LaTeX 스타일에서는 위의 예와 동일한 코드 환경을 LaTeX 프리앰블에서 정의할 수 있습니다.다음은 간단한 정의입니다.

\usagepackage{verbatim} \new환경{code}{\verbatim}{\endverbatim}

나중에

%LaTeX 소스 파일 \verb fact n 함수 호출은 $n\ge 0$인 경우 $n!$를 계산합니다. 여기 정의가 있습니다.\\\begin{code} fact :: 정수 -> 정수 fact 0 = 1 fact (n+1) = (n+1) * fact n \end{code} \LaTeX{} 마크업을 사용하여 더 자세히 설명합니다.

자바

자바 코드 조각은 다음을 설명하는 데 사용되는 블록 설명을 보여줍니다.setToolTipText 방법.형식은 Sun Microsystems Javadoc 표준과 일치합니다.이 코멘트는 자바독 프로세서가 읽을 수 있도록 설계되었습니다.

/** * 이것은 자바로 된 블록 댓글입니다. * setToolTipText method는 Tool tip에 표시할 text를 등록합니다. * 커서가 구성 요소 위에 남아 있으면 텍스트가 표시됩니다. * * @param text 표시할 문자열.'text'가 null이면, *              이 부품에 대해 공구 팁이 꺼져 있습니다. */ 일반의 공허한 setToolTip텍스트( 본문) {     // 이것은 자바의 인라인 댓글입니다.TODO: 이 메서드에 대한 코드를 작성합니다. } 

자바스크립트

JavaScript는 //를 사용하여 주석 앞에, /* */를 사용합니다.

// 한 줄짜리 자바스크립트 주석 변태의 아이넘 = 100; 변태의 아이투 = 2; // 줄 끝에 달린 댓글 /* 여러 줄의 자바스크립트 주석 */ 

루아

루아 프로그래밍 언어는 이중 하이픈을 사용합니다.--, Ada, Eiffel, Haskell, SQLVHDL 언어와 유사한 방식으로 한 줄 코멘트를 제공합니다.Lua는 또한 블록 댓글을 가지고 있는데, 시작은--[[폐막할 때까지 달려갑니다.]]

예를 들어,

--[다중선] 장황한 코멘트 ]] 활자로 찍어내다(20)   -- 결과를 인쇄합니다 

코드 조각을 언급하는 일반적인 기술은 코드를 둘러싸는 것입니다.[44]--[[그리고.--]], 아래와 같이

--[[ 프린트(10) --]] -- 조치 없음(commented아웃) 

이 경우 첫 번째 행에 하이픈을 하나 추가하여 코드를 다시 활성화할 수 있습니다.

---[[ 활자로 찍어내다(10) --]] --> 10 

첫번째 예에서,--[[첫번째 줄에 긴 댓글이 시작되고 마지막 줄에 있는 두 하이픈은 여전히 그 댓글 안에 있습니다.두 번째 예에서, 수열은---[[는 일반적인 한 줄 댓글을 시작하여 첫 줄과 마지막 줄이 독립적인 댓글이 되도록 합니다.이 경우에는.print외부 코멘트 입니다.이 경우, 마지막 줄은 독립적인 주석이 됩니다.--.

Lua의 긴 코멘트는 이것들보다 더 복잡할 수 있습니다. "Long strings" c.f.라는 섹션에서 읽을 수 있듯이 말입니다.루아에서 프로그래밍 중입니다.

매트랩

MATLAB의 프로그래밍 언어에서 '%' 문자는 한 줄짜리 주석을 나타냅니다.다중 줄 주석은 %{ 및 %}괄호를 통해서도 사용할 수 있으며, 예를 들어 중첩할 수 있습니다.

% 이는 각 용어에 대한 파생상품입니다. d = [0 -1 0];  %{ %{ (네스팅된 주석의 예로 들여쓰기는 화장품에 대한 것이며 무시됩니다.) %}   우리가 형태  순서, 다음에 나오는  테일러 공식.   메모 그거 우리가' 운영하는 위에 a 벡터를. %} 수크 = d .* (x - c).^n ./(요인(n))  % 우리는 테일러 근사치를 얻기 위해 추가합니다. 거의 = (수크) 

은 인라인 댓글에 '#' 문자를 사용합니다.다중 줄 블록 주석은 '#['로 열고 ']#'으로 닫습니다.여러 줄의 블록 주석을 중첩할 수 있습니다.

또한 Nim은 MarkdownReStructured가 혼합된 문서 의견을 가지고 있습니다.텍스트 마크업.인라인 문서 주석은 '##'을 사용하며, 다중 줄 블록 문서 주석은 '##['로 열고 ']###'으로 닫습니다.컴파일러는 문서 주석에서 HTML, LaTeXJSON 문서를 생성할 수 있습니다.문서 주석은 추상 구문 트리의 일부이며 매크로를 사용하여 추출할 수 있습니다.[45]

## 모듈의 설명서 *Re구조화된텍스트* 및 **마크다운** # 주석이지만 문서 주석이 아닙니다.  유형 키튼 = 물건  ## 유형문서화   나이: 인트  ## 현장설명서  프로크 웅웅웅웅웅(자신: 키튼) =   ## 기능에 대한 문서화   메아리를 치다 푸르푸르  # 주석이지만 문서 주석이 아닙니다.  # 주석이지만 문서 주석이 아닙니다. 

OCaml

OCaml은 코드 블록에 주석을 달 때 유용한 nestable 주석을 사용합니다.

코드라인(* 댓글 1급 (* 댓글 2급*) 

파스칼

파스칼의 주석은 '{ ...}'. 또는 이러한 문자를 지원하지 않는 시스템의 경우 '(*...*)를 사용할 수 있습니다.

Niklaus Wirth의 좀 더 현대적인 언어 계열(Modula-2, 오베론 포함)에서 주석은 '(* ... *)'로 구분됩니다.[47][48]

예를 들어 다음과 같습니다.

(* 검정 대각선 *) 열차 := testColumn - 기둥.; 한다면 (배를 젓다 + 열차 = 테스트 로우) 아니면     ....... 

Perl 및 기타 많은 스크립트 언어의 줄 주석은 해시(#) 기호로 시작합니다.

# 간단한 예 # 나의 몇달러씩 = 위키백과; # 변수를 "Wikipedia"로 설정합니다. 활자로 찍어내다 몇달러씩 . "\n";     # 인쇄 후 새 줄 문자 추가 

펄은 일반적인 블록 주석 구조 대신 문자 프로그래밍을 위한 마크업 언어인 Plain Old Documentation을 사용합니다.[49][50]

= 품목 포드::List-E<gt>new()  새 목록 개체를 만듭니다.속성은 해시를 통해 지정할 수 있습니다. 다음과 같은 참조:  $list = Pod::List->new({ -start => $. -indent => 4 });  자세한 내용은 개별 메서드/속성을 참조하십시오.  =컷  후보선수 신규 {     나의 $ this = 교대의;     나의 달러급 = ref($ this)    $ this;     나의 %params = @_;     나의 $self = {%params};     복을 보다 $self, 달러급;     $self->이니셜라이즈();     돌아가다 $self; } 

R

R은 해시(#) 문자로 시작하는 인라인 주석만 지원합니다.

# 댓글입니다. 활자로 찍어내다("이건 댓글이 아닙니다.")  # 다른 댓글입니다. 

라쿠

Raku(이전에는 Perl 6이라고 불림)[51]는 일반 Perl과 동일한 줄 주석 및 POD Documentation 주석을 사용하지만(위의 Perl 섹션 참조) 구성 가능한 블록 주석 유형인 "다중 줄/임베디드 주석"을 추가합니다.

해시 문자로 시작하여 백틱, 일부 열림 괄호 문자로 시작하여 일치하는 닫힘 괄호 문자로 끝납니다.[51]컨텐츠는 여러 줄에 걸쳐 있을 뿐만 아니라 인라인으로도 내장될 수 있습니다.

#`{{이 버전 토글-케이스(Str:D $s) 문자열의 각 문자의 경우를 토글합니다. Str $ toggled-string = 토글-케이스("mY NAME IS mICHAEL!"); } 하위 토글-케이스(Str:D $s) #'(이 버전의 부모가 지금 사용됨){ ... }

PHP

PHP의 주석은 C++ 스타일(인라인과 블록 모두)이거나 해시를 사용할 수 있습니다.PHPdoc은 자바독에서 차용한 스타일로 PHP 코드를 문서화하는 일반적인 표준입니다.

PHP 8부터 # 기호는 '[]' 바로 뒤에 오는 것이 아닌 경우에만 주석을 의미할 수 있습니다.그렇지 않으면 ']'까지 실행되는 함수 특성을 의미합니다.

/** * 이 클래스에는 샘플 설명서가 포함되어 있습니다. * * @저자 불명 */ #[기여하다] 학급 나의 속성 {     머리를 짜다 가치 = '가치';     // 인라인 댓글입니다.C++처럼 '//'로 시작합니다.     사적인 $ value;     # 이것은 '#'로 시작하는 유닉스 스타일의 인라인 코멘트입니다.     일반의 기능. __($ value = 귀무의) {         $ this->가치 = $ value;     }     /* 이것은 여러 줄로 된 댓글입니다.  주석은 중첩할 수 없습니다. */  } 

파워쉘

Windows PowerShell의 주석

# 한줄댓글 쓰기-호스트 "안녕, 세상이여!"  <# 멀티  댓글 #>  쓰기-호스트 "잘 가렴, 세상이여!" 

파이썬

Python의 인라인 코멘트는 이 코드의 두 예와 같이 해시(#) 문자를 사용합니다.

# 이 프로그램은 "Hello World"를 화면에 출력합니다. 활자로 찍어내다("헬로 월드!")  # 새 구문을 참고합니다. 

이 글에서 정의한 바와 같이, 블록 코멘트는 파이썬에 기술적으로 존재하지 않습니다.[52]세 개의 따옴표가 달린 문자열로 표시되는 베어 문자열 리터럴을 사용할 수 있지만 [53]"#" 설명과 같은 방식으로 인터프리터가 무시하지는 않습니다.[52]아래 예제에서 트리플 더블 따옴표 문자열은 주석으로 이러한 방식으로 작동하지만 문서 문자열로 취급되기도 합니다.

""" 이것이 mymodule.py 파일이라고 가정하면, 이 문자열은, 파일의 첫 번째 문은 "my module" 모듈의 문이 됩니다. 파일을 가져올 때 docstring. """  학급 마이클래스:     """클래스의 문서 문자열""      데프 나의_(자신):         ""메소드의 문서 문자열""  데프 my_function():     """함수의 문서 문자열"" 

루비

루비의 인라인 댓글은 # 문자로 시작합니다.

여러 줄로 된 주석을 만들려면 "= begin"를 줄의 시작 부분에 배치해야 하고, 그런 다음 줄을 시작하는 "=end"까지 모든 것이 무시됩니다.이 경우 등호 뒤에 공백을 포함하면 구문 오류가 발생합니다.

놓다 "이건 댓글이 아닙니다."  # 댓글입니다.  놓다 "이건 댓글이 아닙니다."  =  이 행간에 무엇이든지  인간 독자들을 위한 것입니다.  =끝  놓다 "이건 댓글이 아닙니다." 

SQL

SQL의 표준 주석은 두 개의 대시를 사용하는 한 줄 전용 형식입니다.

-- 한 줄 댓글입니다. -- 뒤를 이어 두 번째 줄을 잇습니다. 선택한다. 세어보세요(*)        부터 작가들        어디에 작가들.이름. = 스미스; -- 참고: 우리는 오직 'smith'만을 원합니다.                                      -- 이 코멘트는 SQL 코드 뒤에 나타납니다. 

또는 C 및 Java용 구문에 사용되는 "block comment" 스타일과 동일한 주석 형식 구문이 Transact-SQL, MySQL, SQLite, Postgre에서 지원됩니다.SQL, Oracle.[54][55][56][57][58]

MySQL은 해시(#) 문자에서 줄 끝까지의 주석도 지원합니다.

스위프트

한 줄 댓글은 두 개의 앞으로 슬래시(//)로 시작합니다.

// 댓글입니다. 

다중 행 주석은 앞으로 슬래시 다음에 별표(/*)로 시작하여 앞으로 슬래시(*/)로 끝납니다.

/* 이것도 댓글입니다. 하지만 여러 줄에 걸쳐 쓰여져 있습니다.*/ 

Swift의 여러 줄 주석은 다른 여러 줄 주석 안에 중첩될 수 있습니다.다중 줄 주석 블록을 시작한 다음 첫 번째 블록 내에서 두 번째 다중 줄 주석을 시작하여 중첩 주석을 작성합니다.그런 다음 두 번째 블록이 닫히고 첫 번째 블록이 이어집니다.

/* 첫 번째 멀티라인 댓글의 시작입니다. /* 두 번째 중첩된 다중 줄 댓글입니다. */ 첫 번째 멀티라인 멘트는 여기까지입니다. */ 

XML(또는 HTML)

XML(또는 HTML)의 주석은 다음과 같이 소개됩니다.

<!--

터미네이터까지 여러 줄에 걸쳐 퍼질 수 있습니다

-->

예를들면,

<! -- 여기서 컨텍스트 선택 --> <param name=context 값="공중" /> 

SGML과의 호환성을 위해 주석 내부에는 문자열 "--"(double-hyphen)을 사용할 수 없습니다.

보안문제

통역된 언어로 된 설명은 프로그램의 최종 사용자가 볼 수 있습니다.코드 섹션이 "코멘트 처리"되는 등의 경우 보안 취약성이 나타날 수 있습니다.[59]

참고 항목

참고 및 참고 자료

  1. ^ 소스 코드는 프로그램 코드(기계로 번역 가능한 명령어로 구성됨)와 주석(프로그램 코드를 지원하기 위해 사람이 읽을 수 있는 노트 및 기타 종류의 주석 포함)으로 나눌 수 있습니다.Penny Grubb, Armstrong Takang (2003). Software Maintenance: Concepts and Practice. World Scientific. pp. 7, plese start120–121. ISBN 978-981-238-426-3.
  2. ^ 이 글의 목적상 프로그래밍 언어 주석은 마크업 언어, 구성 파일 및 기타 유사한 맥락에 나타나는 주석과 구별되지 않는 것으로 취급됩니다.게다가 마크업 언어는 특히 코드 생성의 맥락에서 프로그래밍 언어 코드와 밀접하게 통합되는 경우가 많습니다.예를 들어 , , , , 을 참조합니다.
  3. ^ Dixit, J.B. (2003). Computer Fundamentals and Programming in C. Laxmi Publications. ISBN 978-81-7008-882-0.
  4. ^ Higham, Desmond (2005). MATLAB Guide. SIAM. ISBN 978-0-89871-578-1.
  5. ^ Vermeulen, Al (2000). The Elements of Java Style. Cambridge University Press. ISBN 978-0-521-77768-1.
  6. ^ a b c "Using the right comment in Java". 2000-03-04. Retrieved 2007-07-24.
  7. ^ W. R., Dietrich (2003). Applied Pattern Recognition: Algorithms and Implementation in C++. Springer. ISBN 978-3-528-35558-6. 는 소스 코드에서 주석의 적절한 사용에 대한 관점을 제공합니다. 페이지 66.
  8. ^ a b Keyes, Jessica (2003). Software Engineering Handbook. CRC Press. ISBN 978-0-8493-1479-7. 의견과 "문서 과학" 페이지 256에 대해 논의합니다.
  9. ^ a b c 프로그래밍 스타일요소, 커니건과 플라우저
  10. ^ a b 코드 완료, McConnell
  11. ^ Spinellis, Diomidis (2003). Code reading: The Open Source Perspective. Addison-Wesley. ISBN 978-0-201-79940-8.
  12. ^ "CodePlotter 1.6 – Add and edit diagrams in your code with this 'Visio-like' tool". Archived from the original on 2007-07-14. Retrieved 2007-07-24.
  13. ^ a b Niederst, Jennifer (2006). Web Design in a Nutshell: A Desktop Quick Reference. O'Reilly. ISBN 978-0-596-00987-8.때때로 "댓글"과 프로그래밍 또는 마크업 언어의 다른 구문 요소 사이의 차이는 미묘한 뉘앙스를 수반합니다.Niederst는 다음과 같이 언급함으로써 그러한 상황을 나타냅니다: "불행하게도 XML 소프트웨어는 주석을 중요하지 않은 정보로 생각하고 문서에서 주석을 처리하기 전에 단순히 삭제할 수 있습니다.이 문제를 방지하려면 XML CDATA 섹션을 대신 사용하십시오."
  14. ^ 예: 243페이지 참조
  15. ^ Lamb, Linda (1998). Learning the VI Editor. Sebastopol: O'Reilly & Associates. ISBN 978-1-56592-426-0. 는 Vim 구성 파일에서 modeline 구문을 사용하는 방법에 대해 설명합니다.
  16. ^ 예를 들어, 168페이지 참조.
  17. ^ Ambler, Scott (2004). The Object Primer: Agile Model-Driven Development with UML 2.0. Cambridge University Press. ISBN 978-1-397-80521-8.
  18. ^ Clojure에서 docstring을 사용한 함수 정의
  19. ^ Murach. C# 2005. p. 56.
  20. ^ c2: Hot Comment
  21. ^ "class Encoding". Ruby. ruby-lang.org. Retrieved 5 December 2018.
  22. ^ "PEP 263 – Defining Python Source Code Encodings". Python.org. Retrieved 5 December 2018.
  23. ^ Polacek, Marek (2017-03-10). "-Wimplicit-fallthrough in GCC 7". Red Hat Developer. Red Hat. Retrieved 10 February 2019.
  24. ^ "Microsoft 프로그래머들이 초기 소프트웨어 코드에 많은 비속어를 숨겼습니다", Lisa Eadicco, 2014년 3월 27일, businessinsider.com.au
  25. ^ (예: Linux Swear Count 참조).
  26. ^ Goodliffe, Pete (2006). Code Craft. San Francisco: No Starch Press. ISBN 978-1-59327-119-0.
  27. ^ Smith, T. (1991). Intermediate Programming Principles and Techniques Using Pascal. Belmont: West Pub. Co. ISBN 978-0-314-66314-6.
  28. ^ 예를 들어, 65페이지 참조.
  29. ^ "Worst Practice - Bad Comments". Retrieved 2007-07-24.
  30. ^ Morelli, Ralph (2006). Java, Java, Java: object-oriented problem solving. Prentice Hall College. ISBN 978-0-13-147434-5.
  31. ^ a b "How to Write Doc Comments for the Javadoc Tool". Retrieved 2007-07-24. 자바독 가이드라인은 플랫폼에 댓글이 중요하다고 명시하고 있습니다.또한 적절한 수준의 세부 사항은 상당히 잘 정의되어 있습니다. "우리는 공통적인 프로그래밍 용어를 정의하고 개념적 개요를 작성하며 개발자를 위한 예제를 포함하기보다는 경계 조건, 논쟁 범위 및 코너 케이스를 지정하는 데 시간과 노력을 기울입니다."
  32. ^ Yourdon, Edward (2007). Techniques of Program Structure and Design. University of Michigan. 013901702X.존재하지 않는 주석은 코드를 이해하는 것을 어렵게 만들 수 있지만 주석이 오래되거나 중복되거나 부정확하거나 소스 코드의 의도된 목적을 이해하는 것을 더 어렵게 만드는 경우에는 해로울 수 있습니다.
  33. ^ Dewhurst, Stephen C (2002). C++ Gotchas: Avoiding Common Problems in Coding and Design. Addison-Wesley Professional. ISBN 978-0-321-12518-7.
  34. ^ "Coding Style". Archived from the original on 2007-08-08. Retrieved 2007-07-24.
  35. ^ "Allen Holub". Archived from the original on 2007-07-20. Retrieved 2007-07-24.
  36. ^ Allen Holub, 발에 총을 쏘는 충분한 밧줄, ISBN 0-07-029689-8, 1995, McGraw-Hill
  37. ^ Ken Thompson. "Users' Reference to B". Retrieved 2017-07-21.
  38. ^ Python Software Foundation, "PEP 0350 Codetags"
  39. ^ "Never Forget Anything Before, After and While Coding", "codetag" 코멘트를 생산적인 잔여물로 사용
  40. ^ "작업 목록 사용", msdn.microsoft.com
  41. ^ "Leave a comment in running-config". Cisco Learning Network (discussion forum).
  42. ^ "Managing Configuration Files Configuration Guide, Cisco IOS XE Release 3S (ASR 900 Series)".
  43. ^ "Literate programming". haskell.org.
  44. ^ "Programming in Lua 1.3". www.Lua.org. Retrieved 2017-11-08.
  45. ^ macro.extractDocComments 및 Runnables
  46. ^ Kathleen Jensen, Niklaus Wirth (1985). Pascal User Manual and Report. Springer-Verlag. ISBN 0-387-96048-1.
  47. ^ Niklaus Wirth (1983). Programming in Modula-2. Springer-Verlag. ISBN 0-387-15078-1.
  48. ^ *Martin Reiser, Niklaus Wirth (1992). Programming in Oberon. Addison-Wesley. ISBN 0-201-56543-9.
  49. ^ "perlpod – the Plain Old Documentation format". Retrieved 2011-09-12.
  50. ^ "Pod::ParseUtils – helpers for POD parsing and conversion". Retrieved 2011-09-12.
  51. ^ a b "Perl 6 Documentation – Syntax (Comments)". Retrieved 2017-04-06.
  52. ^ a b "Python 3 Basic Syntax". Retrieved 25 February 2019. Triple quotes are treated as regular strings with the exception that they can span multiple lines. By regular strings I mean that if they are not assigned to a variable they will be immediately garbage collected as soon as that code executes. hence are not ignored by the interpreter in the same way that #a comment is.
  53. ^ "피톤 팁: 여러 줄 문자열을 여러 댓글로 사용할 수 있습니다", 2011년 9월 11일 Guido van Rossum
  54. ^ Talmage, Ronald R. (1999). Microsoft SQL Server 7. Prima Publishing. ISBN 978-0-7615-1389-6.
  55. ^ "MySQL 8.0 Reference Manual". Oracle Corporation. Retrieved January 2, 2020.
  56. ^ "SQL As Understood By SQLite". SQLite Consortium. Retrieved January 2, 2020.
  57. ^ "PostgreSQL 10.11 Documentation". The PostgreSQL Global Development Group. Retrieved January 2, 2020.
  58. ^ "Oracle® Database SQL Reference". Oracle Corporation. Retrieved January 2, 2020.
  59. ^ Andress, Mandy (2003). Surviving Security: How to Integrate People, Process, and Technology. CRC Press. ISBN 978-0-8493-2042-2.

추가열람

외부 링크