Каретка — это имя, знакомое для символа ^ (циркумфлекс и циркумфлекс), который добавляется на большинстве QWERTY- клавиатур при вводе ⇧ Shift+ 6. Этот символ имеет множество применений в программировании и математике. Название «каретка» возникло из-за ее визуального сходства с оригинальной кареткой корректора — знаком, используемым при корректуре для обозначения места, где в документе следует вставить знак препинания, слово или фразу. Формальный стандарт ASCII (X3.64.1977) называет это « циркумфлексом ». [1]
На пишущих машинках, предназначенных для языков, которые обычно используют диакритические знаки (знаки ударения), существует два возможных способа их ввода: клавиши могут быть предназначены для заранее составленных символов (с включенным диакритическим знаком); в качестве альтернативы может быть предусмотрен механизм мертвого ключа . В последнем случае при нажатии мертвой клавиши делается отметка, но, в отличие от обычных клавиш, каретка бумаги не движется вперед, и поэтому следующая набираемая буква печатается под ударением. Символ ^ изначально использовался в пишущих машинках и компьютерных принтерах, чтобы на буквах можно было печатать знаки циркумфлекса (как в ô или ŵ ).
Включение символа циркумфлекса в ASCII является следствием его предшествующего существования на пишущих машинках: этот символ не существовал независимо как шрифт или символ печати горячим грифелем . В исходной версии стандарта ASCII 1963 года использовалась кодовая точка x5E для стрелки вверх ↑ . Однако стандарт ISO / IEC 646 1965 года определил кодовую точку x5E как одну из пяти, доступных для национальных вариантов, [a] с диакритическим знаком циркумфлекс ^ по умолчанию и стрелкой вверх как одним из альтернативных вариантов использования. [2] В 1967 году этому примеру последовала вторая версия ASCII. [3]
Надпечатка для добавления знака акцента не всегда хорошо поддерживалась принтерами и почти никогда не была возможна на видеотерминалах. Вместо этого в конечном итоге были созданы заранее составленные символы, показывающие буквы с диакритическими знаками. [b] Отдельно стоящий циркумфлекс (который стал называться кареткой) быстро стал повторно использоваться для многих других целей, например, в компьютерных языках и математических обозначениях. Поскольку знаку больше не нужно было располагаться над буквой, он стал больше по внешнему виду, и его больше нельзя было использовать для надпечатки ударения. [4] [с]
В Юникоде он кодируется как U+005E ^ CIRCUMFLEX ACCENT ; в HTML его можно вставить с помощью . ^
Эту каретку не следует путать с другими символами в форме шеврона, такими как перевернутая буква v или логическое И , которые иногда могут называться каретками. [5] [6]
Символ ^ имеет множество применений в языках программирования , где его обычно называют кареткой. Он может обозначать возведение в степень , побитовый оператор XOR , конкатенацию строк и управляющие символы в каретной записи , а также другие варианты использования. В регулярных выражениях курсор используется для обозначения начала строки или строки; если он начинает класс символов, то должен быть сопоставлен обратный класс.
ANSI C может транскрибировать каретку в виде триграфа , ??'
поскольку изначально символ был доступен не во всех наборах символов и клавиатурах.
C++ дополнительно поддерживает такие токены, как xor
(for ^
) и xor_eq
(for ^=
), чтобы вообще избежать использования этого символа.RFC 1345 рекомендует при необходимости транскрибировать символ как орграф '>
. [7]
Паскаль использует курсор для объявления и разыменования указателей . В Smalltalk курсор — это оператор возврата метода. В C++/CLI доступ к ссылочным типам .NET осуществляется через дескриптор с использованием ClassName^
синтаксиса. В расширениях Apple C для Mac OS X и iOS курсоры используются для создания блоков и обозначения типов блоков.
Go использует его как побитовый оператор NOT .
Node.js использует курсор в файлах package.json для обозначения поведения разрешения зависимостей, используемого для каждой конкретной зависимости. В случае Node.js курсор позволяет выполнять любые обновления, если только они не рассматриваются как «основные» обновления, как это определено semver . [8]
В математике каретка может обозначать возведение в степень (например, 3^5
для 3 5 ), где обычный верхний индекс использовать нелегко (как в некоторых графических калькуляторах ). Он также используется для обозначения верхнего индекса при наборе текста в TeX . Как описал это Айзек Азимов в своем эссе 1974 года « Skewered! » (о числе Скьюза ): «Я делаю показатель степени фигурой нормального размера, и создается впечатление, что он удерживается рычагом, и его дополнительный вес, когда его размер растет, сгибает рычаг вниз». [9]
Использование курсора для возведения в степень можно проследить до АЛГОЛА 60 , [ нужна цитация ] , в котором оператор возведения в степень выражался в виде стрелки, направленной вверх, предназначенной для вызова надстрочной нотации, распространенной в математике. Стрелка, направленная вверх, теперь используется для обозначения гиперопераций в обозначении стрелки вверх Кнута .
В обозначениях кареток часто можно увидеть управляющие символы: например, ^A
означает управляющий символ со значением 1.
Интерпретатор командной строки Windows ( cmd.exe ) использует курсор для экранирования зарезервированных символов (большинство других оболочек используют обратную косую черту ). Например, чтобы передать знак «меньше» в качестве аргумента программе, нужно ввести ^<
.
На интернет-форумах , на сайтах социальных сетей, таких как Facebook, или в онлайн-чатах под текстом другого сообщения может использоваться один или несколько символов курсора, представляющих собой стрелку, направленную вверх к этому сообщению; [10] Помимо использования стрелки, это также может означать, что пользователь, разместивший ^, согласен с сообщением выше. Множественные каретки могут использоваться, чтобы указать, что комментарий отвечает на сообщение выше или относится к нему, что соответствует количеству используемых кареток, или чтобы «подчеркнуть» правильную часть предыдущего сообщения, или просто для акцента.
Аналогичное использование было принято компиляторами языков программирования , такими как компилятор Java, чтобы указать, где произошла ошибка компиляции . [ нужна цитация ] Компилятор распечатывает ошибочную строку кода и использует одинарный знак курсора на следующей строке, дополненный пробелами, чтобы визуально указать местонахождение ошибки.