Программирование с использованием пошаговой детализации
Для разработки структурных программ Вирт предложил методологию, названную им программированием путем пошаговой детализации (совершенствования).
Пошаговая детализация отличается следующими особенностями:
1. Процесс выполняется в виде последовательности отдельных шагов.
2. На каждом шаге используются множества задач и структур данных, а программа на каждом шаге описывается в терминах этих множеств.
3. Множества задач и данных каждого шага детализируют множества, полученные на предыдущем шаге детализации.
4. На каждом шаге используется свой уровень представления задач и структур данных, причем по мере завершения детализации уровень представления приближается к уровню языка программирования.
5. На каждом шаге решение о детализации принимается после рассмотрения альтернативных вариантов.
Для описания процесса детализации Дейкстра ввел понятие уровней абстракции. Самый верхний уровень описания программы представляет ее в самой абстрактной форме, а самый нижний — в терминах компонент программной обстановки, которые легко могут быть оттранслированы в программный код. Каждый уровень абстракции формируется из компонент трех типов:
• множество структур данных;
• множество инструкций;
• алгоритм, выраженный в терминах данных и инструкций, созданных на рассматриваемом уровне.
Дейкстра рассматривает каждый уровень как машину, обладающую набором выполняемых инструкций и обрабатывающую данные определенной структуры. Вначале рассматривается наиболее абстрактная (виртуальная) машина, которая оперирует, например, с данными на уровне файлов, выполняя операции типа "обновить" или "напечатать" (файл). Затем множество инструкций и множество данных детализируется и расширяется и приближается к реальной ЭВМ.