Краткая история систем кодирования символов естественных языков в сша, Европе и Восточно-азиатских странах - shikardos.ru o_O
Главная
Поиск по ключевым словам:
Похожие работы
Краткая история систем кодирования символов естественных языков в сша, Европе и Восточно-азиатских - страница №1/4




Краткая история систем кодирования символов естественных языков в США, Европе и Восточно-азиатских странах

Общая информация о кодировании символов естественных языков



Кодирование символов: основа для обеспечения возможности работы компьютеров с текстовыми данными

Важнейшей для большинства людей возможностью компьютерной техники является не то, что эта техника может просто быстро производить математические вычисления - ведь множество людей до сих пор ведут финансовые расчёты, используя микрокалькуляторы, а не ПК, - а то, что компьютерная техника может быть использована для работы с текстовыми данными. Вероятно, каждый должен согласиться с тем, что подавляющее большинство пользователей ПК используют программы для обработки текстов чаще, чем программы какого-либо другого назначения. И с тем, что сейчас сложно будет найти компьютер, на котором не была бы установлена какая-либо программа для обработки текстов.

При этом многие люди, вероятно, и не догадываются о том, что текстовые данные в ПК представлены, в конечном итоге, в виде числовых данных. В современных компьютерных системах символы*, которые люди используют для записи и передачи текстов на своём языке, кодируются с помощью чисел, записанных в двоичной системе счисления (см. Табл. 1). Это делается потому, что микропроцессоры, лежащие в основе современных компьютерных систем, могут делать, по сути, лишь две вещи: производить действия двоичной арифметики и выполнять Булевы логические операции**.



* Под "символами" далее в тексте статьи понимаются и цифры, и буквы, и иероглифы - прим. перев.
** Только в первом случае последовательность нулей и единиц трактуется как число в двоичной системе счисления, а во втором - как сложное логическое высказывание, в котором "1" обозначает истинность элементарного высказывания, а "0" - его ложность - прим. ред.



Таблица 1.
Двоичные значения, стоящие за алфавитно-цифровыми символами на экране в 7-битной кодировке ASCII.






Символ на экране

Двоичное значение для его обработки

Символ на экране

Двоичное значение для его обработки

 

1

0110001

A

1000001

2

0110010

B

1000010

3

0110011

C

1000011

4

0110100

D

1000100

5

0110101

E

1000101

Поэтому когда ПК, к примеру, записывает букву "A" на дискету, он не создаёт изображения буквы "A" на магнитном носителе, а записывает на него двоичное число (состоящее из нолей и единиц), соответствующее букве "A" в специальной таблице символов. Вы спросите: но ведь ПК создаёт изображение буквы "A" на дисплее, когда я нажимаю клавишу "A"!? Конечно. Когда Вы нажимаете клавишу с буквой "A", первая вещь, которая при этом происходит - в клавиатуре генерируется число, соответствующее букве "A". ПК использует это число для выборки изображения буквы "A" из файла шрифта, в котором изображение каждой буквы пронумеровано в порядке, определяемом той или иной таблицей символов. Лишь после этого соответствующее изображение появляется на экране. То же самое происходит при печати текста, с той лишь разницей, что изображение буквы "A" оказывается на бумаге, а не на дисплее*.

* Конечно, в данном абзаце всё изложено в сильно упрощённом виде. Более подробно всё это описано в [1]. - прим. перев.

Такая система, использующая а) пронумерованные таблицы символов и б) числа (двоичные коды) для внутреннего представления в компьютерах символов естественных языков, позволяет ПК гибко и эффективно делать такие вещи, которые невозможно было реализовать на простой пишущей машинке. ПК может не только распечатывать текст на бумаге, но позволяет также хранить, модифицировать, сортировать, принимать и передавать текстовые данные с умопомрачительно высокой скоростью. Наконец, при наличии соответствующего ПО ПК может быть использован для работы с текстами не на каком-то строго заданном одном, а сразу на многих языках*. Единственная возникающая при этом сложность состоит в том, что при работе с языками, в которых используется большое количество символов, например, с японским, для нумерации этих символов требуется использовать бóльшие числовые значения - и, соответственно, более длинные двоичные коды**.

