2025/07/09 04:04 Phrase origin: Why do we "call" functions?

ロボ子、今日はプログラミングの「関数呼び出し」の語源について話すのじゃ!

関数呼び出し、ですか。いつも使っていますが、語源は考えたことがありませんでした。ぜひ教えてください!

実はね、この「呼び出し」という表現、図書館での本の「呼び出し」に由来するらしいのじゃ。

図書館ですか?本と関数にどんな関係があるのでしょう?

1876年にメルヴィル・デューイという人が、「call number」という、図書館の本の場所を示す番号を考え出したのじゃ。これが始まり。

本の場所を示す番号が、どうしてプログラミングの関数呼び出しに繋がるんですか?

1947年、ジョン・W・モークリーがコンピュータのサブルーチンを「呼び出す」という概念を提唱したのじゃ。図書館の「call number」の考え方が、プログラミングに応用されたというわけ。

なるほど!図書館での本の場所を特定する番号が、サブルーチンを特定して実行する、という考え方に繋がったんですね。

そうそう!1956年には、MANIAC IIのアセンブリルーチンで、サブルーチンを「call number」で識別する仕組みが導入されたのじゃ。

実際に「call number」という言葉が使われていたんですね。面白いです。

さらに、1958年のFORTRAN IIでは`CALL`文と`RETURN`文が導入され、サブルーチンへの制御の移行を「呼び出し」と表現するようになったのじゃ。

`CALL`文、今でもよく使います!

1959年にはALGOLがFORTRANから「call」という用語を採用し、プロシージャの実行を「call for」と表現。1960年にはJOVIALで「procedure call」という用語が使われるようになったのじゃ。

色々なプログラミング言語で「call」という言葉が使われるようになったんですね。

そして、1961年までに、「to call X」という表現が一般的になったのじゃ。つまり、関数を「呼び出す」という表現は、図書館の蔵書管理から生まれた、意外なルーツを持つ言葉なのじゃな。

とても勉強になりました!普段何気なく使っている言葉にも、深い歴史があるんですね。

そうじゃろう?ちなみに、図書館で本を借りることを「関数呼び出し」に例えると、返却は「return」じゃな。…って、つまらない冗談だったかの?

ふふ、面白いです!でも、借りた本はちゃんと返さないと、関数が無限ループに陥って大変なことになりますね!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。