バックスラッシュ

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ
\
バックスラッシュ
Unicode の場合U + 005C \ REVERSE SOLIDUS(HTML \  \
 ⧵   ⧹ 
逆スラッシュ演算子 大きな逆スラッシュ 全幅逆固相線

バックスラッシュ \は、主にコンピューティングで使用される活版印刷のマークであり、一般的なスラッシュ/鏡像です。これは、ハックワックエスケープC / UNIXから)、逆スラッシュスロッシュダウンワックバックスラント、バックワックバッシュ逆スラント、およびバーグルと呼ばれることもあります。[1] [2] UnicodeおよびASCIIの場合 U + 005C \ REVERSE SOLIDUS ( 10進数の92 )でエンコードされます。

歴史

3列目の終わりにバックスラッシュが付いた1930年代のテレタイプホイートストンパーフォレーターキーボード
1966年6月14日より前の、ASCII文字セットを使用したテレタイプASR-33キーボードレイアウト、Shift + Lのバックスラッシュ付き

2021年11月の時点で、このキャラクターの起源または1960年代以前のその目的を特定する取り組みは成功していません。これまでに見つかった最も初期の既知のリファレンスは、 Wheatstoneシステムを使用したKleinschmidtキーボード穿孔器WPE-3のキーボードを示す写真を含むTeletypeCorporationの1937年のメンテナンスマニュアルです[3] [4]この記号は「対角キー」と呼ばれ[5]、(非標準の)モールス信号  ▄▄▄▄▄▄▄▄▄ が与えられました[6](スラッシュ記号のコード。逆方向に入力されます。)

1960年6月、IBMは、0x19の記号を含む「拡張文字セット標準」を公開しました。[4] 1961年9月、Bob Bemer(IBM)はX3.2標準委員会に提案し[、提案]された\標準の一部として、バックスラッシュを「逆除算演算子」として説明し、テレタイプによる電気通信での以前の使用を引用しました。 。特に、ALGOLブール演算子論理積)と論理和)を/ \\ /を使用して構成できるようにするには、 \が必要であると彼は言いました。 それぞれ。委員会は、1961年11月の会議で、これらの変更をドラフトAmerican Standard(以降ASCIIと呼ばれる)に採用しました。[4]

これらの演算子は、UnixV6で提供されているCプログラミング言語の初期バージョンで最小値と最大値に使用されていました[7]およびV7 [8]

Teletype Model 33 (1963)は、一部の市場で販売されている標準のキートップとしての特徴を備えた最初の市販のユニットのようです。このモデルには完全なASCII文字セットがあります。

使用法

プログラミング言語

CPerlPHPPythonUnixスクリプト言語などの多くのプログラミング言語、およびJSONなどの多くのファイル形式では、バックスラッシュはエスケープ文字として使用され、それに続く文字を特別に処理する必要があることを示します(それ以外の場合は通常どおりに処理されます)、または通常(特別に処理される場合)。たとえば、C文字列リテラル内では、シーケンスは「n」の代わりに改行バイトを生成し、シーケンスは\n\"文字列を終了する二重引用符の特別な意味ではなく、実際の二重引用符を生成します。実際の円記号は、二重の円記号によって生成されます\\

正規表現言語も同じように使用し、後続のリテラル文字をメタ文字に、またはその逆に変更しました。たとえば、\ || bは '|'のいずれかを検索します または「b」、最初のバーはエスケープされて検索され、2番目のバーはエスケープされずに「または」として機能します。

引用符で囲まれた文字列の外では、バックスラッシュの唯一の一般的な使用法は、直後の改行を無視(「エスケープ」)することです。この文脈では、現在の行が次の行に続くため、「継続行」[9]と呼ばれることがあります。一部のソフトウェアは、円記号と改行をスペースに置き換えます。[10]

バックスラッシュ文字がないコンピューターをサポートするために、バックスラッシュに相当するCトライグラフ ??/が追加されました。これは次の文字をエスケープできるため、それ自体がである可能性があります。?最近の主な用途は、コードの難読化です。トリグラフのサポートはC ++ 17で削除されました。

Visual Basic(およびその他のBASIC方言)では、バックスラッシュは整数 除算を示す演算子記号として使用されます[11]これはゼロに向かって丸められます。

ALGOL 68プログラミング言語は、 10進指数記号として「\」を使用しますALGOL 68には、e、E、\、または10の4つの10進指数記号を選択できます。6.0221415e23、6.0221415E23、6.0221415 \ 23または6.02214151023 _ _ _ [12]

