Старые песни на новый лад
Старые песни
От блок-схем к автоматам
Каждому измерению - виртуальную машину
Трепещите, программисты

Сначала неожиданный взгляд, странный ракурс, необычный подход - одним словом, забавная игра мысли, не более того.

Карл Левитин"Горящий светильник".

В статье "Фантазия или программирование?" ("Мир ПК", # 10/97, с. 116) начат разговор о "скелете" и "мышцах" программных систем, о числе измерений в программировании. Многие просят меня пояснить или уточнить эти понятия. Очевидно, это нужно сделать потому, что "активистов", которым нравится процесс анализа и решения проблем, меньше, чем "реалистов", которые с проблемами сталкиваются, но в силу определенных причин их решением не занимаются. Статья "Фантазия..." была рассчитана на "программистов-активистов". Теперь необходимо позаботиться о других, предложив для них готовое решение.

В отличие от понятия программного измерения, восприятие которого во многом зависит от способности к образному мышлению, для "скелета" и "мышц" можно подобрать четкие программные аналоги. А поскольку "скелет" в контексте рассматриваемых образов тесно связан с понятием измерения, разобравшись с ним легче будет воспринять идею и образ измерений в программировании.

Алгоритм - основа программы. Программа - способ описания алгоритма. "Скелет" программы - ее алгоритм или, точнее, алгоритмическая модель. Понятие алгоритма и есть то "главное", чему посвящено дальнейшее изложение. Новый "скелет" будет существенно отличаться от "скелета", применяемого программистами. Поэтому "песни" (программы), посвященные новому "скелету", также следует считать новыми. Формальная эквивалентность "скелетов" позволяет при необходимости "переписать старые песни на новый лад", что для них часто только полезно. Можно и наоборот - это тоже иногда требуется.

Абстрактное понятие алгоритма, формальная алгоритмическая модель и язык программирования - звенья цепи, которая соединяет понятия, лежащие в основе науки программирования. И если алгоритмическая модель - "скелет", то данные - "мышцы" программы. Заметим, что это хорошо согласуется с известной формулой Никлауса Вирта:


Алгоритмы + структуры данных = программы.

В основе практически всех "программистских песен" лежат блок-схемы (БС). Создается впечатление, что программисты не всегда это сознают. Но и леди Лавлейс (первая официально признанная программистка), и современный программист использовали и используют почти один и тот же инструмент - блок-схему. Хорошо это или плохо, удобно или не очень, можно ли заменить БС и какова цена такой замены, - тема статьи.

В современном "программистском эпосе" с БС связано не так уж много положительных эмоций. БС хорошо известны, но их популярность - все чаще с отрицательным знаком. И все же ругают их, кажется, лишь затем, чтобы подтвердить, что достойной замены им пока нет. А недостатки? Так на солнце тоже есть пятна. Другими словами, БС были, есть и будут. Но будут ли они всегда?

Ниже, говоря о БС, мы ограничимся обсуждением проблем второго измерения, поскольку на большее число измерений БС просто не тянут. Однако сказанное по их поводу пригодится нам, когда мы обратимся к следующим измерениям.


Старые песни на новый лад

Почему-то всегда кажется, что с самым сложным справиться легче...

Это не вся статья. Полная версия доступна только подписчикам журнала. Пожалуйста, авторизуйтесь либо оформите подписку.