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

Структу́рное программи́рование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.

В соответствии с данной методологией

  1. Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:
    • последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
    • ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;
    • цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).
    В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается.
  2. Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы.
  3. Разработка программы ведётся пошагово, методом «сверху вниз».

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

Теорема о структурном программировании:

Основная статья: Теорема Бома-Якопини

Любую схему алгоритма можно представить в виде композиции вложенных блоков begin и end, условных операторов if, then, else, циклов с предусловием (while) и может быть дополнительных логических переменных (флагов).
Эта теорема была сформулирована итальянскими математиками К. Бомом и Дж. Якопини в 1966 году и говорит нам о том, как можно избежать использования оператора перехода goto.

История
Методология структурного программирования появилась как следствие возрастания сложности решаемых на компьютерах задач, и соответственного усложнения программного обеспечения. В 70-е годы XX века объёмы и сложность программ достигли такого уровня, что «интуитивная» (неструктурированная, или «рефлекторная») разработка программ, которая была нормой в более раннее время, перестала удовлетворять потребностям практики. Программы становились слишком сложными, чтобы их можно было нормально сопровождать, поэтому потребовалась какая-то систематизация процесса разработки и структуры программ.

Наиболее сильной критике со стороны разработчиков структурного подхода к программированию подвергся оператор GOTO (оператор безусловного перехода), имевшийся тогда почти во всех языках программирования. Неправильное и необдуманное использование произвольных переходов в тексте программы приводит к получению запутанных, плохо структурированных программ (т. н. спагетти-кода), по тексту которых практически невозможно понять порядок исполнения и взаимозависимость фрагментов.

Следование принципам структурного программирования сделало тексты программ, даже довольно крупных, нормально читаемыми. Серьёзно облегчилось понимание программ, появилась возможность разработки программ в нормальном промышленном режиме, когда программу может без особых затруднений понять не только её автор, но и другие программисты. Это позволило разрабатывать достаточно крупные для того времени программные комплексы силами коллективов разработчиков, и сопровождать эти комплексы в течение многих лет, даже в условиях неизбежных изменений в составе персонала.

Методология структурной разработки программного обеспечения была признана «самой сильной формализацией 70-х годов». После этого слово «структурный» стало модным в отрасли, и его начали использовать везде, где надо и где не надо. Появились работы по «структурному проектированию», «структурному тестированию», «структурному дизайну» и так далее. В общем, произошло примерно то же самое, что происходило в 90-х годах и происходит в настоящее время с терминами «объектный», «объектно-ориентированный» и «электронный».

Перечислим некоторые достоинства структурного программирования:

  1. Структурное программирование позволяет значительно сократить число вариантов построения программы по одной и той же спецификации, что значительно снижает сложность программы и, что ещё важнее, облегчает понимание её другими разработчиками.
  2. В структурированных программах логически связанные операторы находятся визуально ближе, а слабо связанные — дальше, что позволяет обходиться без блок-схем и других графических форм изображения алгоритмов (по сути, сама программа является собственной блок-схемой).
  3. Сильно упрощается процесс тестирования и отладки структурированных программ.
Комментариев: 1

Блез Паскаль

 

 Французский религиозный философ, писатель, математик и физик Блез Паскаль родился в Клермон-Ферране в семье высокообразованного юриста, занимавшегося математикой и воспитывавшего своих детей под влиянием педагогических идей М. Монтеня. Получил домашнее образование; рано проявил выдающиеся математические способности, войдя в историю науки как классический пример отроческой гениальности.

