Backslash
\ | |
---|---|
Backslash | |
ImUnicode | U+005c \ Umgekehrt Solidus ( & bsol;) |
Verwandt | |
Siehe auch | U+29f5 ⧵ Umgekehrter Solidus -Operator U+29f9 ⧹ Big Reverse Solidus |
Das Backslash \ ist eine typografische Marke, die hauptsächlich in verwendet wird Computer und Mathematik. Es ist der Spiegelbild des gemeinsamen Schrägstrich /. Es ist eine relativ jüngste Marke, die erstmals in den 1930er Jahren dokumentiert wurde.
Geschichte
Ab November 2021[aktualisieren]Die Bemühungen, entweder den Ursprung dieses Charakters oder ihren Zweck vor den 1960er Jahren zu identifizieren, waren nicht erfolgreich. Die früheste bekannte Referenz, die bisher gefunden wurde, ist ein Wartungshandbuch von 1937 von der Teletype Corporation Mit einem Foto, das die Tastatur seiner Tastatur zeigt Kleinschmidt Keyboard Perforator WPE-3 mit dem Weizensteinsystem.[1][2] Das Symbol wurde als "diagonaler Schlüssel" bezeichnet,[3] und gegeben einen (nicht standardmäßigen) Morse-Code von ▄ ▄▄▄ ▄ ▄ ▄▄▄ ▄▄▄.[4] (Dies ist der Code für das Slash -Symbol, das rückwärts eingegeben wurde.)
Im Juni 1960, IBM veröffentlichte einen "erweiterten Charakter -Set -Standard", der das Symbol unter 0x19 enthält.[2] Im September 1961, Bob Bemer (IBM) vorgeschlagen gegenüber dem X3.2 Standards Ausschuss das [
, ]
und \
zu einem Teil des vorgeschlagenen Standards hergestellt werden, der den Backslash als "Reverse Division Operator" beschreibt und seine vorherige Verwendung durch Teletype in Telekommunikation zitierte. Insbesondere, sagte er, die \ wurde so benötigt, dass die Algol Boolesche Betreiber ∧
(logische Konjunktion) und ∨
(logische Disjunktion) könnte mit Verwendung komponiert werden /\ und \/ beziehungsweise. Das Komitee nahm diese Änderungen in den Draft American Standard an (anschließend genannt ASCII) auf seinem Treffen im November 1961.[2]
Diese Betreiber wurden in frühen Versionen der für Min und Max verwendet C Programmiersprache Lieferung mit UNIX V6.[5] und v7 [6]
Das Teletyp -Modell 33 (1963) scheint die erste im Handel erhältliche Einheit zu sein, die den Charakter als Standard -Keytop zum Verkauf in einigen Märkten hat. Dieses Modell hat einen vollständigen ASCII -Zeichensatz.
Verwendungszweck
Programmiersprachen
In vielen Programmiersprachen wie zum Beispiel C, Perl, Php, Python, Unix Skriptsprachen und viele Dateiformate wie z. JSONDer Backslash wird als verwendet Escape-Zeichen, um anzuzeigen, dass das folgende Charakter speziell behandelt werden sollte (wenn er sonst normal behandelt würde) oder normalerweise (wenn es sonst besonders behandelt würde). Zum Beispiel in einem c Saitenliteral die Sequenz \n
produziert a Neue Zeile Byte statt eines 'n' und der Sequenz \"
erzeugt ein tatsächliches Doppelzitat und nicht die besondere Bedeutung des Doppelzitats, das die Zeichenfolge beendet. Ein tatsächlicher Backslash wird von einem doppelten Backslash erzeugt \\
.
Regulären Ausdruck Sprachen verwendeten es auf die gleiche Weise, wobei nachfolgende buchstäbliche Charaktere sich in die Nutzungsschriften ändern Metacharaccters und umgekehrt. Zum Beispiel \ || b Suche nach beiden '|' ' oder 'B', die erste Balken wird entkommen und gesucht, der zweite ist nicht entkommen und wirkt als "oder".
Außerhalb zitierter Zeichenfolgen besteht die einzige häufige Verwendung von Backslash darin, eine neue Linie unmittelbar danach zu ignorieren ("Escape"). In diesem Zusammenhang kann es als "fortgesetzte Linie" bezeichnet werden[7] Während die aktuelle Linie in die nächste weitergeht. Einige Software ersetzt die Backslash+Newline durch einen Platz.[8]
Zu unterstützen Computers Das fehlte der Backslash -Charakter, der C Trigraph ??/
Wurde hinzugefügt, was einem Backslash entspricht. Da dies dem nächsten Charakter entkommen kann, was selbst ein sein kann ?
die primäre moderne Verwendung kann für sein Code Verschleierung. Die Unterstützung für Trigraphen wurde entfernt C ++ 17.
Im Visual Basic (und andere andere BASIC Dialekte) Der Backslash wird als Operatorsymbol zum Zeugnis verwendet ganze Zahl Aufteilung.[9] Dies rundet auf Null.
Das Algol 68 Programmiersprache verwendet das "" "als seine Exponentsymbol für Dezimaler. Algol 68 hat die Auswahl von 4 Dezimal -Exponentensymbole: e, e, \ oder 10. Beispiele: 6.0221415e23, 6.0221415e23, 6.0221415 \ 23 oder 6.02214151023.[10]
Im Apl \ wird genannt Erweitern Wenn verwendet wird, um Füllelemente in Arrays einzufügen, und Scan bei Verwendung zur Erzeugung von Präfixreduktion (kumulative Faltung).
Im Php Version 5.3 und höher, der Backslash wird verwendet, um a anzuzeigen Namespace.[11]
Im HaskellDer Backslash wird verwendet, um Sonderfiguren einzuführen und vorzustellen Lambda Funktionen (Da es sich um eine vernünftige Annäherung an ASCII des griechischen Buchstabens handelt Lambda, λ).[12]
Dateinamen
MS-DOS 2.0, veröffentlicht 1983, kopierte das hierarchische Dateisystem von Unix und verwendete damit die (vorwärts) Schrägstrich als Verzeichnisabscheider.[13] Möglicherweise auf dem Bestehen von IBM,[14] Microsoft hat den Backslash hinzugefügt, damit die Pfade an der Befehlszeile-Interpreter-Eingabeaufforderung eingegeben werden können, während die Kompatibilität mit MS-DOS 1.0 beibehält (in denen / war der Befehlszeilenoptionsindikator. Typisierung "Dir/w"gab der" breiten "Option für die"Dir"Befehl, daher wurde eine andere Methode benötigt, wenn man tatsächlich ein Programm mit dem Namen namens ausführen wollte W In einem Verzeichnis genannt Dir). Ausser für Command.com, alle anderen Teile des Betriebssystems akzeptieren beide Zeichen in a Weg, aber die Microsoft -Konvent Apis das Rückkehr Wege verwenden Backslashes.[15] In einigen Versionen kann das Optionscharakter von geändert werden / zu - über Switchar, damit command.com erhalten bleibt / im Befehlsnamen.
Das Microsoft Windows Familie von Betriebssystemen erbte das MS-DOS . Einige Programme akzeptieren nur Vorwärts -Schrägstriche, wenn der Pfad eingegeben wird Anführungszeichen.[16] Der Versäumnis der Sicherheitsfunktionen von Microsoft, unerwartete Schrägstriche auf lokalen und Internetpfaden zu erkennen, während andere Teile des Betriebssystems immer noch auf sie reagieren, hat zu einigen schwerwiegenden Sicherheitsfaktoren geführt. Ressourcen, auf die nicht verfügbar sein sollte, wurden mit Pfaden mit bestimmten Mischungen wie z. http://example.net/secure\Private.aspx.[17][18]
Text Markup
Der Backslash wird in der verwendet Tex Artensett System und in RTF Dateien, um Markup -Tags zu beginnen.
Im USFM,[19] Der Backslash wird verwendet, um Formatfunktionen für die Bearbeitung zu markieren Bibelübersetzungen.
Im Pflege Notation, ^\
repräsentiert das Steuerzeichen 0x1c, Dateiabscheider.[20] Dies ist völlig ein Zufall und hat nichts mit seiner Verwendung in Dateipfaden zu tun.
Mathematik
Ein backglashähnliches Symbol wird für das verwendet Unterschied setzen.[21]
Der Backslash wird manchmal auch verwendet, um das Recht zu bezeichnen Coset Platz.[22]
Besonders bei der Beschreibung von Computeralgorithmen ist es üblich, Backslash so zu definieren, dass das so ist a\b ist äquivalent zu ⌊a/b⌋. Dies ist eine ganzzahlige Division, die nicht in Richtung Null abrundet. Im Wolfram Mathematica Der Backslash wird auf diese Weise für die Ganzzahl -Kluft verwendet.[23]
Im Matlab und Gnu octave Der Backslash wird für links verwendet Matrixteilung, während der (vorwärts) Schrägstrich für die rechte Matrix -Kluft ist.[24]
Verwirrung mit ¥ und anderen Charakteren
In dem japanisch Codierungen ISO 646-JP (ein 7-Bit-Code basierend auf ASCII), Jis x 0201 (ein 8-Bit-Code) und Schicht jis (Eine Multi-Byte-Kodierung, die 8-Bit für ASCII ist), die Codepunkt 0x5c, der für den Backslash in ASCII verwendet wird, wird stattdessen als a Yen Zeichen ¥. Aufgrund der umfassenden Verwendung des 005C -Codepunkts, um das Yen -Zeichen darzustellen, auch heute noch einige Schriftarten wie z. Frau Mincho Rendern Sie den Backslash -Charakter als ¥, so dass die Zeichen bei Unicode Codepunkte 00A5 (¥) und 005C (\) beide rendern als ¥ Wenn diese Schriftarten ausgewählt werden. Computerprogramme behandeln 005C immer noch als Backslash in diesen Umgebungen, zeigen es jedoch als Yen-Zeichen an, was zu Verwirrung führt, insbesondere bei MS-DOS-Dateinamen.[25]
Einige andere ISO 646 Versionen ersetzen auch Backslash durch andere Charaktere, einschließlich ₩ (Koreanisch), Ö (Deutsch, Schwedisch), Ø (Dänisch, norwegisch), ç (Französisch) und Ñ (Spanisch), was zu ähnlichen Problemen führt, allerdings mit weniger dauerhaften Auswirkungen im Vergleich zum Yen -Zeichen.
Im Jahr 1991 schlug RFC 1345 vor //
Als einzigartiger Zwei-Charakter mnemonisch Dies könnte in Internet -Standards als "praktische Methode zur Identifizierung von [dieses] Zeichen, ohne Bezug auf einen codierten Zeichensatz und seinen Code in [diesem] codierten Zeichensatz" verwendet werden.[26] Folglich kann dieser Stil frühzeitig gesehen werden Internettechnik-Arbeitsgruppe Unterlagen.
Siehe auch
- Schrägstrich (oder 'Solidus'), /
Verweise
- ^ Bulletin 125, Ausgabe 2: Beschreibung und Anpassungen des Teletyps Weizenstein -Perforator (PDF). Teletype Corporation. Mai 1938 [August 1937]. p. II-via navy-radio.com.
- ^ a b c Fischer, Eric (20. Juni 2000). "Die Entwicklung von Charaktercodes, 1874–1968". S. 14 (Tabelle 35), 15. Citeseerx 10.1.1.96.678. (Unveröffentlichtes Papier, das an IEEE eingereicht wurde, bessere Quelle benötigt.)
- ^ Bulletin 188: Teletyp Automatischer Perforator -Set (PDF). Teletype Corporation. August 1945-via navy-radio.com.
- ^ Bulletin 1025, Ausgabe 3: Teile für Teletype Weizenstein -Perforator (PDF). Teletype Corporation. Juli 1945-via navy-radio.com.
- ^ "C Compiler Quelle". BitSavers.org. 1975.
- ^ "C Compiler Quelle". Mit.edu. 1979.
- ^ "Der C -Präprozessor". gnu.org.
- ^ "3.1.1 Lange Zeilen spalten". GNU machen Handbuch. Abgerufen 28. Juli, 2019.
- ^ "Arithmetische Operatoren in Visual Basic". Visuelle Grundsprachenfunktionen: Operatoren und Ausdrücke. Msdn. Abgerufen 7. Oktober 2012.
- ^ "Überarbeiteter Bericht über das algorithmische Sprachalgol 68". Acta Informatica. 5 (1–3): 1–236. September 1973. doi:10.1007/bf00265077. S2CID 2490556.
- ^ "Namespaces -Übersicht". php.net.
- ^ O'Sullivan, Stewart und Goerzen, Real World Haskell, CH. 4: Anonymous (Lambda) Funktionen, S. 99
- ^ "Warum ist der DOS -Pfadzeichen" "?". Blogs.msdn.com. 2005-06-24. Abgerufen 2013-06-16.
- ^ Necasek, Michal (24. Mai 2019). "Warum verwendet Windows wirklich Backslash als Pfadabscheider?". OS/2 Museum. Archiviert von das Original am 24. Mai 2019. Abgerufen 28. Mai 2019.
- ^ "Path.GetfullPath -Methode". .NET Framework -Klassenbibliothek. Microsoft. Archiviert Aus dem Original am 21. Dezember 2008. Abgerufen 2009-01-02.
- ^ "Wann hat Windows angefangen, vorwärts als Pfadabscheider vorwärts zu senken?". Bytes.com. Archiviert Aus dem Original am 6. Februar 2009. Abgerufen 2009-01-02.
- ^ Kaplan, Simone (2004). "Microsoft -Sonden Fehler in ASP.NET". DevSource, gesponsert von Microsoft. Ziff Davis Enterprise Holdings Inc. archiviert aus das Original 2013-01-21. Abgerufen 2009-06-14.
- ^ Burnett, Mark (2004). "Sicherheitslöcher, die tief laufen". SecurityFocus. Abgerufen 2009-06-14.
- ^ "USFM - Unified Standard -Formatmarker". paratext.org. 18. April 2017.
- ^ "C0 Control Charaktere Set, 1987". pd.infn.it.
- ^ "Mengen und Einheiten - Teil 2: Mathematische Zeichen und Symbole, die in den Naturwissenschaften und -technologie verwendet werden sollen". ISO 80000-2: 2009. Internationale Standardisierungsorganisation.
- ^ "Definition: Coset Space". Proofwiki. Abgerufen 1. Februar 2017.
- ^ "Ganzzahl Division". mathworld.wolfram.com.
- ^ Eaton, John W.; David Bateman; Søren Hauberg (Februar 2011). "GNU Octave: Eine interaktive Sprache auf hoher Ebene für numerische Berechnungen" (PDF). Kostenlose Software -Stiftung. p. 145. Abgerufen 7. Oktober 2012.
- ^ "Wann ist ein Backslash kein Backslash?". Blogs.msdn.com. Abgerufen 2013-06-16.
- ^ Simonsen, Keld (1991-12-26). "RFC 1345". Tools.ietf.org. Abgerufen 2013-06-16.
Externe Links
- Bob Bemer. "Wie ASCII seinen Rückgang bekam". Archiviert von das Original 2013-07-19.