**Web** adalah sebuah sistem pemrograman komputer yang diciptakan oleh Donald E. Knuth sebagai implementasi pertama dari apa yang ia sebut sebagai "literate programming": sebuah ide di mana seseorang dapat membuat perangkat lunak sebagai suatu karya sastra, dengan cara menanamkan kode sumber ke dalam teks deskripsi, dan bukan sebaliknya (yang merupakan praktik yang lazim digunakan di kebanyakan bahasa pemrograman), dalam urutan yang nyaman untuk pemaparan bagi pembaca manusia, dan bukan dalam urutan yang diminta oleh kompilator.

Web terdiri dari dua program sekunder: TANGLE, yang menghasilkan kode Pascal yang dapat dikompilasi dari teks sumber, dan WEAVE, yang menggunakan TeX untuk menghasilkan dokumentasi yang telah diformat dengan baik dan dapat dicetak.

CWEB adalah versi Web untuk bahasa pemrograman C, sedangkan noweb adalah suatu alat literate programming terpisah, yang terinspirasi oleh Web (seperti tercermin dalam namanya) dan tidak terkait bahasa.

Program paling penting yang ditulis menggunakan Web adalah TeX dan Metafont. Distribusi modern TeX menggunakan program lain yaitu Web2C untuk mengubah sumber Web ke C.

Filsafat
--------

Tidak seperti kebanyakan penghasil dokumentasi yang menurunkan dokumentasi menjadi komentar, pendekatan WEB adalah dengan menulis artikel untuk mendokumentasi pembuatan kode sumber tersebut. Seperti halnya artikel TeX, sumber tersebut dibagi menjadi bagian-bagian menurut alur dokumentasi. Misalnya, dalam CWEB, bagian-bagian kode tercampur dengan mulus di dalam jalur argumentasi.

CWEB
----

**CWEB** adalah sistem pemrograman komputer yang diciptakan oleh Donald Knuth dan Silvio Levy sebagai tindak lanjut terhadap sistem *WEB* literate programming yang diciptakan oleh Knuth, menggunakan bahasa pemrograman C (dan sebagian kecil menggunakan bahasa pemrograman C++ dan Java) dan bukan Pascal.

Seperti WEB, ia terdiri dari dua program utama: CTANGLE, yang menghasilkan kode C yang dapat dikompilasi dari kode sumber, dan CWEAVE, yang menggunakan TeX untuk menghasilkan dokumentasi yang telah diformat dengan baik dan dapat dicetak.

### Fitur

* Dapat memasukkan kode manual TeX maupun otomatis.
* Memformat kode C untuk percetakan indah.
* Dapat mendefinisikan bagian-bagian, dan memuat dokumentasi dan kode, yang kemudian dapat dimasukkan ke bagian lain.
* Menulis kode header dan kode pokok C di satu file, dan dapat menggunakan kembali bagian-bagian yang sama, dan kemudian dapat digunakan di beberapa file untuk kompilasi.
* Menggunakan pragma `#line` sehingga setiap peringatan atau kesalahan yang ada akan mengacu ke sumber .w.
* Memasukkan file.
* Mengubah file, yang dapat digabung secara otomatis ke dalam kode saat mengkompilasi/mencetak.
* Menghasilkan indeks pengidentifikasi dan nama-nama bagian di dalam cetakan.

Referensi
---------

1. ↑  Knuth, Donald E. (1992). *Literate Programming*. CSLI Lecture Notes. **27**. Stanford, California: Center for the Study of Language and Information.
2. ↑  Silvio Levy (12 June 2004). "An example of CWEB" (PDF). Diarsipkan dari versi asli (PDF) tanggal 20 October 2021.  Parameter `|url-status=` yang tidak diketahui akan diabaikan (bantuan)

Pranala luar
------------

* Entri Katalog TeX untuk Web
* beranda CWEB

Templat:Donald Knuth navbox