노웹
Noweb| 원저작자 | 노먼 램지 |
|---|---|
| 초기 릴리즈 | 1989년, 32~33년 전 |
| 안정된 릴리스 | 2.12 / 2018년 6월 , 전([1] |
| 저장소 | |
| 기입처 | C, AWK 및 아이콘 |
| 운영 체제 | 크로스 플랫폼 |
| 이용가능기간: | 영어 |
| 유형 | 리터럴 프로그래밍 |
| 웹 사이트 | www.cs.tufts.edu/~http |
Noweb은 소문자로 noweb으로 표기되어 있으며, 1989~1999년에 [1]Norman Ramsey에 의해 개발되었으며 단순하고 쉽게 확장 가능하며 언어에 [2][3]의존하지 않도록 설계되었습니다.
WEB 및 CWEB와 마찬가지로 Noweb의 주요 컴포넌트는 두 가지 프로그램입니다. 소스 텍스트에서 '머신' 소스 코드를 추출하는 "notangle"과 인쇄 가능한 문서를 잘 포맷한 "noweave"입니다.
Noweb은 TeX, LaTeX, HTML 및 troff 백엔드를 지원하며 모든 프로그래밍 언어를 지원합니다.단순성 외에도 이것은 Pascal 이외의 프로그래밍 언어를 지원하기 위해 다른 버전이 필요한 WEB보다 더 큰 장점입니다.(따라서 C 및 유사한 언어를 지원하는 CWEB가 필요합니다.)
노웹 입력
Noweb 입력 텍스트에는 문서와 인터리브된 프로그램 소스 코드가 포함되어 있습니다.문서 청크 또는 코드 청크인 이른바 청크로 구성됩니다.
문서 청크는 앳 기호(@)로 시작하는 줄과 공백 또는 줄 바꿈으로 시작합니다.문서 청크에 이름이 없습니다.문서 청크는 보통 LaTeX를 포함하지만 Noweb은 HTML, 플레인 TeX 및 troff에서도 사용됩니다.
코드 청크가 지정됩니다.코드 청크는 다음과 같이 시작합니다.
<<고객명>>
줄에 서 있는 것.왼쪽 이중 앵글 브래킷(<<)은 첫 번째 열에 있어야 합니다.
각 청크는 다른 청크의 시작에 의해 종료됩니다.파일의 첫 번째 행이 청크의 시작을 표시하지 않으면 문서 청크의 첫 번째 행으로 간주됩니다.
코드 청크는 Noweb 툴에 의해 특별히 처리되지 않습니다.코드 청크는 임의의 순서로 배치될 수 있으며, 필요에 따라 연결되었을 뿐입니다.코드의 청크 참조가 참조되고 요청된 소스 코드 전체가 추출됩니다.
간단한 Noweb 프로그램의 예
다음 예에서는 설명서와 함께 "hello world" 프로그램을 보여 줍니다.
\section{Hello world }오늘 아침에 일어나서 코드를 쓰기로 하고 Hello World를 C로 쓰기 시작했습니다.<<안녕하세요.c > = /* < < displays > * / # displays < stdio >h> int main (int argc, char *argv [ ] ){ printf("Hello World!\n") ;0; } @\noindent \ldots 를 반환하고 PHP에서도 동일하게 실행하였습니다.<<안녕하세요.php>>= <?syslog /* <<syslog>> */ echo "Hello world!"; ?> @ \section {License} 같은 날 어떤 변호사가 라이선스에 대해 알려주었습니다.여기 있습니다.<<br>=이 작업은 퍼블릭 도메인에 배치됩니다. 위의 코드가 'hello.nw'라는 이름의 파일에 있다고 가정하면 사람이 읽을 수 있는 문서를 HTML 형식으로 추출하는 명령어는 다음과 같습니다.
noweave - filter l2h - index - hello . nw htmltoc > hello . html.dev... 및 LaTeX 형식:
noweave - index - index hello . nw >hello . tex기계 소스 코드를 추출하려면:
notangle - Rhello.c hello.nw > hello.cnotangle - 안녕하세요php hello.nw > 안녕하세요.php호환성.
Noweb은 특정 파일 형식을 정의하며, 파일은 세 가지 다른 형식(Noweb, LaTeX 및 소프트웨어에 사용되는 언어)을 상호 참조할 수 있습니다.이는 다른 소프트웨어 개발 도구에서는 인식되지 않기 때문에 Noweb을 사용하는 경우 UML 또는 코드 문서 도구 사용은 제외됩니다.
「 」를 참조해 주세요.
메모들
- ^ a b "Noweb home page". 24 April 2016. Retrieved 21 March 2018.
- ^ Ramsey, N. (September 1994). "Literate programming simplified". IEEE Software. 11 (5): 97–105. doi:10.1109/52.311070. Retrieved 3 December 2018.
- ^ Johnson, Andrew L.; Johnson, Brad (October 1, 1997). "Literate Programming Using Noweb Linux Journal". www.linuxjournal.com. Retrieved 3 December 2018.