日本の情報処理推進機構 (IPA) が運営している基本情報技術者試験で使われる疑似言語では、サブルーチンを戻り値の有無により「関数」と「手続」（てつづき）に分類している。戻り値があるほうが関数であり、戻り値が無いほうが手続である。これはPascalの慣習と同じだが、もともとアルゴリズムの記述にはALGOLやPascal系の構文をもとにした疑似言語が使われることが多かった、という事情もある。
一般的には戻り値によって単一の結果を出力として返すが、参照呼び出しを使うことによって複数の結果を出力として返したり、受け渡しの際のデータコピーのコストを低減したりすることもできるようになる。
なお、Pascalでは関数／手続きの内部に、それらの中でのみ呼び出し可能な別の関数／手続きを記述することもできる。関数内関数やローカル関数などと呼ばれることもある。
一般的にサブルーチンにはプログラムソースコード上で識別可能な何らかの名前が付けられ、呼び出しの際にはその名前をもとに参照されるが、名前を持たないサブルーチン（無名関数、ラムダ式）を定義できる言語もある。
数学の関数との違い.
引数をとり、値を返すという、数学における関数との類似性から、言語によっては関数 (function) とも呼ばれるわけであるが、一般にプログラミング言語における関数は、数学におけるそれとは以下のような点が異なる。
これに対し、関数型言語では状態や、プログラム自身に影響するような副作用をもたないことを基本とするなど、数学の関数に近い性質を持つ。特に純粋関数型言語では数学の関数と同等であり、同様の性質（参照透過性など）を持つことが利用される。
オブジェクト指向言語の場合.
歴史.
各プログラミング言語におけるサブルーチン.
おおむね歴史が古い言語から説明する。
FORTRAN.
LISP.
BASIC.
Pascal.
関数の定義の書式は次の通りである。
 関数内の処理の記述
関数の宣言が複数ある場合、どの順番で書いても良いし、複数のファイルに分けて書いても良い。ただし、ひとつの関数を複数のファイルに分けて書いてはいけない。
Perl.
Visual Basic.
他.
再帰呼び出し.
概要.