Подпрограмма


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

Подпрограммы могут быть определены в программах или отдельно в библиотеках , которые могут использоваться многими программами. В разных языках программирования подпрограмма может называться подпрограммой , подпрограммой , функцией , методом или процедурой . Технически все эти термины имеют разные определения, и номенклатура варьируется от языка к языку. Иногда используется общий термин « вызываемая единица ». [1]

Подпрограмма имени предполагает, что подпрограмма ведет себя почти так же, как компьютерная программа, которая используется в качестве одного шага в более крупной программе или другой подпрограмме. Подпрограмма часто кодируется таким образом, что ее можно запускать несколько раз и из нескольких мест во время одного выполнения программы, в том числе из других подпрограмм, а затем возвращаться ( вернуться ) к следующей инструкции после вызова , как только задача подпрограммы выполнена. . Идея подпрограммы была первоначально задумана Джоном Мочли во время его работы над ENIAC [ 2] и записана на Гарвардском симпозиуме в январе 1947 года на тему «Подготовка задач для машин типа EDVAC». [3] Морис Уилкс ,Дэвиду Уиллеру и Стэнли Гиллу обычно приписывают формальное изобретение этой концепции, которую они назвали закрытой подпрограммой , [4] [5] в отличие от открытой подпрограммы или макроса . [6] Тем не менее, Тьюринг обсуждал подпрограммы в статье 1945 года о проектных предложениях для NPL ACE , зайдя так далеко, что изобрел концепцию стека адресов возврата. [7]

Подпрограммы являются мощным инструментом программирования [8] , а синтаксис многих языков программирования включает поддержку их написания и использования. Разумное использование подпрограмм (например, с помощью подхода структурированного программирования ) часто существенно снижает стоимость разработки и поддержки большой программы, повышая при этом ее качество и надежность. [9] Подпрограммы, часто собранные в библиотеки , являются важным механизмом обмена и торговли программным обеспечением. Дисциплина объектно-ориентированного программирования основана на объектах и ​​методах .(которые являются подпрограммами, присоединенными к этим объектам или классам объектов ).

В методе компиляции , называемом потоковым кодом , исполняемая программа представляет собой последовательность вызовов подпрограмм.

Содержимое подпрограммы — это ее тело, представляющее собой фрагмент программного кода, который выполняется при вызове или вызове подпрограммы.