История
Структурное программирование
Только псевдокод
· Псевдокод упрощает комментирование программ. В типичной ситуации вы сначала пишите код, а затем добавляете комментарии. При использовании псевдокода он превращается в комментарии автоматически, так что проще их оставить, чем удалить.
· Псевдокод сопровождать проще, чем другие виды проектной документации. При других подходах проектная документация отделена от кода, и внесение в неё изменений (или забывание) порождает несоответствие. Поскольку псевдокод становится комментариями, то внося в них изменения, вы поддерживаете проектную документацию в корректном состоянии.
В ряде случаев псевдокодом называют систему команд абстрактной машины, например, P-код, псевдокод вымышленной машины MIX и т.д. В отличие от псевдокода неформального характера, такой псевдокод уже строго формализован, труднее для понимания человеком, но может быть транслирован в работающую программу при наличии программы-эмулятора данной гипотетической машины.
На протяжении 60-х годов попытки создания многих больших программных систем наталкивались на ряд трудностей. Сроки создания программного обеспечения обычно не выполнялись, стоимость проектов превосходила бюджет, а конечный продукт не отличался надёжностью. Люди начали понимать, что создание программного обеспечения – гораздо более сложная задача, чем они себе представляли.
Обычно операторы программы выполняются друг за другом в той последовательности, в которой они написаны. Это называется последовательным выполнением. Однако различные операторы позволяют программисту указать, что следующим должен выполняться не очередной оператор в тексте программы, а какой-то другой. Это называется передачей управления.
В 60-е годы стало ясно, что неограниченное использование передач управления является источником множества неприятностей при групповой разработке программного обеспечения. Вина была возложена на оператор goto, который позволяет передавать управление в очень широких пределах.
Например, для реализации следующего алгоритма:
использовался код:
S = 0;
i = 1;
начало_цикла:
S = S + i;
i = i + 1;
Если (i<10), то
перейти на «начало_цикла»;
Если (S<100), то
перейти на «действие2»;
Вывод “Сумма больше ста”;
перейти на «конец_условия»;
действие2:
Вывод “Сумма меньше ста”;
конец_условия:
Такой код был нормой для программ того времени. Неправильное и необдуманное использование произвольных переходов в тексте программы приводит к получению запутанных, плохо структурированных программ (т.н. программ-спагетти), по тексту которых практически невозможно понять порядок исполнения и взаимозависимость фрагментов.
Идеи так называемого структурного программирования стали почти синонимами требования «не применять goto». Исследование Бома и Джакопини показало, что программы могут быть написаны без использования оператора goto. В результате для программистов настала эра перехода к стилю программирования «с минимальным использованием goto».
Такого не было до 70-х годов, пока программисты не стали серьёзно применять структурное программирование. Результаты получились впечатляющие: группы разработчиков программного обеспечения сообщали, что время разработок сократилось, производительность труда выросла, и проекты стали чаще укладываться в рамки бюджета. Ключом к успеху явилось, что структурированные программы стали более прозрачными, легче поддавались отладке и модификации и, что самое главное, в них стало меньше ошибок.
Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков.