Web は、ドナルド・E・クヌースが「文芸的プログラミング」と呼んだものの最初の実装として作成したコンピュータプログラミングシステムです。文芸的プログラミングとは、(ほとんどのプログラミング言語では一般的な方法である) 説明文の中にソースコードを埋め込むのではなく、コンパイラが要求する順序ではなく、人間の読者にとってわかりやすい順序で、ソフトウェアを文学作品として作成できるという考え方です。[1]
Web は、ソース テキストからコンパイル可能なPascalコードを生成する TANGLEと、 TeX を使用して適切にフォーマットされた印刷可能なドキュメントを生成する WEAVE という 2 つの二次プログラムで構成されています。
CWEB はC プログラミング言語用の Web バージョンですが、nowebは Web にヒントを得た (名前に反映されているように) 独立した文芸プログラミング ツールであり、言語に依存しません。
Web で書かれた最も重要なプログラムはTeXとMetafontです。最新の TeX ディストリビューションは、別のプログラムWeb2Cを使用してWeb ソースを C に変換します。
哲学
ドキュメントをコメントにまとめる他のほとんどのドキュメント生成ツールとは異なり、WEB のアプローチでは、ソースコードの作成を文書化する記事を作成します。TeX の記事と同様に、ソースはドキュメントの流れに従ってセクションに分割されます。たとえば、CWEB では、コードセクションは議論の流れの中でシームレスに混在しています。[2]
ウェブ
| パラダイム | 読み書き可能、命令型(手続き型)、構造化 |
|---|---|
| デザイン: | ドナルド・クヌース |
| 開発者 | ドナルド・クヌース& シルヴィオ・レヴィ |
| 初登場 | 1987年 |
| 安定リリース | 3.67 / 2006年10月24日 |
| タイピングの規律 | 静的、弱い、明白な、名目上の |
| OS | クロスプラットフォーム(マルチプラットフォーム) |
| ライセンス | カスタムフリーソフトウェアライセンス |
| ファイル名拡張子 | .w |
| Webサイト | www-cs-faculty.stanford.edu/~uno/cweb.html |
| 影響を受けた | |
| ウェブ、TeX | |
| 影響を受けた | |
| ノーウェブ | |
CWEB は、ドナルド・クヌースとシルビオ・レヴィによって作成されたコンピュータ プログラミングシステムであり、クヌースのWEBリテラル プログラミングシステムのフォローアップとして、Pascalの代わりにC プログラミング言語(および、程度は低いがC++とJavaプログラミング言語) を使用しています。
WEB と同様に、2 つの主要なプログラムで構成されています。
- CTANGLEはソーステキストからコンパイル可能なCコードを生成します。
- CWEAVE は、TeX を使用してきれいにフォーマットされた印刷可能なドキュメントを生成します。
特徴
- 自動だけでなく手動で TeX コードを入力できます。
- C コードをきれいに印刷できるようにフォーマットします。
- セクションを定義し、ドキュメントとコードを含めることができ、それらを他のセクションに含めることができます。
- ヘッダー コードとメイン C コードを 1 つのファイルに記述し、同じセクションを再利用して、複数のファイルにまとめてコンパイルすることができます。
#line警告やエラーが .w ソースを参照するようにプラグマを使用します。- ファイルをインクルードします。
- コンパイル/印刷時にコードに自動的にマージできるファイルを変更します。
- 印刷出力に識別子とセクション名のインデックスを生成します。
参考文献
- ^ Knuth, Donald E. (1992).リテラシープログラミング. CSLI 講義ノート. 第 27 巻. カリフォルニア州スタンフォード: 言語情報研究センター.
- ^ Silvio Levy (2004年6月12日). 「CWEBの例」(PDF)。2021年10月20日時点のオリジナル(PDF)からのアーカイブ。
外部リンク
- Web用のTeXカタログエントリ
- CWEBホームページ
- Web で書かれたプログラムの例、Donald Knuth 著 (1981 年以降)
