サブルーチン

プログラミングにおけるサブルーチン（）はプログラム中で意味や内容がまとまっている作業をひとつの手続きとしたものである。別名として関数（）、ルーチン（）、サブプログラム () とも呼ばれる。
繰り返し利用されるルーチン作業をモジュールとしてまとめたもので、呼び出す側の「主」となるもの（メインルーチン）と対比して「サブルーチン」と呼ばれる。
プログラムのソース中で、繰り返し現れる処理をサブルーチン化することで、可読性や保守性を高く保つことができる。繰り返し現れる処理でなくても、意味的なまとまりを示すためにサブルーチン化することもある。また、キャッシュのような階層的メモリの設計を持つコンピュータ（現在のパソコンやワークステーションなどほぼすべて）では、よく使われるサブルーチンがキャッシュに格納されることで高速な動作を期待できる。
分類.
サブルーチンに相当する処理のまとまりを「結果として値を返すもの」と「処理だけを行い値を返さないもの」に分類・区別することがある。この区分はプログラミング言語の仕様で定められるため、言語により区分や呼称が異なる。以下はその例である。
これらの名称は慣習的なものであり、手続き型プログラミングや関数型プログラミングといったプログラミングスタイルあるいはプログラミングパラダイムの分類とは関係がない。
関数.
サブルーチンが返す値は戻り値（もどりち）または返り値（かえりち）と呼ばれる。引数をとり、値を返すという、数学における関数との類似性から関数 (function) と呼ばれるわけであるが、一般にプログラミング言語における関数は、数学におけるそれとは以下のような点が異なる。
これに対し、関数型言語では状態や、プログラム自身に影響するような副作用をもたないことを基本とするなど、数学の関数に近い性質を持つ。特に純粋関数型言語では数学の関数と同等であり、同様の性質（参照透過性など）を持つことが利用される。