web-dev-qa-db-ja.com

(関数)オーバーロードの語源

「過負荷」というフレーズはどこから来たのですか?

さまざまな言語での用語の翻訳を見るのは興味深いです(例 オーバーロードに関するウィキペディアの記事のリスト )、一部の言語はそれを直接翻訳します(「何かに重きを置きすぎる」という意味で)、しかし、一部の言語はそれをまったく翻訳しません。

3
hunyadym

これは明確に質問に答えるものではありませんが、私が見つけることができる最初の使用法は1966年のジョンマッカーシーによるものです。ジョンペックによって説明されているように、 数年後のワルシャワのALGOL標準に関する議論の1つを思い出してください :「その会議で私が覚えているのは、ジョン・マッカーシーの主張でした。新しい言語には、彼が言うところの演算子のオーバーロードが必要だということです。これは最終的にALGOL68の運用宣言になりました。」それで、ジョン・マッカーシーのためにこの用語が流行しました。あるいは、少なくとも1966年には非常にあいまいだったため、マッカーシはそれを世界の他の主要な言語デザイナーに説明する必要があり、彼の使用法は他の参加者にとって注目に値するものでした。残念ながら、彼は2011年に亡くなりました。彼がなぜそれを呼んだのか、彼が自分でこの用語を作り出したのか、その背後に何か物語があるのか​​について話しているオンラインでは何も見つかりません。

コメント提供者が私に知らせたように、Bjarne Stroustrupは、1980年代初頭にC++を設計したときにALGOLからアイデアを取り入れたと明確に述べています。 Google Ngramの検索では、「演算子のオーバーロード」と「オーバーロードされた演算子」というフレーズは、1980年代以前にはほとんど聞いたことがなかったことが示されています。当時の数学者が、+記号がグループ演算を示す方法について話していた方法ではないようです。

コメントのジュールは、マッカーシがこの用語を使用したもっともらしい情報源を示しています。言語学者は、1966年以前の数十年間、単語の二重の意味を「意味的過負荷」と呼んでいました。マッカーシの論文 彼がこの分野に精通していることを示しています =およびその用語。 (彼はまた、「言語学者の間の争いは、私の義母、引退した農夫の妻のことわざを思い出させます。」鶏がお互いに共食いし始めたとき、することはたくさんを肉屋にするか売ることだけです。それらを他の誰かに渡してやり直してください。」」)

10
Davislor