サブルーチンとは何か?

サブルーチンとは

サブルーチンとはプログラミングで使用する言葉です。
特定の機能や処理の集合を指し、一般的には「関数」と呼ばれますが、単に「ルーチン」と呼ばれることもあります。
基本的にはメインの処理とは別の場所に実装され、メインから呼び出されて処理を実行します。

サブルーチンの特徴

サブルーチンは基本的に「引数」「戻り値」と呼ばれる値を持ちます。

引数

引数とは、サブルーチンを呼び出す側がサブルーチンに渡す値です。
多くの場合この値を使用して、サブルーチンが処理を行います。

戻り値

戻り値とは、サブルーチンが呼び出し元に返す値です。「返り値」と呼ぶこともあります。
この戻り値を求めることが、サブルーチンの大きな役割です。

サブルーチンを使うメリット

プログラミングでは基本的に、同じ処理を複数の箇所にいくつも記述するのは避けるべきとされています。ソースコードが冗長になるほか、潜在的なバグが増えやすくなるためです。
何度も使用する処理をサブルーチンとし、都度呼び出す形で実装すれば、全体的なコード量を削減することができます。
コード量の削減により、バグやミスの発生する確率を下げることも可能です。

また、繰り返す処理をサブルーチン化すれば、実装の効率も向上します。
さらにコード全体が短くなるので可読性も高くなり、動作の高速化も期待できます。

その他の「ルーチン」

呼び出される処理をサブルーチンと呼ぶ場合、主な処理・メインの処理を「メインルーチン」と呼ぶことがあります。
これは機能全体の中核を指すもので、基本的にメインルーチンがサブルーチンの呼び出しを行います。

「関数」と「サブルーチン」を区別する場合

プログラミングでも珍しい例ではありますが、言語によっては関数とサブルーチンを区別して使用することがあります。
「Fortran」という言語が代表的なものです。

Fortranは1950年代に、世界初の高級プログラミング言語として開発されました。
この「高級言語」とは、機械語と比較し、より人間が理解しやすい構文や規則を持つものです。
Fortranでは関数とサブルーチンを以下のように明確に区別しています。

  • 関数(function)…戻り値を持つ。
  • サブルーチン(subroutine)…戻り値を持たない。

Fortranのほかにこの二つを使い分ける言語はあまりありませんが、もし使い分けるような場面があれば、上記のように理解するといいでしょう。