* Поддержка такой функции далее в тексте называется "многоязыковой поддержкой" - прим. перев.
** При этом необходимо учитывать, что длина двоичного кода зависит от величины представляемого им числа как log2(x). Т.е. для кодирования только букв английского языка (26 символов) достаточно было бы длины кода, равной log2(26)~=5 бит, а для кодирования иероглифов японского языка (65.000 символов) необходимо уже log2(65000)~=16 бит, см. ниже. - прим. ред.

ПК для работы с английским языком, используемые в США , используют 7-битную таблицу символов и метод кодирования ASCII (American Standard Code for Information Interchange)*, которые обеспечивают возможность кодирования 128 символов (поскольку бит может иметь только два значения - "1" или "0" - используя 7 бит, можно представить максимум 27=128 разных чисел. Набор символов**, использованный для заполнения этой таблицы, включает в себя заглавные и строчные буквы латинского*** алфавита, арабские цифры, знаки препинания и некоторые управляющие двоичные последовательности. Если используется 8-й бит, который изначально был зарезервирован для контроля чётности (вид проверки корректности передачи данных), метод кодирования ASCII становится 8-битным, или 1-байтным****. Если же этот 8-й бит используется, как и 7 других, для нумерации символов, а не для контроля чётности, то максимально возможный объём таблицы символов, используемой вместе с методом кодирования ASCII , возрастает до 28=256 позиций.

* Далее в тексте совокупность таблицы символов и метода, использованного для кодирования этих символов (чаще - их номеров), которые (таблица и метод) используются вместе, называется "системой кодирования". Как правило, и таблица символов, и метод кодирования, составляющие ту или иную систему кодирования, бывают определены в рамках того или иного стандарта. Система кодирования ASCII является американским официальным государственным стандартом - прим. перев.
** Обратите внимание: "таблица символов" и "набор символов" - это разные термины. Набор символов называют алфавитом кода. Таблица отличается от набора тем, что в ней символы пронумерованы (или как-либо иначе структурированы). - прим. перев.
*** На самом деле, настоящий латинский алфавит и алфавит английского языка не эквивалентны: в латинском алфавите 25 букв, а в английском - 26 (добавлена "w"). В оригинале автор статьи, помимо того, что путается в указанных выше терминах, вдобавок под "латинским" в большинстве случаев подразумевает 26-буквенный алфавит, т.е. не латинский, а именно английский. - прим. перев.
**** 8 бит, как известно, = 1 байт. С учётом сказанного в абзаце, думаю, понятно, почему далее по возможности используются термины "n-битный" вместо "n-байтный": 7 бит нельзя выразить через байты - прим. перев.

В случае работы с языками типа японского, в которых используется огромное количество символов - десятки тысяч, - для нумерации символов, используемых в этом языке, необходимо использовать числа длиною как минимум в 16 бит (2 байта). 16-битный метод кодирования обеспечивает 216=65.536 возможных позиций в таблице символов.

Однако в стандартную таблицу символов, используемую в настоящее время в японских ПК и определённую, в частности, в японском промышленном стандарте JIS [Japan Industrial Standard] X 0208-1990, внесено только 6879 символов. Этого достаточно для решения многих задач по обработке текстов, встречающихся в повседневной жизни, но мало для написания имён людей, географических названий мест, цитирования исторических данных и даже для написания названий рыб, что японцы едят в ресторанах "суши"!

Кроме этой, необходимо отметить ещё одну проблему. Современные компьютеры могут наиболее эффективно работать с порциями данных, размер которых кратен 8 битам (1 байту). Это потому, что в их электронных схемах данные обычно передаются и обрабатываются порциями по 8, 16, 32 или 64 бита. По этой причине 10-битный или 15-битный метод кодирования окажется неудобным и неэффективным для применения в ПК. С другой стороны, если для нумерации символов использовать слишком длинные числа (двоичные последовательности), объём данных, с которыми придётся работать компьютеру, резко возрастёт, что вновь приведёт к существенному снижению эффективности работы. Например, если для нумерации символов использовать 24 бита, это позволило бы работать с символами всех естественных языков мира, как известных из истории, так и используемых сейчас (224=16.777.216). Однако для нумерации символов большинства языков, имеющих алфавиты, всё же достаточно чисел длиною в 8 бит, поскольку в этих алфавитах насчитывается не более 256 символов. И поэтому использование для их представления 24-битного метода кодирования привело бы к обработке 16-ти ненужных в данном случае бит, и при записи той же латинской буквы "А" на дискету привело бы к нерациональному расходованию места на носителе, которое могло бы быть использовано для хранения данных.

Ранняя история кодирования символов естественных языков



Телеграфия и начало электронной обработки данных

Каждый, кто когда-нибудь смотрел кино об американском Западе XIX-го века, знает, что первым методом кодирования, широко применяемым для преобразования символов и текстов в электронный вид, был метод, предложенный Морзе*. То, что этот метод кодирования был изобретён для передачи сообщений по телеграфным линиям, а не для обработки текстов в компьютерах, общеизвестно. Однако гораздо меньшее количество людей знает, что его изобретатель, американец Сэмюэл Финли Бриз Морзе [Samuel Finley Breese Morse] (1791-1872), был также известным художником. В своё время он изучал рисование в Лондоне и там узнал об исследованиях электромагнетизма, проводимых британскими учёными. Возвращаясь по морю в США в 1832-м году, он задумал создать свою собственную систему телеграфа. Именно с этой системы началось движение в сторону того мира электронных сетей, в котором мы сейчас живём, и именно за её разработку Морзе снискал славу "американского Леонардо да Винчи".



* Более устоявшимися названиями являются "код Морзе" или "азбука Морзе", однако они терминологически неточны. В частности, слово "код" имеет несколько значений - помимо значения "метод кодирования", оно может быть интерпретировано и как "текст программы", как "номер символа в таблице символов", и даже как "ключ дешифрации". Что касается термина "азбука Морзе", то им обозначается набор символов, который используется вместе с методом кодирования, предложенным Морзе. Поэтому далее в тексте статьи эта "официальная терминология", приводящая к путанице, не используется - прим. перев.)

