WEB(ウェブ)は、ドナルド・クヌースによって設計および開発されたプログラミングの仕組みであり、TeX の実装に用いられていることで知られる。

クヌースが提唱する「文芸的プログラミング」を実装したものがこの WEB であり、ソフトウェアを文学作品として著述するための仕組みである。クヌースは「文芸的プログラミング」( THE COMPUTER JOURNAL 掲載版)の中で WEB を「文書整形言語とプログラミング言語という二つの部分の組み合わせ」だと説明した[1]。 WEB ではソースコードは説明文の中に記述されるが、これは一般的なプログラミング言語において、コメントがソースコードの中に記述されるのと対照的である。WEB テキストを記述するときは節ごとにひとまとまりのコードとその説明を記述する。出来上がったWEBテキストを weave というプログラムに通すと、TeX 経由で整形された印刷用のドキュメントが得られる。一方 tangle というプログラムを通すと、コンパイラインタプリタなどプログラミング言語処理系に掛けることができる(狭義の)ソースコードが得られる。

オリジナルの WEB は tangle することによってプログラミング言語 Pascal のソースコードを出力するものであるが、ここから C言語のソースを出力する CWEB・任意のプログラミング言語に適用が可能な noweb が派生した。また WEB の出力を C 言語に変換する Web2C があり、近年 TeX をコンパイルするために用いられている。

参考文献 編集

  • Donald E. Knuth 著、有澤誠 訳『文芸的プログラミング』アスキー、1994年、4.2 WEBシステム。ISBN 978-4-7561-0190-7 

出典 編集

  1. ^ Donald E. Knuth. The Computer Journal. 27(2):97-111, 1984