Горыныч
Система литературного программирования



<< Назад | Оглавление | Вперёд >>

Литературное программирование

Автором метода является Дональд Кнут, всемирно известный учёный в области информатики, автор ряда классических книг и статей по программированию, разработчик издательских систем TeX и METAFONT. Cуть метода описана в статье Дональда Кнута Literate Programming (англ.), также в ней рассматривается первая система литературного программирования WEB (англ.).

Литературное программирование (по Новикову - прим. авт.) - это метод разработки, нацеленный на повышение познаваемости программ и основанный на встраивании исходного кода в документацию.

Познаваемость (в общем) - это возможность познания. Познаваемость программы - это свойство исходного кода и сопроводительной документации, которое характеризует объём умственных усилий, затрачиваемых читателем на понимание программы в целом и её частей в частности. Чем выше познаваемость, тем проще и быстрее осмыслить программу. Таким образом, объектом воздействия в литературном программировании является мозг человека, а не компьютер.

Метод достигает своей цели благодаря следующему:

Составление программы идет "от документации" - за основу берётся описание программы, в которое вставляются кусочки исходного кода. В результате информация подаётся в виде, удобном для восприятия читателя. Это снижает умственные затраты на понимание программ.

Для встраивания кода в документацию применяется "литературная" разметка текста - специальная система тегов, которая позволяет разместить код внутри документации и оформить её.

В литературном программировании:

  1. Программа составляется из кусочков, называемых фрагментами (в терминологии Горыныча). Каждый фрагмент поименован, содержит блок кода и описывающую его документацию.
  2. Фрагменты упорядочиваются в порядке, удобном для чтения. От простого - к сложному, от общего - к частному.
  3. Фрагменты связываются гиперссылками. Причём, адресами в ссылках являются наименования фрагментов.
  4. Все фрагменты хранятся вместе, в одном физическом источнике.
  5. Первая служебная программа, которая называется weave, обрабатывает источник и формирует документ, предназначенный человеку. В этом документе программа представлена в виде книги для чтения, в которой код перемежается с описанием, причём, код оформлен как псевдокод с гиперссылками.
  6. Вторая служебная программа, называемая tangle, извлекает из того же самого источника исходные коды и формирует из них файлы, предназначенные компилятору. В этих файлах программа представлена в том виде, как того требует целевой язык программирования.

Кратко: "литературный" программист строит свою программу из фрагментов, которые содержат и код, и документацию, хранятся в общем источнике, для обработки источника применяются две служебные программы - первая извлекает из источника документацию для чтения, вторая - файлы с исходными кодами для компиляциии.

См. также

<< Назад | Оглавление | Вперёд >>