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

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

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

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

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

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

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

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

Пример для ЯП C

Пример 1

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

Пример 2

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

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

Примеры в HTML

Шаблон:alt ttl

  • &lt; кодирует <
  • &gt; кодирует >
  • &amp; кодирует & (амперсанд)
  • &quot; кодирует " (двойная кавычка)
  • &#039; кодирует ' (апостроф, одинарная кавычка)
  • &nbsp; кодирует неразрывный пробел

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

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

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

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

В модемах

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

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

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

В принтерах

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

См. также