Podprogram, znany również jako funkcja, procedura lub rutyna, to sekcja kodu, która wykonuje określone zadanie w programowaniu komputerowym. Podprogram jest często używany do dzielenia większego programu na mniejsze i łatwiejsze w zarządzaniu fragmenty kodu. Podprogramy mogą akceptować wartości wejściowe, przetwarzać dane i zwracać dane wyjściowe lub wynik.
Podprogramy są ważne, aby upewnić się, że program działa poprawnie, zapewniając strukturę, redukując powtórzenia i poprawiając wydajność. Inne korzyści płynące z używania podprogramów obejmują ułatwienie debugowania i ponowne wykorzystanie kodu. Aby wywołać podprogram, program używa specjalnej instrukcji, często nazywanej "wywołaniem" lub "skokiem".
Istnieją różne rodzaje podprogramów, w tym podprogramy języka asemblera, rekurencyjne, bezpieczne dla wątków, szeregowe, pętle i procedury przerwań. Podprogramy języka asemblera są zwykle używane w językach programowania niskiego poziomu, takich jak C++ i Java. Podprogramy rekurencyjne służą do wielokrotnego powtarzania kodu, aż do spełnienia określonego warunku. Z drugiej strony, podprogramy bezpieczne dla wątków są używane w celu zapewnienia, że program może obsługiwać wiele żądań od użytkowników bez tworzenia konfliktów.
Ponadto podprogramy szeregowe są używane do wykonywania instrukcji w sekwencji, podprogramy pętli powtarzają określony kod w kółko, dopóki nie znajdzie pożądanego wyjścia, a procedury przerwań obsługują określony stan lub sygnał, zwykle z urządzenia zewnętrznego, takiego jak klawiatura lub mysz.
Ogólnie rzecz biorąc, podprogramy są używane do dzielenia i zarządzania dłuższymi, złożonymi programami komputerowymi. Korzystając z podprogramów, programiści mogą łatwo identyfikować, debugować i ponownie wykorzystywać kod. Jako takie, podprogramy są istotną częścią każdego programu komputerowego.