回答:
古い前駆体があったものの、影響力のあるフランスの数学者ルネ・デカルトは通常され貸方上付き指数(導入するためのbは彼の作品には、数学的な書き込みに)Geometrieこれはまだ普遍的に今日の数学で使用される表記法である1637に掲載されました。
Fortranは、数値計算に広く使用されている最古のプログラミング言語であり、1954年まで累乗演算子を提供していました。累乗演算は二重アスタリスクで示されます**
。当時の多くのコンピューターは、キャレット文字を提供しない6ビット文字エンコードを使用していたことに注意してください^
。の使用**
はその後、Pythonなどの累乗演算を提供するさまざまな最近のプログラミング言語の作成者に採用されました。
キャレットを含む最初に広く採用された文字セット^
は、1963年に最初に標準化された7ビットASCIIエンコーディングでした。キャレットを使用して累乗を表す最も古いプログラミング言語はBASICで、1964年に作成されました。 IBM は、キャレットを含むEBCDIC文字エンコードを採用しました^
。
C言語は1972年に登場しました。累乗演算子を提供するのではなく、などのライブラリ関数を介して累乗をサポートしpow()
ます。そのため、Cの累乗法、およびC ++やCUDAなどのCファミリの他の言語の累乗のためにシンボルを別に設定する必要はありません。
一方、それまでのプログラミング言語では一般的ではなかったCは、ビットごとの演算にシンボルを提供します。7ビットASCIIで使用可能な特殊文字の数は限られており、&
ANDや~
NOT などの特定の特殊文字に対する他の操作の「自然な親和性」があったため、XORのシンボルにはそれほど多くの選択肢がありませんでした。
リッチーまたはカーニガンが^
XORを具体的に示すことを選択した理由について、公開された理論的根拠を知りません。リッチーのCの短い歴史は、この問題については言及していません。C、の前駆体の仕様を見て、言語Bは、それはXOR演算子を持っていなかったことが明らかになったが、すでに以外のすべての特殊文字を使用し^
、$
、@
、#
。
[更新] Bの作成者でありCの共同作成者の1人であるケン・トンプソンにメールを送信し^
、CのXOR演算子として選択する理由を尋ね、ここで答えを共有する許可を求めました。彼の返事(読みやすさのために少し再フォーマット):
From:Ken Thompson
送信:2016年9月29日(木曜日)4:50 AM
To:Norbert Juffa
件名:Re:CでXOR演算子としてキャレットを選択した理由それは残った文字のランダムな選択でした。
もう一度やり直す必要がある場合(これを行いました)、xor(^)とビット補数(〜)に同じ演算子を使用します。
^は現在、よく知られている演算子であるため、goでは^はxorであり、補数でもあります。
使用^
あなたはを参照していることを「数学」の累乗については、実際には1988年に、このようなMathematicaのどの日付など代数システムのための1978年に、このようなKnuthのTeXのどの日付などのシステムを組版のための多くの後日確立された使用、コマンドライン・インタフェースであり、グラフ1990年代初期の電卓。
これらの製品^
が指数の使用を採用したのはなぜですか?電卓の場合、私はBASICの影響を疑います。1980年代を通じて非常に人気のある最初のプログラミング言語であり、他のソフトウェア製品にも組み込まれていました。したがって、この表記は電卓の多くのバイヤーに馴染みのあるものでした。私の記憶はあいまいですが、実際には単純なBASICインタープリターを実行する計算機さえあったと思います。
^
します。そして、上付き文字には「上」文字を使用し、下付き文字には「下」文字()を使用するのが理にかなっています。_
^
、これは上向きの指数の伝統的な位置を示唆する上矢印を示唆しているので、それは少し自然なフィットです。Donald Knuthは^
TeXのべき乗に使用する決定について尋ねるメールに返信するはずですが、TAOCPの完了など、より重要な作業に忙しいことを考えると、私はそのステップを取りたくありませんでした(私は考慮しました)それ)。