キャレット(ラテン語のcaret 「欠けている」に由来)[ 1 ]は、ほとんどのQWERTYキーボードで+を入力すると表示される文字^の通称です。この記号は、プログラミングや数学でさまざまな用途に使われています。「キャレット」という名前は、校正で句読点、単語、またはフレーズを文書に挿入する場所を示すために使われた元の校正者のキャレット ‸ と視覚的に似ていることから生まれました。ASCII標準( X3.64.1977 ) では「サーカムフレックス」と呼ばれています。[ 2 ] Unicode 標準では「サーカムフレックス アクセント」と呼ばれていますが、その目的で使用することはもはや実用的ではありません。 ⇧ Shift6

発音記号(アクセント記号)を日常的に使用する言語向けに設計されたタイプライターでは、これらを入力する方法は 2 つあります。1つは、あらかじめ合成された文字(発音記号を含む)に専用のキーを割り当てる方法、もう 1 つはデッド キー機構を設ける方法です。後者の場合、デッド キーを押すとマークが付けられますが、通常のキーとは異なり、用紙キャリッジは移動しないため、次に入力する文字はアクセント記号の下に印刷されます。^記号は、もともとタイプライターやコンピュータプリンタに、文字の上にサーカムフレックス アクセント記号( ôやŵなど)を重ねて印刷できるようにするために用意されました。
ASCII にサーカムフレックス記号が組み込まれたのは、タイプライターに以前存在していたためです。この記号は、タイプや活字の印刷文字として独立して存在していたわけではありません。1963年の ASCII 標準のオリジナル版では、上向き矢印↑にコード ポイント0x5Eが使用されていました。しかし、1965 年のISO/IEC 646標準では、コード ポイント0x5E を各国のバリエーションに使用できる 5 つのコード ポイントの 1 つとして定義し、サーカムフレックス^をデフォルトとし、上向き矢印を代替用途の 1 つとしました。[ 3 ] 1967年の ASCII の第 2 版もこれに倣いました。[ 4 ]
アクセント記号を追加するためのオーバープリントは、プリンターで常に適切にサポートされているわけではなく、ビデオ端末ではほとんど不可能でした。独立したサーカムフレックス(キャレットと呼ばれるようになった)は、コンピュータ言語や数式表記など、他の多くの用途ですぐに再利用されるようになりました。この記号はもはや文字の上に収まる必要がなくなったため、見た目が大きくなり、ほとんどのフォントでアクセントをオーバープリントするために使用できなくなりました。[ 5 ]アクセント付き文字のサポートは、オーバープリントを使用するのではなく、文字セットに合成文字を含めることによって最終的に提供されるようになりました。[ b ]
記号^はプログラミング言語で多くの用途があり、一般的にはキャレットと呼ばれます。 べき乗、ビットごとのXOR演算子、文字列の連結[ 6 ]、キャレット表記の制御文字など、さまざまな用途があります。正規表現では、キャレットは文字列または行の先頭にマッチするために使用されます。キャレットが文字クラスの先頭にある場合は、そのクラスの逆がマッチされます。
ANSI C では、キャレットを3 字 の形で転写できます??'。これは、この文字が元々すべての文字セットやキーボードで使用できるわけではなかったためです。C ++xorでは、さらに( ^) やxor_eq( )のようなトークンをサポートし、^=この文字を完全に回避できます。RFC 1345では、必要に応じてこの文字を2 字の形で転写することを推奨しています。[ 7 ] '>
Pascal では、ポインタの宣言と逆参照にキャレットを使用します。Smalltalk では、キャレットはメソッドの return ステートメントです。C ++/CLIでは、.NET の参照型は構文を使用してハンドルを介してアクセスされますClassName^。Apple のMac OS X および iOS 用のC 拡張機能では、キャレットはブロックの作成とブロック型の指定に使用されます。Go では、ビットごとの NOT演算子として使用されます。
Node.js では、 package.jsonファイルでキャレットを使用して、各依存関係に対して使用されている依存関係解決動作を示します。Node.js の場合、キャレットは、semverで定義されている「メジャー」アップデートと見なされない限り、あらゆる種類のアップデートを許可します。[ 8 ]
数学において、キャレット記号は指数表記(例3^5:3⁵ )を表すのに用いられます。これは、通常の添え字が容易に使用できない場合(一部のグラフ電卓など)に有効です。また、 TeXによる組版において、添え字を示すためにも使用されます。
べき乗にキャレットを使用するようになったのは、 ALGOL 60に遡ります。ALGOL 60 では、べき乗演算子を上向きの矢印で表現しており、これは数学でよく用いられる上付き文字表記を想起させる意図がありました。現在では、上向きの矢印はクヌースの上向き矢印表記において、超演算を表すために用いられており、単一の矢印はべき乗を、複数の矢印が隣接して並ぶ場合はより高次の演算を表します。
キャレット表記では、制御文字を示すためによく使われます。たとえば、 は^A値 1 の制御文字を意味します。
Windows コマンドラインインタープリタ ( cmd.exe ) は、予約文字をエスケープするためにキャレットを使用します(他のほとんどのシェルではバックスラッシュを使用します)。たとえば、プログラムに小なり記号を引数として渡すには、次のように入力します。^<
インターネットフォーラム、Facebookなどのソーシャルネットワーキングサイト、またはオンラインチャットでは、他の投稿のテキストの下に1つ以上のキャレットが使用されることがあり、これはその投稿への上向きの矢印を表します。[ 9 ]矢印の使用に加えて、^を投稿したユーザーが上記の投稿に同意していることを意味することもあります。複数のキャレットは、コメントがキャレットの数に対応する上の投稿への返信または関連であることを示すため、または前の投稿の正しい部分を「強調」するため、または単に強調するために使用できます。
同様の手法は、Javaコンパイラなどのプログラミング言語コンパイラでも採用されており、コンパイルエラーが発生した箇所を指摘するために用いられます。コンパイラはエラーのあるコード行を出力し、次の行にスペースで埋めた単一のキャレットを使用して、エラー箇所を視覚的に示します。
ASCIIコード0x5Eへの割り当てはUnicodeに継承されました。Unicodeにおけるキャレットおよび関連する類似文字には以下が含まれます。