Кіріспе
Типографиялық белгі (\)
Кері сызық – негізінен есептеу және математикада қолданылатын белгі. Ол әдеттегі сызықтың кері бейнесі болып табылады. Бұл белгі салыстырмалы түрде жақында пайда болған, алғаш рет 1930 жылдары тіркелген. Оны кейде хак, whack, escape (C/UNIX-тен), кері слэш, slosh, downwhack, backslant, backwhack, bash, кері слэнт, кері солидус және кері virgule деп те атайды.
Тарих
2022 жылдан бастап, бұл таңбаның қандай себеппен пайда болғанын немесе 1960 жылға дейінгі мақсатын анықтауға жасалған барлық әрекеттер сәтсіз аяқталды. Бүгінгі күнге дейін табылған ең ерте дерек – 1937 жылғы Teletype Corporation компаниясының техникалық қызмет көрсету жөніндегі нұсқаулығындағы сурет, онда олардың Kleinschmidt перфораторлы WPE 3 перфораторының Wheatstone жүйесімен жұмыс істейтін пернетақтасы көрсетілген. Ал, 1960 жылдың маусым айында IBM компаниясы 0x19 кодындағы символдарды қамтитын "Кейінгі таңбалар жинағы стандартын" жариялады. 1961 жылдың қыркүйегінде Боб Бемер (IBM) X3.2 стандарттар комитетіне және символдарының ұсынылып жатқан стандарттың бөлігі болуын ұсынды, сонымен қатар кері сызықты "кері бөлу операторы" деп сипаттап, Teletype компаниясының телекоммуникациядағы бұрынғы қолданысын атап өтті. Оның сөзіне сәйкес, бұл символ ALGOL логикалық операторларын (логикалық қосылыс) және (логикалық ажырату) тиісінше және символдары арқылы құру үшін қажет болды. Комитет 1961 жылдың қараша айында өткен мәжілісінде осы өзгерістерді американдық стандарттың жобасына қабылдады (кейін ASCII деп аталды) және V7.
In June 1960, IBM published an "Extended character set standard" that includes the symbol at 0x19. 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. and V7.
Бағдарламалау тілдері
Көптеген бағдарламалау тілдерінде, мысалы C, Perl, PHP, Python, Unix сценарий тілдерінде, сондай-ақ JSON сияқты көптеген файл форматтарында кері сызық қашу таңбасы ретінде қолданылады, одан кейінгі таңбаға ерекше қарау керектігін (әйтпесе әдеттегідей қарастырылса) немесе әдеттегідей (әйтпесе ерекше қарастырылса) көрсету үшін. Мысалы, C тізбегі мәтінінде `\n` жаңа жол байтын шығарады, ал `\"` нақты қос тырнақты шығарады, қос тырнақтың тізбекті аяқтау мағынасын жоққа шығарады. Нақты кері сызық екі кері сызық `\\` арқылы шығарылады. Тұрақты өрнектер тілдері де осылай қолданады, келесі әріптерді метасимволдарға және керісінше өзгертеді. Мысалы, `\|` немесе `\b` іздегенде, бірінші кері сызықтан кейінгі `|` ізделеді, ал екінші `b` "немесе" операторы ретінде әрекет етеді. Тырнақшасыз тізбектерде кері сызықтың жалғыз кең таралған қолданылуы – жаңа жолды бірден кейін елемеу ("қашу"). Бұл жағдайда оны "жалғасқан жол" деп атауға болады, себебі ағымдағы жол келесі жолға жалғасады. Кейбір бағдарламалық құралдар кері сызық+жаңа жолды бос орынмен алмастырады. Кері сызық таңбасы жоқ компьютерлерді қолдау үшін C триграфы `??\` қосылды, ол кері сызыққа тең. Бұл келесі таңбадан қашуға мүмкіндік береді, ол өзі де `\` болуы мүмкін, сондықтан қазіргі замандағы негізгі қолданысы кодты жасыру болуы мүмкін. C++-тағы триграфтарды қолдау C++17-де алынып тасталды, ал C-дегі оларды қолдау C23-те алынып тастау жоспарлануда. Visual Basic-те (және басқа да BASIC диалектілерінде) кері сызық бүтін санды бөлуді көрсету үшін оператор символы ретінде қолданылады. Бұл нөлге қарай дөңгелектеледі. ALGOL 68 бағдарламалау тілі `\` символын ондық көрсеткіш символы ретінде қолданады. ALGOL 68-де 4 ондық көрсеткіш символы бар: e, E, \, немесе 10. Мысалдар: `1.23e+05`, `1.23E-05`, `1.23\+05` немесе `1.2310+05`. APL-де `\ ` масситке толтыру элементтерін енгізу үшін пайдаланылғанда Expand деп аталады, ал префикстік азайту үшін (жинақтаушы бүктеу) пайдаланылғанда Scan деп аталады. PHP 5.3 және одан жоғары нұсқаларында кері сызық кеңістік атауын көрсету үшін қолданылады. Haskell-де кері сызық арнайы таңбаларды және лямбда функцияларын енгізу үшін қолданылады (өйткені бұл грек әрпі лямбда, λ-ның ASCII-дегі ұқсас бейнесі болып табылады).
Regular expression languages used it the same way, changing subsequent literal characters into metacharacters 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 is planned to be 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. The ALGOL 68 programming language uses the "\" as its Decimal Exponent Symbol. ALGOL 68 has the choice of 4 Decimal Exponent Symbols: e, E, \, or 10. Examples: , , or
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 lambda, λ).
Файл атаулары
MS DOS 2.0, 1983 жылы шығарылған, Unix-тен иерархиялық файлдық жүйенің идеясын көшіріп алып, (алға) слэшті каталогты бөлуші ретінде пайдаланды. Мүмкін, IBM-нің талабы бойынша Microsoft, командалық жол интерпретаторында жолдарды теруге мүмкіндік беру үшін кері слэшті қосты, сонымен бірге MS DOS 1.0-мен үйлесімділікті сақтап қалды (онда бұл командалық жол опциясының белгісі болды. "" деп теру "" командасына "кеңейтілген" опцияны берді, сондықтан егер біреу шын мәнінде аталған каталогтың ішіндегі бағдарламаны іске қосуды қаласа, басқа әдіс қажет болды). COMMAND.COM-нан басқа, операциялық жүйенің барлық бөліктері жолдағы екі белгіні де қабылдайды, бірақ Microsoft конвенциясы кері слэшті пайдалануды жалғастырады, ал жолдарды қайтаратын API-лер кері слэшті пайдаланады. Кейбір нұсқаларда SWITCHAR арқылы опция белгісін өзгертуге болады, бұл COMMAND.COM-ға команда атында сақтауға мүмкіндік береді. Microsoft Windows операциялық жүйелер отбасы MS DOS мінез-құлқын мұра етті және әлі де екі белгіні де қолдайды, бірақ жеке Windows бағдарламалары мен ішкі жүйелері кері слэшті ғана жол шектеуіші ретінде қабылдауы мүмкін немесе егер ол осы мақсатта қолданылса, алға слэшті қате түсіндіруі мүмкін. Кейбір бағдарламалар жол екі тырнақшаға алынса ғана алға слэшті қабылдайды. Microsoft-тың қауіпсіздік мүмкіндіктерінің жергілікті және Интернет жолдардағы күтпеген бағытталған слэштерді тануға қабілетсіздігі, операциялық жүйенің басқа бөліктері әлі де оларға әсер ететін кезде, қауіпсіздіктегі бірнеше ауыр кемшіліктерге әкелді. Қол жетімді болмауы тиіс ресурстарға белгілі бір комбинацияларды пайдалана отырып жолдармен қол жеткізілді, мысалы .
Мәтін таңбалауы
Тегін сызық TeX жинақтау жүйесінде және RTF файлдарында белгілеу тагтарын бастау үшін қолданылады. USFM форматында кері сызық (backslash) Киелі кітап аудармаларын өңдеу үшін формат ерекшеліктерін көрсетуге қолданылады. Карет нотациясында 0x1C басқару символын, файл бөлігішін білдіреді. Бұл толығымен сәйкестік және файлдық жолдарда қолданылуымен ешқандай қатысы жоқ.
Математика
Сап айырмашылығын белгілеу үшін кері қисық сызық символы қолданылады. Кері қисық сызық кейде оң жақ косеттік кеңістікті көрсету үшін де пайдаланылады. Әсіресе компьютерлік алгоритмдерді сипаттағанда, a\b нөлге қарай емес, төмен қарай дөңгелектелетін бүтін санды бөлуге тең деп кері қисық сызықты анықтау жиі кездеседі. Wolfram Mathematica-да кері қисық сызық осы мақсатта бүтін санды бөлу үшін қолданылады. MATLAB және GNU Octave-де кері қисық сызық сол жақ матрицалық бөлу үшін, ал (тура) қисық сызық оң жақ матрицалық бөлу үшін қолданылады.
¥ және басқа таңбалармен шатасу
Жапондық кодтамаларда ISO 646 JP (ASCII негізіндегі 7 биттік код), JIS X 0201 (8 биттік код) және Shift JIS (ASCII үшін 8 биттік көп байтты кодтама) ASCII-де кері қисық сызық (backslash) үшін қолданылатын 0x5C код нүктесі оның орнына иен белгісі ретінде көрсетіледі. Иен белгісін бейнелеу үшін 005C код нүктесін кеңінен пайдаланудың нәтижесінде, тіпті бүгінде MS Mincho сияқты кейбір шрифттер кері қисық сызық таңбасын ¥ символымен көрсетеді, сондықтан Unicode код нүктелері 00A5 (¥) және 005C (\) осы шрифттер таңдалғанда бірдей болып көрінеді. Компьютерлік бағдарламалар әлі де 005C-ді осы орталарда кері қисық сызық ретінде қарастырады, бірақ оны иен белгісі ретінде көрсетеді, бұл әсіресе MS DOS файлдарының атауларында шатасуға себеп болады. Басқа бірнеше ISO 646 нұсқалары кері қисық сызықты басқа таңбалармен алмастырады, соның ішінде ₩ (корей), Ö (неміс, швед), Ø (дандық, норвегиялық), ç (француз) және Ñ (испан), бұл ұқсас проблемаларға әкеледі, бірақ иен белгісімен салыстырғанда әсері аз. 1991 жылы RFC 1345 интернет стандарттарында "[осы] таңбаны кодталған таңбалар жиынтығына және оның кодына сілтеме жасамай анықтаудың практикалық жолы" ретінде қолданылуы мүмкін екі таңбалы бірегей мнемоникалық белгі ретінде ұсынды. Осының салдарынан, бұл стильді Интернет-инженерлік жұмыс тобының алғашқы құжаттарында кездестіруге болады.