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