웹 (프로그래밍)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

웹 (프로그래밍)은 소스 코드 제작 과정을 문서화하는 기사를 작성하는 접근 방식이다. CWEB은 도널드 커누스와 실비오 레비가 개발한 컴퓨터 프로그래밍 시스템으로, C 프로그래밍 언어를 사용하며, CTANGLE과 CWEAVE 두 개의 주요 프로그램으로 구성된다. CTANGLE은 소스 텍스트에서 C 코드를 생성하고, CWEAVE는 TeX를 사용하여 문서를 생성한다. CWEB은 TeX 코드 입력, C 코드 서식 지정, 섹션 정의, 파일 포함, 색인 생성 등의 기능을 제공한다.

웹 (프로그래밍)
📚 더 읽어볼만한 페이지
  • 문학적 프로그래밍 - 하스켈
    하스켈은 해스켈 커리의 이름을 딴 순수 함수형 프로그래밍 언어로, 여러 함수형 언어 통합 노력의 결과로 탄생하여 느긋한 계산법, 패턴 매칭, 타입 클래스, 모나드 등의 특징을 가지며 GHC가 표준 구현체로 사용된다.
  • 문학적 프로그래밍 - CWEB
  • 자유 문서 생성기 - Doxygen
    Doxygen은 소스 코드 주석에서 문서를 추출하여 다양한 형식으로 결과물을 생성하는 도구로, 여러 프로그래밍 언어와 운영체제를 지원하며 다이어그램 생성 및 수식 표현 기능도 제공한다.
  • 자유 문서 생성기 - CWEB
  • TeX - CTAN
    CTAN은 TeX 관련 자료를 체계적으로 모아 제공하는 온라인 아카이브로, 전 세계 미러 사이트를 통해 TeX 관련 자료를 공유하며 관리되고 있다.
  • TeX - BibTeX
    BibTeX는 LaTeX 문서에서 참고 문헌 목록을 생성하고 관리하는 도구이자 파일 형식으로, 서지 항목 데이터베이스를 활용하여 참고 문헌 스타일을 독립적으로 관리하고, .bib 확장자를 가진 텍스트 기반 데이터베이스 파일을 사용하여 다양한 유형의 서지 항목을 저장하며, LaTeX 문서 내에서 일관성 있는 인용 스타일을 유지하는 데 활용된다.

2. 철학

대부분의 다른 문서 생성기와 달리, WEB 접근 방식은 문서를 단순한 주석으로 취급하는 대신, 소스 코드 작성 과정 자체를 문서화하는 기사를 작성하는 것을 핵심으로 한다. 이는 마치 TeX 문서를 작성하는 것처럼, 소스 코드를 전체 문서의 흐름에 맞춰 여러 섹션으로 나누어 구성하는 방식이다. 예를 들어, CWEB에서는 코드 섹션이 논리적인 설명 흐름에 따라 자연스럽게 통합되어 제시된다.

3. CWEB

CWEB도널드 커누스와 실비오 레비가 커누스의 WEB 리터러시 프로그래밍 시스템의 후속으로 개발한 컴퓨터 프로그래밍 시스템이다. 이 시스템은 기존의 파스칼 대신 C 프로그래밍 언어를 사용하며, 더 적은 범위에서는 C++자바도 지원한다.

3.1. 기능

* 수동 TeX 코드와 자동 생성 코드를 모두 입력할 수 있다.
* 예쁜 인쇄를 위해 C 코드의 서식을 지정한다.
* 섹션을 정의할 수 있으며, 이 섹션에는 다른 섹션에 포함될 수 있는 문서와 코드를 담을 수 있다.
* 헤더 코드와 주요 C 코드를 하나의 파일(`.w` 파일)에 작성하고 동일한 섹션을 재사용할 수 있으며, 컴파일을 위해 여러 파일로 묶을 수 있다.
* `#line` 전처리기 지시자를 사용하여 모든 경고 또는 오류 메시지가 원본 `.w` 소스 파일을 참조하도록 한다.
* 다른 파일을 포함(include)할 수 있다.
* 컴파일 또는 인쇄 시 코드에 자동으로 병합될 변경 파일(change file)을 사용할 수 있다.
* 출력물에 식별자 및 섹션 이름의 색인을 생성한다.

3.2. CWEB의 구성 요소

WEB과 마찬가지로 두 개의 주요 프로그램으로 구성된다.

* CTANGLE: 소스 텍스트에서 컴파일 가능한 C 코드를 생성한다.
* CWEAVE: TeX를 사용하여 깔끔하게 서식이 지정된 인쇄 가능한 문서를 생성한다.