Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Обратной косой черты \ является типографской маркой , используемой главным образом в вычислительных и является зеркальным отражением общего слэш / . Это иногда называют обходное , сильный удар , побег (от C / UNIX ), обратный слэш , выплескивание , downwhack , backslant , backwhack , удар , обратный уклон , и обращенно запятая . [1] [2] В Unicode и ASCIIон закодирован как U + 005C \ REVERSE SOLIDUS (92 в десятичной системе ).

История [ править ]

По состоянию на январь 2021 года редакторы Википедии не смогли найти ни происхождение этого персонажа, ни даже цели, для которых он был поставлен до 1960-х годов. Самая ранняя известная ссылка, найденная на сегодняшний день, - это бюллетень 1945 года от Teletype Corporation, в котором он указан как заменяемая часть для его перфоратора Уитстона . [3]

Боб Бемер добавил символ \ к набору символов ASCII [4] 18 сентября 1961 года в результате исследования частоты символов на языке программирования Algol . [5] В частности, \ был введен для того, чтобы логические операторы ALGOL ( и ) и ( или ) могли быть составлены в ASCII как / \ и \ / соответственно. [6] Эти операторы использовались для min и max в ранних версиях языка программирования C, поставляемого с Unix V6. [7] и V7 [8]

Использование [ править ]

Языки программирования [ править ]

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

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

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

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

В Visual BASIC (и некоторых других диалектах BASIC ) обратная косая черта используется как символ оператора для обозначения целочисленного деления . [11] Это округляется до нуля.

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

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

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

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

Имена файлов [ править ]

MS-DOS 2.0, выпущенная в 1983 году, скопировала иерархическую файловую систему из Unix и, таким образом, использовала (прямую) косую черту [15], но (возможно, по настоянию IBM [16] ) добавила обратную косую черту, позволяющую вводить пути в команде приглашение интерпретатора строки при сохранении совместимости с MS-DOS 1.0, где косая черта была индикатором параметра командной строки (ввод « DIR / W » давал «широкий» параметр команде « DIR », поэтому, если вы действительно хотел запустить программу под названием W внутри каталога под названием DIR ). За исключением COMMAND.COM ,все остальные части операционной системы принимают оба символа вpath , но в соответствии с соглашением 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] обратный косая черта используются для функций форматирования метки для редактирования переводов Библии .

Математика [ править ]

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

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

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

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

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

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

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

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

См. Также [ править ]

  • Косая черта (или "солидус"), /

Ссылки [ править ]

  1. ^ Словарь Маккуори (3-е издание)
  2. ^ Раймонд, Эрик С. "ASCII" .
  3. Бюллетень № 1025, выпуск 3 (июль 1945 г.). Системы телетайпной печати: части: Перфоратор Уитстона Teletype: WP3 / 1SS & / 1JJJ (для стандартной работы) -and- WPE161 / 1SS (для работы с преобразователем кода Бодо в код Морзе) и аксессуары . tty1025.pdf. Телетайп Корпорация. (номер детали) 110542 (\)
  4. ^ "Мини-биография Боба Бемера" . Thocp.net . Проверено 16 июня 2013 .
  5. ^ "Как ASCII получил свою обратную косую черту" Архивировано 19января2013 г. в Wayback Machine , Боб Бемер
  6. ^ Боб Бемер (2002-07-07). "Великая погоня за фигурными скобками" . Виньетки по компьютерной истории . Боб Бемер. Архивировано из оригинала на 2009-06-04 . Проверено 11 октября 2009 .
  7. ^ Исходный код компилятора C (1975)
  8. ^ Исходный код компилятора C (1979)
  9. ^ Препроцессор C
  10. ^ «3.1.1 Разделение длинных строк» . GNU make manual . Проверено 28 июля 2019 года .
  11. ^ «Арифметические операторы в Visual Basic» . Возможности языка Visual Basic: операторы и выражения . MSDN . Проверено 7 октября 2012 года .
  12. ^ "Пересмотренный отчет по алгоритмическому языку Алгола 68" . Acta Informatica . 5 (1–3): 1–236. Сентябрь 1973 г. doi : 10.1007 / BF00265077 . S2CID 2490556 . 
  13. ^ "Обзор пространств имен" .
  14. ^ О'Салливан, Стюарт и Goerzen, Real World Haskell , гл. 4: анонимные (лямбда) функции, стр.99
  15. ^ "Почему символ пути DOS" \ "?" . Blogs.msdn.com. 2005-06-24 . Проверено 16 июня 2013 .
  16. ^ Necasek Михал (24 мая 2019). «Почему Windows действительно использует обратную косую черту в качестве разделителя пути?» . OS / 2 Музей . Архивировано из оригинального 24 -го мая 2019 года . Проверено 28 мая 2019 .
  17. ^ "Метод Path.GetFullPath" . Библиотека классов .NET Framework . Microsoft. Архивировано 21 декабря 2008 года . Проверено 2 января 2009 .
  18. ^ "Когда Windows начала принимать косую черту в качестве разделителя пути?" . Bytes.com. Архивировано 6 февраля 2009 года . Проверено 2 января 2009 .
  19. Перейти ↑ Kaplan, Simone (2004). «Microsoft исследует изъян в ASP.NET» . DevSource, спонсируемый Microsoft . Ziff Davis Enterprise Holdings Inc. Архивировано из оригинала на 2013-01-21 . Проверено 14 июня 2009 .
  20. Перейти ↑ Burnett, Mark (2004). «Глубокие дыры в безопасности» . SecurityFocus . Проверено 14 июня 2009 .
  21. ^ «USFM - Маркеры унифицированного стандартного формата» . paratext.org .
  22. ^ «Величины и единицы - Часть 2: Математические знаки и символы, которые будут использоваться в естественных науках и технике» . ISO 80000-2: 2009 . Международная организация по стандартизации.
  23. ^ "Определение: Пространство смежного класса" . ProofWiki . Проверено 1 февраля 2017 года .
  24. ^ «Целочисленное деление» .
  25. ^ Итон, Джон В .; Дэвид Бейтман; Сорен Хауберг (февраль 2011 г.). «GNU Octave: интерактивный язык высокого уровня для численных вычислений» (PDF) . Фонд свободного программного обеспечения. п. 145 . Проверено 7 октября 2012 года .
  26. ^ "Когда обратная косая черта не является обратной?" . Blogs.msdn.com . Проверено 16 июня 2013 .
  27. ^ "RFC 1345" . Tools.ietf.org. 1991-12-26 . Проверено 16 июня 2013 .

Внешние ссылки [ править ]

  • Боб Бемер. «Как ASCII получил обратную косую черту» . Архивировано из оригинала на 2013-07-19.
  • Определение обратной косой черты от Linux Information Project (LINFO)