APLでは \は、塗りつぶし要素を配列に挿入するために使用される場合はExpandと呼ばれ、接頭辞の削減(累積フォールド)を生成するために使用される場合は Scanと呼ばれます。

PHPバージョン5.3以降では、名前空間を示すために円記号が使用されます[13]

Haskellでは、バックスラッシュは特殊文字の導入とラムダ関数の導入の両方に使用されます(ギリシャ文字のラムダλのASCIIでの妥当な近似であるため)。[14]

ファイル名

1983年にリリースされたMS-DOS2.0は、 Unixから階層ファイルシステムをコピーしたため、ディレクトリ区切り文字として(スラッシュ)スラッシュを使用していました。[15]おそらくIBMの主張により、[16] Microsoftはバックスラッシュを追加して、MS-DOS 1.0(/はコマンドラインオプションインジケーター)との互換性を維持しながら、コマンドラインインタープリタープロンプトでパスを入力できるようにしました。 「DIR / W 」と入力すると、「 DIR 」コマンドに「wide」オプションが指定されたため、実際にDIRというディレクトリ内でWというプログラムを実行する場合は、他の方法が必要でしたCOMMAND.COMを除く、オペレーティングシステムの他のすべての部分はパス内の両方の文字を受け入れますが、Microsoftの規則ではバックスラッシュを使用し続け、パス返すAPIはバックスラッシュを使用します。[17]一部のバージョンでは、オプション文字をSWITCHARを介して/から-に変更できます。これにより、COMMAND.COMはコマンド名に /を保持できます。

Microsoft WindowsファミリのオペレーティングシステムはMS-DOSの動作を継承しているため、どちらの文字もサポートしますが、個々のWindowsプログラムおよびサブシステムは、誤ってバックスラッシュをパス区切り文字としてのみ受け入れるか、スラッシュをパス区切り文字として誤って解釈する可能性があります。そのように使用されます。一部のプログラムは、パスが二重引用符で囲まれている場合にのみスラッシュを受け入れます[18]オペレーティングシステムの他の部分がまだそれらに作用している間に、ローカルおよびインターネットパスで予期しない方向のスラッシュを認識するMicrosoftのセキュリティ機能の失敗は、セキュリティのいくつかの深刻な失効につながりました。利用できないはずのリソースは、http://example.net/secure \ private.aspxなどの特定の組み合わせを使用したパスでアクセスされています。[19] [20]

テキストマークアップ

バックスラッシュは、TeX 植字システムおよびRTFファイルでマークアップタグを開始するために使用されます。

USFMでは[21]バックスラッシュは、聖書翻訳を編集するためのフォーマット機能をマークするために使用されます

キャレット記法^\、は制御文字0x1C、ファイル区切り文字を表します。[22]これは完全に偶然であり、ファイルパスでの使用とは何の関係もありません。

数学

セットの差にはバックスラッシュのような記号が使用されます[23]

バックスラッシュは、正しい剰余類のスペースを示すために使用されることもあります。[24]

特にコンピュータアルゴリズムを説明する場合、a \ b⌊a / b⌋と等しくなるように円記号を定義するのが一般的です[要出典]これは、ゼロに向かってではなく、切り捨てる整数除算です。Wolfram Mathematicaでは、バックスラッシュは整数除算のためにこのように使用されます。[25]

MATLABおよびGNUOctaveでは、バックスラッシュは左行列の除算に使用され、(順方向)スラッシュは右行列の除算に使用されます。[26]

¥や他の文字との混同

日本のエンコーディングISO646 -JP ( ASCIIに基づく7ビットコード)、JIS X 0201(8ビットコード)、およびShift JIS(ASCIIの8ビットであるマルチバイトエンコーディング)では、コードASCIIのバックスラッシュに使用されるポイント0x5Cは、代わりに円記号 ¥としてレンダリングされます。円記号を表すために005Cコードポイントが多用されているため、今日でもMS明朝などの一部のフォントはバックスラッシュ文字を¥としてレンダリングするため、Unicodeコードポイント00A5(¥)と005C(\)の文字は両方とも次のようにレンダリングされます。¥これらのフォントが選択されたとき。コンピュータプログラムは、これらの環境では引き続き005Cを円記号として扱いますが、円記号として表示するため、特にMS-DOSファイル名で混乱が生じます。[27]