Морзе не был первым изобретателем системы телеграфа для практического применения. Эта честь принадлежит двум британцам*: сэру Чарльзу Уитстоуну [Charles Wheatstone], физику и изобретателю, и сэру Уильяму Фосерджиллу Куку [William Fothergill Cooke], электроинженеру, которые внедрили первую систему железнодорожного телеграфа в Англии в 1837-м году, в то время как Морзе в это время только изобрёл первый американский телеграф. Однако, система британцев была весьма непростой. В ней использовалось 5 проводов, которые отклоняли магнитную иглу-стрелку в приёмнике так, что она указывала на те или иные буквы алфавита**. В отличие от неё, система Морзе была проще. В ней использовался один провод для передачи сигнала, и вместо отклоняемой магнитной стрелки в ней использовался электромагнит, который притягивал небольшую конструкцию, когда поступал сигнал. Это сделало устройство Морзе более надёжным. Другой особенностью изобретения Морзе была возможность записи поступающих сигналов на движущуюся бумажную ленту (так как конструкцию, которая притягивалась электромагнитом, можно было "заставить" перфорировать или окрашивать при этом ленту); тем не менее, на протяжении многих лет эта возможность не использовалась, и люди-операторы были вынуждены читать приходящие сообщения по щелчкам приёмника. Морзе продемонстрировал свою систему кодирования 24 мая 1844-го года в первом в истории США сеансе телеграфной связи, который проводился между городами Балтимор (штат Мэриленд) и Вашингтон (Округ Колумбия). Он послал сообщение "What hath God wrought!" ("Чудесно творение господне!").

* Здесь автор ошибается: изобретателем первой в мире работоспособной телеграфной машины - для передачи сообщений на расстояние с помощью электрического тока - был русский инженер Павел Львович Шиллинг. Он построил комплекс устройств для телеграфной связи ещё в 1832-м году - прим. перев.
** Буквы наносились на специальную шкалу - прим. перев.

