The backslash is a typographical mark used mainly in computing and mathematics. It is the mirror image of the common slash ('solidus'), . It is a relatively recent mark, first documented in the 1930s. It is sometimes called a hack, whack, escape (from C/UNIX), reverse slash, slosh, backslant, backwhack, bash, reverse slant, reverse solidus, and reversed virgule. Macquarie Dictionary (3rd edition)
In June 1960, IBM published an "Extended character set standard" that includes the symbol at 0x19. Referencing Computer Standards Collection, Archives Center, National Museum of American History, Smithsonian Institution, box 1. In September 1961, Bob Bemer (IBM) proposed to the X3.2 standards committee that , and be made part of the proposed standard, describing the backslash as a "reverse division operator" and cited its prior use by Teletype in telecommunications. In particular, he said, the was needed so that the ALGOL Boolean operators (logical conjunction) and (logical disjunction) could be composed using and respectively. The Committee adopted these changes into the draft American Standard (subsequently called ASCII) at its November 1961 meeting.
These operators were used for min and max in early versions of the C programming language supplied with Unix V6 and V7.
Regular expression languages used it the same way, changing subsequent literal characters into and vice versa. For instance searches for either '|' or 'b', the first bar is escaped and searched for, the second is not escaped and acts as an "or".
Outside quoted strings, the only common use of backslash is to ignore ("escape") a newline immediately after it. In this context it may be called a "continued line" as the current line continues into the next one. Some software replaces the backslash+newline with a space.
To support computers that lacked the backslash character, the C trigraph was added, which is equivalent to a backslash. Since this can escape the next character, which may itself be a , the primary modern use may be for code obfuscation. Support for trigraphs in C++ was removed in C++17, and support for them in C was removed in C23.
In Visual Basic (and some other BASIC dialects) the backslash is used as an operator symbol to indicate integer division. This rounds toward zero.
In APL is called Expand when used to insert fill elements into arrays, and Scan when used to produce prefix reduction (cumulative fold).
In PHP version 5.3 and higher, the backslash is used to indicate a namespace.
In Haskell, the backslash is used both to introduce special characters and to introduce lambda functions (since it is a reasonable approximation in ASCII of the Greek letter .O'Sullivan, Stewart, and Goerzen, Real World Haskell, ch. 4: anonymous (lambda) functions, p.99
The Microsoft Windows family of operating systems inherited the MS-DOS behavior and so still support either character – but individual Windows programs and sub-systems may, wrongly, only accept the backslash as a path delimiter, or may misinterpret a forward slash if it is used as such. Some programs will only accept forward slashes if the path is placed in Quotation mark. The failure of Microsoft's security features to recognize unexpected-direction slashes in local and Internet paths, while other parts of the operating system still act upon them, has led to some serious lapses in security. Resources that should not be available have been accessed with paths using particular mixes, such as .
In USFM, the backslash is used to mark format features for editing Bible translations.
In caret notation, represents the control character 0x1C, file separator. This is entirely a coincidence and has nothing to do with its use in file paths.
The backslash is also sometimes used to denote the right coset space.
Especially when describing computer algorithms, it is common to define backslash so that is equivalent to . This is integer division that rounds down, not towards zero.
In MATLAB and GNU Octave the backslash is used for left Matrix division, while the (forward) slash is for right matrix divide.
Several other ISO 646 versions also replace backslash with other characters, including ₩ (Korean), Ö (German, Swedish), Ø (Danish, Norwegian), ç (French) and Ñ (Spanish), leading to similar problems, though with less lasting impact compared to the yen sign. Although the conflict is resolved by unique code point allocations in Unicode, the longevity of means that (although diminishing) the issue continues to persist.
In 1991, RFC 1345 suggested as a unique two-character mnemonic that might be used in internet standards as "a practical way of identifying this character, without reference to a coded character set and its code in that coded character set". Consequently, this style may be seen in early Internet Engineering Task Force documents.
|
|