バックスラッシュ\は、主にコンピューターと数学で使用される活字記号です。これは、一般的なスラッシュ(「ソリダス」)/の鏡像です。これは比較的新しい記号で、最初に文書化されたのは 1930 年代です。これは、ハック、ワック、エスケープ( C / UNIXから)、リバーススラッシュ、スロッシュ、バックスラント、バックワック、バッシュ、リバーススラント、リバースソリダス、リバースバーギュルなどと呼ばれることもあります。[ 1 ] [ 2 ]


この文字に関する最初の文書上の言及は、テレタイプ社の 1937 年の保守マニュアルで、ホイートストン方式を使用したクラインシュミット キーボード穿孔機WPE-3のキーボードを示す写真が含まれています。[ 3 ] 1945 年の文書では、テレタイプ社はこの記号に「斜めキー」という名前を使用し、[ 4 ] ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ▄という(非標準)モールス符号を与えています。 [ 5 ] [ a ]どちらの文書にもその使用法は記載されていません。
1960 年 6 月、IBM は0x19 のシンボルを含む「拡張文字セット標準」を公開しました。[ 6 ] 1961 年 9 月、IBM の Bob Bemer はX3.2 標準化委員会に、文字[、]、 を\提案標準の一部にするよう提案し、バックスラッシュを「逆除算演算子」と説明し、テレタイプによる通信での以前の使用を引用しました。特に、ALGOL ブール演算子(論理積) と(論理和) をそれぞれ/\と\/を使用して構成できるようにするために\が必要だと彼は述べました。委員会は、 1961 年 11 月の会議でこれらの変更を米国標準の草案 (後にASCIIと呼ばれる) に採用しました。 [ 6 ]∧∨
これらの演算子は、 Unix V6 [ 7 ]および V7 [ 8 ]に付属していたC プログラミング言語の初期バージョンで最小値と最大値に使用されていました。
C、Perl、PHP、Python、Unixスクリプト言語などの多くのプログラミング言語、およびJSONなどの多くのファイル形式では、バックスラッシュはエスケープ文字として使用され、その後に続く文字を特別に扱う(そうでなければ文字として扱われる場合)、または文字として扱う(そうでなければ文字として扱われる場合)ことを示します。たとえば、C文字列リテラル内では、このシーケンスは「n」の代わりに改行バイトを生成し、このシーケンスは文字列の末尾の二重引用符の特別な意味ではなく、実際の二重引用符を生成します。実際のバックスラッシュは、二重バックスラッシュによって生成されます。\n\"\\
正規表現言語でも同様の方法で使用され、後続のリテラル文字をメタ文字に変換したり、その逆を行ったりします。たとえば、\ | | bは「|」または「b」を検索します。最初のバーはエスケープされて検索され、2番目のバーはエスケープされずに「または」として機能します。
引用符で囲まれた文字列以外では、バックスラッシュの一般的な用途は、直後の改行を無視(「エスケープ」)することだけです。この文脈では、現在の行が次の行に続くため、「継続行」[ 9 ]と呼ばれることがあります。一部のソフトウェアは、バックスラッシュ+改行をスペースに置き換えます。[ 10 ]
バックスラッシュ文字を持たないコンピュータをサポートするために、バックスラッシュと同等のC トライグラフ が追加されました。これは次の文字(それ自体が である場合もある)をエスケープできるため、現代における主な用途はコードの難読化かもしれません。C ++でのトライグラフのサポートはC++17で削除され、C でのトライグラフのサポートはC23で削除されました。[ 11 ]??/?
Visual Basic (および他のいくつかのBASIC方言)では、バックスラッシュは整数除算を示す演算子記号として使用されます。[ 12 ]これはゼロ方向に丸めます。
APL では、配列に要素を挿入する場合、\はExpandと呼ばれ、接頭辞の削減 (累積畳み込み) を行う場合はScan と呼ばれます。
PHPバージョン 5.3 以降では、バックスラッシュは名前空間を示すために使用されます。[ 13 ]
Haskellでは、バックスラッシュは特殊文字を導入するためとラムダ関数を導入するための両方に使用されます(ASCIIではギリシャ文字ラムダλの妥当な近似値であるため)。[ 14 ]
1983 年にリリースされたMS-DOS 2.0 は、 Unixから階層型ファイルシステムのアイデアをコピーし、ディレクトリ区切り文字として(前方)スラッシュを使用しました。 [ 15 ]おそらく IBM の主張により、[ 16 ] [ 17 ] Microsoft は、MS-DOS 1.0 ( /がコマンドラインオプションの指示文字でした。" DIR/W " と入力すると " DIR " コマンドに "wide" オプションが付与されるため、実際に DIR という名前のディレクトリ内でWという名前のプログラムを実行したい場合は、別の方法が必要でした)との互換性を維持しながら、コマンドライン インタープリタ プロンプトでパスを入力できるようにバックスラッシュを追加しました。COMMAND.COMを除き、オペレーティングシステムの他のすべての部分はパスに両方の文字を受け入れますが、Microsoft の慣習ではバックスラッシュを使用し、パスを返すAPI はバックスラッシュを使用します。[ 18 ]一部のバージョンでは、オプション文字をSWITCHARを介して/から-に変更することができ、これにより COMMAND.COM はコマンド名に/ を保持することができます。
Microsoft Windowsファミリーのオペレーティングシステムは MS-DOS の動作を継承しているため、どちらの文字もサポートしていますが、個々の Windows プログラムやサブシステムは、誤ってバックスラッシュのみをパス区切り文字として受け入れたり、スラッシュがパス区切り文字として使用された場合にそれを誤って解釈したりする可能性があります。一部のプログラムは、パスが二重引用符で囲まれている場合にのみスラッシュを受け入れます。[ 19 ] Microsoft のセキュリティ機能がローカルおよびインターネット パス内の予期しない方向のスラッシュを認識できない一方で、オペレーティングシステムの他の部分はそれらを処理しているため、セキュリティに深刻な欠陥が生じています。http: //example.net/secure\ private.aspx のような特定の組み合わせを使用したパスで、アクセスできないはずのリソースにアクセスされています。[ 20 ] [ 21 ]
バックスラッシュは、TeX組版システムやRTFファイルにおいて、マークアップタグの開始記号として使用されます。
集合の差にはバックスラッシュのような記号が使われる。[ 24 ]
バックスラッシュは右剰余類空間を表すためにも使われることがある。[ 25 ]
特にコンピュータアルゴリズムを記述する場合、バックスラッシュをa \ bが⌊ a / b ⌋と等価になるように定義するのが一般的です。[ 26 ]これは、ゼロ方向ではなく切り捨てを行う整数除算です。
MATLABとGNU Octaveでは、バックスラッシュは左行列除算に使用され、(前方)スラッシュは右行列除算に使用されます。[ 27 ]
日本語のエンコーディングであるISO 646-JP ( ASCIIに基づく 7 ビット コード)、JIS X 0201 (8 ビット コード)、およびShift JIS (ASCII の 8 ビットのマルチバイト エンコーディング) では、ASCII でバックスラッシュに使用されるコード ポイント0x5C は、代わりに円記号¥としてレンダリングされます。円記号を表すために 005C コード ポイントが広く使用されているため、今日でもMS Minchoなどの一部のフォントではバックスラッシュ文字を ¥ としてレンダリングするため、これらの文字セットが選択されると、Unicode コード ポイントU+00A5 ¥ YEN SIGNとU+005C \ REVERSE SOLIDUS の文字は両方とも¥としてレンダリングされます。コンピュータ プログラムでは、これらの環境では 005C をバックスラッシュとして扱いますが、円記号として表示するため、特に MS-DOS ファイル名で混乱が生じます。[ 28 ]
ISO 646の他のいくつかのバージョンでも、バックスラッシュを₩(韓国語)、Ö(ドイツ語、スウェーデン語)、Ø(デンマーク語、ノルウェー語)、ç(フランス語) 、 Ñ(スペイン語)などの他の文字に置き換えており、円記号の場合ほど長くは影響しないものの、同様の問題を引き起こしています。この問題はUnicodeの固有のコードポイント割り当てによって解決されていますが、旧式システムの存続期間が長いため、問題は減少傾向にあるものの、依然として残っています。
1991年、RFC 1345は、インターネット標準で使用される可能性の//ある独自の2文字のニーモニックを「コード化された文字セットと、そのコード化された文字セットにおけるその文字のコードを参照することなく、[この]文字を識別する実用的な方法」として提案した。[ 29 ]その結果、このスタイルは初期のインターネット技術タスクフォースの文書に見られる。
Unicodeには、さまざまなバックスラッシュ記号のコードポイントがあります。
ユーザーマニュアルには重大な誤りがいくつかあります。これらのほとんどは、IBM の MS-DOS (PC DOS) 実装との互換性を高めるための直前の変更によるものです。これには、パス区切り文字として「/」の代わりに「\」を使用すること、およびスイッチ文字として「-」の代わりに「/」を使用することが含まれます。バッチファイルをマシン間で転送する場合、Microsoft は米国市場ではそれぞれ「\」と「/」の使用を推奨しています。[...] これらの変更により、貴社の技術出版スタッフにご迷惑をおかけしたことをお詫び申し上げます。
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)