Морзе изобрёл метод кодирования, который он использовал для посылки своего исторического сообщения, в 1838-м году. Метод кодирования Морзе напоминает двоичный код, используемый в современных компьютерах, тем, что он тоже базировался на двух возможных значениях - в случае метода кодирования Морзе, это были точка или тире. Однако в отличие от современных методов кодирования, используемых для нумерации символов в современных компьютерах, комбинации точек и тире, используемые для представления символов в методе кодирования Морзе, были разной длины* (см. Табл. 2). Морзе использовал принцип, по которому наиболее часто употребляемым буквам ставились в соответствие наиболее короткие последовательности из точек и тире, что существенно сокращало длину сообщения. Например, наиболее часто используемой в английском языке букве "E" в методе кодирования Морзе соответствует одна точка; второй по частоте использования букве английского языка - "T" - одно тире. Интересно, что Морзе подсчитывал частоту использования букв не путём изучения текстов, а путём подсчёта литер каждого типа в типографском наборе. Результатом его поистине каторжного труда стал высокоэффективный метод кодирования, который с некоторыми изменениями используется до сих пор, хотя с момента его изобретения прошло уже более 160 лет.

* Здесь следует сделать небольшое пояснение. В компьютерной технике, в случае использования, например, 8-битного метода кодирования для представления символов, номер каждого символа в кодовой таблице всегда задастся числом длиною в 8 бит, даже если для записи этого числа достаточно использовать меньшее число бит. Например, символу в 3-й по счёту позиции в таблице символов в случае использования 8-битного метода кодирования будет соответствует двоичная последовательность не "10", а "00000010". Символу в последней, 256-й, позиции этой таблицы будет соответствовать последовательность "11111111". Собственно, это показано автором статьи в Табл. 1, но внимание на этом заострено не было. - прим. перев.



Таблица 2.
Подмножество Международной системы кодирования Морзе.






A

.-

N

-.

0

-----

B

-...

O

---

1

.----

C

-.-.

P

.--.

2

..---

D

-..

Q

--.-

3

...--

E

.

R

.-.

4

....-

F

..-.

S

...

5

.....

G

--.

T

-

6

-....

H

....

U

..-

7

--...

I

..

V

...-

8

---..

J

.---

W

.--

9

----.

K

-.-

X

-..-

,

--..--

L

.-..

Y

-.--

.

-.-.-.

M

--

Z

--..

?

..--..




Система кодирования Морзе с течением времени эволюционировала и существовала в нескольких версиях. Всё началось с "Ранней системы кодирования Морзе" [Early Morse Code] , которая впоследствии развилась в "Американскую систему кодирования Морзе" [American Morse Code], а затем - в "Международную систему кодирования Морзе" [International Morse Code]. В Табл. 2 читатель может видеть подмножество символов, являющееся извлечением из таблицы символов Международной системы кодирования Морзе. Заметим, что в указанном подмножестве нет строчных букв, а все арабские цифры представлены с помощью совокупностей, состоящих из 5-ти точек или тире*. При реальной передаче данных сигнал для тире в 3 раза превосходит по длительности сигнал для точки. Сигналы точек и тире в совокупностях, которыми обозначаются буквы, разделяются интервалами, длительность которых равна длительности сигнала точки. "Пробел" между буквами, формирующими то или иное слово, обозначается интервалом, который по длительности равен утроенной длительности сигнала точки (иными словами, длительность этого интервала равна длительности сигнала для тире). Пробел между словами обозначается интервалом, по длительности равным ушестерённой длительности сигнала точки (иными словами, длительность этого интервала равна удвоенной длительности сигнала для тире).

* Следует заметить, что символы других языков (не английского) в Международной системе кодирования Морзе представляются с помощью той же самой "азбуки" (что продемонстрировано в Табл. 2). Таким образом, прочитать сообщение, записанное с использованием системы Морзе, можно только в том случае, если заранее известно, на каком языке оно написано. Далее в статье автор развивает эту тему - прим. перев.

