Горыныч
Система литературного программирования
НОВОСТИ | СКАЧАТЬ | РУКОВОДСТВО | КУПИТЬ | ПОМОЩЬ | КОНТАКТЫ |
<< Назад | Оглавление | Вперёд >>
Литературное программирование
Автором метода является Дональд Кнут
, всемирно известный учёный в области информатики, автор ряда классических книг и статей по программированию, разработчик издательских систем TeX
и METAFONT
. Cуть метода описана в статье Дональда Кнута Literate Programming
(англ.), также в ней рассматривается первая система литературного программирования WEB
(англ.).
Литературное программирование (по Новикову - прим. авт.) - это метод разработки, нацеленный на повышение познаваемости программ и основанный на встраивании исходного кода в документацию.
Познаваемость (в общем) - это возможность познания. Познаваемость программы - это свойство исходного кода и сопроводительной документации, которое характеризует объём умственных усилий, затрачиваемых читателем на понимание программы в целом и её частей в частности. Чем выше познаваемость, тем проще и быстрее осмыслить программу. Таким образом, объектом воздействия в литературном программировании является мозг человека, а не компьютер.
Метод достигает своей цели благодаря следующему:
- программа оформляется как книга, которую можно читать "от корки до корки";
- исходный код разбивается на кусочки и рассредотачивается по документации;
- кусочки кода связываются посредством гиперссылок и выглядят как псевдокод.
Составление программы идет "от документации" - за основу берётся описание программы, в которое вставляются кусочки исходного кода. В результате информация подаётся в виде, удобном для восприятия читателя. Это снижает умственные затраты на понимание программ.
Для встраивания кода в документацию применяется "литературная" разметка текста - специальная система тегов, которая позволяет разместить код внутри документации и оформить её.
В литературном программировании:
- Программа составляется из кусочков, называемых фрагментами (в терминологии
Горыныча
). Каждый фрагмент поименован, содержит блок кода и описывающую его документацию. - Фрагменты упорядочиваются в порядке, удобном для чтения. От простого - к сложному, от общего - к частному.
- Фрагменты связываются гиперссылками. Причём, адресами в ссылках являются наименования фрагментов.
- Все фрагменты хранятся вместе, в одном физическом источнике.
- Первая служебная программа, которая называется
weave
, обрабатывает источник и формирует документ, предназначенный человеку. В этом документе программа представлена в виде книги для чтения, в которой код перемежается с описанием, причём, код оформлен как псевдокод с гиперссылками. - Вторая служебная программа, называемая
tangle
, извлекает из того же самого источника исходные коды и формирует из них файлы, предназначенные компилятору. В этих файлах программа представлена в том виде, как того требует целевой язык программирования.
Кратко: "литературный" программист строит свою программу из фрагментов, которые содержат и код, и документацию, хранятся в общем источнике, для обработки источника применяются две служебные программы - первая извлекает из источника документацию для чтения, вторая - файлы с исходными кодами для компиляциии.
См. также
www.literateprogramming.com
(англ.) - сайт о литературном программировании.Literate Programming
(англ.) - книга Дональда Кнута о литературном программировании.Грамотное программирование
- краткий обзор метода (терминliterate programming
переводится как "грамотное программмирование").- Образец литературной программы
<< Назад | Оглавление | Вперёд >>