Исключительно широко распространена такая форма повторяемости, когда одна и та же последовательность действий должна выполняться на различных этапах обработки информации. В алгоритмах такого рода в различных местах встречаются фрагменты, одинаковые по выполняемым действиям и различающиеся только в значениях исходных данных. При составлении программы по такому алгоритму приходится задавать одну и ту же группу операторов, соответствующую каждому из повторяющихся фрагментов. Для более эффективного программирования подобных повторений в языке введено понятие подпрограммы. Повторяющаяся группа операторов оформляется в виде самостоятельной программной единицы - подпрограммы, записывается однократно, а в соответствующих местах программы обеспечивается лишь обращение к ней (ссылка). На рисунке 1 дана иллюстрация этого понятия, где ПП - повторяющаяся группа операторов (подпрограмма); Т1, Т2, Т3, Т4 - неповторяющиеся участки программы.
Использование аппарата подпрограмм позволяет сократить объем и улучшить структуру программы с точки зрения наглядности и читаемости, уменьшить вероятность ошибок и облегчить процесс отладки программы. Разложение программы на взаимосвязанные, но замкнутые компоненты дает возможность выполнять разработку отдельных подпрограмм разным программистам и более или менее независимо друг от друга. Кроме того, подпрограмма может быть рассмотрена как самостоятельный модуль (со своими входными и выходными данными), что позволяет использовать ее в общем, иерархическом подходе при конструировании алгоритма и программы по принципам нисходящего проектирования.
В языке PASCAL подпрограммы реализуются в виде процедур и функций, которые вводятся в программу с помощью своего описания.