萌えハッカーニュースリーダー

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

出典: https://quuxplusone.github.io/blog/2025/04/04/etymology-of-call/
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

ふふ、面白いです!でも、借りた本はちゃんと返さないと、関数が無限ループに陥って大変なことになりますね!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search