stringtranslate.com

Каре

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

История

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

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

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

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

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

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

Примечания

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

Рекомендации

  1. ^ «Американский национальный стандарт обмена информацией» (PDF) . Национальный институт стандартов. 1977.(факсимиле, не машиносчитываемое)
  2. ^ «Истории символов: примечания к некоторым позициям кода ASCII (5E)» .
  3. ^ Том Дженнингс. «ASCII: Американский стандартный код для проникновения информации». Архивировано из оригинала 21 августа 2014 года . Проверено 14 сентября 2010 г.
  4. Юкка К. Корпела (18 января 2010 г.). «Кирьяинтен тариноита» (PDF) (на финском языке). стр. 132–133 . Проверено 14 сентября 2010 г.
  5. ^ Юникод (1991–2012). «Расширения IPA» (PDF) . Проверено 20 августа 2012 г.
  6. ^ Эрик В. Вайсштейн. «Карет». Математический мир . Вольфрам . Проверено 20 августа 2012 г.
  7. ^ Симонсен, Келд (июнь 1992 г.). «RFC 1345 – Мнемоника символов и наборы символов». Рабочая группа по интернет-инжинирингу . Проверено 7 марта 2022 г.
  8. ^ "Диапазоны курсоров в node.js" . Архивировано из оригинала 3 декабря 2016 года . Проверено 1 октября 2019 г.
  9. ^ Айзек Азимов (1974), «Нанизанный», О делах больших и малых , Doubleday , ISBN 978-0385022255 
  10. ^ «Что такое Карет?». Компьютерная надежда . Проверено 14 августа 2012 г.