Обратная косая черта - Backslash

\
Обратная косая черта
ВUnicodeU + 005C \ ОБРАТНЫЙ СОЛИД (HTML\ · & bsol;)
 ⧵  ⧹ 
Оператор обратного солидусаБольшой обратный солидусОбратный солидус полной ширины

В обратная косая черта \ типографский знак, используемый в основном в вычисление и это зеркальное изображение общего слэш /. Иногда его называют взломать, бить, побег (из C /UNIX ), обратная косая черта, плевать, удар, наклонный, ответный удар, трепать, обратный наклон, и перевернутая косая черта.[1][2] В Unicode и ASCII он закодирован в U + 005C \ ОБРАТНЫЙ СОЛИД (92десятичная дробь).

История

Боб Бемер добавил \ персонаж в ASCII набор символов 18 сентября 1961 г.,[3][4] в результате исследования частоты символов. В частности, \ был введен так, что Логические операторы ALGOL (и ) и (или ) может быть составлен в ASCII как /\ и \/ соответственно.[4][5] Оба этих оператора были включены в ранние версии Язык программирования C поставляется с Unix V6, Unix V7 и, совсем недавно, с BSD 2.11.

Применение

Языки программирования

Во многих языки программирования такие как C, Perl, PHP, Python, Unix языки сценариев и многие форматы файлов, такие как JSON, обратная косая черта используется как escape-символ, чтобы указать, что следующий за ним символ должен обрабатываться особым образом (если в противном случае он будет обрабатываться как обычно) или нормально (если в противном случае он будет обрабатываться особым образом). Например, внутри C строковый литерал последовательность п производит новая линия байт вместо 'n', а последовательность \" создает настоящую двойную кавычку, а не специальное значение двойной кавычки, заканчивающей строку. Фактическая обратная косая черта создается двойной обратной косой чертой. \\.

Регулярное выражение языки использовали его таким же образом, заменяя последующие буквальные символы на метасимволы и наоборот. Например || b ищет либо '|' или 'b', первая полоса экранируется и ищется, вторая не экранируется и действует как «или».

За пределами строк в кавычках единственным распространенным использованием обратной косой черты является игнорирование («экранирование») новой строки сразу после нее. В этом контексте это можно назвать «продолжением».[6] поскольку текущая строка переходит в следующую.

Поддерживать компьютеры без символа обратной косой черты, C триграф ??/ был добавлен, что эквивалентно обратной косой черте. Поскольку это может экранировать следующий символ, который сам может быть ?, основное современное использование может быть для обфускация кода. Поддержка триграфов была удалена в C ++ 17.

В Visual Basic (и некоторые другие БАЗОВЫЙ диалекты) обратная косая черта используется как символ оператора для обозначения целое число деление.[7] Это округляется до нуля.

В АЛГОЛ 68 язык программирования использует символ "" в качестве Десятичный знак экспоненты. В АЛГОЛе 68 есть выбор из 4 десятичных знаков экспоненты: e, E, или 10. Примеры: 6.0221415e23, 6.0221415E23, 6.0221415\23 или 6.02214151023.[8]

В APL \ называется Развернуть при использовании для вставки элементов заливки в массивы и Сканировать когда используется для уменьшения префикса (кумулятивная кратность).

В PHP версии 5.3 и выше, обратная косая черта используется для обозначения пространство имен.[9]

В Haskell, обратная косая черта используется как для введения специальных символов, так и для обозначения лямбда-функции (поскольку это разумное приближение в ASCII греческой буквы лямбда, λ).[10]

Имена файлов

MS-DOS 2.0, выпущенный в 1983 году, скопировал иерархическую файловую систему из Unix и, таким образом, использовал (вперед) слэш[11] но (возможно, по настоянию IBM[12]) добавлена ​​обратная косая черта, позволяющая вводить пути в командной строке интерпретатора, сохраняя при этом совместимость с MS-DOS 1.0, где косая черта была индикатором параметра командной строки (ввод "DIR / W"дал" широкий "вариант"DIR", поэтому нужен был другой метод, если вы действительно хотели запустить программу с именем W внутри каталога с именем DIR). Кроме COMMAND.COM, все остальные части операционной системы принимают оба символа в дорожка, но в соответствии с соглашением Microsoft по-прежнему используется обратная косая черта и API это вернуть пути используют обратную косую черту.[13] В некоторых версиях символ опции можно изменить с / к - через ПЕРЕКЛЮЧАТЕЛЬ, что позволяет COMMAND.COM сохранять / в имени команды.

В Майкрософт Виндоус Семейство операционных систем унаследовало поведение MS-DOS и поэтому по-прежнему поддерживает любой символ, но отдельные программы и подсистемы Windows могут ошибочно принимать только обратную косую черту в качестве разделителя пути или могут неверно интерпретировать косую черту, если она используется как таковая . Некоторые программы будут принимать только косую черту, если путь находится в двойные кавычки.[14] Неспособность функций безопасности Microsoft распознавать косые черты неожиданного направления на локальных путях и в Интернете, в то время как другие части операционной системы все еще действуют на них, привела к ряду серьезных недостатков в безопасности. Ресурсы, которые не должны быть доступны, были доступны по путям с использованием определенных миксов, таких как http://example.net/secureprivate.aspx.[15][16]

Разметка текста

Обратная косая черта используется в TeX наборный система и в RTF файлы, чтобы начать теги разметки.

В USFM,[17] обратная косая черта используется для обозначения функций формата для редактирования Переводы Библии.

