Главная > Разное > Теория кодирования и теория информации
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

1.10. Служебные знаки

В процессе передачи информации обычно оказывается необходимым управлять со стороны источника работой удаленных устройств. Например, нужно указать устройству, что делать с посылаемой информацией. Поэтому оказывается необходимым иметь несколько резервных символов, предназначенных для удаленного устройства. Одним из таких символов может быть «Конец передачи», другим — «Возврат каретки». Еще один символ может означать «Изменить регистр» с верхнего на нижний или обратно. Наконец, может существовать символ, означающий «Повторить последнее сообщение». Весь первый столбец таблицы кода ASCII содержит такие специальные знаки.

Как можно осуществлять это управление без ограничения информации, передаваемой по системе? Если, например, двоичные Цифры используются как числа в передаваемом сообщении, то можно избежать комбинаций битов, которые совпадают с управляющими символами для удаленного устройства. Если окажется, что поток двоичных цифр содержит такой резервный символ, то устройство отреагирует на него тогда, когда оно не должно этого Делать. Ясно, что на передаваемое сообщение нужно налагать некоторые ограничения, однако при этом возникает вопрос: «Как

это сделать наиболее безболезненно для пользователя системы?»

Один из возможных способов состоит в добавлении к каждому блоку двоичных цифр еще одной цифры, например 0, если блок представляет сообщение, и 1, если блок представляет управляющую команду. Можно заметить, что если управляющие слова встречаются редко, то применение этого способа приводит к существенным потерям пропускной способности канала. Кроме того, он не позволяет решить задачу ретрансляции управляющих слов через одни устройства к другим.

Имеются другие способы решения задач передачи сообщения через оконечное устройство, чтобы последнее на него не реагировало. Один часто используемый способ состоит в том, чтобы заключить любой резервный символ в кавычки и организовать работу оконечного устройства так, чтобы оно не реагировало на то, что заключено в кавычки, а лишь снимало их. Для того чтобы сохранить кавычки при прохождении по системе, их, в свою очередь, следует также заключить в кавычки. Такой подход часто используется в ЭВМ, однако иногда он приводит к некоторой путанице. Этот метод расстановки кавычек применяется, например, в языке ФОРТРАН.

В языке ФОРТРАН появление кавычек приводит к тому, что они удаляются из потока символов, и происходит копирование следующего символа, независимо от того, является он кавычками или нет. Если следующий символ не является кавычками, текст копируется до очередного появления кавычек, которые удаляются, после чего система выходит из состояния «Копировать следующий символ». Если следующий символ — это кавычки, машина (программа), скопировав его, возвращается в нормальное состояние. Таким образом, для получения одного символа кавычек нужно повторить его дважды. Для того чтобы передать по системе сообщения вида «Сообщение», следует написать «Сообщение». «Сообщение» может содержать любые резервные символы, отличные от (рис. 1.10.1).

Другой метод передачи резервных символов по системе, в чем-то эквивалентный предыдущему, состоит в том, что удаленное устройство переходит в соответствующее состояние при каждом появлении специального символа, однако перед совершением действия система смотрит, совпадает ли следующий символ с текущим специальным символом. Если совпадение имеется, то устройство лишь передает этот символ и переходит в нормальное состояние. В противном случае устройство совершает действие, соответствующее этой команде. Таким образом, при появлении двух одинаковых резервных символов система сбрасывает первый и пропускает второй. Если исходное сообщение содержит некоторый резервный символ два раза подряд, то в посылаемое сообщение следует вставить еще два символа, и устройство выкинет первый и третий из них.

Хотя этот метод кажется довольно сложным для программной реализации на ЭВМ, теория конечных автоматов указывает путь

к быстрому решению (рис. 1.10.2). В начальном состоянии происходит считывание следующего символа, и если он является специальным, программа запоминает его в регистре и передает управление программе особого состояния. Программа особого состояния считывает следующий символ и сравнивает его с символом в регистре. Если два символа совпадают, то специальный символ копируется и удаляется из входного потока; в противном случае программа выполняет команду особого состояния. После этого автомат возвращается в начальное состояние.

Рис. 1.10.1. Удаление кавычек

Рис. 1.10.2. Автомат со специальными символами

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

При управлении цифровой ЭВМ ошибки различения уровней метаязыка служат постоянным источником путаницы. Программа на языке ФОРТРАН и следующая за ней команда принадлежит разным языкам. В конце программы следует ставить Два знака из которых один предназначен для метаязыкового уровня, которому принадлежит и он указывает на окончание исходной программы, а второй предназначен для фактической программы на языке ФОРТРАН и используется во время ее выполнения.

Задачи

1.10.1. Используя схему состояний, подробно опишите, как последовательность «Сообщение» обрабатывается описанной в тексте системой типа

1.10.2 Как послать знак (удалить) через систему с «дублированием специальных символов»? Поместите его в поток и подробно проследите за ним.

<< Предыдущий параграф Следующий параграф >>
Оглавление