После того, как изобретения Морзе вошли в практическое употребление, другие изобретатели внесли свой вклад в развитие телеграфа, разработав, например, такие устройства, как реле, которые позволяли одновременно с приёмом сигнала в одном месте посылать его далее. Кроме того, были разработаны различные методы, позволяющие более полно использовать пропускную способность телеграфных линий. Так появилось диплексирование [diplexing] (посылка по линии одновременно двух сообщений в одном направлении), дуплексирование [duplexing] (посылка по линии одновременно двух сообщений в разных направлениях), квадроплексирование [quadruplexing] (посылка по линии одновременно четырёх сообщений, по два в каждом направлении). Впоследствии приём поступающих сигналов был механизирован с помощью ленточитающих машин (см. выше), производительность которых в 1900-м году составляла порядка 400 слов в минуту.

Следующим существенным прорывом вперёд в технологии телеграфа был примитивный печатающий телеграфный аппарат, или "телетайп"; его запатентовал во Франции в 1874-м году Жан Морис Эмиль Бодо [Jean-Maurice-Émile Baudot] (1845-1903). Как и телеграф Морзе, это изобретение привело к созданию новой системы кодирования символов - 5-битного метода кодирования Бодо (и используемой с ним таблицы символов). Метод кодирования Бодо стал первым в мире методом кодирования текстовых данных с помощью двоичных последовательностей. Сообщения, для передачи которых использовалась система кодирования Бодо, распечатывались операторами на узкие ленты для двухканальной связи с помощью специальных 5-клавишных клавиатур. В более поздних версиях устройства использовались клавиатуры с буквами (как у пишущих машинок - прим. перев.), которые уже автоматически генерировали соответствующую той или иной букве 5-битную последовательность. Другой особенностью телетайпа Бодо было мультиплексирование, обеспечивающее возможность одновременной работы до 6-ти операторов благодаря применению системы временнóго распределения. Это позволило значительно увеличить пропускную способность телеграфной линии. Предложенная Бодо аппаратура зарекомендовала себя весьма положительно и оставалась в широком применении в XX-м веке, пока её не вытеснили телефоны и персональные компьютеры.



Таблица 3.
Кодовая таблица Бодо.






Двоичное
значение

Буквы

Знаки

 

00011

A

1

11001

B

?

01110

C

:

01001

D

$

00001

E

3

01101

F

!

11010

G

&

10100

H

STOP

00110

I

8

01011

J

'

01111

K

(

10010

L

)

11100

M

.

01100

N

,

11000

O

9

10110

P

0

10111

Q

1

01010

R

4

00101

S

BELL

10000

T

5

00111

U

7

11110

V

;

10011

W

2

11101

X

/

10101

Y

6

10001

Z

"

00000

n/a

n/a

01000

CR

CR

00010

LF

LF

00100

SP

SP

11111

LTRS

LTRS

11011

FIGS

FIGS




Способ кодирования, который использовал Бодо в своей системе, подразумевал использование 5 бит, однако 32-х позиций (25=32) недостаточно для представления символов латинского алфавита вместе с арабскими цифрами и знаками препинания. Поэтому в коде Бодо используется специальная схема "сдвига" для переключения между двумя "внутренними" таблицами символов, по 32 символа в каждой (см. Табл. 3), которую можно сравнить с системой "сдвига", используемой в пишущих машинках для переключения на верхний регистр. Технически это реализовывалось с помощью использования управляющих (в данном случае работой телетайпов) двоичных последовательностей. Местá для подобных управляющих двоичных последовательностей есть и в таблицах символов, которые используются в современных системах кодирования, применяемых в сегодняшних ПК. Как видно из Табл. 3, в таблице символов кода Бодо имеются те же символы, что показаны в приведённом выше извлечении из таблицы символов Международной системы кодирования Морзе: заглавные буквы латинского алфавита, арабские цифры и знаки препинания. В общей сложности печатаемых символов в первоначальной версии таблицы символов кода Бодо (изображённой в Табл. 3) было 50. Составляющие, т.е. "единицы" и "нули", двоичного кода в аппарате Бодо обозначались пометками и пробелами на ленте; во время передачи сообщения они использовались для управления включением и выключением электрического тока. Каждый символ в сообщении предварялся стартовым битом, а после символа передавался стоповый бит, что сделало метод кодирования Бодо медленным по нынешним меркам.

