Управляющая последовательность

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
(перенаправлено с «Escape-последовательность»)

Управляющая последовательность (исключённая последовательность, экранированная последовательность, от англ. escape sequence) — совокупность идущих подряд значащих элементов, в группе теряющих для обрабатывающего механизма своё индивидуальное значение с одновременным приобретением этой группой нового значения.

Образование управляющих последовательностей представляет собой логическое кодирование.

В большинстве случаев этим термином обозначают соответствующие последовательности текстовых символов.

Управляющая последовательность распознаётся по начальному символу и фиксированному количеству символов, следующих за ним (url-кодирование, многие интерпретируемые языки программирования) или по определённой последовательности символов.

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

  • интерпретатор PHP распознаёт знак $ как первый символ имени переменной, а тот же символ, предварённый обратной косой чертой (\$) воспринимается им как собственно символ $.
  • в UNIX shell пробел служит для разделения параметров, поэтому для его использования при обозначении имён файлов впереди ставится обратная косая черта (\).
  • в HTML служебные символы «<» и «>» кодируются как «&lt;» и «&gt;» соответственно.

Пример для языка программирования C

Пример 1

char str[]="Такой ввод символа " в строку вызовет ошибку"; //error [[C2146]]: syntax error : missing ';'

Пример 2

char str[]="Служебный символ \" можно ввести в строку";

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


Аппаратное обеспечение

Управляющие последовательности также применяются, когда периферийное устройство имеет только один канал связи, используемый как для передачи данных, так и для управления самим устройством.

В текстовых компьютерных терминалах

Для управления компьютерным терминалом были разработаны управляющие последовательности ANSI (англ. ANSI escape code).

В модемах

Стандартная последовательность для модемов — три символа «+» нажимаемые с достаточно большим интервалом (передаваемые внутри текста три символа «+» не вызывают реакции на последовательность).

В оборудовании Cisco

В коммуникационном оборудовании Cisco escape sequence — это символы, передаваемые при нажатии комбинации клавиш Ctrl^ (для ввода '^' требуется нажатие Shift-6, так что полная комбинация выглядит как Ctrl-Shift-6).

В принтерах

Практически все принтеры используют управляющие последовательности для получения команд от компьютера. Некоторые последовательности стандартизованы в языки управления принтерами, например ESC/P, PCL.

См. также