他のいくつかのISO646バージョンも、バックスラッシュを(韓国語)、Ö(ドイツ語、スウェーデン語)、Ø(デンマーク語、ノルウェー語)、ç(フランス語)、Ñ(スペイン語)などの他の文字に置き換えます。円記号と比較して持続的な影響。

1991年、RFC 1345は、インターネット標準で「コード化された文字セットとそのコード化された文字セット内のコードを参照せずに、[この]文字を識別する実用的な方法」として使用される可能性//のある一意の2文字のニーモニックとして提案しました。 。[28]したがって、このスタイルは初期のインターネット技術特別調査委員会の文書に見られる可能性があります。

も参照してください

参考文献

  1. ^ Macquarie Dictionary(第3版)
  2. ^ レイモンド、エリックS. 「ASCII」
  3. ^ 「Bulletin125、issue 2:Teletype Wheatstone Perforatorの説明と調整」(PDF)テレタイプ株式会社。1938年5月[1937年8月]。p。ii。
  4. ^ a b c Eric Fischer(2000年6月20日)。「文字コードの進化、1874年から1968年」。pp。14(表35)、15。CiteSeerX10.1.1.96.678 (IEEEに提出された未発表の論文、より良い情報源が必要です。)
  5. ^ 「Bulletin188:テレタイプ自動穿孔器セット」(PDF)テレタイプ株式会社。1945年8月。
  6. ^ 「Bulletin1025、issue 3:Teletype Wheatstone Perforatorの部品」(PDF)テレタイプ株式会社。1945年7月。 海軍自動モールス信号(CW)機器 経由
  7. ^ Cコンパイラソース(1975)
  8. ^ Cコンパイラソース(1979)
  9. ^ Cプリプロセッサ
  10. ^ 「3.1.1長い行の分割」GNUはマニュアルを作成します。2019年7月28日取得
  11. ^ 「VisualBasicの算術演算子」Visual Basic言語の機能:演算子と式MSDN 2012年10月7日取得
  12. ^ 「AlgorithmicLanguageAlgol68に関する改訂レポート」ActaInformatica5(1–3):1–236。1973年9月。doi10.1007 / BF00265077S2CID2490556_ 
  13. ^ 「名前空間の概要」
  14. ^ O'Sullivan、Stewart、およびGoerzen、 Real World Haskell、ch。4:無名(ラムダ)関数、p.99
  15. ^ 「DOSパス文字「\」はなぜですか?」Blogs.msdn.com。2005-06-24 2013年6月16日取得
  16. ^ Necasek、Michal(2019年5月24日)。「Windowsが実際にパス区切り文字としてバックスラッシュを使用するのはなぜですか?」OS / 2ミュージアム2019年5月24日にオリジナルからアーカイブされました2019年5月28日取得
  17. ^ 「Path.GetFullPathメソッド」.NETFrameworkクラスライブラリマイクロソフト。2008年12月21日にオリジナルからアーカイブされました2009年1月2日取得
  18. ^ 「Windowsがパス区切り文字としてスラッシュを受け入れ始めたのはいつですか?」Bytes.com。2009年2月6日にオリジナルからアーカイブされました2009年1月2日取得
  19. ^ カプラン、シモーネ(2004)。「MicrosoftはASP.NETの欠陥を調査します」Microsoftが後援するDevSourceZiff Davis Enterprise Holdings Inc.2013-01-21のオリジナルからアーカイブ2009年6月14日取得
  20. ^ バーネット、マーク(2004)。「深く走るセキュリティホール」SecurityFocus 2009年6月14日取得
  21. ^ 「USFM–統一された標準フォーマットマーカー」paratext.org
  22. ^ 「C0制御文字セット、1987」
  23. ^ 「数量と単位–パート2:自然科学と技術で使用される数学記号と記号」ISO 80000-2:2009国際標準化機構。
  24. ^ 「定義:剰余類空間」ProofWiki 2017年2月1日取得
  25. ^ 「整数除算」
  26. ^ イートン、ジョンW。; デビッドベイトマン; SørenHauberg(2011年2月)。「GNUOctave:数値計算のための高レベルのインタラクティブ言語」(PDF)フリーソフトウェアファウンデーション。p。145 2012年10月7日取得
  27. ^ 「バックスラッシュがバックスラッシュではないのはいつですか?」Blogs.msdn.com 2013年6月16日取得
  28. ^ Simonsen、Keld(1991-12-26)。「RFC1345」Tools.ietf.org 2013年6月16日取得

外部リンク