stringtranslate.com

Каре

Вставка — это название, которое обычно используется для символа ^, представленного на большинстве клавиатур QWERTY при нажатии ⇧ Shift+ 6. Этот символ имеет множество применений в программировании и математике. Название «вставка» возникло из-за его визуального сходства с оригинальным корректорским знаком , знаком, используемым при корректуре для указания места вставки знака препинания, слова или фразы в документе. Стандарт ASCII (X3.64.1977) называет его « циркумфлекс »; [3] стандарт Unicode называет его «циркумфлексным акцентом», хотя для этой цели он больше не применяется.

История

Пишущие машинки

Пишущая машинка с французской (AZERTY) клавиатурой: , , , имеют выделенные клавиши; циркумфлекс и диэрезис имеют неактивные клавишиàèéç ù

На пишущих машинках, предназначенных для языков, которые обычно используют диакритические знаки (знаки ударения), есть два возможных способа их печати: клавиши могут быть выделены для предварительно составленных символов (с включенным диакритическим знаком); в качестве альтернативы может быть предусмотрен механизм мертвых клавиш . В последнем случае отметка делается при нажатии мертвой клавиши, но, в отличие от обычных клавиш, каретка для бумаги не движется дальше, и, таким образом, следующая буква, которую нужно напечатать, печатается под ударением. Символ ^ изначально был предусмотрен в пишущих машинках и компьютерных принтерах, чтобы циркумфлексные ударения могли быть напечатаны поверх букв (например, ô или ŵ ).

Транспонирование в ISO/IEC 646 и ASCII

Включение символа циркумфлекс в 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 , [ требуется ссылка ] в котором оператор возведения в степень был представлен в виде направленной вверх стрелки, что должно было вызвать общепринятую в математике надстрочную нотацию. Направленная вверх стрелка теперь используется для обозначения гиперопераций в нотации Кнута со стрелкой вверх .

Escape-символ

Часто встречается в обозначениях с помощью курсора для отображения управляющих символов: например, ^Aозначает управляющий символ со значением 1.

Интерпретатор командной строки Windows ( cmd.exe ) использует символ вставки для экранирования зарезервированных символов (большинство других оболочек используют обратную косую черту ). Например, чтобы передать знак «меньше» в качестве аргумента программе, нужно ввести ^<.

Стрелка, направленная вверх

На интернет-форумах , на сайтах социальных сетей , таких как Facebook, или в онлайн-чатах один или несколько кареток могут использоваться под текстом другого сообщения, представляя собой направленную вверх стрелку к этому сообщению; [9] в дополнение к использованию стрелки, это также может означать, что пользователь, разместивший ^, согласен с вышеприведенным сообщением. Несколько кареток могут использоваться для указания того, что комментарий отвечает на сообщение выше или относится к нему, что коррелирует с количеством использованных кареток, или для «подчеркивания» правильной части предыдущего сообщения, или просто для акцента.

Аналогичное использование было принято компиляторами языков программирования , такими как компилятор Java, чтобы указать, где произошла ошибка компиляции . [ необходима ссылка ] Компилятор выводит ошибочную строку кода и использует одиночный символ вставки на следующей строке, дополненный пробелами, чтобы дать визуальное указание на место ошибки.

Смотрите также

Примечания

  1. ^ ISO  646 (и ASCII, который он включает) — это стандарт для 7-битного кодирования, предоставляющий всего 96 печатных символов (и 32 управляющих символа ). Этого было недостаточно для удовлетворения потребностей западноевропейских языков, поэтому стандарт определяет некоторые кодовые точки , доступные для национальных вариаций.
  2. ^ Например, в ISO Latin-1 .

Ссылки

  1. ^ Unicode (1991–2012). "IPA Extensions" (PDF) . Получено 20 августа 2012 .
  2. ^ Эрик В. Вайсштейн. "Caret". MathWorld . Wolfram . Получено 20 августа 2012 г. .
  3. ^ "Американский национальный стандарт обмена информацией" (PDF) . Национальный институт стандартов. 1977.(факсимильный, не машиночитаемый)
  4. ^ «Истории символов: заметки о некоторых позициях кода ASCII (5E)».
  5. ^ Том Дженнингс. "ASCII: Американский стандартный код для проникновения информации". Архивировано из оригинала 21 августа 2014 года . Получено 14 сентября 2010 года .
  6. Юкка К. Корпела (18 января 2010 г.). «Кирьяинтен тариноита» (PDF) (на финском языке). стр. 132–133 . Проверено 14 сентября 2010 г.
  7. ^ Simonsen, Keld (июнь 1992 г.). "RFC 1345 – Мнемоника и наборы символов". Internet Engineering Task Force . Получено 7 марта 2022 г. .
  8. ^ "Диапазоны курсора в node.js". Архивировано из оригинала 3 декабря 2016 года . Получено 1 октября 2019 года .
  9. ^ "Что такое Caret?". Computer Hope . Получено 14 августа 2012 г.