Введение

Обозначение для управляющих символов; состоит из символа «карет» (^) и буквы. Эта нотация присваивает управляющему коду 1 последовательно буквы алфавита до управляющего кода 26 (0x1A). Для управляющих кодов вне диапазона 1–26 нотация расширяется на соседние неалфавитные символы ASCII. Часто управляющий символ можно ввести с клавиатуры, удерживая клавишу и набирая символ, указанный после карета. Эта нотация часто используется для описания сочетаний клавиш, даже если управляющий символ фактически не используется (например, «нажмите ^X, чтобы вырезать текст»). Значение, интерпретация или реакция на отдельные управляющие коды не определяются нотацией с использованием карета.

Описание

Обозначение состоит из каретки, за которой следует один символ (обычно заглавная буква). Символ имеет код ASCII, равный коду управления, с инвертированным битом, представляющим 0x40. Это удобная мнемоническая особенность, позволяющая отображать коды управления от 1 до 26 в виде . Семь ASCII-символов управления отображаются за пределами диапазона заглавных букв: 0 (NUL) – это , 27 (ESC) – это , 28 – это , 29 – это , 30 – это , 31 – это , и 127 (DEL) – это . Примеры: "" для пары Windows CR, LF новой строки, и описание ANSI-последовательности для очистки экрана как "". В обозначении разрешено использовать только символы в диапазоне 63–95 (""), но почти всегда допускается использование строчных букв, введенных с клавиатуры – они рассматриваются как эквивалентные прописным буквам. При преобразовании в символ управления, за исключением '? ', маскировка с помощью 0x1F даст тот же результат и также преобразует строчные буквы в тот же символ управления, что и прописные. Для контрольных кодов, содержащих более 7 бит, таких как контрольные символы C1 от 128 до 159 (0x80–0x9F), соответствующего представления с использованием каретки не существует. Некоторые программы, генерирующие обозначение с кареткой, отображают их как обратную косую черту и восьмеричный код ("" через ""). См. также штриховую нотацию, используемую компьютерами Acorn, ниже.

История

Конвенция восходит как минимум к PDP 6 (1964). В руководстве к PDP 6 описывается печать ↑C, то есть небольшая стрелка, направленная вверх, перед символом C. В процессе перехода от ASCII 1961 года к ASCII 1968 года стрелка вверх была заменена на символ каретки.

Использование в программном обеспечении

Многие компьютерные системы позволяют пользователю вводить контрольный символ, удерживая клавишу и нажимая букву, используемую в каретном представлении. Это удобно, поскольку многие контрольные символы (например, EOT) нельзя ввести непосредственно с клавиатуры. Хотя существует множество способов представления контрольных символов, такое соответствие между обозначением и вводом делает каретное представление подходящим для многих приложений. Обычно необходимость удерживать клавишу избегается, например, строчные буквы работают так же, как и прописные. На американской клавиатуре нажатие клавиши производит DEL, а нажатие производит ^@. Также часто клавиша производит ^@. Каретное представление используется для отображения контрольных символов в выводе многими программами, особенно Unix-терминальными драйверами и программами просмотра текстовых файлов, такими как команды `vi` и `less`. Хотя использование кодов управления в значительной степени стандартизовано, некоторые реализации различаются в зависимости от операционной системы или даже от программы к программе. Фактическое значение или интерпретация отдельных кодов управления не определяется каретным представлением, и хотя спецификация ASCII присваивает имена кодам управления, она не предписывает, как программное обеспечение должно на них реагировать.

Альтернативные обозначения

В API обработки строк GSTrans в операционных системах Acorn Atom и BBC Micro, а также в RISC OS для Acorn Archimedes и более поздних машин, используется символ вертикальной черты вместо символа каретки. Например, (произносится "control em", так же, как и для обозначения) является символом возврата каретки, ASCII 13. — это символ вертикальной черты с кодом 124, — это символ 127, как указано выше, а добавляет 128 к коду следующего за ним символа, таким образом, — это символ с кодом .