lekcii5 (522349), страница 5
Текст из файла (страница 5)
Помимо знаков внешнего алфавита в начале кода содержатся служебные кодовые комбинагщи для управления аппаратурой передачи и отображения данных. Эти знаки, как правило, не отображаются на, устройствах ввода,свьгвода (терминалах, принтерах, клавиатурах и т. п.), но аппаратно интерпретируются ими. Структура знаковой части кода АЯСП прог;та: вслед за пробелом (кодьг 40ю 32ш, 20>а) идут 15 раздслителей в порядке, который легко нс запоминается, С 48-й позиции (60з или довательно, при кодировании сообщения и получается новос сообщение С1»), которое содержит ту же информацию, что и п. Нри этом изменяется правило интерпретации сообщений. Если до кодирования для интерпретации использовалось отображение рш то после кодирования сообщения будут интерпретироваться с помощьн> отображения .рг —— С ' с срш где С г — — отображение, обратное отображению С (отображснггс> декодирования).
Следовательно, отображение С должно допускать существование обратного отображения, т. е. быть взаимно однозначным (бислктивньгм). Если извс с:тно отображение с'7 ' сиди С), или известен способ построения отображения С ' !глли С), то говорят, чтс> известен ключ кода С. В качестве примера кодов рассмотрим семейство кодов Юлия Цезаря. В этих кодах знаки алфавита А, содержащего т, знаков, заменяются другими знаками того же алфавита по следующему правилу: выбирается постоянное целое число р Е ~0, т] и Й-хлу знаку алфавита Л ставится в соответствие его (>с 1- р)-й знак, если Й 4 р ( т, и (>с: 1- р — т)-й знак, если /с +р > т. Если, например, Л русский алфавит и р = 3, то слово сснсг>орллс>ялика будет закодировано словом лрчсупашс»са Легко видеть, что ключом для кода Цезаря является число р, определяющее величину сдвига алфавита А при кодировании.
Другими примерами являются азбука Морзе и различные кодировки текстовых данных в ЭВМ с'КОИ-8, АЯСН и т. п.). Ниже приводится таблица семибитного кода АЯСН в том виде, в котором он был принят в 196>6 га Л с пиоа«( 4 )>е Здесь Л>ш — входной алфавит 1например, определяемый клавиатурой), а Ле - - выходной алфавит (двоичный, машинный). Структура 11шсос1е такова: Символы Символы 16-битный код 16-битный код А8СН Символы 1 аСш1 Европейские латинские Расширенные латинские Стандартные фонетические Модифицированные литеры Днакритическне Кириллица Армянский Еврейский Арабский Девана< арн 0300-036Г 0400-04ГГ 053ОО58Г 0590 — 05ГГ 0600 — 061'Г 0900 -097 Г 0000-007Г 0080-ООГГ 0100 — 017Г 0180 — 01ГГ 0250-02АГ 02ВΠ— 02ГГ Около 29000 кодовых позиций Нгйсос1е не заняты. 6000 зарсзервированы „для использования программистами.
На 1лпсо<1е построены ОС МВ %1п<1о>гв 2000>ХР,'2003,<'СЕ. Н<>1сос1е решает проблему национальных алфавитов ценой удвоенного расхода памяти, что по нынешним временам нс так страшно. Кроме того, 1<п1со<1е позволяет единообразно 30<е) идут десятичные цифры в порядкс возрастания. Далее пос;и. 7 разделителей начиная с кодов 101е, 65ю и 41>е непрерывно в алфавитном порядке следуют 26 заглавных латинских букв. Чс>роз 32 позиции (141е, с)7ш или 61>е) размещается диапазон малых латинских букв.
3.'аким образом, структура кода АВСП впо;<пе регулярна и легко запоминаеъи, Все распространенные кодировки содержат АВСН в качестве подмножества, Основная и альтернативная кодировки и кодир<>вка, КОИ-8 отличая>тся от АВСП способами добавления русских букв в расширенную часть таблицы (8-й бит равен 11 и размещением знаков псевдографики. В КОИ-8 русские буквы размещены фонетически (транскрипционно) так же, как и латинские в мла«пней части таблицы.
Гашение старшего бита <«происходящее«например, при посылке русских сообщений через многие западные почтовые сервера) дает произношение нижегородского по-французски (что иногда называют го1арп1с или "как передать русскую телеграмму латиницей"): вместо АБВГД вы получите АСС«Т). В основной кодировке русские буквы размещены подряд и без разрывов. В альтернативной кодировке заглавные буквы размещены подряд, а малые — разбиты на два поддиапазона, между которыми для совместимости с кодировкой 1ВМ размещена псевдографика.
Первым восьмибитным кодом был 1ВМ-овский ЕВСР1С. Его русская версия называлась ДКОИ. Восьмибитные коды удобнее семибитных, там есть место и для больших, и для малых букв, .и для одного национального алфавита. Но потребность в локализации (поддержки многоязычия) программного обеспечения и отсутствие простых способов представления текстовых строк привели к переходу на 16-битпые кодировки, наиболее известной из которых являет<.я 11п1сос1е. 11п1сос1е разработан Арр1е и Хегох (Г1 в 1988 г.
С 1991 г, для совершенствования и внедрения Нп1со<1е создан консорциум из ведущих компаний. На сайте нътн. шп.сос1е. огя опубликован с>тандарт Нп1сос1е. 11>>1< о<1е представляет сооой 16-битную кодировку и позволяет кодировать 65536 знаков вместо 256 8-битных кодов: представлять строки, допуская смешение алфавитов. Такое устройство ввода, .как клавиатура, определяет базовый входной алфавит для представления вводимых сообщений.
На самом деле клавиатурная раскладка это не только размещение букв по клавишам !кнопкам) клавиатурьс, а, еще и сопоставление этим буквам аппаратных сканкодов, т. е, своеобразное кодирование, преобразование алфавитов. Л сканкоды отображаются в целевую часть используемой кодировки программой- драйвером клавиатуры. (Сканкод представляет собой 16-битный служебный клавиатурный код, генерируемый микроконтроллером клавиатуры по нажатию (отжатию) всех клавиш, в том числе тех, которых нет в ЛБСП. Сканкоды, вообще говоря., отличаются от кодов ЛБСП даже для знаков этого кода).
Стандартные раскладки клавиатур вовсе не случайны; они имен>т частотно-рычажное происхождение. Будучи все-таки не десяти-, а двухпальцевыми, они распределяют клавиши по убыванию известной частоты встречаемости букв данного языка от середины к краям клавиатуры, от развитого указательного пальпа до периферийного мизинца. Рычажность раскладок заключалась в том, что при быстрой печати рычаги механической пишущей машинки раскачивались и задевали друг друга, сбивая припаянные буквы. Для предотвращения этого «частые» буквы перемежали с более редкими с учетом паросочетаемости.
Рычагов давно уж нет, а раскладка осталась. Бывают раскладки не с!жег!у (немецкая, французская). Кириллические раскладки имеют в своей основе другие частотные распределения букв ЯЖЕКТУ вЂ” » ЙЦУКЕН) и могут быть нанесены на латинскую клавиатуру верхним регистром. Другой способ сделать это - так называемая фонетическая раскладка — навеяна кодировкой КОИ-8: русские буквы нанесены на клавиши однотипных по произношению или написанию латинских (за исключением трех букв).
Наиболее совершешюй является раскладка Дворака. Именно на ней установлен мировой рекорд скорости печати па клавиатуре. Причиной быстроты печати по Двораку является не только частотный принцип размещения, но и чередование рук. Была даже предпринята попытка разместить цифры не по порядку, а в соответствии с частотами: 7, 5, 3, 1, 9, О, 2, 4, 6, 8! В результате набор О, 1, 2, 3, 4, 5, 6, 7, 8, 9 превралцается в играемый двумя руками пассаж. Усовершенствованные раскладки продолжают появляться до сих пор: в 2006 г.
предложена, новая раскладка для кириллицы ИЙСог. Эта раскладка рассчитана на слепое десятипальцевое мягкое печатание именно на компьютерной клавиатуре и свободна от рычажных атавизмов. В заклк>чение примеры: украинская и казахская раскладки. Продолжим рассмогре><ие различных аспектов кодирования. Кодирование, при котором каждый образ является отдельным знаком, называется шифрованием. Традиционный шифр это книга, в которой словам естественного языка сопоставлены группы цифр или букв. Видоизменяя сообщение, шифровка скрывает от непосвященного его смьнгь В рассмотренных ранее (симметричных) системах шифрования операции кодирования и декодирования являн>тся взаимно обратными функциями, т.
е. зная способ шифрования можно, действуя наобюрот, расшифровать сообгцени<«. Современная теория чисел дает способ создать сист<,му шифрования, в которой использун<тся два, клн>ча один для кодирования, другой для декодирования (т. н. ассимметричное шифрование).
Система построена таким образом, чтобы, зная шифрованное сообщение и способ кодирования, было невозможно расшифровать сообщение за приемлемое время (подробнее см. [771). Современная криптография основана на гипотезе об отсутствии каких-либо закономерностей в распределении простых чисел. В 2004 г.
эта гипотеза была опровергнута, опубликовано доказательство, поставившее под сомнение всю просточисленпую криптографию. Односторонее шифрование используется для хранения паролей (наприъ<ер, в 11шх), и строго говоря кодированием «е является. В этом случае используется неоднозначная (наприъ<ер, периодическая) функция. Для каждого шифрованного пароля получается множество вариантов дешифрованных, что затрудняет проникновение в систему. После того, как кодировш|ие и шифрование достаточно проиллюстрированы, можно избавиться от ненужного разнообразия алфавитов.
Иногда <жазывается удобным кодировать знаки рассматриваемого алфавита А в начальном отрезке счетного множества стандартных знаков ш = 6<,1>2,...,6,.... При этом алфавиту А. содержащему т, знаков, ставится в соответствие стандартный т-зпачный а„<фавит ш = 6м 62,..., 6„„так, что первая буква алфавита А кодируется ста«дартнь<м знаком 6,, вторая буква знаком 62, и т. д. Если, например, А русский алфавит, то ему соответствует стандартный алфавит «>, в котором слово информатика записывается в виде 6«<6гъбзз6<66<а6м6<62«6ю6<26ь Наряду со стандартным набором знаков «> ълы будем использовать расширенные стандартные па<юры знаков <и<>, ш н ..,, которые получан>тся добавлением к набору <в нссобстве«ных знаков 6ш 6 <,..., которые используются для формирования разделителей, в частности, «>а = «> Г 6ш Несобственный знак 6а является обозначением для пробела (< ', Л). (1.~..1) Утеерз<сденне.
Произвольный кон<', <нь<й набор знаков (алфавит) мож<т быть закодирован знаками набора «> = 16ш 6<). г>Укажем способ кодирования. Знаки исходного набора могут быть закодированы зна; ками стандартного ал4>авита ш„„где т — число знаков в исходном набор< . Пусть 6, Е ш,„. Сопоставим ему код 6«6<... 6> (ъ'+ 1 раз 6<) (последний код мы будем для краткости обозначать 6<>6< <). Утверждение доказано.