Математика

Символ обратной косой черты используется для установить разницу.[18]

Обратная косая черта также иногда используется для обозначения правого смежный Космос.[19]

Особенно при описании компьютерных алгоритмов обычно определяют обратную косую черту так, чтобы а\б эквивалентно а/б.[нужна цитата ] Это целочисленное деление, которое округляется в меньшую сторону, а не в сторону нуля. В Wolfram Mathematica обратная косая черта используется таким образом для целочисленного деления.[20]

В MATLAB и GNU Octave обратная косая черта используется для левого матрица делить, а косая черта - для правого деления матрицы.[21]

Путаница с ¥ и другими символами

в Японский кодировки ISO 646-JP (7-битный код на основе ASCII ), JIS X 0201 (8-битный код) и Shift JIS (многобайтовая кодировка, которая является 8-битной для ASCII), кодовая точка 0x5C, который будет использоваться для обратной косой черты в ASCII, вместо этого отображается как знак иены ¥. Из-за широкого использования кодовой точки обратной косой черты для обозначения знака иены даже сегодня некоторые шрифты, такие как МС Минчо отображать символ обратной косой черты как ¥, поэтому символы в Unicode кодовые точки 00A5 (¥) и 005C () отображаются как ¥ когда выбраны эти шрифты. Компьютерные программы по-прежнему обрабатывают 005C как обратную косую черту в этих средах, но отображают его как знак иены, вызывая путаницу, особенно в именах файлов MS-DOS.[22]

Несколько других ISO 646 версии также заменяют обратную косую черту другими символами, включая (Корейский), Ö (Немецкий, шведский), Ø (Датский, норвежский), ç (Французский) и Ñ (Испанский), что приводит к аналогичным проблемам, но с меньшим воздействием по сравнению со знаком йены.

RFC 1345 предлагает // как уникальный двухзначный мнемонический который может использоваться в интернет-стандартах как «практический способ идентификации [этого] символа без ссылки на набор кодированных символов и его код в [этом] наборе кодированных символов».[23]

Смотрите также

использованная литература

  1. ^ Словарь Macquarie (3-е издание)
  2. ^ Раймонд, Эрик С. "ASCII".
  3. ^ "Мини-биография Боба Бемера". Thocp.net. Получено 2013-06-16.
  4. ^ а б "Как ASCII получил обратную косую черту" В архиве 2013-01-19 в Wayback Machine, Боб Бемер
  5. ^ Боб Бемер (2002-07-07). "Великая погоня за фигурными скобками". Виньетки по компьютерной истории. Боб Бемер. Архивировано из оригинал на 2009-06-04. Получено 2009-10-11.
  6. ^ «3.1.1 Разделение длинных строк». GNU делать руководство по эксплуатации. Получено 28 июля, 2019.
  7. ^ «Арифметические операторы в Visual Basic». Возможности языка Visual Basic: операторы и выражения. MSDN. Получено 7 октября 2012.
  8. ^ «Пересмотренный отчет по алгоритмическому языку Алгола 68». Acta Informatica. 5 (1–3): 1–236. Сентябрь 1973 г. Дои:10.1007 / BF00265077.
  9. ^ "Обзор пространств имен".
  10. ^ О'Салливан, Стюарт и Герцен, Реальный мир Haskell, гл. 4: анонимные (лямбда) функции, стр.99
  11. ^ "Почему символ пути DOS" "?". Blogs.msdn.com. 2005-06-24. Получено 2013-06-16.
  12. ^ Некасек, Михал (24 мая 2019 г.). «Почему Windows действительно использует обратную косую черту в качестве разделителя пути?». OS / 2 музей. Архивировано из оригинал 24 мая 2019 г.. Получено 28 мая 2019.
  13. ^ "Метод Path.GetFullPath". Библиотека классов .NET Framework. Microsoft. В архиве из оригинала 21 декабря 2008 г.. Получено 2009-01-02.
  14. ^ «Когда Windows начала принимать косую черту в качестве разделителя пути?». Bytes.com. В архиве из оригинала от 6 февраля 2009 г.. Получено 2009-01-02.
  15. ^ Каплан, Симона (2004). «Microsoft исследует ошибку в ASP.NET». DevSource, спонсируемый Microsoft. Ziff Davis Enterprise Holdings Inc. Архивировано с оригинал на 21.01.2013. Получено 2009-06-14.
  16. ^ Бернетт, Марк (2004). "Глубокие дыры в безопасности". Безопасность. Получено 2009-06-14.
  17. ^ «USFM - маркеры единого стандартного формата». paratext.org.
  18. ^ «Величины и единицы - Часть 2: Математические знаки и символы для использования в естественных науках и технике». ISO 80000-2: 2009. Международная организация по стандартизации.
  19. ^ «Определение: пространство смежного класса». ProofWiki. Получено 1 февраля 2017.
  20. ^ «Целочисленное деление».
  21. ^ Итон, Джон В .; Дэвид Бейтман; Сорен Хауберг (февраль 2011 г.). «GNU Octave: интерактивный язык высокого уровня для численных вычислений» (PDF). Фонд свободного программного обеспечения. п. 145. Получено 7 октября 2012.
  22. ^ "Когда обратная косая черта не является обратной косой чертой?". Blogs.msdn.com. Получено 2013-06-16.
  23. ^ «RFC 1345». Tools.ietf.org. 1991-12-26. Получено 2013-06-16.

внешняя ссылка