Введение
Язык программирования, основанный на макросах. Web – это компьютерная система программирования, созданная Дональдом Э. Кнутом как первая реализация того, что он назвал «литературным программированием»: идея о том, что программное обеспечение можно создавать как литературные произведения, внедряя исходный код в описательный текст, а не наоборот (как принято в большинстве языков программирования), в порядке, удобном для представления материала читателю, а не в порядке, требуемом компилятором. Web состоит из двух вспомогательных программ: TANGLE, которая генерирует компилируемый код на Паскале из исходных текстов, и WEAVE, которая создает красиво отформатированную, готовую к печати документацию с использованием TeX. CWEB – это версия Web для языка программирования C, а noweb – отдельный инструмент литературного программирования, вдохновленный Web (что отражено в названии) и не зависящий от конкретного языка. Наиболее значимыми программами, написанными на Web, являются TeX и Metafont. Современные дистрибутивы TeX используют другую программу, Web2C, для преобразования исходного кода Web в C.
Web is a computer programming system created by Donald E. Knuth as the first implementation of what he called "literate programming": the idea that one could create software as works of literature, by embedding source code inside descriptive text, rather than the reverse (as is common practice in most programming languages), in an order that is convenient for exposition to human readers, rather than in the order demanded by the compiler. Web consists of two secondary programs: TANGLE, which produces compilable Pascal code from the source texts, and WEAVE, which produces nicely formatted, printable documentation using TeX. CWEB is a version of Web for the C programming language, while noweb is a separate literate programming tool, which is inspired by Web (as reflected in the name) and which is language agnostic. The most significant programs written in Web are TeX and Metafont. Modern TeX distributions use another program Web2C to convert Web source to C.
Философия
В отличие от большинства других генераторов документации, которые ограничивают документацию комментариями, подход WEB заключается в написании статьи, описывающей процесс создания исходного кода. Подобно статьям в TeX, исходный код разделен на разделы в соответствии с логикой изложения. Например, в CWEB разделы кода органично вплетены в ход рассуждений.
Особенности
Может вводить код TeX как вручную, так и автоматически. Форматирует C-код для удобного чтения. Позволяет определять разделы и содержать документацию и код, которые затем можно включать в другие разделы. Код заголовка и основной C-код можно писать в одном файле, повторно использовать одни и те же разделы, а затем "распутать" в несколько файлов для компиляции. Используются директивы #line, чтобы все предупреждения и ошибки относились к исходному коду. Поддерживает подключение файлов. Файлы изменений, которые могут автоматически объединяться с кодом при компиляции или печати. Создает индекс идентификаторов и названий разделов в выходном документе.