Podprogram (inaczej funkcja lub procedura) – termin związany z programowaniem proceduralnym. Podprogram to wydzielona część programu wykonująca jakieś operacje, możliwa do wykonania podczas wykonywania programu. Podprogramy stosuje się, aby uprościć program główny i zwiększyć czytelność kodu.
Rodzaje podprogramów W pewnych językach programowania dzieli się podprogramy na funkcje i procedury: Funkcja ma wykonywać obliczenia i zwracać jakąś wartość, nie powinna natomiast mieć żadnego innego wpływu na działanie programu (np. funkcja obliczająca pierwiastek kwadratowy) Procedura natomiast nie zwraca żadnej wartości, zamiast tego wykonuje pewne działania (np. procedura czyszcząca ekran)
Przez zwracanie wartości należy rozumieć możliwość użycia wywołania funkcji wewnątrz wyrażenia. Procedury często też zwracają wartości, ale poprzez odpowiednie parametry.
Podział ten występuje w językach takich jak Pascal i Ada. W pozostałych językach (m.in. w C i C++) nie ma już takiego rozróżnienia i funkcją jest każdy podprogram, niezależnie od tego czy zwraca jakieś wartości i czy ma wpływ na program.