Вставка — это название, которое обычно используется для символа ^, представленного на большинстве клавиатур QWERTY при нажатии ⇧ Shift+ 6. Этот символ имеет множество применений в программировании и математике. Название «вставка» возникло из-за его визуального сходства с оригинальным корректорским знаком ‸ , знаком, используемым при корректуре для указания места вставки знака препинания, слова или фразы в документе. Стандарт ASCII (X3.64.1977) называет его « циркумфлекс »; [3] стандарт Unicode называет его «циркумфлексным акцентом», хотя для этой цели он больше не применяется.
На пишущих машинках, предназначенных для языков, которые обычно используют диакритические знаки (знаки ударения), есть два возможных способа их печати: клавиши могут быть выделены для предварительно составленных символов (с включенным диакритическим знаком); в качестве альтернативы может быть предусмотрен механизм мертвых клавиш . В последнем случае отметка делается при нажатии мертвой клавиши, но, в отличие от обычных клавиш, каретка для бумаги не движется дальше, и, таким образом, следующая буква, которую нужно напечатать, печатается под ударением. Символ ^ изначально был предусмотрен в пишущих машинках и компьютерных принтерах, чтобы циркумфлексные ударения могли быть напечатаны поверх букв (например, ô или ŵ ).
Включение символа циркумфлекс в ASCII является следствием его предшествующего существования на пишущих машинках: этот символ не существовал независимо как тип или символ печати с горячим свинцом . Первоначальная версия стандарта ASCII 1963 года использовала кодовую точку 0x5E для стрелки вверх ↑ . Однако стандарт ISO/IEC 646 1965 года определил кодовую точку 0x5E как одну из пяти доступных для национальных вариаций, [a] с диакритическим знаком циркумфлекс ^ по умолчанию и стрелкой вверх в качестве одного из альтернативных вариантов использования. [4] В 1967 году вторая редакция ASCII последовала этому примеру. [5]
Печать поверх для добавления знака ударения не всегда хорошо поддерживалась принтерами и почти никогда не была возможна на видеотерминалах. Вместо этого, в конечном итоге, были созданы предварительно составленные символы для отображения букв с ударением. [b] Отдельно стоящий циркумфлекс (который стал называться кареткой) быстро стал повторно использоваться для многих других целей, например, в компьютерных языках и математической нотации. Поскольку знак больше не должен был располагаться над буквой, он стал больше по внешнему виду, так что его больше нельзя было использовать для печати поверх знака ударения в большинстве шрифтов. [6]
В Unicode символ кодируется как U+005E ^ ЦИРКУМФЛЕКСНЫЙ УДАРЕНИЕ ; в HTML его можно использовать напрямую или вставлять с . Сочетающийся символ для использования в качестве диакритического знака — U+0302 ◌̂ ОБЪЕДИНЕНИЕ ЦИРКУМФЛЕКСНОГО УДАРЕНИЯ , хотя для большинства европейских языков доступны предварительные символы (например , U+00E2 â ЛАТИНСКАЯ СТРОЧНАЯ БУКВА A С ЦИРКУМФЛЕКСОМ ). ^
Символ ^ имеет множество применений в языках программирования , где его обычно называют знаком вставки. Он может обозначать возведение в степень , побитовый оператор XOR , конкатенацию строк [ требуется ссылка ] и управляющие символы в нотации с помощью знака вставки , а также другие применения. В регулярных выражениях знак вставки используется для сопоставления начала строки или строки; если он начинает класс символов, то должен быть сопоставлен обратный класс.
ANSI C может транскрибировать каретку в виде триграфа , ??'
так как изначально этот символ не был доступен во всех наборах символов и клавиатурах. C++ дополнительно поддерживает токены вроде xor
(for ^
) и xor_eq
(for ^=
), чтобы полностью избежать этого символа. RFC 1345 рекомендует транскрибировать символ как диграф '>
, когда это необходимо. [7]
Pascal использует каретку для объявления и разыменования указателей . В 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 .
Использование каретки для возведения в степень можно проследить до ALGOL 60 , [ требуется ссылка ] в котором оператор возведения в степень был представлен в виде направленной вверх стрелки, что должно было вызвать общепринятую в математике надстрочную нотацию. Направленная вверх стрелка теперь используется для обозначения гиперопераций в нотации Кнута со стрелкой вверх .
Часто встречается в обозначениях с помощью курсора для отображения управляющих символов: например, ^A
означает управляющий символ со значением 1.
Интерпретатор командной строки Windows ( cmd.exe ) использует символ вставки для экранирования зарезервированных символов (большинство других оболочек используют обратную косую черту ). Например, чтобы передать знак «меньше» в качестве аргумента программе, нужно ввести ^<
.
На интернет-форумах , на сайтах социальных сетей , таких как Facebook, или в онлайн-чатах один или несколько кареток могут использоваться под текстом другого сообщения, представляя собой направленную вверх стрелку к этому сообщению; [9] в дополнение к использованию стрелки, это также может означать, что пользователь, разместивший ^, согласен с вышеприведенным сообщением. Несколько кареток могут использоваться для указания того, что комментарий отвечает на сообщение выше или относится к нему, что коррелирует с количеством использованных кареток, или для «подчеркивания» правильной части предыдущего сообщения, или просто для акцента.
Аналогичное использование было принято компиляторами языков программирования , такими как компилятор Java, чтобы указать, где произошла ошибка компиляции . [ необходима ссылка ] Компилятор выводит ошибочную строку кода и использует одиночный символ вставки на следующей строке, дополненный пробелами, чтобы дать визуальное указание на место ошибки.