Учебное пособие по дисциплине Разработка языков программирования высокого уровня
Скачать 1.74 Mb.
|
ГЛАВА 4. ПОДПРОГРАММЫ4.1. Общие сведенияПонятие подпрограммы - одно из центральных понятий любого языка программирования высокого уровня. Подпрограмма - это некоторая последовательность операторов языка, оформленная особым образом, к которой можно обратиться по имени, т.е. она представляет собой поименованный блок. Подпрограмма представляет собой абстракцию процесса. Понятие абстракции процесса, наряду с абстракцией данных, одно из базовых понятий в области разработки языков программирования. Прежде всего, эго способ инициировать дополнительный, по отношению к основному (Program), вычислительный процесс на программном уровне. Например, если в программе нужно упорядочить массив числовых данных целочисленного типа, обычно используется подпрограмма, выполняющая сортировку. В той точке программы, в которой следует выполнить сортировку, помещается оператор вызова следующего вида: sort_int (list, list_len); Этот вызов является абстракцией реального процесса сортировки, алгоритм которого в главной программе не определен. Вызов не зависит от алгоритма, который реализуется в вызываемой подпрограмме, важен только тот факт, что вызов подпрограммы sort_int приводит к сортировке массива. Какой именно алгоритм выполняет sort_int, для вызывающей программы не существенно. Причин, по которым часть программы оформляется в виде подпрограмм, в основном две. 1. В инженерных задачах часто возникает необходимость в программирова-нии одного и того же расчета, но с разными исходными данными. ЯПВУ предоставляет возможность запрограммировать этот расчет один раз (оформив его в виде отдельного блока - подпрограммы), а исполнять в теле программы сколько угодно, каждый раз передавая в расчет новые исходные данные, поэтому подпрограмма – это, прежде всего, средство, чтобы сделать программу более компактной: операторы блока существуют в программе в единственном экземпляре, а вызовов этого блока может быть неограниченное количество. 2. Подпрограммы используются и как средство структурирования программы, расчленения ее на ряд относительно самостоятельных частей. Дело в том, что при программировании достаточно сложной задачи решить ее «одним махом», т.е. написать последовательно всю программу от начала до конца, невозможно. Процесс разработки программы – это творческий процесс, проходящий в несколько этапов. Вначале стараются создать наиболее общий, генеральный алгоритм, не останавливаясь на технических деталях его реализации. В результате алгоритм представляется в виде последовательности относительно крупных блоков, реализующих более или менее самостоятельные смысловые части алгоритма. Блоки, в свою очередь, разбиваются на менее крупные подблоки, т.е. на блоки нижнего уровня и т.д. (рис. 4.1). Процесс последовательного структурирования программы продолжается до тех пор, пока реализуемые блоками алгоритмы не станут простыми и легко программируемыми.
Рисунок 4.1. Пример схемы структуризации программы на подпрограммы Достоинства описанного подхода, получившего название нисходящего структурного программирования, очевидны: подпрограммы повышают надежность программы (каждый блок можно не только реализовывать независимо, но и автономно его тестировать), облегчают ее понимание и позволяют вести разработку программы коллективом программистов. Таким образом, подпрограмма, в соответствии с методологией структурного программирования, позволяет: - структурировать программу на достаточно независимые по управлению фрагменты (задачи), - уменьшать объем требуемой для загрузки программы памяти и время программирования, - улучшать читабельность программы, - выявлять логическую структуру программы. |