Императивная парадигма
Императивное программирование – один из наиболее естественных для человека подходов к написанию программ. При написании подобной программы необходимо найти такую цепочку команд, которая приводит к вычислению одной или нескольких искомых величин. Эти цепочки команд – иными словами директивы – совершенно однозначно и четко предписывают выполнение каждого шага алгоритма. Отсюда синоним императивной парадигмы – директивная.
Императивное программирование стали называть процедурным, когда в процессе увеличения сложности моделируемых систем и размера получаемых программ возникла концепция подпрограмм, называемых также процедурами (procedure), функциями (function) или методами (method). Подпрограмма позволяет локализовать в ней процесс выполнения определенного действия, которое может быть повторено многократно с помощью механизма вызова. При этом исходная программа превращается из одной большой цепочки команд в значительно более короткую и понятную последовательность вызовов подпрограмм, решающих более простые подзадачи. При вызове подпрограммы ей часто передают так называемые фактические параметры, а она после завершения своей работы обычно возвращает некоторый результат.
Те из императивных языков программирования, которые не обладают хорошо развитым механизмом организации подпрограмм, принято называть операциональными языками (например, первые версии языка BASIC).
Одним из направлений процедурного программирования является структурное программирование.
Методология структурного программирования появилась как следствие возрастания сложности решаемых на компьютерах задач и соответственного усложнения программного обеспечения. В 70-е годы XX века объёмы и сложность программ достигли такого уровня, что «интуитивная» разработка программ, которая была нормой в более раннее время, перестала удовлетворять потребностям практики.
Наиболее сильной критике со стороны разработчиков структурного подхода к программированию подвергся оператор GOTO (оператор безусловного перехода), имеющийся почти во всех языках программирования. Использование произвольных переходов в тексте программы приводит к получению запутанных, плохо структурированных программ, по тексту которых практически невозможно понять порядок исполнения и взаимозависимость фрагментов.
В соответствии с методологией структурного программирования любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:
· последовательного исполнение (следование) – однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
· ветвление – однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;
· цикл – многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла.
В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается. Недопустим оператор безусловной передачи управления в любую точку программы.
Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде подпрограмм (процедур или функций).
Разработка программы ведётся пошагово, методом «сверху вниз». Сначала пишется текст основной программы, в котором вместо каждого связного логического фрагмента текста вставляется вызов подпрограммы, которая будет выполнять этот фрагмент. Вместо настоящих, работающих подпрограмм, в программу вставляются «заглушки», которые ничего не делают. Полученная программа проверяется и отлаживается. После того, как программист убедится, что подпрограммы вызываются в правильной последовательности (то есть общая структура программы верна), подпрограммы-«заглушки» последовательно заменяются на реально работающие, причём разработка каждой подпрограммы ведётся тем же методом, что и основной программы. Разработка заканчивается тогда, когда не останется ни одной «заглушки», которая не была бы удалена. Такая последовательность гарантирует, что на каждом этапе разработки программист одновременно имеет дело с обозримым и понятным ему множеством фрагментов и может быть уверен, что общая структура всех более высоких уровней программы верна.
Следование принципам структурного программирования сделало тексты программ, даже довольно крупных, нормально читаемыми. Серьёзно облегчилось понимание программ, появилась возможность разработки программ в промышленном режиме, когда программу может без особых затруднений понять не только её автор, но и другие программисты.
Первыми языками высокого уровня, относящиеся к этой пардигме были Fortran,PL/1, Ада, Бейсик.
Наиболее популярными императивными языками являются язык Pascal, созданный в целях обучения программированию, и язык С, на котором в основном работают профессиональные программисты.
Дата добавления: 2015-12-16; просмотров: 1263;