再帰呼び出し 【recursive call】 リカーシブコール

概要

再帰呼び出し(recursive call)とは、コンピュータプログラム中で外部から呼び出し可能な関数プロシージャ(手続き)などが、その内部で自身を呼び出すこと。そのような処理を実装した関数を「再帰関数」(recursive function)という。

関数などの内部の処理を記述したプログラムの中で、自らを呼び出すコードが含まれる構造を指す。例えば、階乗の計算 n!=n×(n-1)! やフィボナッチ数列 Fn=Fn-1+Fn-2 のように、定義や計算法にある種の再帰的な構造が含まれている場合、これをシンプルなコードに書き表すことができる。

現代的なプログラミング言語のほとんどは再帰呼び出しが可能な仕様となっているが、再帰的に自身を呼び出す関数などを記述する際には、何重に呼び出されても内部の状態が壊れないよう配慮された「リエントラント」(再入可能)な状態管理がわれている必要がある。

また、関数の中で自らを呼び出す箇所の手前に、脱出条件を満たしたら関数を終了する条件分岐などを記述しなければならない。脱出コードが無かったり条件が誤っていると、無限に自身を呼び出し続けて終了しないプログラムとなってしまう。その場合、実際に実行すると関数呼び出しに用いるメモリ上のスタック領域を使い果たして異常終了することになる。

(2024.3.12更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる