Аудит / Институциональная экономика / Информационные технологии в экономике / История экономики / Логистика / Макроэкономика / Международная экономика / Микроэкономика / Мировая экономика / Операционный анализ / Оптимизация / Страхование / Управленческий учет / Экономика / Экономика и управление народным хозяйством (по отраслям) / Экономическая теория / Экономический анализ Главная Экономика Информационные технологии в экономике
Е.А. РАКИТИНА, В.Л. ПАРХОМЕНКО. ИНФОРМАТИКА И ИНФОРМАЦИОННЫЕ СИСТЕМЫ В ЭКОНОМИКЕ. ЧАСТЬ 1, 2005

2.1 П р е д с т а в л е н и е т е к с т о в о й и н ф о р м а ц и и


Под текстом понимается последовательность знаков, входящих в некоторое множество (алфавит) и обладающих в этом множестве определенным смыслом, т.е. каждый знак рассматривается в
таком контексте как символ. Поэтому часто данные такого вида называют еще символьными. В более узком смысле текстом будем называть некоторую последовательность закодированных в двоичном коде знаков, которую можно хранить, передавать, преобразовывать с помощью компьютера.
Если первоначально компьютеры были предназначены для проведения всевозможных расчетов ("вычислительные машины"), т.е. выполнения операций над числами, то в настоящее время значительная доля компьютерных ресурсов тратится именно на ввод, хранение, передачу и обработку текстов.
Какие же операции можно производить над текстом, ли он уже находится в памяти компьютера? Прежде всего, поиск заданной последовательности символов и замена на другую последовательность символов, упорядочивание символов (заметим, что добавление, замена, удаление, копирование и тому подобные операции относятся в равной мере к обработке данных всех типов). И поиск, и упорядочивание сводятся к выполнению операции сравнения символов. При сравнении символов наиболее важными аспектами являются уникальность кода для каждого символа и длина этого кода, а сам выбор принципа кодирования в настоящее время практически не имеет значения. Поэтому можно использовать различные таблицы кодировки, лишь бы при кодировании и декодировании символов использовалась одна и та же таблица.
В вычислительных машинах для представления информации используются цепочки байтов. Поэтому для перевода информации из машинного представления в человеческий необходимы таблицы кодировки символов - таблицы соответствия между символами определенного языка и кодами символов. Их еще называют таблицами кодировки, кодовыми страницами или применяют английский термин character set
(который иногда сокращают до charset).
Самой известной таблицей кодировки является код ASCII (Американский стандартный код для обмена информацией). Первоначально он был разработан для передачи текстов по телеграфу, причем в то время он был 7-битовым, т.е. для кодирования символов английского языка, служебных и управляющих символов использовались только 128 7-битовых комбинаций. При этом первые 32 комбинации (кода) служили для кодирования управляющих сигналов (начало текста, конец строки, перевод каретки, звонок, конец текста и т.д.). При разработке первых компьютеров фирмы IBM этот код был использован для представления символов в компьютере. Поскольку в исходном коде ASCII было всего 128 символов, для их кодирования хватило значений байта, у которых 8-ой бит равен 0. Значения байта с 8-ым битом, равным 1, стали использовать для представления символов псевдографики, математических знаков и некоторых символов из языков, отличных от английского (греческого, немецких умляутов,
французских диакритических знаков и т.п.).
Когда стали приспосабливать компьютеры для других стран и языков, места для новых символов уже не стало хватать. Для того, чтобы полноценно поддерживать помимо английского и другие языки, фирма IBM ввела в употребление несколько кодовых таблиц, ориентированных на конкретные страны. Так для скандинавских стран была предложена таблица 865 (Nordic), для арабских стран - таблица 864 (Arabic), для Израиля - таблица 862 (Israel) и так далее. В этих таблицах часть кодов из второй половины кодовой таблицы использовалась для представления символов национальных алфавитов (за счет исключения некоторых символов псевдографики).
Срусским языком ситуация развивалась особым образом. Очевидно, что замену символов во вто-рой половине кодовой таблицы можно произвести разными способами. Вот и появились для русского
языка несколько разных таблиц кодировки символов кириллицы: KOI8-R, IBM-866, CP-1251, ISO-8551-5. Все они одинаково изображают символы первой половины таблицы (от 0 до 127) и различаются представлением символов русского алфавита и псевдографики.
Что касается длины кода, то она по возможности должна быть минимальной и в то же время достаточной для кодирования всех символов, которые могут потребоваться при вводе текстов любой сложности.
ЭВМпервых поколений в силу ограниченности оперативной памяти и невысокого по современным меркам быстродействия процессоров использовали минимальный набор символов. Рост мощности компьютерных устройств привел к тому, что в настоящее время при работе с одним ПК можно использовать несколько разных таблиц перекодировки. По сути, многие современные программные средства, будь то текстовые процессоры или программы для работы в Internet, предоставляют пользователю возможность выбора, какую из таблиц перекодировки использовать в своей работе, автоматически проводя преобразования существующего текстового файла из одного способа кодирования в другой по команде пользователя. Соответствующие программные модули называют конверторами.
Сейчас, когда объем памяти компьютеров чрезвычайно вырос, уже нет нужды сильно экономить при кодировании текста. Можно позволить себе "роскошь" тратить для хранения текста вдвое больше памяти (выделяя для каждого символа не 1, а 2 байта). При этом появляется возможность
разместить в кодовой таблице - каждый на своем месте - не только буквы европейских алфавитов (латинского, кириллического, греческого), но и буквы арабского, грузинского и многих других языков и даже большую часть японских и китайских иероглифов. Ведь два байта могут хранить уже число от
0 до 65535.
Двухбайтная международная кодировка UNICODE, разработанная несколько лет назад, теперь начинает внедряться на практике. В стандарте UNICODE кроме определенного двоичного кода (эти коды принято обозначать буквой U, после которой следуют знак + и собственно код в шестнадцатиричном представлении) каждому символу присвоено определенное имя. Полная спецификация стандарта Unicode представляет собой довольно толстую книгу и включает в себя все существующие, вымершие и искусственно созданные алфавиты мира, а также множество математических, музыкальных, химических и прочих символов.
Отметим, что и ASCII и UNICODE и другие стандарты кодировки символов не определяют изображения символов, а только состав набора символов и способ его представления в компьютере. Кроме того, очень важен порядок перечисления символов в наборе, так как он влияет самым существенным образом на алгоритмы сортировки.
Зачем вообще понадобилось создавать разные кодировки для одного и того же алфавита? Разве трудно было придерживаться какого-то одного для всех стандарта? Помимо соображений конкуренции ("Когда наша операционная система завоюет признание, то вместе с ней утвердится и кодировка, - так что конкурентам придется поработать, обеспечивая совместимость") изобретателями кодировок в первую очередь двигал чисто практический расчет. Как правило, еще до того как операционная системарусифицируется, за символами из верхней половины таблицы ASCII (с кодами от 128 до 255) уже закреплено то или иное употребление, и, чтобы разместить в этом же диапазоне кириллический алфавит, приходится чем-то жертвовать. Разумеется, наименее ценные кодовые позиции, замещение которых нанесет наименьший ущерб функциональности системы, в каждом случае свои, и чаще всего необходимые для полного набора кириллицы 66 знакомест (включая букву "е", которая традиционно выносится за пределы основного алфавита) не удается расположить подряд. Этим и объясняется тот факт, что ни в одной из кодировок, кроме ISO 8859-5 и Unicode, русские буквы не идут сплошным блоком. В некоторых кодировках допускаются даже отклонения от алфавитного порядка - в особенности в ДКОИ-8, расположение русских букв в которой определяется, как это ни смешно, алфавитом тех латинских букв, которые на клавиатурах советского производства располагались на одних клавишах с соответствующими буквами кириллицы (например, буква "Ю" стояла на одной клавише с символом "@", идущим в ASCII перед латинской "A", и потому стала в КОИ8 "первой буквой алфавита").
<< Предыдушая Следующая >>
= К содержанию =
Похожие документы: "2.1 П р е д с т а в л е н и е т е к с т о в о й и н ф о р м а ц и и"