Причиной, по которой Бодо был вынужден ограничить свой метод кодирования использованием двоичных последовательностей длиною в 5 бит и не оставил, таким образом, места в таблице символов для строчных латинских букв - были аппаратные ограничения. Более сложный метод кодирования - даже использовавший бы для представления символов всего на 1 бит больше (т.е. 6-битный) - потребовал бы применения значительно более сложных электромеханических передающих устройств, изготовление (по крайней мере массовое изготовление - прим. перев.) которых во времена Бодо было чрезвычайно трудной технологической задачей. После расширения системы кодирования Бодо так, что с её помощью стало возможным передавать 55 разных символов - и при этом появились 3 позиции для "символов национальных языков" - CCITT в Женеве, в Швейцарии, в 1932-м году объявил её стандартной 5-битной системой кодирования символов для телетайпов. Она получила обозначение "Международный телеграфный алфавит No.2". (что терминологически неправильно - прим. перев.). В честь Бодо, между прочим, была также названа специальная единица измерения Бод (Baud), которой измеряется число изменений (модуляций) сигнала в секунду*.



* При этом нужно отметить, что, как сказано в [2], "в зависимости от используемого способа модуляции каждое изменение сигнала может соответствовать не только одному, но и большему количеству бит"; таким образом "бод" и "бит в секунду", вопреки распространённому ошибочному представлению - это разные вещи. - прим. перев.

1890-й год: американское Бюро статистики и появление в нём новой системы для кодирования символов
Конец XIX-го века ознаменовался изобретением ещё одной системы для кодирования символов естественных языков. Он была создана в США для обработки данных, собираемых во время переписей населения, молодым американским* изобретателем, которого звали Герман Холлерит (1860-1929). После окончания Нью-Йоркской Колумбийской школы горного дела в 1879-м году, в 1880-м Холлерит устроился на работу в Бюро статистики при Министерстве внутренних дел США. Последствия этого, казалось бы, незначительного события сказывались впоследствии вплоть до 1970-х годов, "золотой эры" больших вычислительных машин. Герман Холлерит был ни кем иным, как изобретателем кода Холлерита, использовавшегося для записи алфавитно-цифровой информации (т.е. символов английского алфавита, используемых в нём знаков препинания, а также арабских цифр - прим. перев.) на бумажных перфорированных картах. С появлением перфокарт в американских массах возникло шуточное выражение 'do not fold, spindle, or mutilate' ("не гнуть, не тянуть, не мять"), которое оставляло у многих американцев впечатление, что компьютеры скоро будут полностью контролировать их общество.

* Холлерит на самом деле не был американцем, его родители - чистокровные немцы, эмигрировавшие в США; подробнее о Холлерите, Бэббидже, Жаккаре (см. ниже) и их изобретениях см. в [3] - прим. перев.

Интересно, что хотя Холлерит применил перфокарты в работе Бюро статистики в 1880-х, изобретены они были гораздо раньше. Первые перфокарты были изготовлены около 1800-го года французским изобретателем Жозефом Мари Жаккаром (1752-1834), который использовал их в новых фабричных ткацких станках. Это изобретение, запатентованное Жаккаром в 1804-м году, позднее позволило полностью автоматизировать работу ткацких станков, в результате чего текстильная промышленность стала такой, какой мы её знаем сегодня. Более того, Холлерит не был первым, кто предложил использовать изобретение Жаккара для использования в вычислительной технике. Эти лавры принадлежат англичанину Чарльзу Бэббиджу (1792-1871), который планировал использовать перфокарты в своей "аналитической машине", огромном механическом компьютере, который так никогда и не был полностью построен (при жизни Бэббиджа; позднее эту работу завершил его сын - прим. перев.). Наконец, Холлерит и не предложил бы использовать перфокарты для ввода данных, если бы не завершились неудачно его эксперименты с другим носителем - перфорированной бумажной лентой, которая имела склонность разрываться во время работы.

