обратная косая черта
\ | |
---|---|
обратная косая черта | |
В Юникоде | U+005C \ ОБРАТНЫЙ СОЛИДУС ( &бсол; ) |
Связанный | |
См. также | U + 29F5 ⧵ ОПЕРАТОР ОБРАТНОГО СОЛИДУСА U + 29F9 ⧹ БОЛЬШОЙ ОБРАТНЫЙ СОЛИДУС |
\ Обратная косая черта — это знак, используемый в основном в вычислительной технике и математике . Это зеркальное отражение обычной косой черты / . Это сравнительно недавний знак, впервые задокументированный в 1930-х годах. Иногда его называют hack , Whack , escape (из C / UNIX ), обратная косая черта , slosh , downwhack , backslant , backwhack , bash , обратный наклон , обратный солидус и перевернутая косая черта . [1] [2]
История [ править ]


По состоянию на ноябрь 2022 г. [update], попытки определить происхождение этого персонажа или его цель до 1960-х годов не увенчались успехом. Самая ранняя известная ссылка, найденная на сегодняшний день, - это руководство по техническому обслуживанию от Teletype Corporation 1937 года с фотографией, показывающей клавиатуру ее перфоратора клавиатуры Kleinschmidt WPE-3, использующую систему Уитстона . [3] [4] Символ называли «диагональным ключом». [5] и задан (нестандартный) Морзе код ▄ ▄▄▄ ▄ ▄ ▄▄▄ . [6] [а]
В июне 1960 года IBM опубликовала «Стандарт расширенного набора символов», который включает символ по адресу 0x19. [4] В сентябре 1961 года Боб Бемер (IBM) предложил комитету стандартизации X3.2 по [
, ]
и \
сделать частью предлагаемого стандарта, описывая обратную косую черту как «оператора обратного деления» и ссылаясь на ее ранее использовавшуюся Teletype в телекоммуникациях. В частности, по его словам, \ был нужен для того, чтобы логические операторы АЛГОЛА ∧
( логическое соединение ) и ∨
( логическая дизъюнкция ) может быть составлена с использованием /\ и \/ соответственно. Комитет принял эти изменения в проект американского стандарта (впоследствии названного ASCII ) на своем заседании в ноябре 1961 года. [4]
Эти операторы использовались для min и max в ранних версиях языка программирования C, поставляемого с Unix V6. [7] и В7. [8]
Использование [ править ]
Языки программирования [ править ]
Во многих языках программирования, таких как C , Perl , PHP , Python , языках сценариев Unix , а также во многих форматах файлов, таких как JSON , обратная косая черта используется в качестве escape-символа , чтобы указать, что символ, следующий за ним, должен обрабатываться особым образом (если он будет в противном случае к нему следует относиться буквально) или буквально (если в противном случае к нему следует относиться особым образом). Например, внутри строкового литерала C последовательность \n
создает байт новой строки вместо 'n', и последовательность \"
создает фактическую двойную кавычку, а не особое значение двойной кавычки, завершающей строку. Фактическая обратная косая черта создается двойной обратной косой чертой. \\
.
Языки регулярных выражений использовали его таким же образом, заменяя последующие литеральные символы метасимволами и наоборот. Например \||b ищет либо '|' или «b», первая полоса экранируется и ищется, вторая не экранируется и действует как «или».
За пределами строк в кавычках единственное распространенное использование обратной косой черты — это игнорирование («экранирование») новой строки сразу после нее. В этом контексте это можно назвать «непрерывной линией». [9] поскольку текущая строка переходит в следующую. Некоторые программы заменяют обратную косую черту+новую строку пробелом. [10]
Для поддержки компьютеров , в которых отсутствовала обратная косая черта, триграф C ??/
был добавлен, что эквивалентно обратной косой черте. Поскольку это может избежать следующего символа, который сам может быть ?
, основным современным применением может быть запутывание кода . Поддержка триграфов в C++ была удалена в C++17 , а поддержку их в C планируется удалить в C23 .
В Visual Basic (и некоторых других диалектах BASIC ) обратная косая черта используется в качестве символа оператора для обозначения целочисленного деления . [11] Это округление к нулю.
Язык программирования АЛГОЛ 68 использует «\» в качестве символа десятичной экспоненты . В АЛГОЛе 68 есть выбор из 4 символов десятичной экспоненты: e, E, \ или 10 . Примеры: 6.0221415e23 , 6.0221415E23 , 6.0221415\23 или 6.0221415 10 23 . [12]
В АПЛ \ называется Expand , когда используется для вставки элементов заполнения в массивы, и Scan , когда используется для уменьшения префикса (кумулятивного сгиба).
В PHP версии 5.3 и выше обратная косая черта используется для обозначения пространства имен . [13]
В Haskell обратная косая черта используется как для введения специальных символов, так и для введения лямбда-функций (поскольку это разумное приближение в ASCII греческой буквы лямбда, λ) . [14]
Имена файлов [ править ]
MS-DOS 2.0, выпущенная в 1983 году, скопировала идею иерархической файловой системы из Unix (прямую) и поэтому использовала косую черту в качестве разделителя каталогов. [15] Возможно, по настоянию IBM, [16] [17] Microsoft добавила обратную косую черту, чтобы разрешить ввод путей в командной строке интерпретатора, сохранив при этом совместимость с MS-DOS 1.0 (в которой / был индикатором параметра командной строки. Ввод " DIR/W "предоставил "широкую" опцию " 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 для начала тегов разметки.
В УСФМ , [22] обратная косая черта используется для обозначения возможностей формата для редактирования переводов Библии .
В каретных обозначениях ^\
представляет управляющий символ 0x1C, разделитель файлов . [23] Это полностью совпадение и не имеет ничего общего с его использованием в путях к файлам.
Математика [ править ]
используется символ, похожий на обратную косую черту Для обозначения установленной разницы . [24]
Обратная косая черта также иногда используется для обозначения правого смежного класса . [25]
Особенно при описании компьютерных алгоритмов принято определять обратную косую черту так, чтобы a \ b эквивалентно ⌊ a / b ⌋ . [ нужна ссылка ] Это целочисленное деление с округлением в меньшую сторону, а не в сторону нуля. В Wolfram Mathematica обратная косая черта используется для целочисленного деления. [26]
В MATLAB и GNU Octave обратная косая черта используется для деления матрицы слева , а косая черта (прямая) — для деления матрицы справа. [27]
Путаница с ¥ и другими символами [ править ]
В японских кодировках ISO 646-JP (7-битный код на основе ASCII ), JIS X 0201 (8-битный код) и Shift JIS (многобайтовая кодировка, 8-битная для ASCII), код точка 0x5C, которая будет использоваться для обратной косой черты в ASCII, вместо этого отображается как знак иены ¥ . Из-за широкого использования кодовой точки 005C для обозначения знака иены даже сегодня некоторые шрифты, такие как MS Mincho, отображают символ обратной косой черты как ¥, поэтому символы в кодовых точках Unicode 00A5 (¥) и 005C (\) оба отображаются как ¥, когда выбраны эти шрифты. Компьютерные программы в этих средах по-прежнему воспринимают 005C как обратную косую черту, но отображают ее как знак иены, что вызывает путаницу, особенно в именах файлов MS-DOS. [28]
В некоторых других версиях ISO 646 обратная косая черта также заменяется другими символами, включая ₩ (корейский), Ö (немецкий, шведский), Ø (датский, норвежский), ç (французский) и Ñ (испанский), что приводит к аналогичным проблемам, хотя и с меньшими затратами. длительное воздействие по сравнению со знаком иены.
В 1991 году в RFC 1345 было предложено //
как уникальная двухсимвольная мнемоника , которая может использоваться в интернет-стандартах как «практический способ идентификации [этого] символа без ссылки на кодированный набор символов и его код в [этом] кодированном наборе символов». [29] Следовательно, этот стиль можно увидеть в ранних документах Internet Engineering Task Force .
Примечания [ править ]
- ^ Это обратный код косой черты ( ▄▄▄ ▄ ▄ ▄▄▄ ▄ ).
Ссылки [ править ]
- ^ Словарь Macquarie (3-е издание)
- ^ Рэймонд, Эрик С. «ASCII» . Файл жаргона . Архивировано из оригинала 18 января 2019 г. Проверено 28 июля 2007 г.
- ^ Бюллетень 125, выпуск 2: Описание и регулировка перфоратора Teletype Wheatstone (PDF) . Телетайп Корпорация. Май 1938 г. [август 1937 г.]. п. ii. Архивировано (PDF) из оригинала 12 февраля 2021 г. Получено 15 марта 2021 г. - через navy-radio.com.
- ↑ Перейти обратно: Перейти обратно: а б с Фишер, Эрик (20 июня 2000 г.). «Эволюция кодировок символов, 1874–1968» (PDF) . С. 14–15 (табл. 35). Архивировано (PDF) из оригинала 30 ноября 2022 года . Проверено 30 ноября 2022 г. Ссылки Бемер, RW; Бухгольц, В. (1 июня 1960 г.). Стандарт расширенного набора символов (Технический отчет). Лаборатория разработки продукции, Отдел систем обработки данных, Международная корпорация Business Machines. ТР 00.721. Коллекция компьютерных стандартов, Архивный центр, Национальный музей американской истории, Смитсоновский институт, вставка 1.
- ^ «Бюллетень 188: Набор автоматических перфораторов телетайпа» (PDF) . Телетайп Корпорация. Август 1945 г. с. 6. Архивировано (PDF) из оригинала 19 декабря 2021 г. Получено 19 декабря 2021 г. - через navy-radio.com.
- ^ «Бюллетень 1025, выпуск 3: Детали для перфоратора Teletype Wheatstone» (PDF) . Телетайп Корпорация. Июль 1945 г. с. 9. Архивировано (PDF) из оригинала 19 декабря 2021 г. Получено 19 декабря 2021 г. - через navy-radio.com.
- ^ «Исходный код компилятора C» . bitsavers.org . 1975. Архивировано из оригинала 15 августа 2011 г. Проверено 11 октября 2009 г.
- ^ «Исходный код компилятора C» . mit.edu . 1979. Архивировано из оригинала 3 декабря 2013 г. Проверено 11 октября 2009 г.
- ^ «Препроцессор Си» . GNU.org . Архивировано из оригинала 3 августа 2021 г. Проверено 4 января 2021 г.
- ^ «3.1.1 Разделение длинных строк» . GNU сделать руководство . Архивировано из оригинала 5 июня 2018 года . Проверено 28 июля 2019 г.
- ^ «Арифметические операторы в Visual Basic» . Возможности языка Visual Basic: операторы и выражения . MSDN. 10 июля 2012 года. Архивировано из оригинала 17 сентября 2012 года . Проверено 7 октября 2012 г.
- ^ «Пересмотренный отчет об алгоритмическом языке Алгол 68» . Акта Информатика . 5 (1–3): 1–236. Сентябрь 1973 г. doi : 10.1007/BF00265077 . S2CID 2490556 . Архивировано из оригинала 26 июля 2020 г. Проверено 10 февраля 2020 г.
- ^ «Обзор пространств имен» . php.net . Архивировано из оригинала 16 октября 2012 г. Проверено 10 октября 2012 г.
- ^ О'Салливан, Стюарт и Герцен, Real World Haskell , гл. 4: анонимные (лямбда) функции, стр.99
- ^ «Почему путь DOS имеет символ «\"?» . Блоги.msdn.com. 24 июня 2005 г. Архивировано из оригинала 19 ноября 2022 г. Проверено 16 июня 2013 г.
- ^ Некасек, Михал (24 мая 2019 г.). «Почему Windows действительно использует обратную косую черту в качестве разделителя путей?» . Музей OS/2 . Архивировано из оригинала 24 мая 2019 года . Проверено 28 мая 2019 г.
- ^ Ларсон, Крис; Иммервар, Дон (1983), Исходный код MS-DOS v1.25 и v2.0, README.txt , Microsoft, заархивировано из оригинала 21 ноября 2022 г. , получено 21 ноября 2022 г. Руководство
пользователя содержит некоторые существенные ошибки. Большинство из них связано с изменениями, внесенными в последнюю минуту для достижения большей степени совместимости с реализацией MS-DOS от IBM (PC DOS). Это включает использование «\» вместо «/» в качестве разделителя пути и «/» вместо «-» в качестве символа переключения. Для транспортировки пакетных файлов между компьютерами Microsoft рекомендует использовать на рынке США символы «\» и «/» соответственно. [...] Мы приносим извинения за любые неудобства, которые эти изменения могли причинить вашим сотрудникам технических изданий.
- ^ «Метод Path.GetFullPath» . Библиотека классов .NET Framework . Майкрософт. Архивировано из оригинала 21 декабря 2008 года . Проверено 2 января 2009 г.
- ^ «Когда Windows начала принимать косую черту в качестве разделителя путей?» . Байтс.com. Архивировано из оригинала 6 февраля 2009 года . Проверено 2 января 2009 г.
- ^ Каплан, Симона (2004). «Microsoft обнаруживает ошибку в ASP.NET» . DevSource, спонсируемый Microsoft . Ziff Davis Enterprise Holdings Inc. Архивировано из оригинала 21 января 2013 г. Проверено 14 июня 2009 г.
- ^ Бернетт, Марк (2004). «Глубокие дыры в безопасности» . БезопасностьФокус. Архивировано из оригинала 2 февраля 2021 г. Проверено 14 июня 2009 г.
- ^ «USFM — маркеры унифицированного стандартного формата» . Сайт paratext.org . 18 апреля 2017 г. Архивировано из оригинала 13 августа 2020 г. . Проверено 30 июня 2013 г.
- ^ «Набор управляющих символов C0, 1987» . pd.infn.it. Архивировано из оригинала 06 сентября 2019 г. Проверено 14 марта 2021 г.
- ^ «Количества и единицы. Часть 2: Математические знаки и символы, используемые в естественных науках и технике» . ИСО 80000-2:2009 . Международная организация по стандартизации. 15 апреля 2008 г. Архивировано из оригинала 26 марта 2014 г. Проверено 7 октября 2012 г.
- ^ «Определение: смежное пространство» . ДоказательствоВики. Архивировано из оригинала 26 февраля 2021 года . Проверено 1 февраля 2017 г.
- ^ «Целое деление» . mathworld.wolfram.com . Архивировано из оригинала 21 февраля 2020 г. Проверено 10 марта 2020 г.
- ^ Итон, Джон В.; Дэвид Бейтман; Сорен Хауберг (февраль 2011 г.). «GNU Octave: интерактивный язык высокого уровня для числовых вычислений» (PDF) . Фонд свободного программного обеспечения. п. 145. Архивировано (PDF) из оригинала 24 октября 2012 года . Проверено 7 октября 2012 г.
- ^ «Когда обратная косая черта не является обратной косой чертой?» . Блоги.msdn.com. Архивировано из оригинала 23 марта 2016 г. Проверено 16 июня 2013 г.
- ^ Симонсен, Келд (26 декабря 1991 г.). «РФК 1345» . Tools.ietf.org. Архивировано из оригинала 13 июня 2016 г. Проверено 16 июня 2013 г.
Внешние ссылки [ править ]
- Боб Бемер. «Как ASCII получил обратную косую черту» . Архивировано из оригинала 19 июля 2013 г.