Первый математический трактат Практат «Опыт теории конических сечений» (1639, издан 1640)  содержал одну из основных теорем проективной геометрии – теорему Паскаля. В 1641 г. (по другим сведениям, в 1642) Паскаль сконструировал суммирующую машину. К 1654 г. закончил ряд работ по арифметике, теории чисел, алгебре и теории вероятностей (опубликованных в 1665). Круг математических интересов Паскаля был весьма разнообразен. Он нашёл общий алгоритм для нахождения признаков делимости любого целого числа на любое другое целое число (трактат «О характере делимости чисел»), способ вычисления биномиальных коэффициентов, сформулировал ряд основных положений элементарной теории вероятностей («Трактат об арифметическом треугольнике», опубликованный в 1665 г., и переписка с П. Ферма). В этих работах Паскаль впервые точно определил и применил для доказательства метод математической индукции. Труды Паскаля, содержащие изложенный в геометрической форме интегральный метод решения ряда задач на вычисление площадей фигур, объёмов и площадей поверхностей тел, а также других задач, связанных с циклоидой, явились существенным шагом в развитии анализа бесконечно малых. Теорема Паскаля о характеристическом треугольнике послужила одним из источников для создания Г. Лейбницем дифференциального и интегрального исчисления.

Вместе с Г. Галилеем и С. Стевином Паскаль считается основоположником классической гидростатики: он установил её основной закон (о полной передаче жидкостью производимого на неё давления – закон Паскаля), принцип действия гидравлического пресса, указал на общность основных законов равновесия жидкостей и газов. Опыт, проведённый под руководством Паскаля (1648), подтвердил предположение Э. Торричелли  о существовании атмосферного давления. Паскаль высказал также идею о зависимости атмосферного давления от высоты, открыл зависимость давления от температуры и влажности воздуха и предложил использовать барометр для предсказания погоды. В его честь названа единица давления – паскаль.

Работа Паскаля над проблематикой точных наук в основном относится к 1640-1650-м годам. Разочаровавшись в «отвлечённости» этих наук, Паскаль обращается к религиозным интересам и философской антропологии. С 1655 г. он ведёт полумонашеский образ жизни в янсенистской обители Пор-Руаяль-де-Шан, вступив в энергичную полемику по вопросам религиозной этики с иезуитами; плодом этой полемики стали «Письма к провинциалу» (1657) – шедевр французской сатирической прозы. В центре занятий Паскаля в последние годы жизни – попытка «оправдания» христианства средствами философской антропологии. Этот труд не был закончен; афористические наброски к нему после смерти Паскаля в вышли в свет под заглавием «Мысли г. Паскаля о религии и о некоторых других предметах» (1669).

Место Паскаля в истории философии определяется тем, что это первый мыслитель, который прошёл через опыт механистического рационализма XVII в. и со всей остротой поставил вопрос о границах «научности», указывая при этом на «доводы сердца», отличные от «доводов разума», и тем предвосхищая последующую иррационалистическую тенденцию в философии. Выведя основные идеи христианства из традиционного синтеза с космологией и метафизикой аристотелевского или неоплатонического типа, а также с политической идеологией монархизма (так называемый «союз трона и алтаря»), Паскаль отказывается строить искусственно гармонизированный теологический образ мира; его ощущение космоса выражено в словах: «это вечное молчание безграничных пространств ужасает меня». Паскаль исходит из образа человека, воспринятого динамически («состояние человека – непостоянство, тоска, беспокойство»), и не устаёт говорить о трагичности и хрупкости человека и одновременно о его достоинстве, состоящем в акте мышления (человек – «мыслящий тростник», «в пространстве вселенная объемлет и поглощает меня, как точку; в мысли я объемлю её»). Сосредоточенность Паскаль на антропологической проблематике предвосхищает понимание христианской традиции у С. Кьеркегора и Ф.М. Достоевского. Паскаль сыграл значительную роль в формировании французской классической прозы; его влияние испытали Ф. Ларошфуко и Ж. Лабрюйер, М. Севинье и М. Лафайет.

 

Комментариев: 0
Nastya
Nastya
Была на сайте никогда
21 год (18.04.1997)
Читателей: 2 Опыт: 0 Карма: 1
все 0 Мои друзья