Чтобы решить проблему с разрывами бумажной ленты, Холлерит изготовил то, что впоследствии стало компьютерной перфокартой (по этому адресу доступно фото оригинальной перфокарты Холлерита, хранимой в коллекции библиотеки Конгресса США). В том виде, в каком она была позднее стандартизирована, перфокарта была жёсткой карточкой (из плотной бумаги) размером 186x82 мм со срезанным верхним левым уголком. На ней были 12 горизонтальных рядов (пронумерованных сверху вниз как 12, 11, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9) и 80 вертикальных (пронумерованных слева направо с 1-го по 80-й включительно). Каждый вертикальный ряд соответствовал одному алфавитно-цифровому символу. Когда перфокарты протягивались через специальное считывающее устройство, называемое табулятором, гибкие игольчатые контакты попадали в соответствующие дырки, замыкая одну из электрических цепей; таким образом регистрировалось то или иное значение. Несмотря на то, что эта система выглядела очень функционально ограниченной и примитивной, на самом деле она была очень мощной и эффективной. Перепись населения США в 1880-м году, которая выполнялась ручным трудом, продолжалась 7 лет, и полученные данные за это время стали, естественно, устаревшими и бесполезными. Когда при переписи населения в 1890-м году были впервые использованы табуляторы Холлерита, Бюро статистики с их помощью провело все необходимые вычисления за 6 недель и с более точными данными, чем ранее, что позволило сэкономить 5.000.000 долларов США. С тех пор стоимость работ, проводимых Бюро статистики, существенно упала.

В системе кодирования Холлерита, на первый взгляд, двоичная последовательность, соответствующая одному алфавитно-цифровому символу, регистрировалась в 12-ти горизонтальных рядах перфокарты, и поскольку каждый из рядов мог быть перфорирован или не перфорирован (содержать 1 или 0), это давало бы 12-битный метод кодирования. Максимально возможное количество элементов, которое могло бы быть представлено с помощью такого метода кодирования - 212, то есть 4096. На самом же деле таблица символов, используемая в системе Холлерита, содержала только 69 символов - это были заглавные латинские буквы, арабские цифры, знаки препинания и некоторые другие символы. Таким образом, реальные возможности системы кодирования Холлерита по представлению текстовых данных были сравнимы даже с таковыми возможностями системы кодирования Бодо. Зачем же тогда, спросит читатель, на перфокарте было предусмотрено так много горизонтальных рядов? Одной из причин этому является тот факт, что большее количество рядов позволяет кодировать данные, производя меньшее количество перфораций, а это было критично, так как работа с перфораторами карт в течение многих лет производилась вручную. Поскольку рядов было много, для кодирования каждой из 10 арабских цифр (а также 2-х букв латинского алфавита) было достаточно сделать всего одну перфорацию на один вертикальный ряд. Оставшиеся 24 буквы латинского алфавита кодировались с помощью двух перфораций. Для кодирования знаков препинания и прочих символов требовалось сделать 2 или больше перфораций, поэтому нередко они (для экономии времени - прим. перев.) вообще не использовались.

Поскольку использование табулятора в Бюро статистики оказалось столь успешным, Холлерит решил начать с его помощью своё дело. В 1896-м году он основал компанию для продажи своего изобретения, которая, как несложно догадаться, была названа по названию выпускаемого устройства - "Tabulating Machine Co.". В 1911-м году она слилась с двумя другими компаниями - "Computing Scale Co. of America" и "International Time Recording Co.", после чего получила название "Computing-Tabulating-Recording Co.", или, сокращённо, C-T-R. После захвата рынков на нескольких континентах и организации деловых операций в общемировом масштабе, в 1924-м году C-T-R сменила своё название на "International Business Machines Corporation" - IBM. И поскольку система кодирования Холлерита и перфокарты были основными технологиями этой корпорации - доминирующего производителя на рынке компьютерной техники в 1960-х - 1970-х гг. - они удостоились широкого использования для представления данных в компьютерных системах и применялись вплоть до 1960-х, пока IBM не разработала иной код для своих больших вычислительных машин.



следующая страница >>