Вы находитесь на странице: 1из 600

Информация и человек

К ЧИТАТЕЛЮ

Мы далеко не лучше знаем то, что видим ежедневно.

Л. Мерсье

Как правило, наибольшего успеха добивается тот,


кто располагает лучшей информацией.

Б. Дизраэли

Эта книга посвящена информатике, Сама книга, которую вы держите,


наверное самой интересной и самой создавалась с использованием совре-
популярной из наук. менных информационных техноло-
Определяя предмет информатики, гий не только в процессе вёрстки и
можно сказать, что она занимается по- печати, но и на стадии подготовки и
строением информационных объек-
тов, теорией, систематическим анали-
зом, проектированием и реализацией
алгоритмов, программ и планов, а так-
же процессами трансформации и
передачи информации.
Что же такое информация? Как
информатика связана с кибернети-
кой? В чём суть теории информации?
На эти и многие другие вопросы мож-
но найти ответы на страницах тома
«Информатика».
В наши дни информатика «начи-
нает и выигрывает»: с ней потихоньку
сливается экономика, она простёрла
свою руку в психологию и управле-
ние, поиск в библиотеках всё больше
заменяется поиском в Интернете.

5
Информация и информатика

обсуждения текстов и иллюстраций. узнает и о том, как кодировалась ин-


Большинство фотографий делалось формация в докомпьютерные вре-
Под компьютерной с применением новейшей цифровой мена. Подобные знания правомерно
грамотностью подра- фототехники, рисунки сканировались считать необходимым элементом куль-
зумевается набор на- на компьютере. А сами авторы обща- туры человека нового тысячелетия.
выков: применение лись при помощи электронной поч- Существует определённое обще-
компьютера для набо- ты. Большинство из них лично ни разу ственное согласие относительно того,
ра и редактирования не встречались и знакомы только по чем должен отличаться образованный
текста, составления виртуальной переписке. Объём дан- человек, где бы и чему бы он ни учил-
таблиц, просмотра и ной корреспонденции наверняка в ся. Это отличие усматривают не в той
редактирования фо- несколько раз превысил том энцик- или иной совокупности полученных
тографий, програм- лопедии! знаний, а в умении решать реальные
мирования; использо- Во многом по причине своей со- задачи и проблемы.
вание Интернета для временности информатика — одна Так, чтобы быть современным че-
взаимодействия с дру- из немногих наук, необходимость ловеком, вероятно, уже недостаточно
гими людьми и пере- изучения которой не требует аргу- знать четыре арифметических дей-
дачи информации. ментов. Всё, что связано с современ- ствия, помнить наизусть таблицу ум-
ным обществом и современным чело- ножения и уметь складывать дроби.
веком, самое передовое, интересное Технологии требуют хотя бы мини-
и перспективное так или иначе име- мальных навыков по использованию
ет отношение к сфере информатики. окружающих нас телефонов, телеви-
Хранение и обработка информа- зоров, микроволновых печей. В гости-
ции в цифровую эпоху резко упроща- нице или дома вряд ли вам будут
ют деятельность человека. Цифровое разъяснять правила пользования
представление текстов, звука, фото- выключателем или учить, как звонить
графий и фильмов не только обеспе- по телефону с кнопками вместо диска.
чивает долговременность и относи- Умные приборы всё больше входят в
тельную дешевизну хранения, но и наш быт, и обращение с ними должно
делает нужную информацию легко- достичь нормального автоматизма.
доступной. Многотомная энциклопе- Большинство жителей развитых
дия может разместиться на несколь- стран умеют пользоваться кредитны-
ких компакт-дисках, а найти нужную ми банковскими карточками. В Рос-
статью удастся за доли секунды. сии этот метод платежа пока не очень
Том «Информатика» подробно рас- распространён. И часть людей, осо-
сказывает о методах цифрового пред- бенно старшего поколения, с трудом
ставления разных видов информации, осваивают его. К трудной, почти недо-
её хранения и обработки. Читатель ступной для наших дедушек и бабу-
шек науке относится и Интернет.
Между тем большой процент моло-
дёжи активно пользуется Всемирной
сетью. Интернету в томе посвящена
отдельная глава. В ней рассказывает-
ся не только о приёмах использова-
ния Интернета, но и о его устройстве,
технологии передачи данных и т. п.
Такие сведения позволят справиться
с практическими трудностями, при-
чём затратив минимум времени и
усилий.
Считается бесспорным, что каждо-
му из нас надо знать географию, мате-
матику, химию, биологию хотя бы в
рамках школьной программы. Сегод-
ня уже слышны голоса учёных, утвер-
ждающих, что информатика — такая
же метадисциплина, как философия
или математика. Даже более базовая,

6
Информация и человек

чем математика, так что правильнее


сравнить её с арифметикой. Инфор-
матика совсем недавно появилась в
школе как отдельный предмет. Ещё не
утихли споры, с какого класса учить
её и стоит ли вообще это делать. На
страницах книги свою точку зрения
высказывают авторы популярных
школьных учебников по информа-
тике.
Современный человек должен вла-
деть компьютерной грамотностью,
т. е. не просто знать, где находится
кнопка включения домашней ЭВМ, но
и использовать компьютер в работе и
повседневной жизни. Ведь с помощью
компьютера сегодня бухгалтер гото-
вит баланс, лётчик управляет самолё-
том, музыкант занимается аранжиров- чертит тушью чертежи на ватмане.
кой произведения, милиционер Недалеко время, когда информацион-
проверяет документы… Даже военный ные технологии будут преобладать
разведчик передаёт добытые данные повсеместно. Однако у всякого про-
в штаб при помощи ЭВМ, которую гресса есть как положительные, так и
носит на поясе. отрицательные стороны. Ядерные
В томе «Информатика» много стра- исследования дали человечеству не
ниц посвящено компьютеру — уни- только недорогой вид энергии, но и
версальному изобретению человече- страшное оружие — атомную бомбу.
ства. Вы узнаете историю создания Немалые проблемы может создать
вычислительных машин с древних широкомасштабное использование
веков до наших дней. Молодая инфор- ЭВМ и компьютерных технологий. На
матика имеет богатую родословную. страницах тома идёт речь о том, с чем
Ряд предшествующих её формирова- в этой связи мы столкнёмся в XXI веке,
нию гениальных изобретений и намечены и возможные пути преодо-
открытий не потеряли своего значе- ления отрицательных последствий.
ния и поныне. Даже объёмистый том слишком
Но информатика — это не только мал, чтобы вместить основные зна-
«про компьютер», так же как арифме- ния об информатике и её разнооб-
тика — не «про калькулятор», а музы- разных аспектах. Так же как и о чело-
ка — «не про пианино». веке, о науке можно рассказывать
Информационные технологии бесконечно, открывая всё новые гра-
меняют общество и нас самих, но и ни. Кроме того, пока создаётся книга,
они подвержены непрерывному усо- возникают новые идеи, претерпева-
вершенствованию. Часть из них пре- ет изменения существующая техни-
образуется, часть уходит в прошлое. ка, учёные совершают рывок вперёд.
Непрерывно появляются новые, вне- Однако фундаментальные знания,
дряясь в доселе не охваченные сферы которые составляют основу тома,
жизнедеятельности человека и в ка- вряд ли устареют.
ких-то областях отстраняя нас от А о новейших достижениях в сфе-
выполнения привычных функций. ре ЭВМ скоро расскажет очередной
Громоздкие вычисления уже редко том «Энциклопедии для детей», кото-
производят вручную, как редко кто рый будет называться «Компьютер».

7
ИНФОРМАЦИЯ И ЧЕЛОВЕК
КОМПЬЮТЕР — УНИВЕРСАЛЬНЫЙ ИНСТРУМЕНТ
ДЛЯ ОБРАБОТКИ ИНФОРМАЦИИ

Эпоха глобальных информационных дана в любую точку Земли по инфор-


технологий только началась. Значи- мационным сетям. Накопленная за
тельная часть создаваемой человече- предыдущие века информация (текс-
ством информации уже представле- ты, картинки, фильмы или аудиоза-
на в цифровом виде и может быть писи и т. п.) постепенно переводит-
обработана на компьютере и пере- ся в цифровую форму и поступает
в те же информационные сети. Её лег-
ко сохранять, она не искажается при
копировании. Хотя физические но-
сители информации и не вечны,
своевременное копирование, дубли-
рование, хранение информации
в разных узлах компьютерной сети
позволяют не бояться локальных ка-
тастроф — поломок компьютеров,
пожаров. Любые операции по обра-
ботке информации, от рутинных до
творческих, проводятся с помощью
компьютера. Ещё несколько лет на-
зад игра в шахматы считалась исклю-
чительно творческим занятием, а
сегодня становится ясно, что для ком-
пьютера она ненамного сложнее кре-
стиков-ноликов.

10
Информация и человек

Там, где должен стоять компьютер,


он уже стоит или будет стоять в бли-
жайшее время. Современный ком- ОСНОВНЫЕ НАУЧНЫЕ И ТЕХНОЛОГИЧЕСКИЕ
пьютер практически достиг предела ДОСТИЖЕНИЯ XIX—XX ВЕКОВ
возможностей. Текст, хранимый в
компьютере, не в состоянии прочи- • Идея создания компьютера — универсального устройства для
тать его владелец даже за всю свою обработки информации.
жизнь. Математическая обществен- • Идея его реализации на электронных схемах с использованием
ность всего мира производит текстов цифрового, двоичного кодирования любой информации.
за год меньше, чем хранится в памя- • Создание стандартов представления любой информации в дво-
ти современного компьютера. ичном виде.
Взрослые используют компьюте- • Разработка языков программирования для записи алгоритмов
ры для работы, дети — для учёбы. Дело- обработки информации и автоматизация преобразования написанных
вое письмо составляется на компью- человеком алгоритмов в двоичные программы.
тере, хранится в архиве, посылается • Создание общемировой Сети связанных между собой компью-
адресату электронной почтой и лишь теров.
в исключительных случаях печатает- • Технология микроэлектроники (реализация электронных схем на
ся на бумаге. одном кристалле, при которой электронные схемы с миллионами и
Книги уже сегодня создаются в ци- миллиардами переключательных элементов могут изготоваляться мил-
фровом виде. Такие «электронные лионными тиражами).
книги» могут быть скопированы по • Технология дискретизации (цифровое представление любых
компьютерной Сети и прочитаны с видов информации). Аналоговые, непрерывные методы записи, пе-
монитора персонального компьюте- редачи и обработки информации заменяются цифровыми, искаже-
ра или специального карманного ние информации при хранении и передаче исключено, информация
компьютера. Если сегодня человек может считываться и копироваться неограниченное количество раз.
привык идти за книгой в магазин или • Технология цифровых коммуникаций, которую используют все
заказывать её по почте, то завтра, за- современные виды связи для создания общемировой Сети.
платив (с помощью компьютера) из-
дательству, он получит право про-
честь книгу с экрана и напечатать её зейным экспонатом, как механиче-
в одном экземпляре на собственном ские арифмометры и ламповые ра-
принтере или сможет скопировать диоприёмники.
книгу с компьютера автора, взяв обя- Подобная судьба ждёт технологии
зательство заплатить непосредствен- киносъёмки и записи звука. Новые
но ему (если книга понравится). цифровые технологии здесь также
Современный компьютер хранит и теснят старые аналоговые. На переход
бесконечное количество статиче-
ских изображений — картинок и фо-
тографий. Ещё распространены тра-
диционные оптические фотоаппараты,
регистрирующие изображение на све-
точувствительной плёнке, но уже ак-
тивно используются цифровые фото-
камеры, без плёнки (и вообще без
движущихся частей) фиксирующие
изображение сразу в цифровом виде
и записывающие его в электронную
память фотокамеры. Отснятые кадры
можно переписать на персональный
компьютер, посмотреть на экране,
напечатать на принтере или отредак-
тировать с помощью специальной
программы и поместить в компью-
терный семейный фотоальбом. Тра-
диционный фотоаппарат (просуще-
ствовавший 150 лет, практически не
меняясь) скоро станет таким же му-

11
Информация и информатика

к цифровым видеокамерам и магни-


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

ЧТО ТАКОЕ ИНФОРМАЦИЯ

С конца XX столетия слово «ин- • сообщение, осведомление о по-


формация» кажется столь широко ложении дел, сведения о чём-либо,
употребляемым, сколь и неопреде- передаваемые людьми;
лённым. В «Философском энцикло- • уменьшаемая, снимаемая неопре-
педическом словаре» даётся четыре делённость в результате получения
его значения: сообщения;
• сообщение, неразрывно связан-
ное с управлением, сигналы в единст-
ве синтетической, семантической и
«Информация — общенаучное понятие, включающее обмен све- прагматической характеристик;
дениями между людьми, человеком и автоматом, автоматом и • отражение разнообразия в лю-
автоматом; обмен сигналами в животном и растительном мире; бых объектах и процессах неживой и
передачу признаков от клетки к клетке, от организма к организ- живой природы.
му (генетическая информация)». После того как американский
«Большой энциклопедический словарь», 2001 г. учёный и инженер Клод Шеннон
в 1948 г. опубликовал работу об ос-
новах математической теории свя-

12
Информация и человек

АТОМЫ ИНФОРМАЦИИ

Информация, каким бы способом она не была обретена, рую не раз приходилось ре-
всегда фиксирует отличия и изменения. «Поздно» имеет шать человечеству. Без таких
смысл только потому, что существует «рано», весна насту- систем, представляющих не-
пает после зимы. Мы мыслим противопоставлениями, и прерывное прерывным, невоз-
это фундаментальное свойство человеческого мышления. можно представить современ-
Ведь в природе не существует никакого конкретного мо- ную жизнь, ведь это нотная
мента, когда весна сменяет зиму. Это человек, не пассив- грамота, денежная система,
но воспринимая мир, а извлекая из него информацию, де- система счёта времени, гео-
лит непрерывную реальность на элементы с помощью графические координаты,
подразумеваемых порогов, границ, критических точек, до шкала температур и многое
которых было что-то одно, а после стало что-то другое. другое.
Любое «да» имеет смысл лишь в сопоставлении с «нет», Впервые фундаменталь-
любое «больше» — в сопоставлении с «меньше», «война» — ное значение противопостав-
с «миром», «дворцы» — с «хижинами»… ления выяснил основатель Фердинанд де Соссюр.
Итак, каждый раз, создавая информацию или переда- современной лингвистики
вая её, мы делаем цельное дискретным, вычленяем эле- Фердинанд де Соссюр (1857—1913), изучавший язык как
менты. В некоторых случаях дискретность очевидна: вклю- знаковую систему. Именно он показал, что ни один знак не
чена сирена — не включена, подал руку — не подал. Такие имет смысла сам по себе, он существует исключительно в
оппозиции, устроенные по принципу «или — или», назы- оппозиции (противопоставлении) с другими знаками. Невоз-
ваются бинарными. В этих случаях одно состояние есте- можен светофор с одним постоянно горящим фонарём,
ственным, очевидным образом отделено от другого, раз- невозможен алфавит из одной буквы. Даже когда кажется,
личие между ними бросается в глаза (в случае с сиреной — что знак всего один, в действительности это не так.
в уши). С наступлением весны всё гораздо сложнее. В ми- Например, сирена — звуковой знак, означающий «внима-
ре много процессов, не содержащих явных порогов. Эти ние» или «опасность». Но если подумать, становится по-
пороги устанавливаем мы сами, вводя дискретность сво- нятно, что и здесь есть противопоставление: наличие звука
ей волей. «Совсем зарос, — говорит мама, — стричься по- — отсутствие звука. Молчание сирены тоже значимо, оно
ра». — «Не совсем, в глаза же не лезут, — отвечает сын. — выражает смысл «всё как обычно», «ничего особенного не
Ещё так похожу». Здесь разные ситуации разграничива- происходит». Знаки, у которых внешняя форма состоит в
ются по количеству или степени признака. Допустим, сте- отсутствии объекта, называются нулевыми. Примеры
пень «лохматости»: лысый — нулевая, коротко стрижен- нулевого знака — пробел (пауза) между словами, негорящие
ный — первая, волосы немного отросли — вторая, лезут в лампочки на приборе, непротянутая в знак неуважения рука.
глаза — третья, заплетаются в косичку — четвёртая и т. д.
Так организуется градуальная оппозиция. Способ деле-
ния непрерывности бывает различным. Понятно, что, ес-
ли выделять градуальные оппозиции произвольно, это не
даст выполнить важнейшее условие передачи информа-
ции — точность. Представим себе, что не существует еди-
ного календаря, а каждый решает сам, ориентируясь на
собственные ощущения, когда, по его мнению, пришла
весна, а когда кончится сегодня и наступит завтра. Созда-
ние общих для всех и потому обеспечивающих точность
передачи информации знаковых систем — задача, кото-

зи — теории информации, она нашла проникло из кибернетики и инфор-


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

13
Информация и информатика

Как не запутаться в таком разнооб- бы только они обладали формальны-


разии? Имеем ли мы дело с одним или ми свойствами информационных
«Информация — это несколькими понятиями? И есть ли процессов. Поэтому совершенно
особая совокупность между ними какие-либо точки сопри- логично, что сегодня слово «инфор-
сведений, первичным косновения? Постараемся разобраться. мация» имеет гораздо более широкое
источником которых В первоначальном и наиболее уз- значение. Некоторые исследователи
является опыт». ком смысле информация — атрибут даже связывают понятие информа-
разумных существ, людей. Это какие- ции с разнообразием в природе и об-
А. А. Красовский, либо сведения, данные, факты, кото- ществе, с упорядоченностью вообще.
Г. С. Поспелов, рые, будучи получены из опыта, на-
1961 г.
блюдения или путём размышления,
зафиксированы в материальной фор- КОЛИЧЕСТВО
ме для сообщения другому существу
или самому себе. При таком понима-
ИНФОРМАЦИИ
нии любая информация с неизбежно-
стью содержит два компонента — со- Чтобы научиться измерять какую-то
держательный и материальный. То величину, нужно, во-первых, выбрать
есть, во-первых, она должна быть по- единицу измерения, эталон, а во-вто-
нятна тем, для кого предназначена (со- рых, описать процедуру сведения лю-
держательный компонент), во-вто- бой величины к эталону.
рых, представлена на том или ином Если попытаться таким же обра-
физическом носителе, например на зом определить меру информации,
бумаге (материальный компонент). то выяснится, что сделать это можно
Ясно, что одну и ту же информа- различными способами.
цию можно представить совершенно Рассмотрим простейший случай.
по-разному (например, на русском Допустим, информация — любая по-
или на английском языке) и на раз- следовательность нулей и единиц.
ных носителях (в книге, на магнит- Тогда единицей информации ло-
ной ленте). гично считать одно место (разряд)
Но если мы оставим в стороне в такой последовательности, а коли-
смысловой компонент информации чеством информации — длину после-
и в то же время абстрагируемся от лю- довательности.
бого конкретного материального её Например, сообщение из роддо-
носителя, то всё ещё остаётся нечто, ма: «У вас родился мальчик». Если ко-
На самом деле что может быть предметом исследо- дировать каждую букву байтом, как
в итоговом кодиро- вания. Это — формальный компонент. это принято в компьютере, то всё со-
вании «1» не содер- Он включает в себя идею кодирова- общение займёт 21 байт, или 21. 8 =
жится информации ния как таковую, т. е. безотноситель- = 168 бит. Можно несколько умень-
«У вас родился маль- но к смыслу кодируемого и независи- шить это значение, ограничившись
чик», но мы можем мо от физических свойств носителя сообщением: «У вас сын» или просто
восстановить её на информации. Формальный компонент «Сын», что даст соответственно 72
основе дополнитель- принимает во внимание лишь коли- и 24 бит. Если же заранее договорить-
ной информации чественные, частотно-вероятные и ся, что 1 означает «сын», а 0 — «дочь»,
«Сообщение из род- структурные свойства информации. то всё сообщение уложится в 1 бит.
дома». Например, информация может быть Теперь понятен главный недоста-
вероятной и маловероятной; состав- ток такого подхода: количество ин-
ной, т. е. содержать не один, а несколь- формации определяется скорее не со-
ко независимых фактов. держанием самой информации,
Формальные свойства информа- а используемым кодом. В зависимос-
ции можно исследовать математиче- ти от того, насколько оптимален или
скими методами — так родилась тео- избыточен код, количество инфор-
рия информации. Замечательно же мации в одном и том же сообщении
то, что результаты данных исследо- будет меньше либо больше.
ваний равно применимы к любым Попробуем пойти другим путём.
процессам и явлениям, в том числе Прежде всего абстрагируемся от кон-
и не относящимся к информацион- кретного способа представления той
ным в узком смысле этого слова, лишь или иной информации. Пусть ин-

14
Информация и человек

ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ

Для хранения, преобразования и передачи информа- Появились фотостудии, где уже предлагают сде-
ции важнее её различные представления и методы их лать голографическую, псевдотрёхмерную фотогра-
использования, чем строгое определение. фию родных, домашних питомцев.
Информация обязательно должна быть зашифро- 2. Акустическая информация (речь, звук). Практиче-
вана в виде знаков, символов, кодов. Кодирование ски все животные в той или иной степени способны
может производиться много раз и с различными це- воспринимать звук: они предупреждают друг друга об
лями: обеспечить передачу по тем или иным каналам опасности, устанавливают свой статус в сообществе, воз-
связи, уменьшить нагрузку на какой-либо из них, со- можно, даже согласовывают действия при совместной
хранить конфиденциальность информации и т. д. Пе- охоте. Но только человек с помощью речи выражает
ревод на другой язык — то же кодирование, осуще- чувства, мысли, до некоторой степени заменяет визуаль-
ствляемое для того, чтобы информацию мог ное восприятие информации. Если рассказчик красноре-
воспринять человек, незнакомый с языком, т. е. с ис- чиво, ярко, образно опишет что-то, то слушатель вооб-
ходным представлением информации. разит изображаемый предмет, словно он его видит. На
В последнее время широкое распространение по- компьютере речь бывает представлена как любой дру-
лучила цифровая телефония. Любой человек может гой звук или музыка либо разбита на отдельные звуки —
купить карточку с персональным кодом и позвонить фонемы или даже целые слова.
в другой город или даже в другую страну. Во время 3. Символьная информация (текст, письменность).
разговора происходят следующие информационные С помощью письменности человек обрёл нечто по-
процессы. Сначала информация шифруется в мозгу добное бессмертию: мысли, однажды занесённые на
человека последовательно в виде образов, мыслей, папирусные свитки, пергамен, бумагу, на различные
речи. С помощью телефонного устройства колебания цифровые носители, при условии правильного хране-
(речь) преобразуются в электрические импульсы. На ния будут существовать почти вечно.
компьютерных станциях-коммутаторах аналоговые Любая подобная классификация будет неполной —
электрические импульсы трансформируются в циф- всегда есть такое представление информации, кото-
ровой код, который обрабатывается при помощи спе- рое не подходит под составленную схему. К чему от-
циальных алгоритмов, чтобы ускорить его передачу. нести биологическую информацию в ДНК? Или на-
Потом код передаётся по каналам связи, ещё раз пре- пряжения в земной коре, свидетельствующие о
терпевая кодирование, на этот раз для того, чтобы глубинных тектонических процессах? Или излучение
обеспечить его корректную доставку получателю. далёких звёзд, по которому можно определить их вид,
На принимающей станции происходит обратный про- состав, процессы, идущие в них?
цесс (раскодирование): цифровой код преобразуется Поэтому классифицировать информацию необхо-
в аналоговый электрический импульс, затем в теле- димо в зависимости от использования. То ли это ин-
фоне — в звуковые колебания, которые наконец вос- формация, воспринимаемая человеком, то ли инфор-
принимаются вторым собеседником. мация, обрабатываемая компьютером, то ли
В такой длинной цепочке изменялось представле- многовековые знания человечества — везде необхо-
ние информации, но целевое содержание (передава- дима своя целевая классификация.
емая информация) осталось неизменным.
В мире существуют многообразные виды инфор-
мации. Предложим классификацию, основанную на
восприятии человека.
1. Визуальная (зрительная) информация. Такую ин-
формацию, конечно, понимает не только человек, но
и животные. В отличие от животных, в основном усва-
ивающих всего лишь отражение внешнего мира, чело-
век смог записать, сохранить визуальную информацию
сначала в виде наскальных рисунков, потом иконопи-
си, живописи, фотографии, видео. Прогресс идёт впе-
рёд, XXI век — это время создания и широкого внедре-
ния технологии записи и воспроизведения не плоского,
а уже настоящего трёхмерного изображения, на кото-
рое можно посмотреть сбоку, сверху, его можно обой-
ти и увидеть, что происходит с другой стороны.

15
Информация и информатика

формация (сообщение) передаётся при игре в своеобразные кости. Ин-


от отправителя A к получателю B. Не- туитивно понятно, что в данном слу-
«Информация — это зависимо от реальной длины сооб- чае неопределённость выше. Но на-
содержание воздей- щения и способа его кодирования сколько, вот в чём вопрос! Допустим,
ствия, его величина, будем считать, что получатель узна- N = 8. Тогда однозначный выбор из
изменение в прост- ет из него что-то новое относитель- восьми вариантов можно сделать, по-
ранстве и времени, но какого-то факта (степень неопре- лучив ответ («да» или «нет») всего на
используемое как делённости относительно данного три вопроса. Первым вопросом мы
средство связи слож- факта уменьшилась). Поэтому допу- сокращаем число вариантов с восьми
ных систем». стим, что количество информации до четырёх, вторым — с четырёх до
есть не что иное, как уменьшение сте- двух, третьим — до одного. После каж-
Н. М. Амосов, пени неопределённости поступле- дого ответа мы получаем 1 бит ин-
1963 г. ния информации, которое произо- формации. Значит, всего 3 бит.
шло в результате получения этой В более общем случае, когда N =
информации. Это ещё не определе- = 2k, мы получаем k бит. То есть коли-
ние количества информации. Ска- чество информации, необходимое
занное только главная идея. Далее, для устранения неопределённости из
уточняя вышеизложенное, шаг за ша- нескольких равнозначных вариан-
гом мы попытаемся вывести настоя- тов, равно k = log2N.
щее определение. Шаг 3. Неопределённость из двух
Шаг 1. Неопределённость из двух неравнозначных вариантов. Пусть
равнозначных вариантов. Например, дано восемь равнозначных вариан-
родится сын или дочь, выпадет «орёл» тов. Нам важно только знать, какой
или «решка». Если в результате получе- из них (первый или какой-либо
ния информации неопределённость другой) был принят. Происходит вы-
исчезает (нам сообщили, какой именно бор из двух вариантов, причём нерав-
из двух вариантов имеет место), будем нозначных. Допустим, ответ «Да, пер-
считать, что получена одна единица вый». Логично считать, что, как и на
информации (единица измерения ин- шаге 2, мы получили 3 бит информа-
формации называется битом). ции, так как изначальная неопреде-
Шаг 2. Неопределённость из N рав- лённость из восьми вариантов све-
нозначных вариантов. Например, лась к одному варианту.
Предположим теперь, что ответ
«Нет, не первый». Хотя неопределён-
ность полностью и не устранена, тем
«Понятие количества информации совершенно естественно свя-
не менее она уменьшилась с восьми
зывается с классическим понятием статистической механики —
вариантов до семи. Значит, сколько-
энтропии. Как количество информации в системе есть мера ор-
то информации мы всё же получили,
ганизованности системы, точно так же энтропия есть мера не-
допустим, x бит.
организованности системы. Одно равно другому, взятому с об-
Для устранения оставшейся не-
ратным знаком».
определённости из семи вариантов
Н. Винер. нам нужно ещё log27 бит информа-
«Кибернетика» ции. Вместе они дают 3 бит инфор-
мации, так как сокращают неопре-

16
Информация и человек

делённость с восьми до одного вариа-


нта. Поэтому x + log 27 = 3 или
x = 3 – log27. СМЫСЛОВАЯ ИНФОРМАЦИЯ
Итак, сообщение «Да, первый» да-
ло нам 3 = log28 бит информации. Со- В теории связи количество информации
общение же «Нет, не первый», сокра- оценивается с точки зрения затрат на пе-
тившее число вариантов с 8 до 7, дало редачу сообщений. Для работы приёмно-
3 – log27 = log2(8/7) бит информации. передающих устройств первостепенен не
В общем случае, когда существует смысл сигналов, а их статические свойства:
N равнозначных вариантов и есть со- разнообразие сигналов, избыточность и
общение о том, что имеет место один т. п. Для человека же существенное зна-
из k (k < N) вариантов, причём неиз- чение имеют именно смысл передаваемо-
вестно, какой именно, мы получим го сообщения и получаемые при этом зна-
log2(N/k) бит информации. ния, т. е. смысловая информациия.
Из теории вероятностей известно, На основе смысловой информации вы-
что k/N — вероятность p данного со- рабатывается и закрепляется в мозгу соот- Ю. А. Шрейдер.
бытия. Поэтому окончательно полу- ветствие между будущими символами или
чаем log2(1/p) = –log2p. образами на входе и необходимыми действиями. Высшие животные не
Количество информации в сооб- могли бы существовать, если бы у них не было достаточного соответ-
щении является в определённом смы- ствия между сигналами ситуаций внешней среды (запах хищника, запах
сле оптимальной длиной сообщения. добычи и т. д.) и целесообразными в этих ситуациях действиями. При-
чём если у насекомых такое соответствие является в основном врож-
дённым и поведение их формируется на базе врождённых инстинктов,
СОЗДАЮТ ЛИ то у млекопитающих оно пополняется в течение всей жизни, и получа-
емая информация через органы чувств носит во многом смысловой ха-
ИНФОРМАЦИЮ рактер, идёт на пополнение запаса соответствий в их памяти. У чело-
КОМПЬЮТЕРЫ века смысловая информация идёт на пополнение соответствий не только
между внешними сигналами и действиями, но и между понятиями.
Математическая теория информации, Таким образом, общей чертой смысловой информации является
как и все математические теории, ка- то, что она изменяет запас сведений, запас соответствий у получате-
жется безупречной с точки зрения ло- ля информации. Первоначальный (и меняющийся в ходе поступления
гики и к тому же прекрасно «работа- информации) запас соответствий можно представить себе как неко-
ет» в самых разных областях. И тем не торый обобщённый словарь или справочник, который Ю. А. Шрей-
менее она не лишена внутреннего дер предложил называть тезаурусом (греч. «тезаурус» — «сокровище»;
противоречия. имеются в виду словари, где даны не только значения слов, но и свя-
Рассмотрим такой парадокс. зи между ними). В качестве меры количества смысловой информации
Предположим, кто-либо получает естественно взять изменение тезауруса приёмника под действием по-
следующее сообщение: «Дважды ступившей информации.
два — четыре». Это весьма содержа- Количество информации зависит от приёмника, от его тезауруса.
тельное сообщение, часть таблицы Если тезаурус приёмника слишком беден, количество информации в
умножения. И тем не менее с фор- сообщении оказывается вообще равным нулю. Например, в сообще-
мальной точки зрения оно не содер- нии «Это учебник по высшей математике для первого курса вуза» трёх-
жит никакой информации. Действи- летний ребёнок совсем ничего не поймёт, а школьник старших клас-
тельно, вероятность того, что дважды сов уже кое-что выделит. Максимальную же информацию извлечёт,
два равно именно четырём, а не пя- очевидно, студент того курса, для которого учебник и предназначен.
ти, не шести и так далее, — единица: Любопытно, что по мере дальнейшего расширения тезауруса приём-
log21 = 0. ника воспринимаемая информация начинает уменьшаться. Уже у сту-
Следовательно, в сообщении со- дента второго курса при чтении учебника для первого курса измене-
держится 0 бит информации. Точно ние тезауруса будет меньше, а для человека, хорошо знающего высшую
так же с формальной точки зрения математику, этот учебник не несёт никакой информации.
количество информации, заключён- В области искусства и литературы методы теории информации ста-
ной в любой математической теоре- нут плодотворными лишь в том случае, когда будут разработаны спосо-
ме, любом законе физики, любом бы оценки количества информации (не только статистической, но и се-
корректном рассуждении или дока- мантической, смысловой), а также методы оценки изменения тезауруса
зательстве, равно нулю. человека (в том числе и его эмоционального тезауруса) под действием
С каждым годом компьютеры ста- произведений искусства.
новятся всё «умнее и умнее». Они

17
Информация и информатика

мастерски играют в шахматы, пред-


сказывают погоду. Известен случай,
когда с помощью компьютера была
доказана теорема (см. дополнитель-
ный очерк «Задача о четырёх красках»
в томе «Математика» «Энциклопедии
для детей»). Кажется очевидным, что
компьютеры производят информа-
цию. Однако вся информация, содер-
жащаяся, к примеру, в решении диф-
ференциального уравнения, на самом
деле уже имеется в его записи и на-
чальных условиях, внесённых в ма-
шину оператором. Машина лишь
«проявила» эту скрытую информацию,
перевела её в другую, более пригод-
ную для нас форму.
Аналогично, в речи кажется естест-
Информация (лат. informatio — «разъяснение», «изложение», венной фраза «электростанция про-
«осведомлённость») — одно из наиболее общих понятий науки, изводит электроэнергию». Но из кур-
обозначающее некоторые сведения, совокупность каких-либо са физики известен закон сохранения
специальных знаний и т. п. энергии, и, строго говоря, электро-
«Энциклопедия кибернетики», 1974 г. станция не производит никакой энер-
гии, а лишь преобразует её из одной
формы в другую.

ТЕОРИЯ ИНФОРМАЦИИ

Передача сообщений является од- слова, состоящие из комбинаций двух


ним из важнейших видов деятельно- знаков — нуля и единицы. (Разряды
сти человека. Изобретение телегра- таких двоичных слов принято назы-
фа, телефона и Интернета изменило вать битами.) Для записи всех букв
само существование человечества. русского языка, цифр, знаков препи-
Если проанализировать процесс пе- нания хватило бы и 7 бит (7 бит по-
редачи сообщений, то, несмотря на зволяют записать 27 = 128 различных
всё многообразие (от разговора до сообщений), используется же 8, с до-
компьютерных команд), выделяют полнительным проверочным битом,
два основных этапа. Сначала сооб- позволяющим обнаружить многие (но
щение переписывается в том виде, в не все) ошибки, произошедшие при
котором его удобнее передать (хра- передаче (записи, хранении) данной
нить), затем оно дописывается, для буквы. Более впечатляющим является
того чтобы никакие помехи при пример записи музыки на СD, когда
передаче не повлияли на качество даже царапины почти не влияют на
приёма. Первый этап называется ко- качество воспроизведения (это стало
дированием источника сообщений, возможным благодаря помехоустой-
второй — помехоустойчивым коди- чивому кодированию).
рованием. Математическая теория передачи
Если взять в качестве примера сообщений, или теория информа-
обычный текст, набранный на ком- ции, была сформулирована в рабо-
пьютере, то буквам алфавита, как, тах знаменитого американского
впрочем, и знакам препинания, и ци- учёного и инженера Клода Элвуда
фрам, можно поставить в соответствие Шеннона (1916—2001).
определённые наборы нулей и единиц. Шеннон широко использовал идеи
Эти наборы удобно рассматривать как и методы теории вероятностей и ввёл

18
Информация и человек

важнейшее понятие энтропии как ко- это рассматривать только префикс-


личества информации. ные коды, когда никакое кодовое сло-
Один из наиболее популярных во не является началом другого ко-
примеров кодирования источника — дового слова. Приведённый выше
азбука (или код) Морзе, применяе- пример несомненно не является пре-
мая в телеграфии. Здесь с разными фиксным кодом. Простейший пре-
буквами сопоставляются различные фиксный код — это равномерный
двоичные слова (тире и точки заме- код, где все слова одной и той же дли-
нены на нули и единицы), буквам с ны. Чуть более сложный пример пре-
большой частотой появления (таким, фиксного кода с неравной длиной
как «А», «О») соответствуют короткие кодовых слов:
слова, а буквам с малой частотой упо-
требления (как «Ы») — длинные. Это A→0; B→10; C→110; D→111.
позволило Морзе сделать среднюю
длину двоичных слов близкой к ми- Чтобы декодировать двоичную Клод Элвуд Шеннон.
нимально возможной. А какова ми- последовательность, составленную
нимально возможная средняя длина? из слов этого кода, следует начать с
Следуя Шеннону, можно рассмотреть первого символа и оставить только
вероятностную постановку этой за- те кодовые слова, для которых он яв-
дачи. Пусть P i — частота (вероят- ляется началом. Если таких слов не-
ность) появления в словах i-й буквы сколько, то придётся рассмотреть
алфавита. Для простоты предполо- первые два символа и сократить спи-
жим, что i-я буква алфавита появля- сок возможных слов, сохранив опять
ется в словах независимо от преды- лишь слова, начинающиеся с данных
дущих букв (конечно, в любом символов, и т. д. В конце получится
естественном языке, в частности рус- единственное кодовое слово, совпа-
ском, существуют определённые пра- дающее с несколькими первыми би-
вила). Буквам алфавита ставятся тами (не более трёх в примере), а все
в соответствие двоичные слова. На- остальные кодовые слова будут на
пример, при соотнесении с буквой этих позициях отличаться от приня-
«Т» слово (0), «Ы» — слово (1), «Я» — тых битов. Теперь эти биты «вычёр-
слово (01) получится следующая не- киваются», и процедура продолжа-
разрешимая ситуация. Из начала не- ется дальше. Так, для двоичной
которой двоичной записи в виде (01) последовательности 100111 полу-
не известно, что же закодировано — чится:
слово «Я» или слово «ТЫ».
Наиболее простой способ обеспе- 100111 = (10) 0111 = (B)(0)111 =
чить однозначное декодирование — = (B)(A)(111) = (B)(A)(D) = BAD.

19
Информация и информатика

Распределению вероятностей
P = {p1, ... , pm } сопоставляется число
H(P) = p1log2(1/p1) + ... + pmlog2(1/pm),
называемое энтропией источника и
служащее мерой неопределённости.
Чаще всего в этой формуле исполь-
зуются логарифмы по основанию 2,
и тогда количество информации,
необходимой для восстановления
значения источника (т. е. устране-
ния неопределённости), измеряется
в битах. Один бит соответствует ко-
личеству информации, получаемой
из ответа на вопрос с двумя равнове-
роятными ответами.
Первая теорема Шеннона — теоре-
ма кодирования для канала без шума
утверждает, что для любого кодирова-
ния (с однозначным декодированием)
его средняя длина E(L) не меньше энт-
ропии H(P), а с другой стороны, суще-
ствуют кодирования со средней дли-
ной, сколь угодно близкой к H(P). Тем
самым теорема означает, что сообще-
ния от источника могут быть закоди-
рованы в двоичной форме со средней
длиной представления, незначительно
большей, чем энтропия источника, и
Как сравнивать различные коди- что «экономнее» энтропии никакой ис-
рования (однозначные) по эффектив- точник сообщений представить нель-
ности, что выбрать в качестве меры зя. Величину r(L) = E(L) – H(P) называ-
эффективности? ют избыточностью кодирования L, тем
Шеннон предложил рассматри- самым 0 < (L) < 1 для однобуквенных
вать среднюю длину кодирования кодировок.
(среднюю длину кодовых слов)
E(L) = p1 L1 + ... + pm Lm, где Li — длина
i-го слова, и считать кодирование оп-
тимальным с минимально возмож-
ной средней длиной. Ясно, что не-
важно, как называются буквы А, Б...
или X, Y..., а важно только, сколько
букв и вероятности Pi их появления,
т. е. всё определяется распределени-
ем вероятностей P = {p1, ... , pm }. Мно-
жество букв (алфавит) с заданным
распределением вероятностей назы-
вают источником сообщений.
Для алфавита, состоящего из че-
тырёх букв (A, B, C, D), и распределе-
ния вероятностей: P(A) = 1/2, P(B) =
= 1/4, P(C) = P(D) = 1/8. Естественно,
что P(A) + P(B) + P(C) + P(D) = 1/2 +
1/4 + 1/8 + 1/8=1. Средняя длина кода,
описанного в предыдущем примере,
E(L) = p1 L1 + ... + pm Lm равна 7/4, что
меньше 2 бит, необходимых при рав-
номерном кодировании.

20
Информация и человек

Для побуквенных кодировок нель-


зя утверждать, что избыточность ко-
дирования можно сделать сколь угод-
но малой, а гарантировать лишь то, что
избыточность кодирования можно
сделать меньше 1. Для получения ма-
лой избыточности кодирования пере-
ходят от побуквенных кодировок
к блочным, когда кодируются блоки
из n букв алфавита. Пусть для просто-
ты анализа буквы источника появля-
ются независимо. Тогда вероятность
появления блока A = (a1, … , an) равна
P(A) = p(a1) . … . p(an), а энтропия ан-
самбля блоков букв равна H(P n) =
= nH(P). Следовательно, для блочных
кодирований средняя длина кода на
букву (текста) не меньше H(P), а с дру-
гой стороны, она меньше, чем ставления (одиночная ошибка)
100111 приведёт к 000111 =
1
– n 1
n H((P ) + 1) = H(P) + –
n .
= (0)(0)(0)(111) = AAAD.
Для формального описания зада-
Тем самым при увеличении длины чи исправления ошибок Шеннон
кодируемых блоков средняя длина ко- ввёл понятие канал передачи инфор-
дирования может стать очень близ- мации. У канала есть вход, куда по-
кой к энтропии источника, а избыточ- ступают символы из некоторого ал-
ность кодирования — достаточно фавита X (другие символы канал
малой. Алгоритмы кодирования так- просто не воспринимает). Канал рас-
же называют алгоритмами сжатия ин- сматривается как «чёрный ящик», т. е.
формации, поскольку они позволяют неважно (или неизвестно), что про-
представлять данные более эконом- исходит внутри канала, сообщается
но, устраняя имеющуюся в данных только результат — выход y (y при-
естественную избыточность. надлежит некоторому алфавиту Y).
До сих пор рассматривался вопрос Следовательно, канал задаётся неко-
о кодировании источника информа- торым законом того, что на выходе
ции (сообщений), т. е. экономном канала будет y, если на входе было x
представлении информации в удоб- (условные распределения вероятно-
ном виде (например, двоичном), стей P(Y = y | X = x)). Одним из важ-
предполагая, что закодированная ин- нейших примеров является двоич-
формация не подвергается каким-то ный симметричный канал (ДСК), где
искажениям — шума нет. Это и объяс- вход и выход двоичные (X = Y = {0,1})
няет название первой теоремы Шен- и вероятность того, что y = x (веро-
нона — «теорема кодирования для ка- ятность безошибочной передачи
нала без шума». Но, конечно, в двоичного символа), равна q, т. е. ве-
большинстве реальных ситуаций шум роятность ошибки p = 1 – q. Просте-
есть, иногда столь незначительный, что йший способ надёжно передавать
им можно пренебречь, но весьма ча- сообщения по такому каналу — по-
сто и такой, который приводит к изме- вторять символы по нескольку раз
нению выбранной нами формы пред- (как во время телефонного разгово-
ставления (кодирования). Тогда уже ра, если собеседник не расслышал
нельзя гарантировать однозначность слово).
декодирования. Или «декодирование» Пусть p = 0,1 и каждый двоичный
будет однозначным, но приведёт к не- символ повторяется 2m + 1 раз (напри-
верному (не тому, которое посылалось) мер, семь). Тогда приёмник прини-
сообщению. мает решение, что передавался тот
Так, для слова BAD изменение символ, который чаще (не менее чем
первого бита его двоичного пред- 4 = m + 1 раз) появлялся на выходе

21
Информация и информатика

КОДЫ ХЭММИНГА

История кодов, исправляющих ошибки, началась чуть двух позициях. Так как в каждом шаре 8 точек (7 плюс
более полувека назад, когда молодой американский центр), а всего слов в пространстве 128, то можно
учёный Ричард Уэсли Хэмминг решал задачи на одной разместить не более чем 128/8=16 непересекающих-
из первых вычислительных машин. Компьютеры того ся шаров, т. е. код Хэмминга оптимален.
времени были ненадёжны и часто ошибались. Приме- Код Хэмминга задаётся как множество решений
няемый уже тогда простой метод обнаружения ошибок однородной (т. е. правая часть равна 0) системы из
(проверка на чётность, каждому машинному слову из 0 четырёх линейных уравнений с семью неизвестными
и 1 приписывается дополнительный избыточный бит, x1 , ... , x7, у которой столбцы матрицы коэффициен-
равный 0, если в слове чётное число единиц, и 1 — ес- тов пробегают все 7 ненулевых столбцов из 0 и 1, а ра-
ли нечётное) позволял обслуживающему персоналу пе- венство нулю понимается как равенство по модулю два
резапустить вычислительный процесс. Но по выходным (т. е. результат арифметических действий, как с обыч-
дням, когда у Хэмминга было основное машинное вре- ными целыми числами, должен быть чётным числом).
мя, компьютер никто не обслуживал, и в результате мно- Пусть x = (x1 , ... , x7) — кодовое слово, а y = (y1 , ... ,
го вычислений проводилось напрасно. Тогда ему приш- y7) — принятое (из канала) слово, отличающееся от x не
ла мысль, что если коды могут обнаруживать ошибки более чем в одной позиции. Декодирование, т. е. вос-
автоматически, то должны быть и коды, способные ис- становление x по y, происходит следующим образом.
правлять ошибки. Сначала вычисляется синдром s(y) = (s1 , ... , s4) слова y,
Так появился теперь хорошо известный [7,4]-код как значения правых частей четырёх уравнений, в кото-
Хэмминга, исправляющий одиночные ошибки. Этот рые подставлены yi (вместо xi). Затем ищется такая по-
код позволяет представить (закодировать) 4 бит ин- зиция i, где соответствующий столбец коэффициентов
формации с помощью 7 бит таким образом, что лю- уравнений совпадает с синдромом и исправляется (т. е.
бая одиночная ошибка в 7-бит-
ном представлении будет
исправлена, в результате чего
удастся правильно восстано-
вить исходные 4 бит.
Так как 4 бит информации
представляют 24 =16 различ-
ных сообщений, то код Хэм-
минга состоит из 16 так назы-
ваемых кодовых слов длины
7. Свойство исправления оди-
ночных ошибок означает, что
искажение любого бита в
каком-то кодовом слове и лю-
бого (или ни одного) бита в
другом не может привести к
одному и тому же 7-битному
слову, имеется множество
(«пространство») из 27 = 128
7-битных слов, и в нём под-
множество (код) из 16 слов.
Вокруг каждого кодового сло-
ва есть «облако» («шар») из
7 слов, полученных в резуль-
тате одиночных ошибок, «об-
лака» («шары») не должны пе-
ресекаться. Последнее условие
исправления одиночных оши-
бок равносильно тому, что лю-
бые два кодовых слова долж-
ны отличаться более чем в Устранение одиночных ошибок (диаграммы Венна).

22
Информация и человек

инвертируется) i-я позиция в слове y. Если же синдром ошибки блоковой структуры


равен 0, то одиночной ошибки не было: x = y. (например, в словах из 128 бай-
Эта конструкция легко переносится на случай, ког- т исправляются любые пять
да слова имеют длину n = 2r– 1, а число кодируемых ошибочных байтов). Эти коды
битов k = n – r. Получаемый код Хэмминга позволя- являются оптимальными, так как
ет исправлять одиночные ошибки и оптимален. Для для исправления ошибочных
длин кода, отличных от 2r– 1, построение оптималь- блоков им требуется избыточ-
ного двоичного кода с исправлением одиночных оши- ность в виде r = 2t провероч-
бок является сложной математической задачей, не ре- ных блоков. В частности, коды
шённой до конца. Известно, что максимальное число Рида — Соломона используют-
слов в коде Хэмминга равно: 16 для n = 7 (1950 г.); ся в CD-проигрывателях и обес-
20 для n = 8 и 40 для n = 9 (1980 г.); 72 для n = 10 печивают высокое качество вос-
(1999 г.), для n = 11 ответ неизвестен (однако он произведения музыки. Ещё
существует для n от 12 до 15). пример применения кодов с ис-
Ещё более сложным и интересным является во- правлением ошибок: передача
прос о построении кодов, исправляющих многократ- данных как из космоса, так и по
ные ошибки. В настоящее время существует несколь- обычному телефонному каналу Ричард Уэсли
ко классов подобных кодов, широко и успешно (например, при сеансовом до- Хэмминг.
применяемых на практике: БЧХ, Рида — Соломона, ступе в Интернет), мобильная
Рида — Маллера и др. Наиболее популярны коды Ри- связь, хранение данных в ком-
да — Соломона, которые исправляют многократные пьютере и многое другое.

Обнаружение двойной ошибки.

23
Информация и информатика

и вероятностью ошибки меньше лю-


«В наш век возрастающей дифференциации человеческих зна-
бой заранее заданной сколь угодно
ний Клод Шеннон является исключительным примером соеди-
малой величины. Для двоичного сим-
нения глубины отвлечённой математической мысли с широким
метричного канала пропускная спо-
и в то же время совершенно конкретным пониманием больших
собность C = p log2 p + q log2 q, и она
проблем техники. Его в равной мере можно считать одним из
больше 0 для любой вероятности
первых математиков и одним из первых инженеров последних
ошибки, отличной от 1/2. В частнос-
десятилетий».
ти, пропускная способность ДСК с
вероятностью ошибки p = 0,1 равна
А. Н. Колмогоров примерно 1/2. Это означает, что су-
ществуют коды, исправляющие ошиб-
ки, кодирующие блок из k бит инфор-
канала. При этом вероятность ошибки мации в кодовый блок из примерно
декодирования стремится к нулю с ро- 2k бит, передаваемый по ДСК. Поэтому
стом m, правда довольно медленно. даже в результате ошибок в канале ве-
Основной недостаток данного ме- роятность «перепутать» один кодовый
тода заключается в том, что его КПД = блок с другим очень мала.
= 1/(2m + 1), называемый скоростью Шеннон доказал свою теорему, не
передачи, также стремится к нулю. предъявив такие коды, что было бы
На первый взгляд кажется, будто этот естественным, а показав, что случай-
недостаток «врождённый» и требова- но выбранный код почти обязательно
ние стремления к нулю вероятности обладает требуемым свойством.
ошибки декодирования приводит к И до сих пор, несмотря на интен-
тому, что у соответствующих мето- сивные исследования, параметры яв-
дов передачи информации скорость но построенных кодов остались ху-
передачи будет стремиться к нулю. же, чем у случайных кодов. Тем не
Вторая теорема Шеннона гово- менее коды, исправляющие ошибки,
рит, что это не так и для любой вели- нашли очень широкое применение
чины R, меньшей, чем пропускная спо- в технике — от надёжной передачи
собность канала C, можно передавать данных с межпланетных станций до
сообщения со скоростью передачи R бытовых CD-проигрывателей.

КЛОД ЭЛВУД ШЕННОН

Теория информации является одним бакалавра как математик и как элек-


из редких примеров научных дисци- троинженер. Двумя годами позже он
плин, о которых точно известно вре- стал магистром, защитив диссерта-
мя их создания. Данная наука была цию на тему «Символический ана-
описана в эпохальной работе Клода лиз релейных и переключательных
Элвуда Шеннона «Математическая тео- схем», в которой впервые показал,
рия связи» (1948 г.). В этой работе Шен- что анализ таких схем (прообраз со-
нон не только ввёл новые понятия, временной компьютерной техники)
такие, как «количество информации», может быть проведён с помощью ма-
«энтропия», «канал связи» и его про- тематического аппарата символиче-
пускная способность, и показал ской (булевой) логики.
теоретические пределы передачи Одновременно аналогичные ре-
информации, но и во многом пред- зультаты получили В. И. Шестаков и
определил дальнейшее развитие тео- А. Накасима.
рии информации на несколько деся- Довольно неожиданно Шеннон
тилетий вперёд. обратился к генетике и защитил в
Клод Элвуд Шеннон родился 30 ап- 1940 г. диссертацию по математике
реля 1916 г. в городке Гейлорд (США). (на степень доктора философии) на
Окончив в 1936 г. Мичиганский уни- тему «Алгебра теоретической генети-
Клод Элвуд Шеннон. верситет, Шеннон получил степень ки». К сожалению, эта работа не бы-

24
Информация и человек

ла вовремя опубликована и увидела Клод Шеннон не был стереотипным


свет лишь в конце XX в. «кабинетным учёным». Его всегда ин-
В начале Второй мировой войны тересовала возможность создания
Шеннон поступает работать в матема- «шахматной машины» или «шахмат-
тическую лабораторию компании ной программы». Приехав в Москву
AT&T Bell Telephones, одновременно в 60-х гг. он добился того, чтобы
он является советником национально- сыграть партию с чемпионом мира
исследовательского комитета Минис- Михаилом Ботвинником. Он сочетал
терства обороны США. В Bell Labs он таланты циркового артиста (мог жон-
трудится вплоть до 1972 г. За эти годы глировать, катаясь на одноколёсном
учёный создал теорию информации, велосипеде) и умельца (сам смастерил
заложил основы теории управляющих несколько автоматов, среди них —
систем и, написав всего одну статью по жонглирующаю машина).
криптографии, превратил этот пред- Около двух десятилетий учёные
мет из искусства в науку. разных стран (но в основном СССР А. Я. Хинчин.
В 1956 г. Клод Шеннон избран чле- и США) обобщали результаты, по-
ном Национальной академии наук лученные Шенноном, и давали им
США и Американской академии ис- строгое математическое обоснова-
кусств и наук, а с 1957 г. становится ние. Следует особо отметить работы
профессором электротехники и мате- А. Я. Хинчина, И. М. Гельфанда, А. Н. Кол-
матики Массачусетсского технологи- могорова, А. М. Яглома, Р. Л. Добру-
ческого института. шина и М. С. Пинскера.
При этом обнаружилось, что идеи
теории информации оказались полез-
ными и для самой математики. Так, ис-
пользование понятия энтропии при-
вело А. Н. Колмогорова к решению
проблемы изоморфизма динамиче-
ских систем, а также подтолкнуло его
к решению 13-й проблемы Гилберта
(о представимости непрерывных И. М. Гельфанд.
функций от многих переменных в ви-
де суперпозиции непрерывных функ-
ций от меньшего числа переменных).
Теория информации Шеннона ба-
зировалась на теории вероятностей.
Во второй половине 60-х гг. А. Н. Кол-
могоров создал алгоритмическую
теорию информации, позволившую
по-иному взглянуть на такое осново-
полагающее понятие, как «случай-
ность».
Выдающемуся учёному Клоду
Шеннону посчастливилось перешаг-
нуть в XXI в. Он прожил почти 85 лет
и скончался 24 февраля 2001 г. в Мед-
Элизабет Шеннон у памятника мужу в Гейлорде. форде, штат Массачусетс. А. Н. Колмогоров.

25
КОДИРОВАНИЕ ИНФОРМАЦИИ
ОТ РИСУНКА К БУКВЕ
Первые начертания, смысл которых ности, с магией и со счётом. Забор —
нам понятен, — изображения живот- один из первых знаков собственно-
ных на стенах пещер, сделанные на- сти, корона или скипетр — знаки вла-
шими далёкими предками десятки сти и положения в обществе, хрус-
тысяч лет назад. Однако между ними тальный шар — символ ясновидения,
и письменностью — огромная дис- а камешки давно превратились в ко-
танция. стяшки счётов.
Для передачи информации изна- Вероятно, именно со счётом были
чально использовались так называе- связаны знаки, переходные от пред-
мые предметные знаки: ракушки, метов к изображению. Это зарубки на
камешки, кости и перья животных, палке, которыми обозначался долг.
узелки и т. д. Такой знак может, на- Когда нанесённые на какую-либо
пример, указывать на наличие цело- поверхность значки используются
го класса аналогичных предметов уже не только для счёта, но и для
(именно на этом принципе строит- передачи развёрнутых сообщений,
ся заполнение витрин магазинов, ког- возникает идеографическое, т. е.
да выставляются только некоторые картинно-изобразительное, письмо,
предметы из ассортимента). В дру- нечто среднее между рисунком и
гом случае предметный знак высту- знаковым письмом. Картинка в целом
пает как символ понятия, предмета могла изображать некую ситуацию,
или целой ситуации. Так, в одном из как в наскальной живописи, но в ней
африканских племён в качестве уже выделялись элементы, не столько
знака оповещения о казни осуждён- изображающие, сколько обознача-
ному посылалось яйцо попугая. ющие отдельные элементы ситуации.
Наиболее типичные функции та- Закрепление отдельных знаков за
ких знаков связаны с обозначением определёнными понятиями, возмож-
принадлежности, статуса, собствен- ность их использования для описа-

26
Кодирование информации

ния разнообразных ситуаций озна- ного языка, и передавать при написа-


чают переход к словесному, или ие- нии соответствующими иероглифа-
роглифическому, письму. В нём на- ми. Будь, например, современная рус-
чертанный знак обозначает слово. ская письменность иероглифической,
При этом начертание всё больше схе- нам пришлось бы передавать фами-
матизировалось, теряло сходство лию одного из американских прези-
с первоначальным изображением, ас- дентов Билла Клинтона изображени-
социировалось уже не с самим пред- ями колышка и ноты: «клин» плюс
метом, а со словом. Происходил пе- «тон». А чтобы читатели понимали,
реход к письму, кодирующему уже не что в данном случае иероглифы ис-
непосредственно действительность, пользованы, так сказать, не всерьёз,
а человеческую речь. а лишь как части ребуса, ставились
Возможности иероглифической особые значки, которые указывали:
письменности несопоставимо шире, «Воспринимай не смысл, а только
чем идеографии. Ведь далеко не всё, звучание».
о чём думают и что считают важным Последний шаг к письменности
сообщить друг другу люди, можно бук- в современном понимании тоже был
вально изобразить. Знаки же, которые связан с взаимодействием цивилиза-
больше не привязаны к изображению, ций и культур. Финикийцы, купцы
а напрямую передают слова языка, поз- и мореплаватели, приспособили для
воляют передать даже самый общий, своих нужд позаимствованные у егип-
отвлечённый смысл. Не только отдель- тян иероглифы, упростив их начерта-
ный «старик», но и вообще «старость», ние и не вдаваясь в исходное значение
не только определённый «холодный
день», но и вообще «зима» как время
года. Смыслы можно комбинировать.
Например, знаки со значением «вода»
и «падать» вместе могут обозначать
«водопад», подобно тому как эти смыс-
лы сложены в русском слове.
Иероглифические письменно-
сти — это богатые, развитые знако-
вые системы, которыми пользовались
многие великие цивилизации и поль-
зуются до сих пор (например, в ки-
тайском языке).
Наверное, иероглифическая пись-
менность существовала бы вечно, ес-
ли бы на земле был только один язык.
Именно ситуация столкновения с
иноязычными словами выявила огра-
ничение иероглифической письмен-
ности. У иероглифа, как знака, нет
двойного членения, он отсылает
к слову целиком, а не передаёт его по
звукам. И как же в таких условиях обо-
значить новое слово? Например, имя
иностранца? Если этот иностранец
становился правителем, захватив дан-
ную территорию, или иностранка
становилась супругой правителя, та-
кие события не могли не найти отра-
жения в летописях. Чтобы решить
столь непростую задачу, древние пис-
цы стали произвольно делить ино-
странное имя на части, похожие по
звучанию на те или иные слова род-

27
Информация и информатика

этих значков, а используя их для пере-


дачи слогов собственного языка. Так
ИЩЕМ КЛАД появилось слоговое фонетическое
письмо. В нём отдельный значок пе-
Сколько надо сделать шагов? редавал сочетание гласного и соглас-
На север десять и десять, на восток пять и пять, ного, а знаки исчислялись уже не
на юг два и два, на запад один и один и потом вниз... тысячами, как в иероглифическом
письме, а десятками.
А. Конан Дойл. «Обряд дома Месгрейвов» Наконец, греки, переняв письмен-
ность финикийцев, сделали послед-
Все, наверное, помнят, как по этому указанию из старинного докумен- ний, решающий шаг: они отделили
та был найден клад. Этот текст представляет собой задание системы гласные от согласных и стали переда-
координат для поиска точки в пространстве. Путь определяется ис- вать одним значком — буквой — один
пользованием географических координат — север, юг, запад, восток — звук. Именно греки создали знакомое
и меры длины — шага. Ориентирование по солнцу — один из наиболее всем нам звуко-буквенное, или алфа-
известных и удобных способов определения положения в пространст- витное, письмо, явившееся заключи-
ве. Древние люди, путешествуя по суше и по воде, прекрасно умели тельным этапом в общей истории
определять своё местоположение, ориентируясь по солнцу, луне, звёз- письма. По такому пути шли все исто-
дам. На таких приёмах до появления компаса строилась вся навигация. рические письменности.
Сохранить и передать информацию о пути, о незнакомых берегах Развитие знаковых систем запи-
и странах и даже о местах, где спрятаны сокровища, помогают карты. си — путь утраты изобразительного
Если нам нужно объяснить кому-то дорогу, легче нарисовать план, чем принципа, внешнего подобия и заме-
рассказывать на словах. на его функциональным подобием.
Первые карты появились, по-видимому, в древнем Двуречье: изве- На этом пути можно выделить два наи-
стны вавилонские карты на глиняных табличках, относящиеся к XXIII в. более важных, революционных мо-
до н. э. В Средние века моряки использовали так называемые портола- мента. Первый — создание иерогли-
ны — карты морских торговых путей с нанесением «роз компаса», име- фа, особого письменного знака для
вших вид лучей, расходящихся из одного центра, и указывавших проек- обозначения слова, второй — разло-
ции кратчайших путей из одной точки к другой. Дальнейшие достижения жение значимой единицы — слова —
в развитии картографии связаны с введением Герардом Меркатором (из на незначимые элементы — слоги или
Фландрии) метода цилиндрической проекции, устанавливавшего систе- звуки, обозначаемые отдельными зна-
матическое соотношение между изображениями на сферической и пло-
ской поверхностях. Использование проекции позволяло перевести гео-
графические координаты — широту и долготу — со сферической
поверхности на плоскость с эффектом наименьшего искажения.
Современная карта — это универсальный указатель, кодирующий
пути в пространстве. Геометрическое подобие реальных очертаний
физических объектов и их контуров на карте создаётся масшта-
бированием. Используется также цвет, который носит изобразитель-
ный характер (синий для водоёмов, зелёный для лесов и равнин) или
чисто символический, например на политической карте мира. Кроме
того, на карте используются собственно символьные знаки и обозна-
чения, указывающие населённые пункты, дороги, места залегания по-
лезных ископаемых или зоны обитания животных.

Сэмюэл Финли Бриз Морзе.

28
Кодирование информации

ками. Эволюция письма даёт преиму-


щество — сокращение кода от тысяч
иероглифов до двух-трёх десятков
букв. Предел сокращения кода — два
знака. Ближе всего к этому решению
подошли Сэмюэл Морзе и Луи Брайль.
Морзе зашифровал буквы латинского
алфавита комбинациями из двух эле-
ментарных графических знаков (и ещё
одного — паузы) — точки и тире, а
Брайль — выпуклыми точками или их
отсутствием. Однако обратная сторо-
на сокращения кода — увеличение
текста. Фраза, для записи которой в
иероглифической письменности по-
требуется три значка, в звуко-буквен-
ной займёт почти целую строчку, а в
записи азбукой Морзе — несколько
строк.

СЧИТАЕМ ВОРОН пятеричная (считали по одной руке). Фрагмент


Совсем необычная пальцевая система древнегреческой
надписи из Гортины
В основе счёта лежит идея сопостав- была у папуасов племени телефол на (остров Крит).
ления, т. е. предметы счёта последо- Новой Гвинее: они считали начиная Середина V в. до н. э.
вательно сопоставляются со счётны- от мизинца правой руки, переходя на
ми средствами: палочками, камешками, локоть, плечо, доходили до кончика
пальцами рук и пр. Именно пальцевый носа и симметрично переходили на
счёт лёг в основу самой распростра- левую руку — получалось 27 единиц
нённой системы счисления — деся- счёта.
тичной. Ведь пальцы рук — наиболее Допустим, мы сосчитали ворон. Как
удобное средство для счёта. Впрочем, эту информацию передать? Можно,
к пальцам обращаются и другие сис- конечно, просто нарисовать предме-
темы, например двадцатеричная сис- ты счёта, т. е. шесть ворон. Но лучше
тема древних галлов и грузин (види- поступить более экономно: изобра-
мо, учитывались и пальцы ног), зить одну ворону, а рядом — шесть

29
Информация и информатика

пальцев (палочек). Именно так обыч-


но и делали в древности. Вероятно,
чёрточка изначально и изображала па-
лец (исторически русские слова «па-
лец» и «палка» одного корня), а может,
это просто самый удобный для начер-
тания знак. У некоторых народов (на-
пример, у майя) единица обознача-
лась кружком или точкой — тоже
максимально простой знак, а возмож-
но, изображение камешка.
В принципе имея знак для едини-
цы, можно им одним и обходиться.
Но такой способ, наверное, удобен,
только чтобы считать дни в темнице.
В прочих случаях громоздкость за-
писи существенно затруднит работу
с ней. Поэтому люди перешли к обо-
значению знаками целых множеств:
пятёрок, десяток, дюжин и т. д. На-
пример, римская цифра V, как счита-
ют исследователи, восходит к изоб-
ражению ладони. Таким способом
довольно удобно обозначать боль-
шие числа, имея в виду, что общее
ТОЧКИ ВМЕСТО БУКВ числовое значение получается при
сложении этих величин. Для эконо-
Чем короче код, тем длиннее запись, и наоборот. Задачу най- мии вводят порядок в расположении
ти оптимальное соотношение краткости кода и краткости за- знаков и наряду со сложением ис-
писи пришлось решать при создании письменности для незря- пользуют приём вычитания: допус-
чих людей. Читать на ощупь привычные нам буквы очень тим, единицы справа от знака, обозна-
неудобно, противопоставление составляющих их элементов, чающего десятки, прибавляются к
легко воспринимаемое зрением, оказывается недостаточным нему, а слева — вычитаются. Так, в
для осязания либо буквы приходится делать настолько круп- частности, устроена римская систе-
ными, что запись и хранение сколько-нибудь длинного текста ма: её основные знаки — идеограммы
превращаются в настоящую проблему. в виде букв латинского алфавита —
В 1824 г. 15-летний Луи Брайль, ослепший в раннем детст- I, V, X, L, C, M (1, 5, 10, 50, 100, 1000) и
ве и очень страдавший от невозможности самостоятельно чи- т. д. С помощью букв обозначали
тать, придумал использовать для обозначения букв комбина- числа и греки, и русские (перенявшие
ции из шести позиций (2 .3), часть из которых может быть у греков бо′ льшую часть алфавита), и
выпуклой. Таких комбинаций, как легко подсчитать, 64, чего армяне, и грузины — способ оказался
вполне достаточно, чтобы передать все буквы алфавита, знаки очень удобным и получил широкое
препинания и цифры. Выпуклые точки наносятся на плотную распространение. Понятно, что в ка-
бумагу и легко распознаются на ощупь. Более того, с помощью кой-то момент букв может не хватить,
этой азбуки слепой человек и сам может писать, выдавливая но в те далёкие времена со столь боль-
точки острым пером. шими числами работали редко.
В системе Брайля имелся особый код-признак числа и от- Тот же важнейший шаг, который со-
меняющий его код-признак буквы, поскольку для удобства циф- вершили финикийцы и греки для пись-
ры кодировались теми же знаками, что и первые десять букв. менности, сделали индийцы и арабы
Это были первые в истории коды переключения. для записи чисел. Они придумали нуль
Позже для удобства и сокращения длины записи комбина- и позиционную систему записи чисел.
циям, оставшимся незанятыми, присвоили значения наиболее Идея её внешне проста: два человека
употребительных сочетаний букв. могут, используя пальцы рук, досчитать
Кроме того, если знак отделяется от соседних большим ин- не до 20, а до 100, если договорятся, что
тервалом, он обозначает не букву, а часто встречающееся сло- первый будет считать единицы, а вто-
во: you вместо y, not вместо n и т. п. рой — десятки (трое досчитают не до
30, а аж до 1000 и т. д.).

30
Кодирование информации

СИСТЕМЫ СЧИСЛЕНИЯ

КАК СЧИТАЛИ Чёрное море Ка


сп
В ВАВИЛОНИИ

ий
ск
УРАРТУ

ое м о
Между реками Тигр и Евфрат, в могу-
чем государстве Вавилонии, высоко- Хаттуса
ХЕТТЫ

ре
го развития достигли счёт и системы ХУРРИТЫ
счисления (см. раздел «Старинные си-
стемы записи чисел» в томе «Матема-
тика» «Энциклопедии для детей»). Дур-Шаррукин
Вавилонские числа являются комби- ипр Ниневия
о .К
нацией не двух, а трёх клинописных

ое
Ашшур
знаков: единицы — , десятки — Ср н Мари ПАРФИЯ
еди зем Экбатана
е Библ АССИРИЯ
и сотни — . м ор Сидон
С помощью этих знаков можно за- Тир АККАД ПЕРСИЯ
писать любое число, используя прин- Вавилон
Сузы
цип сложения или умножения: м Урук
ли Пасаргады
уса
ер Ур Персеполь
— 10 .100 = 1000, И

Пер
— 10 + 1 = 11.

си
ск

д
ий
Кр

Большие числа всегда предшест- зал


ЕГИПЕТ

ив
ас

вовали меньшим. Кроме этого спо-


ВАВИЛОНИЯ
но

соба записи чисел применялась так-


е

же позиционная шестидесятеричная
м оре

система. Знак единицы мог обозна-


чаться как 1, 60, 602, а знак десятки —
соответственно 10, 10 . 60 2 и т. д.,
в зависимости от порядка располо-
жения:

— 1 . 60 + 10 + 2 = 72.

Вавилоняне имели подобие знака


«нуль» — (два наклонных знака еди-
ницы), но, увы, этот знак не ставился
в конце чисел.
Они умели также пользоваться
простыми и шестидесятеричными
дробями (со знаменателями 60, 602
и т. д.), которые записывали так, как
сейчас записывают десятичные дро-
би. При вычислениях вавилоняне
использовали готовую таблицу умно-
жения.

КАК СЧИТАЛИ В ЕГИПТЕ


Главным источником современных
знаний о египетской числовой систе-
ме является так называемый папирус
Ахмеса, найденный в 1853 г. (или

31
Информация и информатика

папирус Райнда — по фамилии вла-


Древнеегипетский дельца, который приобрёл этот доку-
папирус с матема-
тическими выклад- мент в 1858 г.).
ками. Для записи чисел египтяне приме-
няли иероглифы: один — ,, десять —
, сто — , тысяча — , и так до
10 млн — . Затем иероглифическое
письмо было упрощено иератическим
(от греч. «иератикос» — «священный»):

1 2 3 4 5 6 7 8 9 10

20 30 40 50 60 70 80
Все остальные числа записывались
из этих знаков при помощи операции
сложения. Вначале писались числа
высшего порядка, а затем низшего:

=100+100+10+1+1+1+1=214.

Умножение и деление египтяне


производили путём последовательно-
го удвоения чисел — особая роль от- Затем отмечали вертикальными
водилась двойке. чёрточками строки левого столбца,
В примере 19 . 31 египтяне после- из которых можно было сложить мно-
довательно удваивали число 31. В пра- житель (19 = 1 + 2 + 16), и складывали
вом столбце записывали результаты числа, стоящие в отмеченных стро-
удвоения, в левом — соответствующую ках справа (31 + 62 + 496 = 589).
степень двойки: Египетские дроби всегда имели в
числителе единицу (исключение со-
ставляло 2/3; см. статью «Методы
1 | 31
вычислений» в томе «Математика»
2 | 62
«Энциклопедии для детей»). Дроби
4 | 124
записывались как натуральные чис-
8 | 248
ла, только над ними ставилась точка,
16 | 496
специальные знаки были для 1/2 и
для 2/3:

– 1/10, – 2/3, – 1/2.

КАК СЧИТАЛИ В РИМЕ


Римские числа общеизвестны, их сей-
час можно увидеть во многих местах,
например на циферблате кремлёв-
ских курантов — главных часов Рос-
сии.
В римской системе счисления
семь чисел обозначаются буквами:
1 — I, 5 — V, 10 — X, 50 — L, 100 — C,
500 — D, 1000 — M, а остальные чис-
ла записываются комбинациями этих
знаков. Если числа в комбинации идут

32
Кодирование информации

в порядке от больших к меньшим, чис- ИНДИЙСКАЯ НУМЕРАЦИЯ


ла складываются:
Цифры, которыми пользуются сейчас,
XXI — 10 + 10 + 1 = 21, пришли из Индии. Европейские наро-
ды познакомились с ними благодаря
MMV — 1000 + 1000 + 5 + 1 = 2005, арабам. Математик Леонардо Пизан-
ский первым упоминает об арабских
если от меньших к большим — значе- числах в 1202 г. В XVI в. новая нуме-
ние числа вычитается из следующей рация получает широкое распростра-
буквы: нение; в Россию она попадает в XVII в.
и в начале XVIII в. полностью вытес-
IV = 5 – 1 = 4. няет алфавитную систему. Десятич-
ная позиционная система (арабская
Cкладывать и вычитать в такой си- система) даёт принципиальную воз-
стеме удобно, но умножать и делить можность записывать сколь угодно
очень сложно. Римляне пользовались большие числа.
дробями со знаменателем 60 (как в В десятичной системе десять цифр:
Вавилонии) и со знаменателями 12, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
24, 48. Освоение дробей требовалось Число зависит не только от циф-
для счёта денег, мер и весов. Римская ры, но и от порядка расположения.
монета асс чеканилась из меди, име- Число 44 обозначает количество еди-
ла вес один фунт и делилась на ниц и десятков, а цифра 0 указывает
12 унций. позицию цифры, например 40.
Особую роль играют число 10 и его
степени: 10, 102, 103...
КАК СЧИТАЛИ ГРЕКИ
2005 = 5 + 0 .10 + 0 .100 + 2 .1000,
Греки применяли несколько спосо-
бов записи чисел. При использовании или
ионической нумерации числа выра-
жались буквами алфавита. Чтобы от- 2005 = 5 + 0 .101 + 0 .102 + 2 .103,
личить число от слова, над буквами
числа ставился специальный значок или
— титло. Этот способ записи чи-
сел применялся жителями Милета и 2005 = 2 .103 + 0 .102 + 0 .101 + 5 .100.
Александрии. Афиняне для обозначе-
ния чисел пользовались первыми бук-
вами слов — числительных:

Γ (Γεντε) — пять,
∆ (∆εκα) — десять,
Η (Ηκατον) — сто,
Χ (Χιλιασ) — тысяча,
Μ (Μυριασ) — десять тысяч,
Ι, ΙΙ, ΙΙΙ, ΙΙΙΙ — соответственно 1, 2,
3, 4,
∆∆∆ΙΙΙΙ — 10 + 10 + 10 + 4 = 34.

С помощью этих цифр житель


Древней Греции мог записать любое
число.
Великий греческий математик Дио-
фант Александрийский записывал
дроби примерно так, как принято сей-
час: числитель над знаменателем, но
без черты. Это был один из способов
записи дробей в Древней Греции.

33
Информация и информатика

Любое четырёхзначное число мож-


но записать как

N = a3 . 103 + a2 . 102 + a1 . 101 + a0 . 100,

где a0, a1, a2, a3 — десятичные цифры


числа (цифра a3 отлична от 0). Число
10 в формуле называют основанием
системы счисления. Существуют сис-
темы счисления с другим основани-
ем — p.
Запись числа n в p-системе счис-
ления:

n = an p n + an–1 pn–1 + … + a1 p1 + a0 p0,

где ai ∈ {0, 1, 2, ... , p–1} и an A 0.

Если в качестве p взять число 2, то


выйдет двоичная система счисления.

ДВОИЧНОЕ КОДИРОВАНИЕ

Двоичная система счисления была ко вычислительная машина, но и че-


придумана задолго до появления ловек.
компьютеров. Ещё великий немец- Для удобства запишем двоичное
кий математик Готфрид Вильгельм число в таблицу поразрядно, прону-
Лейбниц увидел в двоичной системе меруем разряды в следующей стро-
особый скрытый смысл. Действи- ке (справа налево, начиная с 0) и вы-
тельно, двоичная система предель- пишем соответствующие степени
но проста: двойки (справа налево с 0-й степе-
используется всего две цифры — ни).
0 и 1; Для числа 111110100112 таблица
таблица умножения состоит всего выглядит так:
из трёх строк:
Число 1 1 1 1 1 0 1 0 0 1 1
0.0=0 N 10 9 8 7 6 5 4 3 2 1 0
0.1=0 2n 1024 512 256 128 64 32 16 8 4 2 1
1.1=1

К недостаткам двоичной систе- Единицы в первой строке таблицы ука-


мы можно отнести только «длинную» зывают, какие степени двойки нужно
запись чисел (чем меньше в систе- сложить, чтобы получить число:
ме цифр, тем длиннее будет запись
числа): 1024 + 512 + 256 + 128 + 64 + 16 +
+ 2 + 1 = 2003,
200210 = 111110100102.
т. е. 111110100112 = 200310.
Однако этот досадный факт не Алгоритм перевода числа в дво-
помешал инженерам использовать ичную систему аналогичен преды-
двоичную систему при конструиро- дущему, но требует проведения опе-
вании электронных схем. Перевести рации деления с остатком. Число
число из двоичной системы в при- последовательно делят на два, выпи-
вычную десятичную может не толь- сывая результат в столбик, одновре-

34
Кодирование информации

менно записывают остатки (не про-


пуская нулевые). Ответом будет чис-
ло, получившееся в правом столбце
(снизу вверх). Для числа 413 это вы-
глядит так:

413 1
206 0
103 1
51 1
25 1
12 0
6 0
3 1
1 1

ной системе и признак десятичной Компьютер PDP 11/70


Если теперь выписать получивше- системы 10 опущен. использовал восьме-
ричную кодировку.
еся во втором столбце (снизу вверх) Перевод из восьмеричной системы
число, оно и будет ответом: в десятичную по сложности вычисле-
ний мало отличается от перевода из
1100111012 = 41310. двоичной. А вот перевод из восьмерич-
ной системы в двоичную очень прост.
В переводе чисел из двоичной Достаточно составить таблицу триад
системы счисления в десятичную (по три цифры)
систему и обратно нет ничего слож-
ного и магического. Каждый освоив- 08 – 0002 48 – 1002
ший эту несложную науку может счи- 18 – 0012 58 – 1012
тать себя понимающим язык ЭВМ. 28 – 0102 68 – 1102
Однако записывать в двоичной сис- 38 – 0112 78 – 1112
теме числа по-прежнему неудобно,
так как запись занимает много мес- и запомнить её как таблицу умноже-
та. И перевод в двоичную систему ния.
вряд ли удастся выполнить в уме. При переводе восьмеричного чис-
Поэтому стали использовать систе- ла в двоичное заменяют каждую вось-
мы, родственные двоичной системе меричную цифру на соответству-
счисления, в которых запись числа ющую триаду из таблицы. В качестве
на бумаге короче, чем в двоичной, примера переведём число 6118 в дво-
а алгоритмы перевода не требуют ичную систему:
сложных вычислений.
6118 = 110 001 0012
(68 заменили на 1102,
ВОСЬМЕРИЧНАЯ а 18 — на 0012).
СИСТЕМА СЧИСЛЕНИЯ

В этой системе восемь цифр: 0, 1,


2, 3, 4, 5, 6, 7. Цифра 1, записанная
в младшем разряде, означает — как
и в десятичном числе — просто
единицу, а в следующем разряде
она означает 8 10, в следующем —
6410 и т. д.
Число 100 8 — это 64 10 , а число
6358 = 6 . 64 + 3 . 8 + 5 = 41310. При вы-
числениях числа указаны в десятич-

35
Информация и информатика

цифр используют привычные цифры:


0, 1, 2, 3, 4, 5, 6, 7, 8, 9, а для остальных
шести цифр — первые буквы латин-
ского алфавита:

A — 10,
B — 11,
C — 12,
D — 13,
E — 14,
F — 15.

Как и в восьмеричной системе, ци-


фра 1, записанная в младшем разря-
де, означает единицу. В следующем
разряде та же цифра 1 означает 1610,
в следующем — 25610 и т. д. Цифра F,
записанная в младшем разряде, озна-
чает 15 10, в следующем разряде —
1510 . 1610 и т. д. Например,

10016 = 25610,

1AF16 = 1 . 162 + 10 . 16 + 15 = 43110 .

Перевод из шестнадцатеричной
системы в двоичную и обратно ана-
логичен действиям с восьмеричной
системой. Надо опять запомнить таб-
лицу перевода, где вместо триад сто-
ят тетрады (четвёрки):

016 – 00002 816 – 10002


Для обратной операции, т. е. для пе- 116 – 00012 916 – 10012
В ЭВМ VAX ревода из двоичной в восьмеричную 216 – 00102 A16 – 10102
использовалась систему, двоичное число разбивают 316 – 00112 B16 – 10112
шестнадцатеричная
кодировка. на триады (справа налево), потом за- 416 – 01002 C16 – 11002
меняют каждую группу одной восьме- 516 – 01012 D16 – 11012
ричной цифрой. Допустим, 616 – 01102 E16 – 11102
716 – 01112 F16 – 11112
101 111 1112 = 5778.
Следовательно,
Если первой полноценной триады
не получается (не хватает цифр), то 61A16 = 110 0001 10102
её дополняют ведущими нулями: (616 заменили на 01102,
116 — на 00012, A — на 10102).
1 111 0002 = 001 111 0002 = 1708.
При совершении обратной опе-
рации двоичное число надо разбить
ШЕСТНАДЦАТЕРИЧНАЯ на четвёрки цифр справа налево (ес-
ли первой четвёрке не хватает цифр,
СИСТЕМА СЧИСЛЕНИЯ то её дополняют ведущими нулями)
и потом заменить каждую группу од-
Запись числа в восьмеричной систе- ной шестнадцатеричной цифрой:
ме достаточно компактна, но ещё ком-
пактнее она получается в шестнадца- 11 1110 01112 = 0011 1110 01112 =
теричной системе. Для первых десяти = 3E716.

36
Кодирование информации

БИТЫ И БАЙТЫ что автоматически увеличит объём


хранимой информации в два раза.
Символы двоичной системы счисле- Как уже говорилось, при двоичном
ния — 0 и 1 называют двоичными ци- кодировании в компьютере нельзя за-
фрами или битами (от англ. binary писать ничего, кроме двоичных цифр.
digit — «двоичная цифра»). В одном байте можно хранить одно
У электронных схем для обработки неотрицательное целое число от 0 до
двоичных кодов есть только два уст- 255, а требуется ещё придумать коди-
ойчивых состояния — «есть сиг- рование отрицательных чисел. На-
нал»/«нет сигнала» (высокое напря- пример, в одном байте можно хранить
жение/низкое напряжение). 128 отрицательных целых чисел (от
Подобные схемы нетрудно реали- –128 до –1), 0 и 127 положительных
зовать технически. Поэтому инжене- чисел от 1 до 127. Всего же чисел по-
ров двоичное кодирование информа- прежнему останется 256, как и зако-
ции привлекает, несмотря на то что дированных символов.
числа получаются слишком длинны- Нуль будет кодироваться комбина-
ми. Компьютеру легче иметь дело с цией из восьми нулей: 00000000.
большим числом простых элементов, Положительные числа от 1 до 127
чем с небольшим числом сложных. кодируются, как обычно, в двоичной
При хранении информации в па- системе, при этом слева дописывают
мяти компьютера каждый бит хранит- незначащие нули:
ся в одном разряде памяти. Разряды
объединяются в ячейки памяти фик- 1 — 00000001
сированного размера — 8, 16 и 32 раз- 2 — 00000010
ряда и носят специальные названия 3 — 00000011
«байт», «слово» и «двойное слово». Фак- ...
тически это является стандартом для 126 — 01111110
современных персональных компью- 127 — 01111111
теров.
При кодировании чисел важно по- Отрицательное число запишется
мнить, что, например, число 100010 в дополнительном коде. Например,
не удастся поместить в один байт, по- отрицательное число –5 хранится
скольку его двоичная запись содер- как двоичная запись числа 256 – 5
жит десять цифр (11111010002), что (256 = 28), т. е. дополнение к 5 до 256:
больше размера байта. И конечно, су-
ществуют большие числа, не поме- 11111011
щающиеся даже в двойное слово.
Такие числа можно разместить Поскольку –5 + 256 >127, в стар-
в большем числе байтов, однако ком- шем разряде двоичного числа будет
пьютер умеет быстро производить вы- единица, сигнализирующая, что чис-
числения с числами, которые поме- ло отрицательное, поэтому старший
щаются в байты и слова (иногда разряд ячейки обычно называют зна-
двойные и четверные слова), и если ковым. Так кодируются отрицатель-
число большое, то операции с ним бу- ные числа –1, –2, –3, … , –127, –128.
дут распадаться на операции с байта-
ми, словами и т. д.
По аналогии в одном байте мож-
но закодировать 256 различных сим-
волов какого-либо текста. На первый
взгляд это много: буквы русского
алфавита, прописные и строчные,
знаки препинания, десять цифр, ещё
латинский алфавит. Однако если по-
требуется ввести ещё какой-нибудь
алфавит, то, скорее всего, места уже
не хватит. Тогда символ текста будет
кодироваться не байтом, а словом,

37
Информация и информатика

КОДИРОВАНИЕ ИЗОБРАЖЕНИЙ

Человек получает бо′ льшую часть ин- Однако применима и визуальная


формации из окружающего мира с оценка цвета. В 1756 г. выдающийся
помощью зрения. Глаз человека ощу- русский учёный Михаил Васильевич
щает свет только тогда, когда на сет- Ломоносов (1711—1765) впервые
чатку попадает лучистая энергия ди- высказал мысль, что для воспроизве-
апазона 360—750 нм, т. е. видимая дения любого цвета в природе до-
часть спектра электромагнитных ко- статочно смешать в определённых
лебаний. пропорциях три основных цвета:
Предметы воспринимаются чело- красный, зелёный, синий. Теория
веком благодаря их цветности (вмес- трёхкомпонентности цвета, опи-
те цветовой тон и насыщенность цве- раясь на многочисленные опыты,
та) и различной яркости. Чем дальше утверждает, что в зрительной системе
удалён предмет от источника света, человека возникают нервные возбуж-
тем менее ярким он воспринимается. дения трёх типов, каждое из которых
Яркость предмета зависит также от независимо от остальных. Многообра-
его отражательной способности и зие цветовых ощущений при зритель-
формы. Белый свет — самый сложный, ном восприятии можно объяснить
он объединяет излучения разных длин многообразием комбинаций трёх ти-
волн. Каждый предмет отражает его пов возбуждений. Эта теория лежит в
по-своему, что и объясняет цветовое основе большинства практических ме-
различие между ними. тодов воспроизведения цветных изо-
Цвет можно оценить по количест- бражений: в фотографии, телевидении,
Призма и спектраль- ву энергии, приходящейся на каждую кино и т. п.
ное разложение света. длину волны, — по спектральной ха- Компьютерное кодирование изоб-
рактеристике. ражений также построено на этой
теории. Картинка разбивается вер-
тикальными и горизонтальными ли-
ними на маленькие прямоугольники.
Полученная матрица прямоуголь-
ников называется растром, а элемен-
ты матрицы — пикселями (от англ.
picture's element — «элемент изоб-
ражения»). Цвет каждого пикселя
представлен тройкой значений ин-
тенсивности трёх основных цветов.
Чем больше битов выделено для каж-
дого основного цвета, тем большую
гамму цветов можно хранить про
каждый элемент изображения. В стан-
дарте, называемом true color (реаль-
ный цвет), на каждую точку растра
тратится 3 байта, по 1 байту на каж-
дый основной цвет. Таким образом,
256 уровней яркости красного цве-
та, 256 уровней яркости зелёного и
256 уровней яркости синего дают
вместе примерно 16,7 млн различ-
ных цветовых оттенков, это превос-
ходит способность человеческого
глаза к цветовосприятию.
Чтобы хранить всю картинку, до-
статочно записывать в некотором по-
рядке матрицу значений цветов пик-
селей, например слева направо и

38
Кодирование информации

сверху вниз. Часть информации о кар-


тинке при таком кодировании поте-
ряется. Потери будут тем меньше, чем
мельче пиксели. В современных ком-
пьютерных мониторах с диагональю
15—17 дюймов разумный компро-
мисс между качеством и размером
элементов картинки на экране обес-
печивает растр от 768 .1024 точки (бы-
товой видеомагнитофон — 250 линий
на кадр, т. е. 250 точек по вертикали;
отечественное телевидение стандар-
та SECAM — 625 линий на кадр).
При кодировании изображений не
всегда используются именно три ос-
новных цвета. При печати картинок
(и при рисовании) на бумаге если сме-
шать красную и зелёную краски, то
получится не жёлтый цвет, а корич-
невый. Это происходит потому, что
краски сами по себе не отражают све-
та, а только поглощают некоторые
цвета из падающего на них светово-
го потока. Поэтому в качестве основ-
ных применяются другие цвета: голу-
бой, сиреневый и жёлтый, а метод
кодирования цвета называется CMY
(от англ. cyan — «голубой», magenta —
«сиреневый» и yellow — «жёлтый»). При
этом красный цвет получается как сум-
ма сиреневого и жёлтого, а зелёный —
как сумма жёлтого и голубого.
Так как визуальное восприятие тию схема кодирования HSV (от англ.
цвета является трёхкомпонентным, hue — «цветовой тон», saturation — «на-
то всякий цвет может быть задан сыщенность» и value — «величина»,
не менее чем тремя параметрами. «яркость»).
Во многих программах обработки Цветовой тон — близость цвета
изображения используется более при- к тем или иным цветам спектра. На-
ближённая к человеческому воприя- блюдая разложенный в спектр белый
свет, глаз человека видит семь участ-
ков спектра, резко различающихся
по зрительному ощущению: красный,
оранжевый, жёлтый, зелёный, голу- Три числа описывают
бой, синий, фиолетовый. При внима- цвет точки – это могут
тельном рассмотрении человек улав- быть и RGB или три
ливает гораздо больше цветов, только другие. Кодировка
по цветовому тону глаз способен раз- цвета, принятая в те-
личить около 200 цветов. Цветовой левидении, описыва-
тон характеризуется длиной волны ет формулы для пере-
того спектрального излучения, к ко- вода из RGB к YCbCr:
торому ближе всего данный цвет. Y = 0,299R+0,587G+
Насыщенность — степень выра- + 0,114B,
женности тона в цвете, т. е. насколь- Cb = 0,564(B–Y),
ко к данному спектральному цвету Cr = 0,649(R–Y).
примешан одинаковый с ним по яр-
кости белый цвет. Если к чистому
спектральному цвету добавить белый

39
Информация и информатика

цвет, то при неизменной общей ярко- щена прямым светом, а другая — рас-
сти насыщенность спектрального цве- сеянным от того же источника, то
Часто используется та уменьшится. Интересно, что в при- цвета воспринимаются человеком по-
обозначение HSB роде мало что (или кто) отличается разному, несмотря на то что цвето-
(brightness) вместо насыщенностью цвета (возможно, вой тон и насыщенность этих частей
HSV. лишь тропическая флора и фауна). Ис- одинаковы.
кусственные краски, например изоб- Кодировка с помощью цветового
ражение на мониторе, обладают бо- тона, насыщенности и яркости поз-
лее высокой насыщенностью и воляет легко получить из цветной
поэтому так радуют человеческий глаз. картинки монохромную, или, как не
Яркость (светлота) определяется совсем верно говорят, чёрно-белую,
уровнем действующего на глаз излу- не меняя яркости объектов изобра-
чения. Если одна часть объекта осве- жения.

КОДИРОВАНИЕ ЗВУКА И МУЗЫКИ

Как известно, звук представляет со- вают дискретизацией, а устройство


бой колебания воздуха. Амплитуда для его выполнения — аналого-ци-
колебаний постоянно меняется, так фровым преобразователем (АЦП).
как звук является непрерывным сиг- Типичный восьмибитный АЦП пре-
налом. При кодировании звука этот образует напряжение в диапазоне
сигнал надо представить в виде по- от —500 мВ до 500 мВ в восьмираз-
следовательности нулей и единиц. рядные двоичные числа в диапазоне
Например, используя микрофон, звук от –12810 до 12710.
можно превратить в колебания элек- Обратный процесс — воспроиз-
трического тока, измеряя амплиту- ведение закодированного звука про-
ду колебаний через равные проме- изводится с помощью цифроана-
жутки времени несколько десятков логового преобразователя (ЦАП).
тысяч раз в секунду. Каждое измере- Тогда двоичные числа из диапазона
ние производится с ограниченной от –128 10 до 127 10 преобразуют-
точностью и записывается в дво- ся в напряжение из диапазона от
ичном виде. Данный процесс назы- –500 мВ до 500 мВ.

40
Кодирование информации

При работе со сте-


реозвуком дискрети-
зация проводится от-
дельно и независимо
для левого и правого
каналов.

Полученный ступенчатый сигнал Как и всякий звук, музыка являет-


сначала сглаживается посредством ся не чем иным, как звуковыми коле-
аналогового фильтра, а затем преоб- баниями, и, закодировав их достаточ-
разуется в звук с помощью усилителя но точно, звук можно будет потом
и динамика. воспроизвести. Однако такой спо-
На качество воспроизведения за- соб не позволяет композитору запи-
кодированного звука в основном вли- сать придуманное произведение, а му-
яют два параметра — частота дискре- зыканту — исполнить его, ни разу
тизации и размер в битах, отводимый не услышав.
под запись значения амплитуды. На-
пример, при записи на компакт-дис-
ки (CD) используются 16-разрядные
Русский композитор Ю. А. Шапорин писал: «Мне кажется, нет
значения, а частота дискретизации
на свете другого искусства, которое так роднило людей, как му-
равна 44 032 Гц. Эти параметры обес-
зыка. Язык её понятен каждому...». Он имел в виду, что милли-
печивают превосходное качество зву-
оны людей способны слушать музыку и наслаждаться ею, не зная
чания речи и музыки.
ни названий музыкальных инструментов, ни принципов созда-
Выбор частоты дискретизации
ния музыкальных произведений.
объясняется тем, что максимальная
частота звука, которую способен слы-
шать человек, не превосходит 22 кГц.
Колебание с частотой 22 кГц при
дискретизации с той же частотой не-
отличимо от тишины. Чтобы на каж-
Выше частоты 5 кГц принцип умножения на два нарушается. Что-
дом периоде дискретизации записы-
бы получить ощущение увеличения высоты на октаву, надо уве-
валось два значения, нужна вдвое
личить частоту почти в 10 раз. Даже люди с абсолютным музы-
большая частота дискретизации, а
кальным слухом затрудняются в определении нот для звуков с
именно 44 кГц. Когда высокое каче-
частотой выше 5 кГц. Это говорит о различии в механизмах вос-
ство не требуется, можно использо-
приятия высоты тона до 5 кГц и выше.
вать меньшие частоты дискретиза-
ции: 11 кГц, 5,5 кГц и т. д.

41
Информация и информатика

Выход был придуман давным-дав-


но — нотное письмо, или нотация
ЦВЕТА И ЗВУКИ (от лат. notatio — «записывание»,
«обозначение»), — система графиче-
Мы выделяем семь цветов радуги и семь нот. Естественно, ни в звуча- ских знаков, применяемых для запи-
щей мелодии, ни в цветовом спектре нет никаких реальных переходов, си музыки. В начале Средних веков
границ между отдельными звуками и цветами. Это условность, необхо- особыми знаками — невмами, состоя-
димая для того, чтобы музыку или цвет можно было кодировать и пере- щими из чёрточек, точек, запятых, —
давать информацию о них. указывались отдельные звуки, груп-
Рассмотрим, как разделяется на знаки, кодируется непрерывность пы звуков, ходы голоса вверх и вниз
музыкального звука. Музыкальный звук отличается от обычного шума без точного определения высоты зву-
наличием тона. Тон изменяется по высоте (фактически, частоте вибрации ков, поэтому они могли лишь напо-
воздуха). В непрерывном изменении высоты выбирается некая услов- минать певцу уже известный ему
ная начальная точка («до»). От неё отстраиваются другие точки, равно напев. В XI в. итальянский музыкаль-
или соизмеримо отстоящие друг от друга (на условное расстояние 1 тон ный теоретик Гвидо д’Ареццо ввёл си-
или 1/2 тона, которое является мерой изменения). Каждая из них имеет стему из четырёх нотных линий, явив-
наименование — «ре», «ми» и т. д. В своём последовательном располо- шуюся прототипом современного
жении они образуют звукоряд. Частоты вибраций воздуха членов зву- нотного стана. В начале линий поме-
коряда соотносятся как дробные числа (4/3, 3/2 и т. п.), что позволяет щались буквенные знаки (прообразы
добиться ощущения гармонического созвучия в аккорде. Звукоряд по- современных музыкальных ключей),
вторяется в разных октавах при повышении или понижении частоты в определявшие высоту записанных
два раза. звуков. В дальнейшем число линий
Для музыкальных звуков помимо высоты необходимой характерис- довели до пяти, а невмы заменили
тикой является соотносительная длительность звучания. Её отмечают, нотами с квадратными головками.
соизмеряя с эталоном целой, которая последовательно делится на два: Впоследствии приняли нотацию,
половинка, четверть, восьмая, шестнадцатая и т. д. (длительность целой фиксировавшую как высоту, так
условно приравнивалась к двум ударам человеческого сердца; основ- и длительность звуков. С небольши-
ной же метрической единицей выступала четверть; именно по ней фик- ми изменениями нотация дошла
сировался так называемый музыкальный размер — длительность такта, до наших дней.
начинающегося ударной долей и формирующего ритм). Высота и тон звука устанавлива-
Данная знаковая система помимо языковой имеет графическую фор- ются частотой звукового колебания.
му кодирования — музыкальную грамоту, в которой с помощью особых Каждая нота имеет свою известную
символов обозначены высота и длительность звуков. Основной знак этой частоту. Сейчас основной считается
системы — нота в определённой позиции на нотном стане; декодировать нота «ля» первой октавы — 440 Гц
высоту ноты по её положению помогает ключ (обычно скрипичный или (раньше её частота равнялась 435 Гц).
басовый), задающий точку отсчёта. Нота — сложный знак, кодирующий Остальные ноты определяются отно-
и высоту звука, и его длительность. сительно неё, ведь самым важным для
Знаки певческой нотации, которые дали начало современным но- слухового восприятия человека явля-
там, известны нам в довольно поздних византийских записях ется не абсолютная частота, а отно-
(с IX в.), хотя системы музыкальной записи существовали, по-видимо- шение частот. Звуки, часто ты кото-
му, значительно раньше. Так, известно, что у древних греков были бук- рых отличаются ровно в два раза,
венные системы для записи голоса и для записи игры на инструмен- кажутся похожими, «родственными».
Интервал частот от 262 Гц до
2 . 262 = 524 Гц разбивается на 12 ча-
стей; полученные 12 звуков называ-
ют первой октавой, семь из них зна-
ют все: до, ре, ми, фа, соль, ля, си.
Удвоив частоты данных 12 звуков, по-
лучим вторую октаву, при следующем
удвоении — третью.
Нотная запись для музыканта пред-
ставляет последовательность команд,
например нажать клавишу и удержать
её, нажать одновременно несколько
клавиш, отпустить ранее нажатую кла-
вишу и т. п. Если выписать все мысли-

42
Кодирование информации

мые команды, то получится система


команд воображаемого исполнителя.
В 80-х гг. XX в. появились электрон-
ные музыкальные инструменты —
синтезаторы, способные воспроизво-
дить звуки многих существующих му-
зыкальных инструментов, а также и
абсолютно новые звуки. Фирмы, изго-
товляющие электронные музыкаль-
ные инструменты, стали выпускать
секвенсоры — приборы, записываю-
щие команды с клавиш, а затем их вос-
производящие. Но единого формата
записи ещё не существовало.
В 1983 г. ведущие производители
электронных музыкальных синтеза-
торов и производители компьютеров
договорились о системе команд уни- тах. В старых тибетских молитвенных книгах пение обозначалось вол-
версального синтезатора, о том, ка- нообразной линией, передававшей переливы голоса. Распространив-
кими электрическими сигналами шиеся на Руси (с XI в.) знаки носили общее название «крюки» или «зна-
будут подаваться такие команды, и мёна». Среди них помимо простых геометрических знаков — «крюков»,
даже о разъёмах и кабелях, соединя- «палок» — выделяли и более сложные элементы с характерными назва-
ющих компьютеры и синтезаторы. ниями: «чаша», «подчашие», «стопица», «сорочья ножка», «светлое об-
Это соглашение получило название лачко», «тёмное облачко» и др. Собственная система певческой нотации,
стандарта MIDI (от англ. Мusical также восходящая к византийской, использовалась и у армян; знаками
Instrument Digital Interface — «описа- её являлись так называемые хазы, имевшие преимущественно геомет-
ние цифрового музыкального инст- рический характер.
румента»). MIDI стал удобным спосо- Древние системы нотации отмечали изменение тона, не указывая
бом кодирования музыки. на конкретную высоту звука, т. е. они не столько записывали мелодию,
Но программы разных секвенсо- сколько напоминали её, подсказывая исполнителю дальнейшие дейст-
ров по-прежнему имели различные вия. Лишь после введения нотного стана и фиксации высоты звука ста-
форматы MIDI-файлов. У каждой ла возможна собственно запись мелодии в современном понимании.
фирмы имелся свой закрытый фор- Выделение цветов спектра является ещё более условным, чем выде-
мат файла, который могла прочитать ление звуков. Цветовой спектр разделяется на отрезки, но обозначение
только она. В 1988 г. по предложению приписывается не точке внутри отрезка, как в случае с музыкальными
звуками, а всему отрезку. Всякому, говорящему по-русски, известна
фраза, помогающая запомнить последовательность цветов радуги: «Каж-
дый охотник желает знать, где сидит фазан». Однако для англичанина
или француза цветов в радуге не семь, а шесть — не разделяются голу-
бой и синий. Это не значит, что они хуже видят, при необходимости го-
лубой цвет можно обозначить, например, по-английски как light blue, но
как элемент системы, равноправный синему и красному, голубой цвет
не воспринимается.
Во вьетнамском, а также в японском языках для обозначения сине-
го, голубого и зелёного цветов вообще обходятся одним словом, а при
необходимости уточняют оттенок, добавляя его название к основно-
му. Так, во вьетнамском языке существует 42 общепринятых оттенка
этого основного цвета — xanh, например xanh морской волны, xanh
ростков риса. В папуасском языке тангма (остров Новая Гвинея) всего
лишь два слова для обозначения основных цветов: одно — для тёплых
цветов (жёлтый, оранжевый и красный), другое — для холодных (голу-
бой, фиолетовый, зелёный).
Значимость основных цветообозначений (т. е. длина участка спект-
ра) в разных языках будет различной. Цветообозначения — один из яр-
ких примеров роли языка как универсального классификатора, кодиру-
ющего явления окружающего мира с помощью словесных обозначений.

43
Информация и информатика

фирмы Opcode приняли формат воспроизведения (например, зна-


Standard MIDI File. Этот открытый чение силы давления на клавишу);
В 1983 г. был пред- формат файла стали поддерживать управляющим сообщением (напри-
ставлен первый син- все производители программ, исполь- мер, команда включения полифони-
тезатор с MIDI — зующих MIDI наряду со своими соб- ческого режима, синхронизирующее
Prophet 600, вскоре ственными. сообщение и т. д.).
вышел MIDI-интер- Запись музыкального произведе- Однако при подобном кодирова-
фейс PC с синтезато- ния в формате MIDI — последователь- нии нельзя записать вокальные про-
ром Roland. К 1985 г. ность закодированных сообщений изведения, ведь звучание голоса пев-
практически все элект- синтезатору, разделённых закодиро- ца или хора не входит в систему
ромузыкальные инст- ванными паузами. Сообщение может команд синтезатора. В остальном та-
рументы в мире име- быть командой синтезатору (нажать кая система кодирования весьма удоб-
ли MIDI-разъёмы. или отпустить определённую клави- на, так как запись очень компактна и
шу, изменить высоту или тембр звуча- соответствует человеческому слухо-
ния и т. д.); описанием параметров вому восприятию.

КОДИРОВАНИЕ ФИЛЬМОВ

С 1895 года — года изобретения кине- Цифровое кодирование (запись)


матографа, и до наших дней техниче- изображения начали использовать
скими средствами для производства совсем недавно, потому что не хвата-
фильмов являются киносъёмочный ло ресурсов для реализации этой зада-
аппарат и киноплёнка. чи традиционным способом. Для запи-
Особенность зрения человека поз- си 1 с (25 кадров размером 1024 x 768
воляет создавать иллюзию движения пикселей) цветного изображения без
частой сменой кадров (более 15 раз в звука потребуется примерно 60 Мбайт
секунду), на которых изображены по- (25 кадров . 1024 . 768 . 3 байт на
следовательные фазы движения. На точку = 58 982 400 байт). При этом
этом принципе основаны и кино, и те- будет обеспечено качество, близкое
левидение, и компьютерное кодиро- к телевизионному.
вание фильмов. Легко подсчитать, что на запись
двухчасового фильма потребуется
более 400 Гбайт! Хранение такого
объёма дорого даже в начале XXI в., не-
Разработки видеоко- смотря на то что средний объём вин-
дировок привели к честера настольного компьютера пре-
созданию VideoCD высил несколько десятков гигабайтов.
(форматов для ви-
деокомпакт-дисков)
и DVD. Накладно не
только хранить «не-
упакованное» кино,
но и воспроизводить
его (и записывать, и
передавать), так как
для этого требуются
скоростные каналы
связи и высокопроиз-
водительные ком-
пьютеры.

44
Кодирование информации

Объём записи не очень увеличит-


ся, если к изображению добавить звук.
Синхронизацию звука и изображения при монтаже обеспечива-
Как и для записи на компакт-диске,
ет щелчок «хлопушки», на которой написаны номера сцены и дуб-
нужно около 170 кбайт для записи 1 с
ля. Момент щелчка в начале съёмок очередного дубля хорошо
сопровождения.
виден (так же хорошо слышен звук «хлопушки») на плёнке. Это
Звук записывают независимо от
позволяет легко совместить его с началом записей изображения
изображения, но при этом важно до-
и звука.
биться синхронности при воспроиз-
ведении.
Чтобы решить проблему большо-
го объёма информации при записи лее восприимчив к яркости отдельной
фильмов, разрабатывают новые но- точки, чем к её цветности. Поэтому
сители информации и придумывают они предложили на каждые четыре
хитроумные алгоритмы. Например, точки хранить по 4 байт яркости (на
можно хранить не кадры, а измене- каждую точку разные) и по 2 байт цвет-
ния кадров. Тогда, если картинка ста- ности. Таким образом, необходимый
тична, сокращается объём, требуемый объём сократился в два раза: вместо
для записи очередного кадра. 12 байт (12 = 4 . 3) занимали только
Однако главных успехов учёные до- 6 байт (4 . 1 + 2). Качество записи ухуд-
бились, учитывая ещё одну особен- шилось, но это практически незамет-
ность человеческого зрения: глаз бо- но для человеческого глаза.

КОДИРОВАНИЕ БУХГАЛТЕРСКОЙ ИНФОРМАЦИИ

Практически любая женщина являет-


ся экспертом, когда речь заходит о
деньгах. Как правило, именно жёны
ведут семейный бюджет: планируют
траты, учитывают расходы и доходы.
Правильная семейная бухгалтерия
требует особого внимания, записи
вносятся каждый день, за год может
быть исписана толстая тетрадь, в ко-
торой указано всё: когда, сколько и на
что было истрачено.
По существу, тем же целям служит
бухгалтерская отчётность на пред-
приятии. От семейной бухгалтерии
она отличается бо′ льшим объёмом раз-
нотипной информации и наличием
определённых правил ведения бух-
галтерского учёта.
В бухгалтерии учитываются день- Активы — это денежные средст-
ги и материальные ценности обяза- ва, готовая продукция (товарные за-
тельно в денежном эквиваленте. Пред- пасы), земельные участки, оборудо-
приятие использует два типа капитала: вание и даже нематериальные
собственный и заимствованный, при- активы, например патенты и автор-
влечённый (кредиторская задолжен- ские права.
ность). Они и составляют экономи- Пассивы отражают долги пред-
ческие ресурсы предприятия: приятия, товары, полученные в кре-
дит, деньги, взятые взаймы, задол-
Экономические ресурсы = женности по зарплате сотрудникам
= Привлечённый капитал + предприятия и по налогам государ-
+ Собственный капитал. ству.

45
Информация и информатика

Активы Пассивы
Экономические ре- Касса 50 Уставный капитал 85
сурсы в бухгалтерии Основные средства 01 Задолженность поставщикам 60
называют активами, Расчётный счёт 51 Задолженность по оплате труда 70
а привлечённый капи- Готовая продукция 40 Резервный капитал 80
тал — пассивами.
Поэтому основное В России сюда же для простоты Великий немецкий поэт Иоганн
уравнение можно за- включают и собственный капитал Вольфганг Гёте с иронией относился
писать так: предприятия, куда входят, например, к бухгалтерам, называя двойную бух-
Активы = Пассивы + и уставные взносы владельцев пред- галтерию «одним из самых замеча-
+ Капитал. приятия. Важнейшим понятием бух- тельных изобретений человеческого
галтерии является баланс. Это двусто- разума», хотя это высказывание и не
ронняя таблица, левая часть которой лишено здравого смысла.
представляет собой актив, состав и раз- Система двойной записи основы-
мещение хозяйственных средств пред- вается на принципе двойственности.
приятия, а правая часть — пассив (или Все экономические явления имеют два
пассив плюс капитал), где группиру- аспекта — увеличение и уменьшение,
ются все поступления. Сумма активов компенсирующие друг друга, как буд-
баланса должна совпадать с суммой то подчиняясь «закону сохранения».
пассивов, так как актив и пассив — это В этой системе факт хозяйствен-
фактически две точки зрения на одни ной жизни должен быть зафиксиро-
и те же средства. ван как минимум дважды: по дебету од-
Информация, необходимая для ного счёта и кредиту другого — так,
управления и учёта на предприятии, чтобы общая сумма по дебету уравно-
должна накапливаться и всегда быть вешивала общую сумму по кредиту.
под рукой у руководителя. Система Запись в таблице, похожей на бук-
хранения информации при бухгал- ву «T», включает название счёта, дебет
терском учёте состоит из счетов. Счёт (левая часть) и кредит (правая часть).
создают на каждый вид актива, пас- Пусть в кассу поступают деньги (ле-
сива или капитала, включая доходы и вая часть) и из неё производятся вы-
расходы. Соответственно счета ис- платы (правая часть):
пользуются для учёта активов или пас-
сивов. Каждый счёт имеет свой шифр, Касса
который можно писать вместо назва- 10 000 5000
ния счёта. В небольшой фирме доста- 3000 1200
точно иметь в плане несколько десят- 1000
ков счетов, в крупной корпорации их 14 000 6200
тысячи.
Когда бухгалтерский учёт ведётся Сальдо 7800
вручную, на каждый счёт выделяют
отдельную страницу или карточку. Активные счета имеют дебетовое
сальдо, которое показывает остаток
средств, а пассивные счета — кре-
дитовое сальдо, учитывающее все
источники поступлений. По кредиту
пассивных счетов отражается увели-
чение, по дебету — уменьшение этих
источников.
Каждая хозяйственная операция
показана в дебете одного и в кредите
другого счёта в одинаковой сумме
(проводка). Это и называется спосо-
бом двойной записи. Между счетами
И. Г. Тишбейн. возникает взаимосвязь: один счёт по
Иоганн Вольфганг
Гёте в римском дебету связан с другим счётом по кре-
предместье. 1787 г. диту. Например, при начислении из-

46
Кодирование информации

носа основных средств дебетуется компьютер способен помочь челове-


счёт 80, а кредитуется счёт 02. Можно ку. Какие же бухгалтерские задачи луч-
представить себе, что деньги вычита- ше поручить компьютеру? Слова «дебет» (лат.
ются из прибыли и откладываются для Прежде всего, компьютер можно debet — «он должен»)
будущего ремонта или замены изно- использовать как хранилище инфор- и «кредит» ( лат. cre-
шенного оборудования. мации о движении средств. Про каж- dit — «он верит») явля-
При операциях суммы на счетах дый счёт нужно помнить следующую ются просто бухгал-
изменяются, однако равенство акти- информацию: шифр счёта, название терскими терминами
ва и пассива не нарушается. По каж- счёта, тип (актив или пассив), остаток для обозначения пра-
дому счёту ведётся ведомость, в кото- (текущее количество средств на счё- вой и левой частей
рой фиксируются приход и расход те). Информацию о счетах помещают счёта, а не для обо-
средств. В конце каждого месяца на в таблицу. Пусть в кассе предприятия значения увеличения
основании ведомостей составляются находится 11 тыс. рублей: или уменьшения.
журналы-ордера, где учитываются
суммарные приход и расход средств Шифр Название Тип Остаток
на каждый счёт или группу счетов. На
50 Касса Актив 11 000
основании журналов-ордеров в кон-
це отчётного периода вносятся запи-
си в Главную книгу и составляется ба- Дебетуемый и кредитуемый счета
ланс предприятия. не могут быть выбраны произвольно.
Это колоссальная по объёму рабо- Существуют строго определённые ти-
та: в бухгалтерии могут вестись сот- пы проводок, которыми бухгалтер
ни счетов, по каждому из них в тече- имеет право пользоваться. Поэтому
ние месяца бывает несколько сотен и при кодировании бухгалтерской ин-
даже тысяч проводок. формации необходимо записать и
Поддержка равенства актива и пас- этот список, например:
сива баланса, заполнение журналов-
ордеров требуют огромных усилий. Ес- Тип Название Шифр дебета Шифр кредита
ли добавить ещё учёт документов, на
основании которых делаются провод- 1 Продажа готовой
ки, составление платёжных поручений, продукции 40 51
ведомостей зарплаты, приходных и 2 Снятие денег
расходных ордеров, то станет понят- с расчётного счёта 51 50
ным, что ведение бухгалтерского учё- 3 Начисление износа
та — кропотливая и ответственная ра- основных средств 80 02
бота. Это именно та область, где

47
Информация и информатика

где тип — это своего рода шифр про- проводки, отчётная информация за
водки, по которому из других таблиц определённый период времени и
Система двойной за- можно ссылаться на таблицу типов многое другое. Но даже по предло-
писи возникла в эпо- проводок, название — полное назва- женной модели легко подсчитать
ху Ренессанса. Ещё в ние проводки, шифр дебета и шифр итоговый оборот средств по любо-
1494 г. францискан- кредита — шифры счетов, участву- му счёту за любой период времени.
ский монах Лука Па- ющих в проводке. Независимо от количества проводок
чоли, друг Леонардо Про каждую проводку важно знать: компьютер выполнит эту задачу без
да Винчи, дал первое её тип, когда произошла и какое ко- ошибок!
описание двойной за- личество средств было переведено. Программа бухгалтерского учё-
писи. Если 31 декабря 2002 г. проводкой но- та способна облегчить и повседнев-
мер 23450 начислили износ в разме- ный труд работников бухгалтерии.
ре 10 тыс. рублей, то запись в табли- Например, при выдаче денег из кассы
це проводок выглядит так: помимо бухгалтерской проводки
необходимо заполнить расходный
Номер Тип Дата Количество ордер. Данную работу также выпол-
няет компьютер: бухгалтер указы-
23450 3 31.12.2002 10 000 вает сумму выдачи, а компьютер де-
лает проводку и печатает ордер.
Разумеется, объём хранимой в Это не только экономит время, но
бухгалтерии информации куда боль- и гарантирует, что сумма, указанная
ше. Существуют первичные докумен- в ордере, совпадает с суммой про-
ты, на основании которых сделаны водки.

СПОСОБЫ СЖАТИЯ ИНФОРМАЦИИ


Лука Пачоли.
Ресурсы надо экономить, и не толь- чи информации. Часто закодирован-
ко природные. Это в полной мере ную информацию можно преобра-
относится и к памяти ЭВМ, которую зовать так, чтобы в результате она
используют для хранения и переда- занимала гораздо меньше места. Та-
кой процесс и называют упаковкой
или сжатием информации.
При этом целью является имен-
АЛГОРИТМ ОБОБЩЁННОГО RLE-КОДИРОВАНИЯ но экономия, а не желание спрятать
информацию, зашифровать.
алг кодирование RLE Технология сжатия информации
дано текст делится на два больших класса — без
надо напечатать коды RLE потери информации, при этом ис-
нач цел счетчик, лит символ1, символ2 ходное сообщение можно точно
| счетчик:= 0 восстановить по упакованному, и
| символ1:= прочитать из текста сжатие с потерей, в этом случае рас-
| нц пока не конец текста пакованное сообщение будет отли-
| | символ2:= прочитать из текста чаться от исходного. Как впоследст-
| | если символ1= символ2 и счетчик<255 вии окажется, такая потеря не всегда
| | | то счетчик:= счетчик + 1 бывает фатальной, т. е. потерянной
| | иначе информацией можно было прене-
| | вывод счетчик, символ1 бречь. Однако во многих случаях
| | счетчик:= 0 внесение искажений нежелательно
| | символ1:= символ2 или вообще недопустимо, это харак-
| | все терно, например, для программ или
| кц текстов.
кон На сегодняшний день разработа-
но много алгоритмов упаковки ин-
формации без потерь, но практиче-

48
Кодирование информации

ски все они основаны на одной из Всего на весь текст будет потраче-
двух простых идей. но 500 + 500 . 9 = 5000 бит, что зна-
Первая идея была предложена Дэ- чительно меньше, чем 8000 бит в ис- Идеи Хаффмана ис-
видом Хаффманом в 1952 г. и бази- ходном тексте. пользуют сжатие
ровалась на том, что в обычном тек- Вторая основная идея упаковки CCITT (аббревиатура
сте частоты появления разных состоит в том, что в сообщениях Международного ко-
символов различны. При стандарт- часто встречаются несколько под- митета по телегра-
ном кодировании текста каждый ряд идущих одинаковых байтов, фии и телефонии)
символ кодируется одним байтом. а некоторые последовательности при передаче факсов.
Использование одного байта на байтов повторяются многократно.
один символ упрощает обработку При упаковке графической инфор-
текста. Но перед длительным хране- мации чаще встречается первая си-
нием (или перед передачей по кана- туация, а при упаковке текстов —
лам связи) можно позволить себе бо- вторая, так как в русском языке ред-
лее сложную кодировку текста. При ко встречаются две, а тем более боль-
упаковке по методу Хаффмана час- шее число подряд идущих одинако-
то встречающиеся символы кодиру- вых букв. На рисунке, например,
ются короткими последовательно- голубое небо использует один цвет,
стями битов (короче 8), а более который многократно повторяется
редкие — длинными (может быть, при кодировании этого изображе-
более 8). В результате в среднем по- ния. Да и для хранения графической
лучается менее 8 бит на символ. информации требуется значитель-
Это легко проиллюстрировать. но больше места, поэтому задача её
Пусть в тексте из 1000 байт 50 % про- упаковки наиболее важна. Графиче-
белов. Тогда можно закодировать ская информация вообще очень ред-
текст в виде последовательности дво- ко хранится в компьютере в неупа-
ичных 0 и 1. кованном виде.
Если в тексте встретился пробел, Дэвид Альберт Хаффман.
то в конец последовательности пи-
шется 0, а если встретился непробел, ГРУППОВОЕ
то запишется 1, а за ней добавится
двоичный код этого символа, т. е.
КОДИРОВАНИЕ
1 + 8 бит. Поскольку текст наполови-
ну состоит из пробелов, то на их ко- RLE-кодирование (англ. Run-Length
дировку тратится 500 раз по одному Encoding — «кодирование путём учё-
биту, а на каждый из 500 непробелов та числа повторений») — метод, при-
расходуется по 9 бит. менимый не только к изображениям,

49
Информация и информатика

Алгоритмы RLE-кодирования очень


просты и быстры, но эффективность
Существует модификация алгоритма LZSS, который часто вмес-
сжатия, т. е. отношение числа байтов
то символа в триаде хранит указатель на символ, если указатель
в исходной последовательности к
занимает меньше места, чем байт.
числу байтов в полученной после сжа-
тия, сильно зависит от того, что сжи-
мается. Если попытаться упаковать
но и к произвольным сообщениям, он чёрно-белое изображение, получен-
позволяет компактно кодировать ное сканированием с листа книги, то
длинные последовательности одина- эффективность будет весьма высока,
ковых байтов, например: так как белого цвета значительно
больше, чем чёрного, т. е. изображе-
AAAAAAAAAAAAAAA ние включает большие непрерывные
объёмы данных одного цвета. Одна-
Такая группа обычно кодируется при ко сложные изображения с большим
помощи двух байтов. Первый байт со- количеством цветов кодируются пло-
держит число символов в группе, а вто- хо, так как имеют мало групп одина-
рой — повторяющийся символ: кового цвета.

15 A
LZW-КОДИРОВАНИЕ
Абрахам Лемпель. Другой пример: ФФФААААКУУУУК
потребует уже не двух, а 10 байт: Схема сжатия Лемпеля — Зива — Уэл-
ча (LZW) является одной из самых
3 Ф 4 A 1 К 4 У 1 К распространённых при упаковке изо-
бражений. В 1977 г. Абрахамом Лем-
Таким образом, можно сказать, что пелем и Джекобом Зивом был создан
последовательность одиночных, не- первый алгоритм LZ77. Описанный
повторяющихся байтов при RLE-упа- ими алгоритм работал примерно так.
ковке займёт даже больше места, чем Сжатие происходит за счёт замены
изначально. уже встречавшихся ранее в последо-
Можно предложить следующую вательности одинаковой группы сим-
модификацию метода RLE. волов тройкой значений (триадой):
Пусть первый байт несёт не только указателя на группу, длину совпада-
информацию о числе повторений, но ющей группы и первого отличающе-
и о том, есть ли эти повторения. Если гося символа, идущего за группой.
старший (самый левый) бит равен 1, Максимальная длина фрагмента F
Джекоб Зив. то следующий байт данных надо при определяется равной 10–20 симво-
распаковке повторить столько, сколь- лам. А «скользящее» окно, через ко-
ко записано в оставшихся 7 бит. торое просматривается текст, обо-
Например, байт 100001012 говорит, значалось N.*
что следующий за ним байт нужно по- При очередном шаге самая длин-
вторить 5 раз (так как 1012 = 5). На- ная последовательность в фрагмен-
против, если старший бит первого те «ло ко д» ищется в буфере «ышко
байта равен 0, то просто надо взять весело пошло ко д». При этом най-
несколько следующих байтов данных денная совпадающая группа симво-
без всяких изменений. Сколько имен- лов может перекрывать фрагмент F,
но — опять записано в оставшихся но, естественно, не совпадать с ним.
7 бит. Например, байт 000000112 го- В примере такая группа символов
ворит, что следующие за ним 3 байт найдена — «ло_» (с пробелом в кон-
нужно взять без изменений. це), она и заменится при сжатии на
Например, на последовательность триаду (7, 3, к).
ФФФААААКАЮК потребуется уже не После этого окно сместится на дли-
12 байт, а всего 9: ну группы + 1 (3 + 1 = 4) символов. **
Весьма вероятно, в буфере не бу-
дет найдено даже начало фрагмента,
100000112 Ф 100001002 A 000001002 К А Ю К
т. е. фрагмент начинается с символа,

50
Кодирование информации

просто отсутствующего в буфере.


Тогда по правилам алгоритма этот * F
символ будет заменён на триаду
(0, 0, отсутствующий символ) и окно Наше ветхое судён ышко весело_пош ло_ко д ну
передвинется на 1.
В приведённом примере F = 7,
N = 22, поэтому для кодировки в дво- N
ичном представлении триады потре-
буется всего два байта — один байт
на символ, другой сразу на два чис-
ла. На длину группы не более 7, т. е.
3 бит, на указатель N– F = 22 –7 = 15, F
**
т. е. 4 бит. Итого 3 + 4 = 7 бит, т. е. да- Наше ветхое судёнышко весело пошло к о дну к счастью…
же меньше байта. А для хранения все-
го окна просмотра требуется N байт. N
То есть метод LZ77 экономичен по
использованию памяти ЭВМ.
Лемпель и Зив показали, что при
достаточно большом N их алгоритм тому файлу, а в кодируемом тексте ус-
даёт очень хорошие результаты, а че- танавливались указатели на соответ-
рез год они представили новый алго- ствующую сохранённую группу. Этот
ритм LZ78, который использовал алгоритм и лёг в основу созданного
отдельные словари. При этом повто- в 1984 г. Терри Уэлчем, сотрудником
ряющиеся группы помещались в этот фирмы Unisys, нового алгоритма, ко-
словарь, который добавлялся к сжа- торый стал носить название LZW.

АЛГОРИТМ LZW

Метод LZW обычно использует словарь, содержащий 4096 Существуют модификации этого алгоритма, сбрасы-
элементов. Элементы с номерами 0–255 содержат все 256 вающие при переполнении не весь словарь, а только ка-
символов из 8-битной кодировки. Эти элементы словаря кую-то его часть, например первую половину.
всегда постоянны, а остальные элементы с номерами Алгоритм распаковки работает по такому же прин-
256–4095 изначально пусты, но в процессе работы запол- ципу, но несколько сложнее:
няются словами по следующему алгоритму:
алг декодирование LZW
алг кодирование LZW дано в словаре 256 символов
дано в словаре 256 символов надо напечатать раскодированные символы
надо напечатать коды LZW нач лит слово, символ, цел к, к0
нач лит слово, символ | к0:= Прочитать код
| слово:= ”” | вывод Словарь(к0)
| нц | нц
| | символ:= Символ из текста | | к:= Прочитать код
| | если Есть в словаре(слово + символ) | | слово:= Словарь(к0)
| | | то слово:= слово + символ | дописывание | | если Cловарь(к)<>Пусто | Слово есть в
||| символа к слову || словаре?
| | | иначе вывод Код(слово) | код из словаря | | | то вывод Словарь(к)
| | | Добавить к словарю (слово + символ) | | | символ:= Первый символ в Словаре(к)
| | | слово:= символ | | | иначе символ:= слово[1] | первый символ
| | всё | | всё
| кц | | Добавить к словарю (слово + символ)
кон | | к0:= к
| кц
Когда словарь переполняется, алгоритм Уэлча его очи- кон
щает, как бы начиная работу сначала.

51
Информация и информатика

В отличие от LZ77 этот алгоритм в и рисунков разных масштабов и раз-


процессе своей работы строит сло- меров. Этот термин впервые приме-
варь, в который попадают специаль- нил Бенуа Мандельброт для описания
ным образом построенные слова. Если повторяющихся рисунков, которые
в тексте встречается группа, совпада- он нашёл во многих различных струк-
ющая со словом в словаре, то вместо турах. Он обнаружил, что фракталы
неё записывается индекс этого слова можно описать математически и со-
в словаре. здавать при помощи очень простых
Метод LZW имеет преимущество алгоритмов.
перед большинством словарных упа- Если взглянуть на пол, то в его
ковщиков, так как словарь создаётся рисунке нетрудно обнаружить мно-
как на этапе упаковки, так и на этапе жество похожих повторяющихся
распаковки. Все алгоритмы данного фрагментов, при этом совершенно
семейства отличаются друг от друга неважно, какая поверхность у пола.
Бенуа Мандельброт. способом образования словаря и сво- Он может быть паркетный, бетонный,
им поведением при переполнении покрытый ковром, всё равно рисун-
словаря. ки будут повторяться размером от
Метод LZW получил широкое рас- очень маленьких до очень больших.
пространение, однако, так как патент Если «скопировать» кусок поверхно-
на него принадлежит Unisys Corpo- сти, то можно найти на полу ещё не-
ration, его использование в програм- сколько почти таких же. Если изме-
мах требует получения соответству- нить размер копии, повернуть или
ющей лицензии. произвести зеркальное отражение, то
число похожих частей ещё возрастёт.
Тогда можно перечислить все похо-
ФРАКТАЛЬНОЕ СЖАТИЕ жие области и все (математические)
преобразования с копией, которые
Упрощённо фрактал — это структу- были проделаны. Полученные данные
ра, состоящая из подобных форм (системы уравнений) обычно назы-

Фрактальное
изображение.

52
Кодирование информации

вают фрактальными кодами. При


этом говорят, что они описывают по-
верхность через её фрактальные свой-
ства. Используя их, можно воссоздать
поверхность пола.
Поиск в изображении фракталь-
ных рисунков требует чрезвычайно
большой вычислительной работы.
При этом фрактальное сжатие сопро-
вождается потерями, так как процесс
сравнения фракталов не предусмат-
ривает поиска точного их соответст-
вия. Вместо этого ищется наилучший
из возможных вариантов по времени
кодирования, качеству соответствия
оригиналу и размеру полученных
данных. Как правило, требуется, что-
бы результат был практически неот-
личим «на глаз» от первоисточника.
Но результаты дают огромный вы-
игрыш. При распаковке фрактально-
сжатого изображения требуется зна- метны глазу человека, а вот малые из- Программа
чительно меньше времени, чем при менения яркости, напротив, легко раз- на КуМире рисует
фрактал.
его запаковке. Иногда фрактальное личимы. Основываясь на этом, схема
изображение занимает памяти мень- JPEG сохраняет полутона изображе-
ше своего оригинала в 100 и более ния, но более «свободно» обращается
раз. Кроме того, фракталы легко мас- с цветом. Сжатие эффективно, толь-
штабировать без потери деталей и ко если различия между соседними
появления лишних деталей (артефак- пикселями весьма незначительны.
тов). JPEG хорошо работает с изображени-
Однако, как всегда, большинство ями глубиной более 5 бит на цвето-
алгоритмов фрактального сжатия за- вой канал (RGB). При этом сам стан-
патентованы и закрыты для свобод- дарт описывается для глубины в 8 бит.
ного использования в программах. Процесс сжатия происходит в не-
сколько этапов. На первом этапе цвет-
ное изображение надо преобразовать
СЖАТИЕ JPEG из стандарта: например, RGB (крас-
ный, зелёный, синий) в YUV (яр-
Аббревиатура JPEG происходит от на- кость/цветность) или YCbCr (яркость
звания комитета по стандартам Joint и две цветоразностные компоненты).
Photographic Experts Group (Объеди- При дальнейшей обработке яр-
нённая группа экспертов по фотогра- кость надо как можно тщательнее
фии). Алгоритмы сжатия LZW мало сохранить, при этом цветность ме-
подходят для сжатия изображения, нее существенна. Специфической
так как в цифровых фотографиях и чувствительностью глаза пользуют-
отсканированных картинках присут- ся, уменьшая количество пикселей
ствуют шумы, и их тем больше, чем для каналов цветности, это называ-
больше глубина цвета (число бит на ется субдискретизацией. Для обоих
пиксель) при получении цифрового каналов цветности при субдискре-
изображения. тизации может быть использована
Фактически JPEG не является од-
ним алгоритмом сжатия, это целый
набор методов сжатия. Как и при
фрактальном сжатии, здесь также про- Вы овладели теорией сжатия информации, если воспринимаете
исходит потеря данных, тех, которые пакет апельсинового сока, как ZIP-файл кучки апельсинов.
трудно заметить визуально. Неболь-
шие изменения цвета не сильно за-

53
Информация и информатика

При более или менее равных коэф-


фициентах фрагмента 8 x 8 перед DCT-
Ещё в 1860 г. немецким учёным Густавом Фехнером был сфор- преобразованием результатом будет
мулирован закон (носящий его имя), подтвердивший, что связь матрица с тенденцией уменьшения аб-
между раздражителем и человеческим восприятием нелинейна: солютных значений от левого верхне-
«Ощущения пропорциональны отношению логарифмов стимула». го угла к правому нижнему.
На следующем этапе, прежде чем
отбросить больший объём информа-
ции, надо поделить все коэффициен-
схема 4 – 2 – 2, хорошо опробован- ты полученной матрицы на коэф-
ная ещё на заре цветного телевиде- фициенты квантования, округляя
ния в стандарте NTSC (Националь- результаты до целого. Матрица кван-
ный комитет по телевизионным тования представляет собой целые
стандартам США). При этом яркость положительные коэффициенты, рас-
сохраняется для всех точек квадра- тущие от правого нижнего угла к ле-
та 2 x 2, а цветность одинакова в го- вому верхнему.
ризонтальных рядах. Чем больше коэффициенты кван-
Далее картинка разбивается на тования, тем больше данных теряет-
блоки по 8 x 8 пикселей (при этом ся. Каждый из 64 элементов матрицы
Обратное косинус- каждый цветовой и яркостной ком- имеет свой коэффициент квантова-
преобразование соот- понент обрабатывается независимо). ния. Яркостные данные имеют мень-
ветственно совершает JPEG основан на так называемом дис- шие коэффициенты квантования, чем
обратное: из частот- кретном косинус-преобразовании такие же коэффициенты для цветно-
ного представления (DCT), являющемся разновидностью сти. То есть данные яркости сохра-
получается простран- преобразования Фурье. Оно позво- няются более тщательно. «Качество»
ственное. ляет переходить от пространствен- JPEG-сжатия напрямую зависит от
ного представления изображения к матриц квантования.
его так называемому спектральному Таким образом, в результате кван-
представлению, хорошо знакомому тования получится матрица с большим
каждому, у кого есть музыкальный количеством нулевых элементов, име-
центр со спектроанализатором, где ющая в левом верхнем углу некоторое
на маленьком экране красиво пры- число ненулевых. На последнем эта-
гают столбики в такт музыке. пе, на так называемом методе вторич-
DCT-преобразование применяет- ного сжатия, при помощи хорошо зна-
ся к каждому блоку 8 x 8. DCT-вычис- комого метода Хаффмана избавляются
ления чрезвычайно сложны, и это от нулевых коэффициентов, обходя
наиболее трудоёмкий этап всего ал- матрицу диагональными полосками,
горитма сжатия JPEG. Выполнив его, начиная с верхнего левого угла:
получим разделение высокочастот-
ной и низкочастотной информации, 15 1 –2 …
из которой состоит изображение. Сам 2 –1 0 …
по себе этот этап преобразования не 1 0 0 …
предусматривает потерь, за исключе-
нием ошибок округления. … … … …
Элементы матрицы (нового блока)
вычисляются по формуле, представ- Тогда в начале последовательности в
ленной ниже (для всех u и v от 0 до 7). основном будут ненулевые коэффици-
енты, в конце же — одни нули. Такие
7 7
последовательности хорошо сжима-
1
F(u, v)= – CuCv
4
ΣΣ
i= 0 j= 0
f(i, j) ет метод Хаффмана.
При восстановлении изображения
(2i+1)uπ (2j+1)vπ , весь процесс проходит в обратном
cos cos
16 16 направлении. Сначала декодирование
по методу Хаффмана, далее домноже-
1, при u, v ≠ 0,
где Сu , Cv =
{ 1
√2
, при u, v = 0.
ние элементов матрицы на коэффици-
енты матрицы квантования. Потом
применяются обратное косинус-пре-

54
Кодирование информации

образование и пересчёт в схемы RGB. цессор Pentium, тут же специально раз-


По объёму вычислений восстановле- работала его модификацию MMX
ние изображения, JPEG-декодирова- (Multi-Media eХtension) — мультиме-
ние, сравнимо с JPEG-кодированием, дийное расширение, которое «умеет»
поэтому для ускорения этих операций выполнять некоторые операции с ма-
применялись аппаратные ускорители, трицами 8 x 8, ускоряющие прямое или
а фирма Intel, выпустив на рынок про- обратное DCT-преобразование.

СЖАТИЕ ЗВУКА

Цифровой звук, если это не музыка, 1 до 2 столь же заметно человеку, как


которую можно закодировать в виде и изменение громкости от 100 до
MIDI, столь же неудобен для сжатия, 200, а изменение громкости от 100
как и картинка. Звуковой сигнал ред- до 101 человеком практически не
ко обладает избыточностью, т. е. име- ощущается.
ет повторяющиеся участки (в основ- Поэтому при компандировании
ном из-за шумов). А значит, плохо значения амплитуды звука заменяют-
сжимается с использованием алгорит- ся на логарифм этих значений.
мов компрессии без потерь, аналогич- При 8-битном кодировании звука
ных LZW или методу Хаффмана. | a | <27, следовательно, log2 | a | < 7. Зна-
В два раза звук можно упаковать с чит, звук может быть закодирован
помощью метода со странным назва- тремя двоичными разрядами плюс
нием компандирование (от англ. com- ещё один разряд на знак амплитуды,
pound — «соединение», «составной»). итого получится 4 вместо 8.
Этот метод основан на законе, от- То есть при компандировании
крытом психологами: если интен- 8-битного звука при некотором ухуд-
сивность раздражителя меняется в шении качества звука происходит
геометрической прогрессии, то ин- сжатие вдвое.
тенсивность человеческого воспри-
ятия меняется в арифметической про-
грессии. АДАПТИВНАЯ
В применении к звуку это означа-
ет, что если повысить громкость зву-
РАЗНОСТНАЯ КОМПРЕССИЯ
ка в 2, 4, 8 и более раз, то человече-
кое ухо будет воспринимать это как Один из способов уменьшения объё-
линейное увеличение интенсивно- ма аудиоданных — хранить не сами
сти. То есть изменение громкости от данные, а разность между двумя

55
Информация и информатика

Качественно иные принципы ле-


жат в основе алгоритмов сжатия по
Звук на CD, как правило принимаемый за эталон цифрового зву-
стандарту MPEG (Motion Pictures
чания, закодирован способом импульсно-кодовой модуляции,
Experts Group).
PCM (Pulse Code Modulation). Время звучания и диапазон амп-
литуды разбивались на соответствующие равные промежутки,
являющиеся параметрами оцифровки, — частоту дискретизации
и уровень дискретизации (число битов на канал). В результате
MP 3
на CD (при частоте около 44 кГц и 16 бит на канал) 1 с стерео-
Естественно возникает вопрос: а нель-
звука требовала около 1,4 Мбит двоичных данных, или, как го-
зя ли воспользоваться каким-нибудь
ворят, воспроизведения (запись) потоком 1400 кбит/с.
методом, аналогичным JPEG-преоб-
разованию в графике? Ведь при сжа-
тии картинки искажения, часто неза-
соседними значениями, если такая метные для глаза, позволяют сильно
разность невелика. Как правило, это сократить размер изображения. Пусть
верно для человеческой речи. При в результате компрессии и декомпрес-
этом разность кодируется меньшим сии звук не будет идентичным, но и
числом битов, нежели исходные дан- не надо ставить перед собой цели аб-
ные. Такой метод называется DPCM солютно точного восстановления
(Delta Pulse Code Modulation). формы исходных звуковых колеба-
В другом, более экономном спосо- ний. Главная задача — это максималь-
бе ADPCM (adaptive DPCM, или адап- ное сжатие звукового сигнала при ми-
Существуют методы тивная разностная компрессия), зна- нимальных слышимых (или вообще
сжатия особого вида чения разностей подвергаются ещё неслышимых) искажениях. Человече-
звука — человеческой более грубому квантованию (число ский слух имеет ряд особенностей,
речи, основанные не возможных значений), что позволя- позволяющих использовать достаточ-
на том, как слышит ет уменьшить разрядность до 4 бит но эффективные алгоритмы компрес-
человек, а на том, как вместо 16, причём шаг квантования сии звуковых данных при субъектив-
он говорит. выбирается в зависимости от величи- но-минимальных потерях в качестве
ны текущего изменения сигнала. Он звука.
увеличивается, если несколько раз В 1940 г. Харви Флетчер, выда-
подряд разность достигала 16 (4 бит ющийся американский физик, отец
выделено для квантования разности), стереозвука, привлёк для исследова-
и уменьшается, если разность несколь- ний человеческого слуха большое
ко раз подряд была меньше 4. Имен- число испытуемых. Он проанализи-
но в этом заключается «адаптивность», ровал зависимость абсолютного по-
на которую указывает название мето- рога слышимости от частоты сигна-
да. При этом принято говорить, что ла, т. е. при какой амплитуде звук
коэффициент сжатия 16-битных дан- определённой частоты не слышен для
ных методом ADPCM равен 4 : 1. человека. В построенной на основе

56
Кодирование информации

опытов кривой максимальные значе-


ния порога находятся, как и ожида- То же произойдёт, если проиграть маскирующий тон с частотой
лось, на границах диапазона слыши- 1 кГц и уровнем 60 дБ и тестовый тон с частотой 1,1 кГц и уров-
мости (около 20 Гц и ближе к 20 кГц), нем 40 дБ, который при этом не будет слышен. Можно исклю-
а минимум — приблизительно 5 кГц. чить маскирующий тон, оставив звучать тестовый на короткое
Но главное, на что он обратил внима- время, пока он не станет вновь слышен. Эксперимент покажет,
ние, — это способность слуха адапти- что это время равно примерно 5 мс.
роваться к появлению новых звуков,
что выражается в повышении порога
слышимости. Иначе говоря, одни зву-
ки способны делать неслышимыми
другие, что и называют маскировани-
ем одного звука другим. Естественно, что те части спектра звука, которые лежат ниже аб-
Маскирование имеет как частот- солютного порога слышимости (минимальное значение звуково-
ное (или частотно-динамическое) го давления, которое способно воспринять человеческое ухо), ни
свойство (громкие звуки маскируют кодировать, ни передавать не следует.
близкие им по частоте более тихие,
низкочастотные звуки маскируют вы-
сокочастотные), так и временно′ е
(эффект продолжается ещё некото- те части, которые практически не бу-
рое время после того, как маскиру- дут слышны. Удобно использовать
ющий звук прекратился). разбиение спектра на полосы различ-
Последнее свойство слуха при ком- ной ширины, основываясь на осо-
прессии позволяет после громкого бенностях слуха человека: в ушной
звукового сигнала некоторое непро- улитке существуют области, каждая
должительное время вообще не вос- из которых отвечает за определён-
производить, а значит, и не сохранять ную частотную полосу (шириной от
никакого звука. Для грубой демонст- 100 Гц внизу спектра и до 3500 Гц в
рации этого эффекта можно привес- верхней части). Обычно выделяют 27
ти такой пример: после выстрела из так называемых критических полос
пушки в течение некоторого време- (англ. critical band): 0-я от 50 до 95 Гц,
ни человек вообще ничего не слышит. 1-я от 95 до 140 Гц, … , 26-я от
То есть громкий щелчок продолжи- 20 250 Гц и выше.
тельностью 0,1 с может замаскировать Для выполнения алгоритма сжатия
последующие за ним тихие звуки на исходный сигнал разбивается на кад-
0,5 с, которые не надо сохранять. Для ры, которые подвергаются частотно-
точного воспроизведения такого зву- му анализу. Алгоритм сжатия выгля-
ка для человека достаточно проиграть дит примерно так.
только малую часть от исходного сиг-
нала — щелчок, так как оставшаяся
часть всё равно не слышна. Говорят,
что коэффициент компрессии в этом
примере достигает
0,5+0,1 ,
6 : 1 = 0, 1

а описанную процедуру сжатия обыч-


но называют маскированием во вре-
менной области.
При маскировании в частотной
области синусоидальный сигнал ма-
скирует более тихие, близкие по ча-
стоте сигналы, в том числе и синусо-
идальные сигналы много меньшей
амплитуды. Это даёт возможность вы-
делить в исходном спектре сигнала

57
Информация и информатика

можно заметить, что 7-ю полосу не на-


до сохранять, так как 10<12, а 9-ю, на-
В 1987 г. при разработке алгоритмов аудиокодирования для ци- против, нужно записать, так как 35>15.
фрового вещания (Digital Audio Broadcasting DAB) при непосред- В дальнейшем на каждый нену-
ственном участии профессора Дитера Сейтзера из Университе- левой уровень выделяется некоторое
та Эрлангена (Германия) был разработан известный стандарт число битов, достаточное для его
ISO-MPEG Audio layer 3, который обычно и называют MP 3. примерного представления. Так, в той
части спектра, где человеческое ухо
имеет наименьший порог слышимо-
сти, информация кодируется шест-
• При помощи специальных алго- надцатью битами, а на краях, там, где
ритмов (ими могут быть быстрое пре- ухо менее чувствительно к искаже-
образование Фурье или аналогичные) ниям, шестью и менее битами. К по-
сигнал разделяется на 32 равные по- лученному потоку битов можно, на-
лосы спектра, при этом в одну полу- пример, применить алгоритм сжатия
чившуюся полосу могут попасть сра- Хаффмана.
зу несколько критических полос.
• Используя так называемую пси-
Жан Батист Жозеф хоакустическую модель (в которую,
Фурье.
как правило, и входит частотное мас-
кирование), определяют уровень мас-
кирования полосы соседними.
• Уровень в полосе, не превыша-
ющий вычисленный порог, считает-
ся равным нулю и не сохраняется. На-
оборот, немаскированный уровень
записывается в выходные данные.
Так, например:

Полоса № … 7 8 9 …
Уровень (dB) … 10 60 35 …

Уровень 8-й полосы равен 60 dB. На ос-


новании психоакустической модели
делается вывод, что этот уровень мо-
жет замаскировать сигнал 7-й полосы
уровня 12 dB и 9-й полосы уровня
15 dB. Если посмотреть в таблицу, то

58
Кодирование информации

Различают три версии алгоритма, пользует и временное маскирование.


описанного MPEG-сжатием звука. Упаковывает с соотношением от 1 : 6
В каждой версии данные разделяют- до 1 : 8.
ся на кадры, т. е. отдельный кадр со- MPEG layer 3, он же MP 3, исполь-
стоит из 32 полос по 12 значений зует частотный фильтр с разной ве-
в каждой: 32 . 12 = 384. личиной полос; психоакустическая
В MPEG layer1 (дословно «слой 1») модель включает временное маски-
в частотном фильтре используются рование стереосигнала. Имеет малые
один кадр и алгоритмы, основанные потери качества при высоком уровне
на дискретном косинусе — преобра- компрессии: от 1 : 10 до 1 : 12.
зовании (DCT). Психоакустическая MP 3 оказался одним из самых
модель задействует только частотное удачных стандартов сжатия звука, что
маскирование. Алгоритм позволяет позволило ему не только потеснить
упаковывать при соотношении 1 : 4 с рынка аудиопродукции мини-дис-
с потоком 384 кбит/с. ки (MD) фирмы Sony, но и стать
MPEG layer 2 использует три кадра основным форматом записи для
в частотном фильтре (предыдущий, плееров, у которых вообще нет дви-
текущий и последующий) общим объ- жущихся частей. В формате MP 3 на
ёмом 32 полосы по 12 значений в трёх один CD можно записать от 6 до 12 ч
кадрах: 32 . 12 . 3 = 1152. Модель ис- музыки.

59
НАУКА ИНФОРМАТИКА
ИНФОРМАТИКА

В 1834 г. великий французский физик В 1948 г. он выпустил в свет книгу


Андре Мари Ампер (1775—1836) пред- «Кибернетика, или Управление и связь
ложил свою классификацию наук. в животном и машине», в которой
Для обозначения науки об управлении обобщил свои наблюдения, сформу-
обществом он использовал термин лировал общие принципы построе-
кибернетика (греч. «кибернетике» — ния и работы управляющих систем,
«искусство управлять»). показал ключевую роль информации
Спустя 100 лет выдающийся аме- в них. Так началась вторая жизнь при-
риканский учёный Норберт Винер думанного Ампером слова, ставшего
(1894—1964), изучавший различные названием новой науки.
технические и биологические систе- Под связью кибернетика понима-
мы, обратил внимание, что работу лю- ет процессы восприятия, хранения и
бой системы управления можно пред- передачи информации. Управление —
ставить в виде единой схемы: это процесс воздействия управляю-
щей системы на объект управления,
обеспечивающий его работу по дости-
жению поставленной цели. Оно осу-
ществляется с помощью управляющих
сигналов, вырабатываемых управляю-
щей системой. Эти сигналы содержат
информацию о требуемом поведении
объекта управления. Она создаётся
на основе анализа входных данных
(информации о состоянии внешней
среды) и сигналов обратной связи
(несущих информацию о состоянии

60
Наука информатика

объекта управления). Переработку но даже объекты, которые нельзя


информации, поступившей по кана- описать с помощью уравнений или
лам обратной связи, называют конт- формул. Это ставит кибернетику
ролем. (как и математику) в особое поло-
Ощущая неполноту своего опре- жение, ведь такой метод применим
деления и словно идя вслед за Ампе- в самых разных науках. Соответст-
ром, Винер в 1954 г. издал книгу «Ки- вующие области знаний получили
бернетика и общество», в которой свои названия:
распространил сферу влияния но- • Техническая кибернетика, ис-
вой науки на социальные системы. пользуя результаты и выводы теоре-
Огромный вклад в пропаганду ки- тической кибернетики, разрабатывает
бернетики внёс английский учёный и исследует всевозможные техниче-
Уильям Росc Эшби (1903—1972), си- ские управляющие системы — от Андре Мари Ампер.
стематизировавший идеи Винера простых систем автоматического
в книге «Введение в кибернетику» регулирования до сложнейших авто-
(1956 г.). матизированных систем управления,
Кибернетика изучает способность построенных на основе суперкомпь-
машин и живых организмов воспри- ютеров.
нимать определённую информацию, • В биологической кибернетике
сохранять её в памяти, передавать выделяют несколько разделов: меди-
по каналам связи и перерабатывать цинская, психологическая, физиоло-
в управляющие сигналы. Задача ки- гическая кибернетика, бионика, ней-
бернетики — выделение и изучение рокибернетика. Все они занимаются
общих свойств процесса управления моделированием биологических си-
и систем управления. стем и математической обработкой
Кибернетика — это самостоятель- результатов их исследования.
ная наука со своим предметом иссле- • Экономическая кибернетика
дования (управляющие системы). Как изучает процессы управления эконо-
и в других науках, в ней можно выде- микой, моделирует экономические
лить важнейший раздел — теорети- системы.
ческую кибернетику. Она разрабаты- • Военная кибернетика рассмат-
вает аппарат и методы исследования, ривает общие вопросы управления
пригодные для изучения систем управ- войсками и методы повышения эф-
ления различной природы. Теоре- фективности применения боевой
тическая кибернетика объединила техники.
несколько существовавших ранее раз- • Социальная кибернетика иссле-
делов математики: математическую дует модели процессов, протекающих
логику, теорию алгоритмов, теорию в человеческом обществе.
информации, теорию кодирования. Информация (от лат. informatio —
Некоторые новые научные направле- «разъяснение», «изложение»), как и
ния зародились уже в рамках самой управление, — центральное понятие
кибернетики, среди них — теория ав- кибернетики, наряду с материей и
томатов, теория формальных языков,
теория формальных грамматик, не-
чёткая математика.
Таким образом, кибернетика
в значительной степени строится на
математической основе. Но она име-
ет и собственный особый метод ис-
следования. Это компьютерное мо-
делирование, позволяющее изучать
не объекты, а их описания (модели).
Моделирование здесь играет ту же
роль, что и эксперимент в физике,
химии, других естественных и тех-
Книга У. Р. Эшби
нических науках. Крайне важно, что «Введение в киберне-
моделировать на компьютере мож- тику.

61
Информация и информатика

энергией является одной из фундамен-


тальных основ мироздания. Хотя по-
ИНФОРМАТИКА В СССР явление ЭВМ (устройств для накопле-
ния и переработки информации) и
Гонения на кибернетику в послевоенные годы в СССР привели к то- было одним из толчков к возникнове-
му, что наша страна по производству вычислительной техники ока- нию кибернетики, быстро выяснилось,
залась далеко позади развитых капиталистических стран. что эта наука не даёт ответа на многие
Все фундаментальные исследования, результаты которых в той теоретические и практические вопро-
или иной степени могли использоваться в военной области, авто- сы, непосредственно связанные с раз-
матически получали гриф «секретно». Это произошло и с книгой витием вычислительной техники. По-
американского математика Норберта Винера «Кибернетика, или Уп- этому уже в 40—50-х гг. XX в. начала
равление и связь в животном и машине» (1948 г.): сразу же после формироваться новая наука, получив-
того как она попала в СССР, её засекретили. шая в англоязычных странах название
Идеи, высказанные автором, противоречили официальной доктри- «Computer Science» (компьютерная
не советского общества. Параллели, проведённые Винером между жи- наука). Во Франции её назвали «Infor-
вым миром (человек и животные) и миром машин (моделирование в со- matique», объединив слова «Informa-
циальной сфере и экономике), являлись крамольными для граждан tion» и «Automatique».
Советского Союза, которым внушалась мысль о несводимости «высших Судьба новой науки в СССР снача-
форм» к «низшим формам». Именно за это книга и попала в спецхран. ла складывалась весьма непросто. Ведь
Сейчас трудно представить, сколько молодых и выдающихся лю- в первые годы своего развития кибер-
дей могли бы стать настоящими учёными и принести пользу родной нетика в значительной степени была
стране, если бы не те, кто, боясь за свою карьеру и тёплое местечко, наукой социальной, философской.
развернул их травлю. Звания и должности получали не за талант или Например, в Кратком философском
научные достижения, а за принадлежность к коммунистической пар- словаре (1954 г.) говорилось: «Кибер-
тии и за рабоче-крестьянское происхождение. нетика — это реакционная лженаука,
Не случайно в философских словарях 50-х гг. кибернетика опре- возникшая в США после Второй ми-
делялась как реакционная лженаука, возникшая в США после Второй ровой войны... является... не только
мировой войны и получившая широкое распространение и в других ка- идеологическим оружием империа-
питалистических странах. В журнале «Вопросы философии» в 1953 г. листической реакции, но и средством
появилась «заказная» статья под названием «Кому служит кибернети- осуществления её агрессивных воен-
ка». В ней одобрялись развитие и производство быстродействующих ных планов». Тем не менее скоро
«арифмометров». Но наряду с этим отмечалось, что использование ма- отношение к кибернетике стало ме-
шин для моделирования и символьной обработки шло вразрез с марк- няться в лучшую сторону. Происхо-
систско-ленинским учением: «Теория кибернетики, пытающаяся рас- дило это не само по себе — огромную
пространить принципы действия вычислительных машин новейшей роль в пропаганде кибернетики и в её
конструкции на самые разные природные и общественные явления без развитии сыграли многие выдающи-
учёта их качественного своеобразия, является механицизмом, превра- еся советские учёные: А. А. Ляпунов
щающимся в идеализм. Это пустоцвет на древе познания, возникший (1911—1973), А. И. Берг (1893—1979),
в результате одностороннего и чрезмерного раздувания одной из черт И. А. Полетаев (1915—1983) и др.
познания». Автор статьи подписался В нашей стране кибернетику ста-
псевдонимом — Материалист. Вдруг ли трактовать весьма широко, вклю-
установка ЦК изменится и будет дан чая в неё и все вопросы, связанные
зелёный свет развитию кибернетики? с созданием и использованием ЭВМ.
Именно поэтому в статье развитие Но постепенно происходило обособ-
компьютеростроения поддержано так ление этих задач. В результате кибер-
аккуратно. К сожалению, подобное нетика как бы передала информати-
поведение являлось нормой. ке задачи, связанные с понятием
Однако в учёной среде всегда информации, а за собой оставила ре-
находились и те, кто во имя идеи, шение проблем управления.
гражданской позиции и науки готов Между тем в различных отраслях
был идти до конца. Сейчас нет смыс- кибернетики широко используются
ла перечислять всех, кто боролся за практические достижения информа-
становление кибернетики. Отметим тики, такие, как программные систе-
только, что статью С. Л. Соболева, мы, высокопроизводительные компь-
А. И. Китова и А. А. Ляпунова «Ос- ютеры, сетевые технологии.
А. И. Китов. новные черты кибернетики», в кото- Теоретическую основу информа-
тики составляет математика, и в пер-

62
Наука информатика

вую очередь дискретная математи-


ка. Её содержание в значительной ме- рой они выступили в защиту науки, напечатали в тех же «Вопросах
ре пересекается с содержанием тео- философии» в 1955 г. Это доказывает, что кибернетика не противо-
ретической кибернетики. Важную речила линии партии, а просто-напросто подрывала позиции функ-
роль также играют вычислительная ционеров из научной среды.
математика, ориентированная на со- Отечественные учёные (в первую очередь военные) сумели
здание методов решения задач с доказать, хотя и с запозданием, важность развития кибернетики
помощью компьютеров, и системный (информатики) и компьютеростроения.
анализ. Информатика взяла из ки- Советские ЭВМ, которые иногда выпускались всего лишь чуть поз-
бернетики и экспериментальный ме- же западных аналогов, по многим параметрам не уступали им. БЭСМ,
тод компьютерного моделирования, «Сетунь» и другие вычислительные машины недаром оставили замет-
заключающийся в формировании ги- ный след в науке и технике. Информатика в нашей стране стала так же
потезы, создании модели, проведе- сильна, как и отечественная математическая школа. Однако в произ-
нии экспериментов, сборе данных водстве вычислительной техники, особенно в массовом промышлен-
и анализе результатов. ном компьютеростроении, СССР от Запада сильно отставал.
Кроме изучения процессов мани- До тех пор пока вычислительную технику разрабатывали в НИИ
пулирования данными информати- и КБ, принималась масса интересных, неординарных научных реше-
ка занимается их реализацией и при- ний. Но при воплощении их в жизнь или появлялись производствен-
менением в различных сферах ные трудности (особенно в области качества), или сталкивались ведом-
деятельности человека. Её важнейшей ственные интересы. Ряд министерств осуществлял разработку и выпуск
задачей является автоматизация вычислительной техники часто почти идентичной по параметрам и по-
(т. е. исключение участия человека) казателям. Здесь, как и при капитализме, действовали жёсткие зако-
всех этих процессов. Поэтому инже- ны конкуренции. Результатом борьбы стали выпуск устаревшей техни-
нерную часть информатики состав- ки или, что ещё хуже, слепое подражание Западу. Копирование
ляет создание устройств и систем, зарубежной вычислительной техники приняло промышленные масшта-
предназначенных для решения воз- бы. Конечно, совсем неплохо изучать опыт конкурирующих держав.
никающих при этом проблем (кон- Однако идти у них на поводу, повторяя не только достижения,
струирование). Говоря об устройст- но и ошибки, — это, несомненно, проигрышная стратегия.
вах и системах, надо иметь в виду их Конец 80-х гг. показал, что персональные компьютеры нужно
аппаратную составляющую и про- выпускать не десятками, а тысячами, десятками и сотнями тысяч
граммное обеспечение. штук в год. Отечественная компьютерная промышленность была
Характерная особенность инфор- к этому не готова. Хочется верить, что уроки минувшего века не
матики — очень тесное взаимодейст- прошли для россиян даром. Но, к сожалению, научный мир слабо
вие её теоретических и инженерных подвержен переменам, и то, что произошло с кибернетикой, в нём
аспектов. Этим она отличается от дру- может повториться вновь.
гих наук. Например, в химии чётко
выражена граница между теорией
и химическим машиностроением. В ин-
форматике средства, обеспечивающие
эксперимент (компьютеры, компиля-
торы, прикладные программы), одно-
временно являются и целью разработ-
ки, объектом приложения теории.
Ещё одна отличительная черта ин-
форматики — фундаментальный ха-
рактер понятия эффективности. Она
обязательно должна быть обеспече-
на на всех стадиях информационных
процессов.
Как это было раньше с киберне-
тикой, иногда информатику делят,
в зависимости от сферы её исполь-
зования, на экономическую, право-
вую, медицинскую и т. д. При этом
очень часто такое разъединение не
подчёркивает специфики конкрет- Статья в журнале «Вопросы философии». 1953 г.
ной области применения, и речь идёт

63
Информация и информатика

операционные системы; технология


программирования; взаимодействие
ДОКУМЕНТАЛИСТИКА человека и компьютера.
Технология программирования,
Во многих учебниках можно прочитать, что слово «информатика» в в частности, разрабатывает и изучает
середине 70-х гг. XX в. было заимствовано из французского языка. методы создания больших программ-
Однако это не совсем так. ных систем, проверки их соответст-
К тому времени научная дисциплина именно с таким названием су- вия заданным требованиям и обеспе-
ществовала и успешно развивалась уже более четверти века! Она ис- чения надёжности работы. Сами
следовала структуру и общие свойства научной информации — дан- методы при этом постоянно развива-
ных, отображающих объективные закономерности природы, общества ются, совершенствуются, но цель дан-
и мышления. Кроме того, изучала процессы обмена научной информа- ной отрасли информатики остаётся
цией — от устного общения на конференции до публикации в виде ста- прежней. То же можно сказать и о дру-
тьи или монографии. В практическом плане информатика вырабаты- гих перечисленных разделах.
вала способы сбора, хранения, поиска, распространения научной Остальные отрасли информатики
информации. Её непосредственной предшественницей была наука о сбо- более подвержены изменениям. Ещё
ре, обработке, хранении, поиске и распространении документов — до- в начале 90-х гг. XX в. в ней выделяли
кументалистика, созданная 100 лет назад бельгийским учёным Полем следующие предметные области: ба-
Отле. зы данных, поиск и восстановление
Нетрудно заметить связь информатики с делопроизводством, биб- информации; искусственный интел-
лиотечным и архивным делом, книговедением и т. д. Информатика лект и робототехника.
(Information Science) возникла на их основе в 40—50-х гг., но особенно Их важность в информатике не
бурно стала развиваться после появления компьютеров. подлежит сомнению и сегодня, но за
Так что пришедшее к нам из Франции слово вовсе не было новым прошедшее время содержание этих
для русского языка, просто его более широкое значение вытеснило областей так сильно изменилось, что
старое. названия целесообразно сформули-
ровать по-иному: управление инфор-
мацией; интеллектуальные системы.
просто об использовании компью- Появились новые важные области:
теров, баз данных, пакетов приклад- сетевые технологии и вычисления;
В целом информати- ных программ (это не относится компьютерная графика и визуализа-
ку понимают сегодня к бурно развивающимся биоинфор- ция.
как науку, которая за- матике и нейроинформатике, в ко- Человечество вступает в следу-
нимается системати- торых получено много важных ре- ющий этап своего развития — инфор-
ческим изучением зультатов). мационное общество. Внедрение ком-
процессов создания, Интереснее рассмотреть внутрен- пьютерных технологий на глазах
описания, хранения, нюю структуру информатики. Сфера меняет нашу среду обитания и харак-
обработки и переда- явлений, охватываемых информати- тер социальных отношений. Поэто-
чи данных. кой, неоднородна и весьма сложна. му особое значение приобретают
Кроме того, информатика очень ди- выделяемые в отдельную область
намично развивающаяся наука, и хо- социальные и профессиональные
тя она достаточно молода, за время проблемы информатики. К их числу
её существования те или иные разде- относятся ответственность за послед-
лы уже неоднократно появлялись ствия принимаемых решений, спосо-
и исчезали.
Несмотря на то что в разные пе-
риоды развития информатики её
структура была различной, можно вы-
делить несколько устойчивых облас-
тей. Каждая из них имеет свою чётко
обозначенную сферу действия, свои
сформировавшиеся подходы к реше-
нию задач и методы исследования.
К ним относятся такие разделы, как
алгоритмы и структуры данных; ар-
Модель космического хитектура и организация компью-
корабля «Шаттл». теров; языки программирования;

64
Наука информатика

бы обеспечения неприкосновенно- Подводя итог, можно сказать, что


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

ДЖОН ФОН НЕЙМАН

Блестящий математик и физик Джон параллельно он изучает математику


Льюис фон Нейман родился 28 декаб- в Будапеште. В 1926 г. Фон Нейман по-
ря 1903 г. в Будапеште. При рождении лучает диплом химика и степень док-
родители дали ему имя Янош, в годы тора математики. Некоторое время он
учёбы и работы в Швейцарии и Герма- преподаёт в Германии, а в 1930 г. его
нии он называл себя Иоганном, а пос- приглашают в Принстонский универ-
ле переезда в США — Джоном. Джон ситет (США). Когда в 1933 г. в Принсто-
фон Нейман был старшим ребёнком не открылся Институт перспективных
в семье состоятельного венгерского исследований, Джон фон Нейман стал
банкира. Свои необычайные способ- его сотрудником и окончательно обос-
ности мальчик проявил очень рано — новался в США. Джон был очень
в 6 лет он владел несколькими иност- общительным человеком: обладая Джон фон Нейман.
ранными языками (свободно говорил большими знаниями и будучи блестя-
на древнегреческом и часто шутил на щим рассказчиком, он в любом обще-
нём с отцом) и мог разделить два вось- стве становился душой компании.
мизначных числа в уме, в 8 — освоил Джон фон Нейман внёс большой
основы высшей математики. В 12 лет вклад в создание и развитие целого ря-
легко запоминал несколько страниц да областей математики и физики. Он
текста. проводил фундаментальные исследо-
Начальное образование он получил вания, связанные с математической
в Будапеште. Когда ему исполнилось логикой, теорией групп, алгеброй опе-
17 лет, отец решил, что сыну нужно за- раторов, квантовой механикой, стати-
ниматься чем-то более выгодным, чем стической физикой.
математика, и уговорил его изучать хи- В 1944 г. фон Нейман и эконо-
мию. Для этого Джон отправился сна- мист Оскар Моргенштерн написали
чала в Германию, а затем в Швейцарию, книгу «Теория игр и экономическое

65
Информация и информатика

мер были предложены принципы па-


раллельного доступа к памяти. Архи-
Джон фон Нейман пользовался заслуженной любовью и уваже-
тектура первых двух поколений ЭВМ
нием коллег. При доказательстве теорем он исписывал всю дос-
с последовательным выполнением ко-
ку формулами и потом настолько быстро их стирал, что коллеги
манд в программе получила название
в шутку называли его манеру «доказательством методом стира-
«фон-неймановская архитектура
ния».
ЭВМ».
Одна из ЭВМ, в проектировании
и разработке которой фон Нейман
поведение», в которой развили не принимал участие в 1954 г., сыграла ос-
только математическую теорию игр, новную роль в обработке информации
но и её применение к экономическим, при создании водородной бомбы.
военным и другим наукам. Также Джон Джон фон Нейман, славившийся сво-
фон Нейман является одним из со- им остроумием, в шутку называл эту
здателей метода Монте-Карло — машину «Маньяк» (MANIAС —
численного метода решения мате- Mathematical Analyzer Numerical
матических задач, основанного на Integrator and Computer).
моделировании случайных величин. Крупнейшим научным достижени-
А кроме того, Нейман участвовал в ем фон Неймана в послевоенный пе-
секретном проекте по созданию риод стало построение теории
атомной бомбы. автоматов. В 1952 г. в работе «Вероят-
Во время Второй мировой войны ностная логика и синтез надёжных
американским учёным пришлось вы- организмов из ненадёжных элемен-
полнять военные заказы. Джон фон тов» он показал путь создания надёж-
Нейман был направлен в группу раз- ных ЭВМ и других автоматов. (По
работчиков ЭНИАКа (электронно-вы- теории фон Неймана надёжность си-
числительная машина) консультан- стемы, построенной из ненадёжных
том по математическим вопросам. элементов, может быть повышена за
Внимательно изучив конструкцию, он счёт увеличения числа элементов и со-
пришёл к идее нового типа логиче- единений между ними.)
ской организации ЭВМ: В 1954 г. Джон фон Нейман был на-
• устройства ввода/вывода инфор- значен членом Комиссии по атомной
мации; энергии США, и весной 1955 г. он пе-
• память компьютера; реезжает из Принстона в Вашингтон.
• процессор, состоящий из устрой- Вскоре врачи обнаружили у него фор-
ства управления (УУ) и арифметико- му костного рака. Учёный страдал от
логического устройства (АЛУ). невыносимых болей. До последних
В 1946 г. вместе с Германом Гольд- минут жизни служба безопасности во-
стейном и Артуром Берксом он на- енного ведомства, где он работал над
писал и выпустил отчёт «Предвари- секретными проектами, зорко следи-
тельное обсуждение логической ла, чтобы, находясь в бреду, фон Ней-
конструкции электронной вычис- ман не выдал какую-нибудь государ-
лительной машины», где высказано ственную тайну. Умер Джон фон
множество интересных идей, напри- Нейман 8 февраля 1957 г. в Вашинг-
тоне.
Последняя книга, над которой ра-
ботал фон Нейман, — «Вычислитель-
ная машина и мозг» — так и не была
закончена.
Архитектурные принципы органи-
зации ЭВМ, указанные Джоном фон
Нейманом, долгое время оставались
почти неизменными, и лишь в конце
70-х гг. XX в. в архитектуре суперком-
пьютеров и матричных процессоров
появились отклонения от этих прин-
ципов.

66
Наука информатика

НОРБЕРТ ВИНЕР

Имя этого человека, живо интересо- ходил стажировку в Кембриджском


вавшегося проблемами естествозна- и Гёттингенском университетах. Он
ния, стало известно всему миру после был знаком с Бертраном Расселом,
выхода в 1948 г. его книги «Киберне- Годфри Харди, Эдмундом Ландау, Да-
тика». Норберт Винер — выдающийся видом Гильбертом и другими извест-
американский математик, внёсший за- ными математиками.
метный вклад в теорию связи, участво- После Первой мировой войны Ви-
вавший в создании первых вычисли- нер добился выдающихся результа-
тельных машин. тов в математике. В 20-х гг. XX в. он
Ничто не предвещало такого сен- определил так называемый винеров-
сационного успеха книги. В 1946 г., ский процесс, характеризующий бро-
находясь в Париже на конференции уновское движение (см. статью «От
по математике, Винер встретился с из- атомов к молекулам» в томе «Физи-
дателем, который предложил ему на- ка» «Энциклопедии для детей»),
писать книгу об обратной связи меж- и опубликовал ряд замечательных ра-
ду автоматами (машинами) и нервной бот по гармоническому анализу, по- Норберт Винер.
системой человека. служивших одной из отправных то-
Начав трудиться над книгой, Ви- чек для работ Гельфанда по теории
нер долго размышлял над её загла- банаховых алгебр — крупного собы-
вием. Он хотел найти слово, как-то тия в математике 30-х гг. С 1932 г. Ви-
объединявшее идеи управления, ин- нер — профессор Массачусетсского
формации и связи... Свой выбор он ос- технологического института.
тановил на греческом слове «кибер- Во время Второй мировой войны
нетика». (Первым употребил это слово Норберт Винер занимался прикладны-
древнегреческий мыслитель Платон; ми проблемами, связанными, в част-
Ампер в XIX в. предложил называть ности, с нуждами авиации и зенитной
так науку об управлении человеческим артиллерии. Он дополнил теорию эк-
обществом.) страполяции и фильтрации случайных
«Кибернетика» вышла из печати процессов, созданную перед войной
с большими погрешностями (в том чис- А. Н. Колмогоровым, в цикле работ, из-
ле и потому, что Винер не имел возмож- данных для служебного пользования
ности сделать корректуру), и издатель (ввиду их засекреченности). Винер
невысоко оценивал коммерческое бу- применил математический аппарат,
дущее книги. Но она стала истинным
бестселлером, одной из самых популяр-
ных книг XX столетия. Слово «киберне-
тика» приобрело необычайную попу-
лярность, а идеи Винера совершили
прорыв в сознании человечества.
Норберт Винер родился 26 нояб-
ря 1894 г. в городке Колумбия (штат
Миссури, США). Его отец был поли-
глотом, славистом, знатоком литера-
туры, переводчиком. С раннего детст-
ва мальчик изучал древние языки,
естественные науки, много читал. Он
был вундеркиндом: среднюю школу
окончил в 11 лет, высшее учебное за-
ведение — в 14 (тогда же получил зва-
ние бакалавра наук), в 17 лет стал ма-
гистром искусств, а в 18 — доктором
философии в области математиче-
Фотография
ской логики. Получив стипендию Гар- 1-го издания книги
вардского университета, Винер про- «Кибернетика».

67
Информация и информатика

вились постоянные контакты между


этими выдающимися научными дея-
телями XX столения.
В военные годы Винер организо-
вал в Принстоне семинар, в котором
помимо математиков принимали уча-
стие нейрофизиологи, специалисты
по теории связи и вычислительной
технике. Этот семинар фактически
стал началом научного направления,
впоследствии получившего имя «ки-
бернетика».
В СССР идеи кибернетики были
восприняты резко отрицательно
(см. статью «Информатика»).
Но уже в 1958 г. на русском языке
вышли обе книги Норберта Винера:
«Кибернетика, или Управление и связь
в животном и машине» и «Кибернети-
ка и общество». В том же году вышел
51-й, дополнительный том Большой
советской энциклопедии со статьёй
А. Н. Колмогорова «Кибернетика», где
отмечалось, что это «новое научное
направление, задачи которого были
сформулированы в работах американ-
Винер читает лекцию. ского учёного Н. Винера, опублико-
ванных в 1948 г.». Имя Винера стало
не входивший в традиционное инже- неслыханно популярным. В послед-
нерное образование. Поэтому книга, ние годы жизни он много путешест-
изданная в жёлтой обложке, получила вовал, пропагандируя свои идеи. По-
среди инженеров, которым была адре- бывал и в Москве, где встретился
сована, название «жёлтая опасность». с математиками, биохимиками и пси-
Американский математик Клод Шен- хологами, сделал доклад в Политех-
нон «перевёл» её на более простой ин- ническом музее. Винер умер 19 мар-
женерный язык, и с той поры устано- та 1964 г.

АНДРЕЙ НИКОЛАЕВИЧ КОЛМОГОРОВ

Андpей Николаевич Колмогоpов ле «Весенние ласточки», где публи-


(1903—1987) был одним из кpупней- ковал пpидуманные задачи и свои ма-
ших математиков XX столетия и одним тематические «откpытия» (в частно-
из величайших pоссийских учёных. сти, что сумма пеpвых n нечётных
А. Н. Колмогоров родился 25 ап- чисел pавна n2).
реля в Тамбове. Мать умеpла чеpез не- С 1910 г. Андрей жил в Москве.
сколько часов после pождения сына, Он учился в одной из лучших частных
и ребёнка воспитывала её сестpа — московских гимназий. Круг его юноше-
Вера Яковлевна Колмогорова. Его дет- ских интересов был необычайно ши-
ство пpошло под Ярославлем, в име- рок. Он всерьёз увлекался биологией,
нии деда. физикой, математикой. В возpасте
Интеpес к математике обнаpужил- 14 лет юноша самостоятельно изучил
ся у мальчика очень pано. В возpасте диффеpенциальное и интегpальное
четыpёх-пяти лет он вёл математиче- исчисления по энциклопедическому
ский отдел в семейном детском жуpна- словаpю Бpокгауза и Ефpона.

68
Наука информатика

В 1920 г. Колмогоpов поступил в Мо-


сковский унивеpситет и стал учеником
легендарного математика Н. Н. Лузина,
объединившего под своим крылом луч-
ших представителей московской мате-
матической школы. Тогда же формиру-
ется круг его гуманитарных интересов:
он посещает семинар знаменитого рус-
ского историка профессора Москов-
ского университета С. В. Бахрушина
и делает первый научный доклад о сво-
ей работе, посвящённой новгородско-
му землевладению.
Ещё будучи студентом, в 1922 г.,
в возрасте 19 лет, Колмогоров полу-
чает выдающийся результат в теории
тригонометрических рядов, и его имя
становится известным всему матема-
тическому миру. Тогда же он получа-
ет и фундаментальные результаты
в математической логике.
Начиная с 1924 г. на пpотяжении
последующих 40 лет А. Н. Колмо-
гоpов занимается исследованиями
в области теоpии веpоятностей. Он
завоевал положение безусловного ли-
деpа в этой науке. Его книга «Основ- А. Н. Колмогоров.
ные понятия теоpии веpоятностей»
вошла в золотой фонд наpяду с клас- нер, создатель кибернетики, рассмат-
сическими мемуаpами Якоба Беpнул- ривал их как одно из высших своих
ли и Пьера Симона Лапласа. В этой творческих достижений).
книге, в частности, была постpоена В 1939 г., в возрасте 36 лет,
общепpинятая аксиоматика теоpии А. Н. Колмогоров избирается действи-
веpоятностей. тельным членом Академии наук.
В 1929 г. Колмогоров оканчивает В 40-х гг. XX в. Андрей Николаевич
аспиpантуpу и с этого вpемени до кон- обpащается к новой науке — локаль-
ца своей жизни pаботает на механи- ной теоpии туpбулентности и совер-
ко-математическом факультете Мос- шает в ней подлинный переворот.
ковского университета. Сейчас невозможно даже обозpеть
Тридцатые годы — период необы- pазмеpы научного направления, вы-
чайного взлёта его творческих дости- pосшего из тpёх его кратких заметок.
жений. Он создаёт теоpию маpковских Во вpемя Великой Отечественной
случайных пpоцессов, завеpшая уси- войны по заданию военных ведомств
лия Альберта Эйнштейна, Макса (Кар- он создаёт статистическую теоpию
ла Эрнста Людвига) Планка, Мариана стpельбы, а в пеpвые послевоенные
Смолуховского и Норберта Винеpа; по- годы pазpабатывает основы теоpии
лучает основополагающий результат статистического контpоля пpодукции.
по математической статистике; закла- Расцвет его твоpчества — 50-е го-
дывает основы нескольких математи- ды. Колмогоровым были получены
ческих дисциплин (топологической выдающиеся pезультаты в небесной
алгебры, геометрии, теории топологи- механике, которые сравнивают с
ческих векторных пространств); вво- достижениями Лапласа и Пуанкаре,
дит одно из важнейших понятий то- и pешена вместе с В. И. Аpнольдом
пологии (понятие верхних гомологий); 13-я пpоблема Гильбеpта.
стpоит теоpию экстраполяции случай- А. Н. Колмогоров принадлежал к тем
ных процессов (пришедший чуть поз- учёным, которые стояли у истоков раз-
же к тем же результатам Норберт Ви- вития информатики и кибернетики

69
Информация и информатика

в нашей стране и своим творчеством вич назвал себя «отчаянным киберне-


и авторитетом способствовали их ста- тиком». В частности, на вопросы: «мо-
новлению. гут ли машины воспроизводить себе
В начале 50-х гг. Колмогоров подобных и может ли в процессе са-
обдумывает и развивает основное мовоспроизведения происходить про-
понятие информатики — понятие грессивная эволюция; могут ли маши-
алгоритма и даёт чёткое, ставшее об- ны испытывать эмоции: радоваться,
щепринятым определение этого по- грустить, быть недовольными чем-ни-
нятия. В начале 60-х гг. он размышля- будь, чего-нибудь хотеть; могут ли, на-
ет над общей концепцией автомата, конец, машины ставить перед собой
развивая идеи растущих и самокон- задачи, не поставленные перед ними
струирующихся автоматов. конструкторами?», он давал положи-
Он был одним из первых россий- тельные ответы.
ских учёных, осознавших значение для В последний период своей твор-
математической науки трудов создате- ческой деятельности Колмогоров на-
ля теории информации Клода Шенно- чал развивать грандиозный замысел
А. Н. Колмогоров. на. Основное понятие этой теории — создания алгоритмических основ
понятие энтропии — Колмогоров теории информации и теории веро-
обобщил и применил в весьма отдалён- ятностей. Ему принадлежит зна-
ных областях математики: функцио- менитое понятие колмогоровской
Сложностью сооб- нальном анализе, теории динамиче- сложности.
щения, по Колмого- ских систем и теории аппроксимации, Колмогоpов создал большую науч-
рову, называется ми- что привело к созданию целых новых ную школу, многие его ученики ста-
нимальная плата по научных направлений. Но и самому ли выдающимися учёными, получили
всевозможным мето- шенноновскому понятию энтропии междунаpодное пpизнание, 12 из них
дам шифровки сооб- Колмогоров придал расширенный ма- были избpаны действительными чле-
щения. Это одно из тематический смысл, соединив с поня- нами и членами-коppеспондентами
наиболее известных тием информации. Академии наук.
определений внут- Колмогоров много размышлял над Последнюю четвеpть XX в. Колмо-
реннего количества философскими аспектами кибернети- гоpов посвятил пpоблемам школьно-
информации в сооб- ки, над понятиями «жизнь», «мышле- го математического обpазования.
щении. ние», «управление», над проблемами А. Н. Колмогоpов был в числе осно-
будущего развития человечества. В од- вателей и возглавлял многие матема-
ной из публикаций Андрей Николае- тические жуpналы, такие, как «Успе-
хи математических наук», «Теоpия
веpоятностей и её пpименение»,
«Квант» (журнал для юношества).
Характеризуя своего друга, акаде-
мик Павел Сергеевич Александров пи-
сал, что «трудно найти математика
в последних десятилетиях не только
такой широты, а с таким воздействи-
ем на математические вкусы и на раз-
витие математики».
Колмогоpов — яркий пpимеp уни-
веpсального учёного. Он был и вы-
дающимся логиком, и геометpом,
и аналитиком, и натуpфилософом,
и «математиком для математики»,
и человеком глубоких гуманитаpных
интеpесов.
А. Н. Колмогоpов всегда искал и
отстаивал истину. Он был исключи-
тельной, гениальной личностью.
Тpудно найти ещё пpимеpы учёных
Колмогоров читает такой поpазительной силы, шиpоты
лекцию. и глубины.

70
Наука информатика

АЛАН МАТИСОН ТЬЮРИНГ

Сегодня Алан Тьюринг представляется нам как


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

Эндрю Ходжс. «Алан Тьюринг: Загадка»

Алан Матисон Тьюринг появился чем, вскоре пришлось опасаться уже


на свет 23 июня 1912 г. в семье Джу- того, сможет ли он окончить эту школу.
лиуса Матисона Тьюринга и Этель Са- Об успеваемости Алана красноре-
ры Стоней. Он был вторым ребёнком. чиво свидетельствует классный жур-
Родители Алана Тьюринга познако- нал: последнее место в классе по анг- Алан Тьюринг.
мились и обвенчались в Индии. Это лийскому языку, предпоследнее — по
была небогатая английская аристо- латинскому, по остальным предме-
кратическая семья, жившая в соот- там чуть лучше. Вердикты учителей
ветствии со строгими традициями однообразны: «безнадёжное отстава-
империи. Среди их многочисленной ние», «безобразная успеваемость»...
родни был ирландский физик и мате- Директор школы писал: «Этот маль-
матик Джордж Джонстон Стоней, ко- чик из тех, кто обречён стать боль-
торый ввёл понятие об элементарном шой проблемой для любой школы
электрическом заряде и придумал тер- или сообщества...». Между тем в класс-
мин «электрон». ном журнале имеются и другие запи-
В детстве Алан и его старший брат си: «Если он хочет быть только науч-
Джон довольно редко видели родите- ным специалистом, он зря проводит
лей. Пока их отец служил в Индии, де- время в Public School... Наверное, он
ти оставались в Англии и жили на по- будет математиком. Такие ученики,
печении друзей семьи. Традиционным как он, рождаются один раз в 200 лет».
английским воспитанием изучение В 15 лет Алан самостоятельно осво-
основ естественных наук не предусма- ил теорию относительности, но обста-
тривалось. Но Алан обладал очень новка и стиль обучения в классической
пытливым умом и с разрешения вос-
питателей читал научно-популярные
книги (читать он научился самостоя-
тельно в возрасте шести лет). Тогда
кто-то из родных и подарил мальчи-
ку популярную книжку «Чудеса при-
роды, которые должен знать каждый
ребёнок» Эдвина Т. Брюстера. С это-
го всё и началось.
В 11 лет он ставил химические опы-
ты, пытаясь извлечь йод из водорос-
лей, что доставляло огромное беспо-
койство его матери. Она боялась, что
увлечения сына, идущие вразрез с об-
щепринятыми нормами, помешают
ему поступить в одну из Public Schools
(английское закрытое частное учеб-
ное заведение для мальчиков, учёба
в котором считалась обязательной для
детей аристократов). Но опасения ока- Библиотека
зались напрасны: в 1926 г. Алан был за- Королевского
колледжа
числен в престижную Шерборнскую Кембриджского
школу (Sherborn Public School). Впро- университета.

71
Информация и информатика

британской школе не располагали лемой Гильберта о разрешимости и на-


к развитию подобных интересов. Обя- чал работать над ней. В апреле 1936 г.,
зательные программные предметы ос- когда Алан уже завершил свою рабо-
тавляли подростка полностью равно- ту, появилась статья американского
душным, успевал он еле-еле и в итоге логика Алонзо Черча с тем же резуль-
оказался перед реальной перспекти- татом, но полученным совершенно
вой вообще не получить аттестата. иным методом. Ответы обоих иссле-
В 1928 г. Тьюринг нашёл долго- дователей были отрицательными, од-
жданную родственную душу — ново- нако Тьюринг пришёл к своему очень
го одноклассника, весьма одарённо- оригинально. Сначала Алан опреде-
го ученика по имени Кристофер лил метод в виде механического про-
Морком. Наконец-то Алан смог с кем- цесса работы воображаемой машины,
то поделиться своими размышления- считывающей символы-инструкции
ми. Юноши стали неразлучными дру- с бумажной ленты. Затем он доказал,
зьями. После окончания школы оба что его машине под силу выполнить
собирались поступать в Кембридж- любое вычисление, на которое спосо-
ский университет. Первая попытка бен человеческий ум в пределах фор-
сдать предварительные экзамены мальной логики. Несмотря на то что
в Кембридж закончилась для Алана не- Черча считают первым, кто решил зна-
удачей. Но он не слишком расстраи- менитую проблему, работа Алана Тью-
вался, потому что искренне радовал- ринга «О вычислимых числах, с при-
ся за Кристофера, который успешно ложением к проблеме разрешимости»
прошёл испытания и получил стипен- принесла ему славу первооткрывате-
дию. Алан надеялся поступить со вто- ля таких понятий, как «вычислитель-
рой попытки, чтобы учиться вместе ный алгоритм» и «универсальный ком-
с другом. пьютер».
Но 13 февраля 1930 г. Кристофер Тьюринг блестяще закончил че-
Алан Тьюринг в годы внезапно умер. Смерть лучшего друга тырёхлетний курс обучения. Каза-
учёбы. потрясла 17-летнего Тьюринга — он лось, его ждёт успешная карьера слег-
задумался над тем, как материализо- ка эксцентричного кембриджского
ван человеческий разум и высвобож- профессора, занимающегося чистой
дается ли он после смерти. Ответы на математикой. Но в сентябре 1936 г.
эти вопросы Алан искал в книге «При- Алан получил двухгодичную аспи-
рода физического мира» Артура Эд- рантскую стипендию от Принстон-
дингтона (1882—1944), а объяснение ского университета (США) и приехал
свободы человеческого выбора — к Джону фон Нейману. Там он рабо-
в квантовой механике. тал в области алгебры и теории чи-
В октябре 1931 г. Алан Тьюринг сел, доказав при этом соответствие
стал студентом Королевского коллед- между собственным определением
жа Кембриджского университета. вычислимости и определением Чер-
И сразу же стали заметны значитель- ча, а также продолжил развитие сво-
ные успехи: прекрасная успеваемость, их идей о логике вычислений, что
интенсивная научная работа, кемб- и стало темой его докторской диссер-
риджская степень бакалавра с отли- тации — самой сложной и глубокой
чием в 1934 г., степень магистра математической работы Тьюринга. Он
и аспирантская стипендия от Коро- сконструировал шифровальную ма-
левского колледжа в 1935 г., премия шину на электромагнитных реле
Смита за работу по теории вероятно- и принялся за изучение науки шифро-
стей в 1936 г. вания.
Размышления над природой че- В 1938 г., сразу после защиты дис-
ловеческого разума в 1932 г. привели сертации, Алану предложили про-
студента Тьюринга к изучению очень фессорскую должность в Принстон-
сложной работы Джона фон Неймана ском университете, но он вернулся
Тьюринг участвует о логических основах квантовой ме- в Англию, в Кембридж. В сентябре
в кроссе. 1946 г. ханики и далее к исследованиям в об- 1939 г. Тьюринг начал работать на
ласти формальной логики. В 1935 г. он Правительственную школу кодов
внезапно увлёкся знаменитой проб- и шифров.

72
Наука информатика

Началась Вторая мировая война.


Германия для кодировки радиосооб-
Давид Гильберт (1862—1943) ставил следующий вопрос: «Суще-
щений применяла шифровальную
ствует ли, хотя бы в принципе, определённый метод или про-
электромеханическую машину «Эниг-
цесс, посредством которого можно решить любую математиче-
ма» («Загадка»), раскрыть её шифр ни-
скую проблему?».
как не удавалось. Главным героем увле-
кательнейшей криптографической
битвы стал Алан Тьюринг. Англичане
«Энигме» противопоставили свою де-
шифрующую электромеханическую ния, раскрывать шифры и играть в
машину «Бомба», но она не справля- шахматы. Он мечтал о библиотеке
лась. Тьюрингу удалось значительно программ, о едином национальном
усовершенствовать машину, благода- компьютерном центре с сетью тер-
ря чему был взломан шифр — тот, что миналов.
использовали люфтваффе (Военно- В 1949 г. в университете Ман-
воздушные силы Германии), после честера, куда перешёл Тьюринг и где
этого англичане оказались в курсе он разрабатывал программы для
всех деталей операций, планируемых электронного компьютера, появился
воздушным флотом Геринга. Но 1 фев- компьютер Manchester Mark I, или,
раля 1942 г., вскоре после вступления как его ещё называли, MADAM (от
в войну США, германские субмарины Manchester Automatic Digital Machi-
перешли на усложнённый шифр («ры- ne). В результате развития проекта
бий язык»), и «Бомба» потерпела не- MADAM был введён в действие один
удачу. Алан принялся за создание но- из первых в мире полностью рабо-
вой машины «Колосс», в которой тоспособных компьютеров — Ferranti
вместо электромеханических реле ис- Mark I.
пользовались 2 тыс. электронных В 1950 г. Тьюринг написал фило-
ламп. «Колосс» легко победил «Эниг- софскую статью «Вычислительные ма-
му» и справился даже с «рыбьим шины и интеллект» (в 60-х гг. вышла
языком». на русском языке в виде отдельной
С ноября 1942 по март 1943 г. Тью- книги под названием «Может ли ма-
ринга командировали в США, где учё- шина мыслить?») — классику будущей
ный представлял британскую сторо- науки об искусственном интеллекте.
ну в обеспечении электронного В 1951 г. к нему пришло признание
шифрования переговоров между Руз- научных заслуг: учёного избрали чле-
вельтом и Черчиллем (позже по ини- ном Лондонского королевского учё-
циативе Черчилля математика награ- ного общества. Тьюринг начинает вы-
дили орденом Британской империи, числительные эксперименты по
но за какие заслуги, известно было нелинейному моделированию фор-
только узкому кругу посвящённых). мообразования у растений и раковин.
Не забывал Тьюринг и о теоретиче- Он исследует то, как живые организ-
ских разработках. Одна из его ранних мы растут и почему приобретают
идей — аналогии в работе вообража- свою форму. Ответы на вопросы, вол-
емой «машины Тьюринга» и челове- новавшие с детства, он обнаружил
ческого мозга — трансформировалась в нелинейности уравнений химиче-
в концепцию «умного компьютера» ских реакций и диффузии, моделируя
(искусственный интеллект), чей IQ их решения на компьютере. Его ис-
(коэффициент интеллекта) проверял- следования показали, что электрон-
ся с помощью специально разрабо- ный компьютер может использовать-
танной логической процедуры, сего- ся в научных целях.
дня называемой тестом Тьюринга. Хотя Алан Тьюринг — выходец из
В послевоенные годы Аланом аристократической семьи, он нико-
Тьюрингом завладела идея создания гда не был эстетом: кембриджские
универсального программируемого политические и литературные круж-
электронного компьютера, способ- ки были ему чужды. Он предпочитал
ного делать всё: считать и проводить заниматься любимой математикой, Шифровальная
сложные алгебраические вычисле- а в свободное время — проводить машина «Энигма».

73
Информация и информатика

Олимпийских игр. Тьюрингу же лишь


досадная травма помешала участво-
Во время своих химических занятий Алан Тьюринг играл в «Не-
вать в играх.
обитаемый остров» — игру, изобретённую им самим. Её цель за-
Жизнь этого разносторонне
ключалась в том, чтобы получать различные полезные химиче-
одарённого человека прервалась
ские вещества из подручных средств: стирального порошка,
рано. Алан Тьюринг был арестован
средства для мытья посуды, чернил и тому подобной бытовой
и 31 марта 1953 г. предстал перед
химии...
судом по обвинению в гомосексу-
ализме (то, что сегодня называют
нетрадиционной сексуальной ори-
химические опыты, решать шахмат- ентацией, в послевоенной Англии
ные головоломки, играть в го. считалось преступлением). Ему пре-
Друзей у него почти не было. Мно- доставили выбор: тюрьма или
гих отталкивали его несколько бес- лечение. Он избрал лечение. Всё пе-
порядочный стиль одежды, эксцент- режитое вызвало расстройство пси-
ричная причёска и резкий скрипучий хического здоровья. В глубокой де-
голос (к тому же иногда он сильно за- прессии продолжал учёный научную
икался). работу — до того дня, когда поставил
Тьюринг всегда отличался завид- свой последний химический опыт...
ным здоровьем, был прекрасным Прислуга нашла его мёртвым
Студенты шептались спортсменом, отдавая предпочтение 8 июня 1954 г. На недоеденном ябло-
о том, что, подводя гребле и марафонскому бегу. В сво- ке и на пальцах учёного обнаружи-
стрелки будильника, бодное время он занимался в Валтон- ли цианистый калий, тот же яд был
Алан не пользуется ском спортивном клубе. По утрам рассыпан по столу, на котором он
сигналами точного частенько пробегал 10 км (от дома до накануне ставил химические опыты.
времени, а глядит на лаборатории), чем удивлял коллег. Заключение следователя прозвучало
звёзды и производит А в период цветения растений, вы- категорично: самоубийство. Но мать
ему одному извест- зывающих у него аллергию, ездил на Тьюринга и многие его коллеги не
ные вычисления. велосипеде, надев противогаз, за что поверили в это, ведь Алан недавно
его неоднократно останавливали начал новые исследования в облас-
полицейские. Свои усиленные трени- ти теории программирования, био-
ровки Алан объяснял необходимо- логии, квантовой физики, несмотря
стью снять стресс, вызванный рабо- на то что после суда ему запрещалось
той. В 1948 г. в кроссе он показал работать в секретных компьютер-
результат лучше, чем спортсмен, вско- ных лабораториях... Тьюрингу был
ре ставший серебряным призёром 41 год.

АНДРЕЙ ПЕТРОВИЧ ЕРШОВ

Академик Андрей Петрович Ершов в годы Великой Отечественной войны


(1931—1988) — один из основателей 11—12-летним мальчишкой Андрей на-
теоретического и системного програм- ходился на оккупированной фашиста-
мирования, создатель сибирской шко- ми территории, и этого было достаточ-
лы информатики. Его существенный но, чтобы не допустить его к тем
вклад в становление информатики как областям науки, которые содержали го-
новой отрасли науки и нового фено- сударственные тайны.
мена общественной жизни широко Ещё студентом МГУ под влиянием
признан в нашей стране и за рубежом. А. А. Ляпунова Ершов страстно и на
Заканчивая школу, Андрей, как всю жизнь увлёкся программирова-
и многие юноши того времени, мечтал нием, где каждый шаг являлся твор-
о ядерной физике. В 1949 г. он посту- ческим и интересным поиском. Его
пил в Московский университет, однако наставники занимались изучением
от карьеры физика-ядерщика пришлось Программы автоматического присво-
А. П. Ершов. отказаться уже при подаче документов: ения адресов — ПАПА (она внедря-

74
Наука информатика

ТРОПА В АКАДЕМГОРОДКЕ

А. П. Ершов

Двадцать лет хожу я на работу


по тропе, проложенной в лесу.
Если мне Господь послал заботу,
Я её здесь с лёгкостью несу.
Школа № 162.
Новосибирск.
Всем живым заполнено пространство — 1984 г.
Птицы, белки, травы, дерева...
Жизни ход и жизни постоянство —
Той тропы заветные слова.

Здесь недавно поселилась фея.


Смотрят в душу глаз её лучи.
Мне в лицо её дыханье веет,
Тихий голос строчками звучит.

Но всего родней, всего дороже


В непрерывном беге быстрых дней
Неслучайно встреченный прохожий,
Путь держащий по тропе моей.
А. П. Ершов
с учащимися Всесо-
Двадцать лет, не обронив ни слова, юзной летней школы.
Мы стремим друг другу быстрый взгляд.
Этот взгляд при каждой встрече новой В 1957 г. его назначают заведу-
Мне приносит бодрости заряд. ющим отделом автоматизации про-
граммирования во вновь созданном
Жить с людьми — заслон любой заботе. Вычислительном центре АН СССР.
Три семьи царят в моей судьбе: В связи с образованием Сибирского
Дома — первая, вторая — на работе, отделения АН СССР по просьбе дирек-
Третья — на солнечной тропе. тора Института математики СО АН
СССР академика C. Л. Соболева Анд-
Май 1983 г. рей Петрович берёт на себя обязан-
ность организатора и фактического
руководителя отдела программиро-
лась в первых вычислительных цен- вания этого института, а затем пере-
трах и привела к развитию языков ходит в Вычислительный центр СО
низкого уровня — автокодам). Анд- РАН. Впрочем, «по просьбе директо-
рей же исследует другое направление. ра» — это скорее официальная фор-
Его дипломная работа называлась мулировка. В действительности же он
«Программирующая программа» — в числе первопроходцев-энтузиастов
ПП. По существу, речь шла о первом добровольно отправился осваивать
трансляторе в высокоуровневой си- новую Сибирь — строить Академго-
стеме программирования. Этот труд родок, ставший ему по-настоящему
во многом определил жизненный вы- родным. Ершов близко воспринимал
бор молодого учёного. научную и общественную жизнь Ака-
После окончания университета демгородка, с высочайшим чувством
Андрей Петрович поступил на рабо- ответственности организовывал на-
ту в Институт точной механики учные конференции, принимал гос-
и вычислительной техники Акаде- тей и друзей со всего мира, активно
мии наук — организацию, в которой участвовал в деятельности Научного
складывался один из первых совет- совета по проблемам образования при
ских коллективов программистов. Президиуме СО АН СССР.

75
Информация и информатика

Фундаментальные исследования
А. П. Ершова в области схем программ
А.П. ЕРШОВ — УЧЁНЫЙ И ЧЕЛОВЕК и теории компиляции оказали замет-
ное влияние на его многочисленных
Вокруг Андрея Петровича Ершова всегда кипела жизнь — его окружа- учеников и последователей.
ли студенты и школьники, аспиранты и молодые исследователи, зару- Книга А. П. Ершова «Программи-
бежные учёные и сибирские журналисты. Андрей Петрович не был ни рующая программа для быстродейст-
администратором по призванию, ни воспитателем по образованию, вующей электронной счётной ма-
но тем не менее к нему постоянно обращались за советами, консуль- шины» — одна из первых в мире
тациями, с просьбами. Приходили и в радости: «Родился сын!», и в пе- монографий по автоматизации про-
чали: «Что делать? Провалился на защите». Среди его аспирантов друж- граммирования.
но и увлечённо работали узбеки и евреи, русские и татары, украинцы За существенный вклад в теорию
и литовцы. У него для каждого находилось нужное слово, правильный смешанных вычислений в 1983 г.
тон. Речь идёт о человеке предельно загруженном, ценящем и умею- А. П. Ершов был удостоен премии име-
щем считать каждую секунду. Но никто и никогда не слышал от него, ни академика А. Н. Крылова.
казалось бы, очень естественной реплики: «Я занят! Мне некогда!». Язык программирования «Альфа»
Интеллигент высшей пробы, он навсегда остался в памяти коллег, дру- и оптимизирующий «Альфа»-транс-
зей и родных настоящим человеком. лятор, первая советская система раз-
Не часто пользовался он служебным автомобилем: пешая прогул- деления времени «Аист-0», система
ка по лесным тропинкам Академгородка ранним утром на работу и по- учебной информатики «Школьница»,
здним вечером домой стали частью его повседневной жизни. система подготовки печатных изда-
Академик А. П. Ершов уделял много внимания проблемам инфор- ний «Рубин», многопроцессорная ра-
мационного обеспечения учёных. Он очень любил книги и собирал их бочая станция «Мрамор» — все эти
всю жизнь. В его личной библиотеке хранилось более 30 тыс. книг, жур- значительные проекты инициирова-
налов, трудов конференций, препринтов и отдельных оттисков статей лись А. П. Ершовым и выполнялись
практически на всех европейских языках. После смерти Андрея Петро- под его руководством.
вича его наследники передали библиотеку в Институт систем инфор- Благодаря уникальным способ-
матики. Теперь это Мемориальная библиотека имени А. П. Ершова. ностям научного предвидения Анд-
Андрей Петрович Ершов был не только талантливым учёным, учи- рей Петрович одним из первых в на-
телем и борцом за свои идеи, но и выдающейся, разносторонне ода- шей стране осознал ключевую роль
рённой личностью. Он любил музыку, поэзию, писал сам и переводил вычислительной техники в прогрессе
на русский язык стихи английских поэтов. Им сделан замечательный науки и общества. Его блестящие
перевод киплинговского стихотворения «Когда» («К сыну»), который идеи заложили основу для развития
специалисты считают лучшим (а ведь существуют переводы и таких в России таких научных направле-
столпов поэзии, как С. Я. Маршак и М. Л. Лозинский). Любимым мес- ний, как параллельное программи-
том отдыха были музыкальные вечера в Доме учёных. рование и искусственный интеллект.
Андрей Петрович прекрасно играл на гитаре и пел. Приятно вспом- В 1980 г. академик начал экспери-
нить вечер у костра в сосновом лесу на берегу Оби. Школьники, слуша- менты по преподаванию программи-
вшие днём лекции «О человеческом и эстетическом факторах в програм- рования в средней школе. Это приве-
мировании», окружают плотным кольцом любимого учителя, взявшего ло к введению в школьную программу
в руки гитару, и тихонько подпевают. Все, кто имел счастье общаться курса информатики и вычислитель-
с академиком Ершовым, будут всегда помнить его блестящие идеи, ной техники. Широко используемый
выдающиеся достижения и необыкновенную доброжелательность. сейчас термин «школьная информа-
Работал он удивительно. Конечно, святыми были рабочий кабинет тика» рождён в кабинете Ершова в Вы-
и университетская библиотека. Но выдающийся учёный не видел за- числительном центре СО АН. С его не-
труднений, если приходилось писать на откидном столике самолётно- посредственным авторским участием
го кресла или в междугородном автобусе Новосибирск — Барнаул. (предложил описание школьного ал-
Младшие коллеги и ученики Ершова старались подражать стилю его горитмического языка) подготовлен
работы даже в мелочах. Каждая страничка рукописей имела пометки первый советский школьный учеб-
даты, часа и минут. Редкая сосредоточенность и целеустремлённость ник по информатике. Кроме того, он
позволяли не забывать о широком диапазоне поглощавших его дел. создал ряд учебных телепередач по
Даже встречу в палате Онкологического центра незадолго до данному курсу. А. П. Ершов был по-
кончины Ершова нельзя было назвать посещением больного. Рядом стоянным и самым дорогим гостем
с больничной койкой стоял столик с книгами и рукописями, Андрей всех Всесоюзных летних школ юных
Петрович постоянно работал, говорил о делах и заботах посетите- программистов, регулярно проводив-
ля, а не о мучившей его болезни. шихся в новосибирском Академго-
родке.

76
Наука информатика

Велика роль А. П. Ершова как орга-


низатора науки: он принимал самое
активное участие в подготовке мно-
жества международных научных кон-
ференций и конгрессов, был редак-
тором или членом редколлегии как
русских журналов «Микропроцессор-
ные средства и системы», «Киберне-
тика», «Программирование», так и
международных — «Acta Informatica»,
«Information Processing Letters», «Theo-
retical Computer Science».
Имя Ершова носят Институт сис-
тем информатики СО РАН и благотво-
рительный Фонд имени А. П. Ершова,
основной целью которого является
А. П. Ершов в 1986 г.
развитие информатики как изобрета- Физические экспери-
тельства, творчества и искусства. менты.

ЗАЧЕМ И КАК УЧИТЬ


ДЕТЕЙ ПРОГРАММИРОВАНИЮ

ТРИ КАТЕГОРИИ граммирования, ни особенностей


программирования на конкретных
ПРОГРАММИСТОВ компьютерах, умеют описать задачи
из своих предметных областей на од-
С каждым годом всё больше становит- ном из наиболее подходящих для этой
ся вычислительных машин. Ещё быст- цели языков программирования. При-
рее увеличивается количество задач, кладных программистов готовят
решаемых с помощью компьютеров. обычно профильные высшие учебные
Казалось бы, перспектива ясна: скоро заведения.
всем придётся писать программы на Усилиями системных и приклад-
алгоритмических языках. ных программистов решение задачи
С первых шагов развития вычис- на машине может быть сведено до
лительной техники среди програм- уровня подстановки параметров
мистов наметилось разделение труда,
ставшее особенно отчётливым в на-
ши дни. Системные программисты —
это программисты-профессионалы.
Они создают программы (операци-
онные системы, трансляторы с языков
высокого уровня, программы управ-
ления базами данных и т. д.), облегча-
ющие общение с машиной для всех
компьютерных пользователей. Сис-
темные программисты получают вы-
сшее, как правило университетское,
образование.
Второй «слой» программистов —
прикладные программисты. Это спе-
циалисты по экономике, геологии, по-
лиграфии, метеорологии, медицине
и т. д., которые, не зная ни теории про-

77
Информация и информатика

Число системных и прикладных


программистов сравнительно неве-
лико, да и увеличивается со време-
нем не так уж значительно. А вот
число «простых» параметрических
пользователей растёт и будет расти
стремительно. Сейчас совершенно яс-
но, что скоро ими станет бо’ льшая
часть населения земного шара. Но для
успешного общения с компьютером
даже параметрическим пользователям
необходимы определённые умения
и навыки.

ЧТО МОЖЕТ
ПРОГРАММИСТ

Вот только часть умений и навыков,


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

Вы прирождённый
программист, если
в ваших наручных
часах стоит про-
цессор классом не
ниже Pentium IV.

78
Наука информатика

ченного на решение задач на маши-


не, занимают операции поиска ин-
формации). ИДЁМ ПО МАГАЗИНАМ...
В-четвёртых, очень важно пра-
вильно строить свои команды маши- Информатика окружает нас со всех
не: если компьютер имеет богатый сторон. Иногда кажется, что зна-
набор процедур (или, как сказал бы ния информатики даются нам
системный программист, хорошее с рождения. Большинство педаго-
программное обеспечение), то с ним гов волнует вопрос: происходит ли
можно общаться с помощью крупных обучение алгоритмическому мыш-
порций информации — процедур; ес- лению в естественных условиях?
ли же такие процедуры заранее не на- К сожалению, нет. Вот факт, пора-
писаны, то обращаться к машине жающий преподавателей инфор-
можно, лишь описав требуемые дей- матики из года в год уже много лет.
ствия с помощью более мелких пор- Через неделю после начала кур-
ций информации — операторов или са информатики на уроке, который
директив. назовём «прививка интереса», пред-
Действительно, приведённые вы- лагается среди прочего простенькая задача: «Вам нужно, купив моло-
ше навыки и умения связывались до ко и хлеб, вернуться домой. При этом не надо выполнять ничего сверхъ-
сих пор исключительно с необходи- естественного и выдумывать дополнительные условия. Просто купить
мостью эффективного использования и вернуться».
вычислительной техники. Между тем Ни разу ни в одном классе ни один ученик не купил сначала
каждому из них соответствует и более хлеб, потом молоко, а только наоборот, т. е. попусту тратил свои
широкое значение. силы. Все тащили молоко до магазина «Хлеб» и обратно.
Например, умение планировать С прискорбием можно констатировать, что планирование (или
необходимо не только компьютер- назовём его программированием) не является обычным (т. е. есте-
ному пользователю, но и инженеру, ственным) и распространённым способом мышления. Алгоритмичес-
агроному, офицеру, учителю, эконо- кое мышление не «автоматическое» умение, как, например, поддержа-
мисту и т. д. ние равновесия при ходьбе или чтение знакомых букв. То есть
Умение моделировать, т. е. пред- оказывается, что это умение (даже если ему научить) надо специально
видеть свойства создаваемой кон- «включать» в каждом отдельном случае. Сигналом для включения обыч-
струкции, наиболее важно для твор- но бывает неуспех при лобовом решении задачи.
ческих работников — технологов, Пока не возникнет препятствий, последовательность действий все-
инженеров, физиков, астрономов... гда примитивна (сначала — молоко, потом — хлеб) и очень часто не-
Правильная организация поис- эффективна.
ка — залог успеха в работе всякого,
кто обращается за нужными сведе-
ниями к разнообразным хранили-
щам человеческих знаний: библио-
текам, архивам, информационным
системам. Недаром говорят, что,
не имея возможности передать уче-
нику за его школьные годы все на- ПРОГРАММИРОВАНИЕ
копленные человечеством знания,
учитель должен в первую очередь ПРИДЁТ НА ПОМОЩЬ
научить школьника учиться, т. е.
уметь отыскивать нужную ему ин- Умения планировать, моделировать,
формацию. искать информацию, общаться на-
Наконец, дисциплина общения столько фундаментальны, что обуче-
в любом человеческом коллективе ние следует начинать как можно
не менее существенна, чем при «раз- раньше. Но ни физика, ни литерату-
говоре» с компьютером. И дело здесь ра, ни даже математика не распола-
не в одной лишь точности высказы- гают (в полном объёме) необходи-
ваний или вежливости формы. Чтобы мыми инструментами для этого.
беседа получилась деловой, надо учи- В программировании же такие инст-
тывать, например, уровень знаний со- рументы есть! Действительно, тому,
беседника. кто понял, что такое процедура,

79
Информация и информатика

пользуются различные поисковые ме-


ханизмы (каталоги, многоуровневые
индексы, функции расстановки и т. д.),
а для организации процессов обще-
ния — синтаксические описания и ма-
кросредства.
На вопрос, как обучать детей, от-
вет подсказал опыт учителей и про-
граммистов, занимающихся разработ-
кой учебных программ. Они считают,
что в первую очередь необходимо
научиться управлять простыми испол-
нителями-роботами, каждый из ко-
торых предназначается для конкрет-
ной, в том числе учебной, задачи.
Поэтому на уроках информатики у
учащихся начальной школы на экра-
нах можно увидеть совсем не строч-
ки программ, написанных на языке
ЛОГО или Pascal, а исполнителей —
Перевозчика, Плюсика, Чертёжника,
Кенгурёнка, Кукарачу... Малыши учатся
условный оператор, цикл, умению играя. И только узнав в игре с испол-
планировать легко обучиться. Для ин- нителями главные понятия, нужные
формационного моделирования хо- для программирования (команда, си-
рошо служат средства описания дан- стема команд, имя информационно-
ных, имеющиеся в современных го объекта, ветвления, повторения),
языках программирования: множест- можно приступать к освоению язы-
ва, таблицы, каталоги, файлы. Точно ков программирования, сначала учеб-
так же для организации поиска ис- ных, а затем и профессиональных.

ПРОГРАММИРОВАНИЕ — ВТОРАЯ ГРАМОТНОСТЬ

Содержание курса информатики в


советской (теперь российской) шко-
ле значительно изменилось с момен-
та его введения — от обязательного
обучения алгоритмизации, когда
школьников учили программирова-
нию на одном из популярных языков
типа Basic и Pascal, до редактирования
текстов с помощью Microsoft Word, ко-
гда из учащихся готовят секретарей-
машинисток. Умение предваритель-
но планировать свои (или чужие)
действия, составлять программы (план
дальнейших работ) используется
повсеместно. Например, чтобы запи-
сать в определённое время кинофильм
с телевизора на видеомагнитофон,
сначала придётся освоить инструк-
цию по эксплуатации, которая в дан-
ном случае описывает язык програм-
мирования видеомагнитофона:

80
Наука информатика

установить дату записи = сегодня; компьютер, человек или абстракт-


установить начало записи = 10.00; ный универсальный выполнитель,
установить окончание записи = 11.25; который понимает язык и умеет за- Вы прирождённый
установить номер телеканала = 4; ставлять исполнителей выполнять программист, если
установить скорость записи = LP. команды. Так мама учит ребёнка зво- на ваших наручных
нить бабушке по телефону: часах кнопок не
Действительно, программирова- меньше, чем на кла-
ние видеомагнитофона — неслож- «Нажми клавишу 2, виатуре вашего ноут-
ный процесс. Но число современных нажми клавишу 3, бука.
программируемых домашних при- нажми клавишу 2...».
боров растёт с каждым днём. Это и
мобильные телефоны, где програм- Здесь ребёнок является выполни-
мируется не только запоминание но- телем программы, а телефон — испол-
меров, установка различных пара- нителем.
метров, это и микроволновые печи, На уроках математики тоже про-
кухонные кофеварки, хлебопечки исходит выполнение программ, на-
и т. д. Компьютер — тот же домаш- пример, когда для решения квадрат- Вы прирождённый
ний прибор, только более сложный ного уравнения ax 2+bx+c=0 нужно программист, если
и универсальный. вычислить дискриминант D=b2–4ac: ваш консервный нож
В голове или на листке бумаги мож- имеет разъём USB и
но составить программу, используя если D<0, то корней нет, используется вами
универсальный язык программиро- если D=0, то корни совпадают, как MP3-плеер.
вания. Выполнять программу может если...

В этом случае ученик по сути явля-


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

81
Информация и информатика

граммирования и выполняющих про-


граммы.
ЧТО ТАМ ВНУТРИ? Примеры удачной формализации
языков существуют. У военных есть ус-
Ребёнок, разобрав электронные часы, принцип их работы по- тавы, где прописано всё — от языка
нять не сможет (и взрослый подчас тоже). Так же происходит управления (программирование воен-
мифологизация объекта под названием « компьютер » . нослужащих) до программы (поведе-
Для многих людей он — чудо. И это абсолютно естественно ние солдат и офицеров). Почти фор-
для человека. мализован «канцелярский» язык.
С другой стороны, подавляющее большинство детей к 9— На этом языке ведётся переписка в уч-
10 годам представляют, как работают механические часы. реждениях, издаются приказы и рас-
Про пружину, шестерёнки и стрелки разными способами им поряжения.
рассказывали не один раз. А некоторые разбирали будильни- Ребёнок в начальных классах дол-
ки и всё видели собственными глазами. жен получить объём знаний, позволя-
Что получается? Если мы видим поверхность, из которой ющий сознательно выполнять програм-
торчат две стрелки, и знаем про шестерёнки (но не знаем ни об мы по всем школьным дисциплинам.
их количестве, ни о размере, ни о последовательности их сцеп- Сила математики и других предметов,
ления), то этого оказывается достаточно, чтобы эффект чуда сила, в конце концов, инструкций по
не возникал. эксплуатации сложной бытовой аппа-
Сделаем очевидный вывод. О любом объекте (в частности, ратуры именно в методических приё-
электронных часах или компьютере) нужно рассказать очень не- мах, позволяющих, не описывая языка
много, чтобы он был демифологизирован. Обязательно надо программирования, использовать че-
разъяснить принципы устройства компьютера и составления ловека в качестве выполнителя.
программ для него (и лишь попутно учить включать компьютер). В средних классах для ученика важ-
Иными словами, в курсе информатики следует говорить о ше- но научиться составлять программу
стерёнках, а не показывать, как заводить будильник, и слушать, на языке универсального выполните-
как он тикает. ля. От предмета к предмету меняется
набор исполнителей — от арифмети-
ческих действий к химическим или
физическим опытам. Ученик как вы-
полнитель программ учителей в со-
стоянии понимать и создавать про-
граммы на различных языках.
В старших классах возрастёт труд-
ность задач, появятся сложные выпол-
нители и языки с развитой структурой.
Это потребует изучения определён-
ной технологии программирования
(составления программ). В итоге уче-
ник обязан уметь проектировать язык
программирования выполнителей
и исполнителей, необходимых для ре-
шения конкретной задачи. Это уже не
на котором излагаются программы умение заполнять и использовать еже-
(последовательность действий). Шко- дневник, а проектирование такого
льники с той или иной долей успеха ежедневника.
учатся его понимать. Качество испол- Можно было бы закончить на ма-
нения порой зависит не от умения жорной ноте, высоко подняв лозунг —
и сообразительности школьника, а от название статьи, призвав молодое
таланта и опыта педагога, сумевшего поколение к глубокому изучению про-
формализовать язык изложения и на- граммирования как основе поведения
учить ему школьников. Вот где при- современного человека. Но программи-
годились бы навыки алгоритмизации! рование и проектирование (а с ним и
Учителя, конечно, считают идеаль- аналитическое мышление) не свойст-
ными учеников, понимающих их венно не только большей части общест-
с полуслова и выполняющих все за- ва, но и принципы функционирования
дания, т. е. понимающих язык про- самого общества, закреплённые за-

82
Наука информатика

конодательно, часто далеки от простой он цитировал передовые центральных


логики. газет, он воспевал науку и наших муд-
Не секрет, что юриспруденция одна рых организаторов, но всё было вотще.
из сложнейших для изучения и по- Лавра Федотовича это затруднение
нимания наук. Не случайно, что мало наконец утомило, и, прервавши ора-
кто из граждан в состоянии само- тора, он произнес только одно слово:
стоятельно разобраться в тонкостях — “Неубедительно”.
законодательства, хотя каждый обязан Раздался тяжёлый удар. Большая
это законодательство выполнять. Та- Круглая Печать впилась в мою заявку».
ким образом, имеется уникальная
ситуация, когда нужно выполнить про-
грамму, не понимая языка программи-
рования. Для разъяснения этого языка
гражданам (исполнителям) и сущест-
вуют юристы, которые также часто не
могут однозначно истолковать, как
надо выполнять тот или иной закон
(программу). Спорные моменты раз-
решает суд, который в силу своей
независимости (в том числе и от ло-
гики) также вправе неоднозначно
истолковать и(или) применить тут или
иную норму права (правила выпол-
нения программы). То есть по закону
суд может принять неверное решение
(неправильно выполнить программу).
Здесь правильно или неправильно
принятое решение (исполнение про-
граммы) зависит только от судьи (вы-
полнителя), что с точки зрения про-
граммирования достаточно странно.
Так в Гражданско-процессуальном
кодексе Российской Федерации (основ-
ной программы) есть статья 67 про
оценку доказательств судами. Начало
этой статьи звучит так: «Суд оценивает
доказательства по своему внутреннему НА ОШИБКАХ УЧАТСЯ...
убеждению, основанному на всесто-
роннем, полном, объективном и непо- За ошибку наказывают. И потому ошибаться не просто не лю-
средственном исследовании имею- бят, а боятся. А за страхом следует либо бездействие, либо но-
щихся в деле доказательств». Если вая ошибка.
внимательно прочитать начало пред- Однако мы знаем, что есть люди, которые начинают рабо-
ложения, то можно сделать ошелом- ту с мыслью: «Сейчас я всё напишу неправильно». И они этого
ляющий вывод о том, что алгоритм не боятся. Эти люди — программисты. В процессе преподава-
поведения судьи при принятии дока- ния информатики можно научить не только не бояться делать
зательств недетерминирован, потому ошибки, но и радоваться им, поскольку каждая найденная ошиб-
что результат принятия судом до- ка уменьшает количество ещё не найденных.
казательства (выполнение програм- Продолжая тему ошибок, заметим, что попутно (если за-
мы) — «внутренняя убеждённость» нятия сопровождаются работой на компьютерах) можно на-
судьи (неизвестное свойство испол- учить разумно и быстро отлаживать свою программу, говоря
нителя). Таким образом, никто не за- иначе, «ставить диагноз по симптомам» (а это необходимо сле-
страхован от событий аналогичных дователю, врачу, политику, журналисту, геологоразведчику
тем, что произошли с двумя молодыми и др.), поскольку поиск ошибки в программе позволяет уста-
учёными в «Сказке и тройке» — клас- навливать и перепроверять причину сбоя. Но обучение это-
сическом произведении А. и Б. Стру- му — отдельная задача, которая никак не должна смыкаться
гацких: «Эдик снова заговорил. Он взы- с обучением думать алгоритмически.
вал к теням Ломоносова и Эйнштейна,

83
АЛГОРИТМ
АЛГОРИТМЫ И ПРОГРАММЫ

ПОНЯТИЕ АЛГОРИТМА столь просты и привычны, что реша-


ются автоматически. Решение задачи
Каждый человек в своей повседнев- «Поступить в институт» намного труд-
ной жизни, в учёбе или на работе нее и требует выполнения гораздо
сталкивается с необходимостью ре- большего количества сложных дей-
шения огромного количества задач ствий, чем решение задачи «Купить
самой разной сложности. Некоторые мороженое». При этом выполнение
из них настолько трудны, что требу- даже самой простой задачи обычно
ют длительных размышлений для по- осуществляется в несколько последо-
иска решения (а иногда найти его так вательных этапов, или шагов. Если
и не удаётся). Другие же, напротив, проанализировать ход выполнения
этих задач, то окажется, что практи-
чески любое действие, которое надо
при этом произвести, может быть чёт-
ко сформулировано и записано.
Например, процесс приготовле-
ния обеда можно описать так:
1) сварить суп;
2) приготовить второе блюдо;
3) приготовить десерт.
Такая запись (назовём её инструк-
цией) малополезна на практике. Ясно,
что шаги должны быть более просты-
ми, поэтому необходимо несколько
детализировать её (ограничимся пер-
вым пунктом):

86
Алгоритм

1) вымыть, почистить и нарезать няя которую к исходным данным,


овощи; можно получить решение задачи.
2) зажечь плиту; Многие алгоритмы обладают тем
3) вскипятить в кастрюле воду; свойством, что остаются правильны-
4) положить в кипящую воду мясо; ми для разных наборов исходных дан-
5) когда мясо сварится, положить ных (приготовление супа одинаково
в кастрюлю овощи; для разных используемых овощей; вы-
6) когда овощи сварятся, выклю- числение площади прямоугольника
чить плиту. одинаково для любых значений a и b).
Здесь определена последователь- Такое свойство алгоритмов называют
ность действий, следуя которой любой массовостью. Оно позволяет много-
человек сумеет приготовить суп. Ана- кратно применять один и тот же алго-
логично в виде последовательности ритм для решения задачи. При этом не-
шагов можно описать процесс реше- обходимо иметь в виду, что для
ния многих задач, известных из школь- каждого алгоритма есть некоторое
ного курса математики: приведение множество объектов, допустимых в ка-
дробей к общему знаменателю, реше- честве исходных данных. Например, a
ние системы линейных уравнений пу- и b могут быть только вещественными
тём последовательного исключения положительными числами; в алгорит-
неизвестных, построение треугольни- ме деления вещественных чисел дели-
ка по трём сторонам с помощью цир- мое может быть любым, а делитель не
куля и линейки и т. д. Такая последова- должен быть равен нулю.
тельность шагов в решении задачи Всегда ли удаётся получить резуль-
и называется алгоритмом. тат, применяя алгоритм к некоторому
Каждое отдельное действие — это набору из множеств допустимых ис-
шаг алгоритма («почистить овощи», ходных данных? Не всегда: так, при де-
«умножить a на b» и т. д.). Последова- лении 7 на 3 оба целых числа допусти-
тельность шагов алгоритма строго мы, но результат 2,333... является
фиксирована, т. е. шаги должны быть бесконечной десятичной дробью.
упорядоченными. Правда, существуют Об алгоритмах такого рода говорят,
так называемые параллельные алго- что они потенциально выполнимы,
ритмы, для которых это требование но состоят из бесконечного числа
не соблюдается. Порядок записи ша- шагов. В связи с этим надо ввести по-
гов в них не обязательно должен сов- нятие конечности алгоритма. Смысл
падать с порядком выполнения соот- его состоит в том, что выполнение
ветствующих действий.
Понятие алгоритма близко к дру-
гим понятиям, таким, как метод (ме-
тод Гаусса решения систем линейных
уравнений), способ (способ построе-
ния треугольника по трём сторонам
с помощью циркуля и линейки) или
даже рецепт. Другие понятия, такие,
как процедура (судебная процедура),
программа (программа действий пра-
вительства по выводу экономики из
кризиса), процесс (мирный процесс
на Ближнем Востоке), также имеют
немало общего с алгоритмом. Поэто-
му необходимо чётко сформулиро-
вать отличительные особенности
именно алгоритмов.
Прежде всего, алгоритм подразуме-
вает наличие исходных данных и не-
которого результата. Следовательно,
алгоритм — это точно определённая
инструкция, последовательно приме-

87
Алгоритмизация

альная, а именно реальная выполни-


мость алгоритма.
Вернёмся к примеру с делением.
Если оборвать процесс на каком-ли-
бо шаге, то полученное число, вооб-
ще говоря, не будет частным от де-
ления, но его тем не менее можно
принять за приближённый результат,
вычисленный с устраивающей в кон-
кретной задаче точностью.
С понятием алгоритма тесно свя-
зано представление об исполнителе
алгоритма. Неважно, кто выступает
в этой роли: человек (повар, абитури-
ент или математик в приведённых вы-
ше примерах) или же некоторое тех-
ническое устройство (в том числе
компьютер). Главное требование —
алгоритма должно обязательно приво- исполнитель алгоритма должен уметь
дить к его завершению. В то же время выполнять каждый его шаг.
можно привести примеры формаль- Отсюда вытекает следующее важ-
но бесконечных алгоритмов, широко ное требование к алгоритму — опре-
применяемых на практике. Например, делённость. На каждом шаге у ис-
алгоритм работы системы сбора ме- полнителя алгоритма должно быть
теорологических данных состоит достаточно информации, чтобы его
в непрерывном повторении последо- выполнить. Кроме того, исполните-
вательности действий «Измерить тем- лю алгоритма нужно чётко знать, ка-
пературу воздуха» и «Определить ат- ким образом он выполняется. Легко
мосферное давление», выполняемых заметить, что некоторые шаги при-
с некоторой частотой (ежеминутно, ведённого выше алгоритма приго-
ежечасно или ежедневно) всё время товления супа, в свою очередь, нуж-
существования данной системы. даются в уточнении (так, пункт
На практике обычно интересует «Зажечь плиту» потребует выполне-
результат, выдаваемый алгоритмом ния последовательности действий:
через конечное число шагов и за ко- «Взять коробок спичек», «Зажечь
нечное время (в самом деле, какова спичку», «Повернуть вентиль газо-
польза от алгоритма расчёта прогно- вой плиты», «Поджечь газ»). Следо-
за погоды на завтра, если результат вательно, чтобы выполнялось тре-
вычисляется неделю). Свойство ко- бование определённости, шаги
нечности имеет особо важный смысл, инструкции должны быть достаточ-
так как часто требуется не потенци- но простыми, элементарными, а ис-
полнитель алгоритма должен одно-
значно понимать смысл каждого
шага последовательности действий,
составляющих алгоритм (при вычис-
лении площади прямоугольника лю-
бому исполнителю алгоритма, осуще-
ствляющему алгоритм, необходимо
уметь умножать, а также трактовать
знак операции «х» именно как умно-
жение, а не как, например, сложе-
ние). Здесь возникает важная про-
блема: в каком виде, в какой форме
будет представлен алгоритм, чтобы
выполнялось это условие. Фактиче-
ски речь идёт о том, на каком языке
записан алгоритм.

88
Алгоритм

ПЕРВЫЕ АЛГОРИТМЫ

Считается, что самым древним нетривиальным алгоритмом горитмы за полторы тысячи


является способ нахождения наибольшего общего делите- лет до греков, историки науки
ля двух целых чисел. Он был изложен в трудах древне- единодушно признают при-
греческого математика Эвклида — седьмой книге «Начал» оритет Евклида. Дело в том,
около 2300 лет тому назад. (Правда, есть предположение, что алгоритм Евклида имеет
что алгоритм Евклида лишь интерпретация алгоритма, пред- достаточно сложную структу-
ложенного Эвдоксом за 75 лет до этого.) ру: он является итерационным
Алгоритм Евклида нахождения НОД двух целых по- (так называют алгоритмы, со-
ложительных чисел. держащие неоднократное по-
«Пусть A, C — два данных положительных целых чис- вторение некоторых действий).
ла. Надо найти их наибольший общий делитель. Если C Вавилонские алгоритмы пред-
делит A, то C является общим делителем чисел C и A, так ставляют исключительно исто-
как делит и само себя. Очевидно, что C будет и наиболь- рический интерес, в то время Эвдокс.
шим делителем, поскольку нет числа, большего C, кото- как алгоритм Евклида не поте-
рое делило бы C. рял своего практического значения до сих пор.
Если же C не делит A, то начинаем непрерывно вычи- Ещё один старинный алгоритм, который широко ис-
тать меньшее из чисел A, C из большего до тех пор, по- пользовался на практике.
ка не получим некоторое число, которое нацело делит Алгоритм аль-Каши вычисления значения x n, где n —
предыдущее вычитаемое. Рано или поздно такое число положительное число.
получится, потому что если разность будет равна едини- Шаг 1. Вводим три величины — N:= n; y:= 1; z:= x.
це, то единица будет делить предыдущее вычитаемое. В этот момент справедливо соотношение xn = y × zn.
Итак, пусть E — положительный остаток от деления Шаг 2. Делим N нацело на 2, N:= N div 2; одновременно
A на C, F — положительный остаток от деления C на E, F определяем, было ли до того N чётным.
делит E. Так как F делит E, а E делит C – F, то F также де- Если N было чётным, то переходим к шагу 5.
лит C – F, но F делит само себя, следовательно, F делит C. Шаг 3. Умножаем y на z, y:= y × z.
Но C делит A – E; поэтому F также делит A – E. Но оно Шаг 4. Если N равно нулю, то ответ равен y.
также делит E, поэтому оно делит и A. Следовательно, Шаг 5. Умножаем z на себя, z:= z × z.
F — общий делитель чисел A и C. Возвращаемся к шагу 2.
Теперь я утверждаю, что он является и наибольшим Этот алгоритм был предложен в самом начале XV в.
таким делителем. Действительно, если F — не наиболь- (впрочем, около 200 г. до н. э. в индийском математиче-
ший общий делитель чисел A и C, то некоторое большее ском трактате «Чанда-сутра» приводится описание ана-
число будет делить их оба. Пусть таким числом будет G. логичного метода). Именно такую процедуру ещё в
Поскольку G делит C, которое, в свою очередь, де- XVIII в. до н. э. египетские математики использовали для
лит A – E, то G делит A – E; G делит также все A, следо- умножения.
вательно, оно делит и остаток E. Но E делит C – F, поэто- Шаг 1. Вводим три величины — N:= n; y:= 0; z:= x.
му G делит C – F. Но G делит также все C, следовательно, Шаг 2. Делим N нацело на 2, N:= N div 2; одновременно
оно делит и остаток F; таким образом, большее число де- определяем, было ли N до того чётным.
лит меньшее, а это невозможно. Если N было чётным, то переходим к шагу 5.
Поэтому нет такого числа, большего, чем F, которое Шаг 3. Увеличиваем y на z, y:= y + z.
делило бы числа A и C, и, значит, F — их наибольший об- Шаг 4. Если N равно нулю, то ответ равен y.
щий делитель». Шаг 5. Складываем z с собой, z:= z + z.
В древнеегипетских папирусах можно найти ещё бо- Возвращаемся к шагу 2.
лее древние примеры вычислительных процедур. Так, В шагах 3 и 5 умножение заменено сложением, и в ша-
египтянам был известен метод умножения, основанный ге 1 y приравнивается не единице, а нулю. В результате
на удвоении и сложении (кстати, на этой же идее бази- выполнения такого модифицированного алгоритма полу-
руются некоторые широко применяемые современные чаем произведение двух чисел n и x: y = n × x. Это весьма
алгоритмы). удобный для практических вычислений «вручную» способ
В отличие от Древнего Египта в Вавилоне было приня- умножения, который сводится к более простым операци-
то кроме решения примера давать пояснения процесса вы- ям удвоения, деления пополам и сложения. Именно такой
числений, пригодные в общем случае. Например, если один приём применяется при вычислениях на счётах — в Евро-
из сомножителей оказывался равным единице, умножение пе он традиционно носит название «русский крестьянский
всё-таки выполнялось. И хотя вавилоняне использовали ал- метод».

89
Алгоритмизация

Неоднозначность восприятия ал- если алгоритм многократно приме-


горитма часто может быть связана не нять к одному и тому же набору ис-
с его сутью, а с особенностями пред- ходных данных, то всегда должен по-
ставления. Даже в детализированной лучаться один и тот же результат.
инструкции не определено точно, что Итак, алгоритм — это система пра-
означает «мясо сварилось» или «ово- вил, которая сформулирована на язы-
щи сварились». В зависимости от осо- ке, понятном исполнителю алгорит-
бенностей того или иного исполни- ма, определяет процесс перехода от
теля алгоритма (предположим, от допустимых исходных данных к не-
опытности повара) эти шаги могут которому результату и обладает
быть выполнены по-разному: мясо, свойствами массовости, конечнос-
например, окажется недоваренным, ти, определённости, детерминиро-
Урбен Жан Жозеф а овощи, напротив, разварятся. Итак, ванности.
Леверье. каждый шаг алгоритма должен быть Это определение алгоритма не яв-
таким, чтобы не возникало разночте- ляется строгим (хотя бы потому, что
ний. в нём используются не определённые
С определённостью перекликает- точно термины, например «правило»).
ся ещё одно важное свойство алгорит- На протяжении многих веков по-
ма — детерминированность. Его мож- нятие алгоритма связывалось с числа-
но понимать следующим образом: ми и относительно простыми дейст-
виями над ними. Да и сама математика
была по большей части наукой о вы-
числениях, наукой прикладной. Чаще
ЕЩЁ ОДНА ФОРМАЛИЗАЦИЯ АЛГОРИТМА всего алгоритмы представлялись в ви-
де математических формул. Порядок
Алгоритм есть описание действий; изу- элементарных шагов алгоритма зада-
чая лишь запись алгоритма, нельзя по- вался расстановкой скобок, а сами ша-
нять его динамику. Да и результат выпол- ги заключались в выполнении ариф-
нения при таком изучении далеко не метических операций и операций
всегда очевиден. отношения (проверки равенства, не-
Схема Колмогорова — Успенского бы- равенства и т. д.). И хотя эти форму-
ла одной из попыток построить некото- лы могли быть достаточно громоздки-
рый формальный механизм выполнения ми, а вычисления вручную — крайне
алгоритмов, в котором алгоритм и его ис- трудоёмкими (французский астроном
полнитель — человек или некоторый при- Жан Жозеф Леверье провёл десятки
бор — рассматриваются в неразрывном лет в расчётах орбит планет Солнеч-
единстве. Здесь действия исполнителя ной системы, в результате чего ему
алгоритма чётко определены, а их коли- удалось обнаружить неизвестную ра-
чество ограниченно. нее планету Нептун), суть самого вы-
В. А. Успенский. Предполагается, что обрабатываемая числительного процесса оставалась
человеком информация записывается на вполне очевидной. У математиков не
листах бумаги, при этом имеется неограниченный запас чистых лис- возникала потребность в осознании
тов и неограниченный резерв места для хранения исписанных листов. и строгом определении понятия ал-
Преобразование информации, реализуемое человеком, разбивается горитма, в его обобщении.
на отдельные дискретные шаги. На каждом шаге человек обозревает Но с развитием математики появ-
некоторое число исписанных листов и в зависимости от содержания лялись новые объекты, которыми при-
записей на них по строго заданным правилам производит изменения. ходилось оперировать учёным: век-
Изменения могут быть трёх видов: торы, матрицы, графы, множества
— стирание всей обозреваемой информации или некоторой её и др. Как определить для них одно-
части; значность или как установить конеч-
— запись на обозреваемых листах новой информации; ность алгоритма, какие шаги могут
— изменение совокупности обозреваемых листов. считаться элементарными (например,
Однако данная модель оказывается недостаточно формализо- является ли таковым обращение мат-
ванной, и её применение для реализации конкретных алгоритмов за- рицы или нахождение пересечения
труднено. По своему удобству она значительно уступает машинам По- двух множеств)?
ста и Тьюринга, хотя имеет с ними значительное сходство. Возникла идея о существовании ал-
горитмически неразрешимых проб-

90
Алгоритм

лем, таких, для которых нельзя найти именно и для чего делается, далеко не
процедуру решения. Следовательно, просто.
надо было научиться математиче- Для записи алгоритмов необходим
ски строго доказывать факт отсутст- некоторый язык. При этом крайне
вия соответствующего алгоритма. Это важно, какой именно язык выбран.
можно сделать только в том случае, Неудобство русского (равно как и лю-
если существует строгое определение бого другого естественного) языка
алгоритма. Попытки выработать та- для этих целей очевидно. Фраза
кое определение привели на рубеже «мальчик взял с собой тетрадь в клет-
20—30-х гг. XX в. к возникновению ку» может сообщать нам о школьни-
теории алгоритмов. ке, подготовившемся к уроку ариф-
Почти в это же время возникла метики. Но может иметься в виду
и практическая потребность в осуще- юный любитель животных, который
ствлении сложных вычислений. собирается у клетки с тигром запи-
На повестку дня встала необходимость сывать свои наблюдения и ощуще- Евклид.
решения задач из разных научных ния... Слова могут иметь самые раз-
и инженерных дисциплин: радиоло- ные смысловые оттенки, и понять их
кации, самолётостроения, моделиро- без детального анализа всего текста
вания физических процессов (осо- подчас просто невозможно.
бенно из области ядерной физики, Весьма распространённым явля-
баллистики и многих других). Вычис- ется графический способ записи ал-
лительные возможности человека горитмов на языке блок-схемы. Она
были существенно ограничены, сред- представляет собой набор элемен-
ства механизации, а тем более авто- тов (блоков), соединённых стрел-
матизации вычислений практически ками. Каждый элемент — это неко-
отсутствовали. Появление первых торая часть алгоритма. Элементы
проектов вычислительных машин блок-схемы делятся на два вида:
стимулировало исследование возмож- содержащие какие-либо действия
ностей практического применения обозначают прямоугольниками, а
алгоритмов, использование которых содержащие проверку условия —
ввиду их трудоёмкости было ранее ромбами. Из прямоугольников всег-
недоступно. Дальнейший бурный про- да выходит только одна стрелка
гресс вычислительной техники опре- (входить может несколько), а из
делил развитие как теоретических, так ромбов — две. Первая помечается
и прикладных аспектов изучения ал- словом «да», а вторая — «нет» (они
горитмов. показывают, выполнено условие или
нет).
На рисунке показана блок-схема
КАК ЗАПИСЫВАТЬ алгоритма нахождения НОД:
АЛГОРИТМЫ

Описание алгоритма Евклида нахож- x:= n да


x=y nod:= x
дения НОД двух целых положитель- y:= m
ных чисел состоит из трёх шагов и за-
нимает всего несколько строчек. нет
Шаг 1. Разделить m на n, где m>n. да
Пусть p — остаток от деления. x>y x:= x-y
Шаг 2. Если p равно нулю, то n
и есть искомый НОД. нет
Шаг 3. Если p не равно нулю, то сде-
лаем m равным n, а n — равным p. Вер- y:= y– x
нуться к шагу 1.
В то же время даже значительно
«упрощённое» описание, данное Евк- Такой способ удобен для анализа раз-
лидом, требует около страницы текс- рабатываемого алгоритма, для провер-
та(!), и понять из его описания, что ки правильности логики его работы.

91
Алгоритмизация

Каждый блок на рисунке соответству- нию y: = y – x), а через Pi — логичес-


ет элементарному шагу алгоритма. Ес- кие операторы (P1 соответствует про-
ли же записываемый алгоритм более верке x = y). Стрелки ↑ и ↓ означают
сложен, то неизбежно встаёт вопрос: переход, им соответствуют начало
как избежать его излишней детализа- и конец стрелки на блок-схеме. Ес-
ции? ли проверка даёт отрицательный ре-
Сделать это можно, укрупняя шаги зультат, то происходит переход по
алгоритма. Тогда каждый блок будет стрелке, иначе выполняется следую-
содержать достаточно сложные дей- щий оператор. S — это оператор ос-
ствия и даже представлять целый ал- тановки. Операторам-вычислителям
горитм (точнее, подалгоритм). Напри- соответствуют прямоугольники, а ло-
мер, блок может заменять написанный гическим операторам — ромбы
ранее и уже проверенный алгоритм. блок-схемы. Операторные схемы
Если при этом есть уверенность в пра- легко переписать в виде блок-схем,
вильности работы блока, то в детали но, в отличие от последних, они не
его работы лучше не вдаваться. Такое столь наглядны, и это затрудняет их
«крупноблочное» представление практическое использование.
бывает весьма полезно и на началь- Запишем теперь алгоритм Евкли-
ной стадии разработки алгорит- да на языке программирования Pascal:
ма, когда известно, что надо сделать
в этом блоке, но ещё не известно как. var
Уточнение алгоритма работы блока n, m, x, y, nod: integer;
может быть сделано позднее. begin
Построение блок-схем из элемен- x:= n; y:= m;
тов всего лишь нескольких типов да- while x<>y do
ёт возможность достаточно просто if x>y then x:= x – y
преобразовывать их в компьютерные else y:= y – x;
программы, позволяет формализо- nod:= x;
вать этот процесс. end;
Известны и другие способы нагляд-
ной записи алгоритмов — в первую Очевидно явное сходство с запи-
очередь операторные схемы, предло- сью как на языке блок-схем, так и на
женные А. А. Ляпуновым. Приведём языке операторных схем Ляпунова.
схему Ляпунова, описывающую алго- Конечно, компьютер по-прежнему
ритм НОД: не способен воспринимать этот текст
непосредственно, необходима его
4 1 21 3 43 42 предварительная обработка специ-
A1 ↓ P1(x = y)↑ A2 ↑↓ P2(x > y)↑ A3 ↑↓ A4 ↑↓ S альной программой — транслятором.
Однако по сравнению с другими
Здесь через Ai обозначены опера- формами записи алгоритма такую
торы, производящие вычисления (на- обработку реализовать значительно
пример, A4 соответствует присваива- проще. Кроме того, она достаточно
удобна и для человека.

ПРОГРАММА
Слово «программа» имеет несколько
значений: план деятельности или ра-
бот, краткое изложение содержания
учебного предмета, содержание кон-
церта или циркового представления
и некоторые другие. Среди них от-
дельно выделено одно, специальное
значение: программа — это описание
алгоритма решения задачи на языке
компьютера.

92
Алгоритм

Именно данное значение слова


подчёркивает тесную связь алгорит-
мов и программ. Одним из первых об-
ратил внимание на эту связь в 1945 г.
английский математик Алан Тьюринг,
который считал, что программы (он
называл их «таблицами инструкций»)
должны создаваться математиками,
имеющими опыт вычислительной ра-
боты и склонность к творчеству («ре-
шению головоломок»). Тьюринг осо-
бо подчёркивал важность перевода
известного процесса (т. е. алгоритма)
в форму таблиц инструкций. При этом
он не сомневался, что такой перевод —
«очаровательное занятие».
Вообще же можно сказать, что про-
грамма — это запись алгоритма на язы- разрабатывался не только как сред-
ке, понятном исполнителю алгоритма. ство написания программ, но и как
Особый тип исполнителя алгорит- средство записи алгоритмов. Это под-
мов — компьютер, поэтому необходи- чёркивается самим названием языка:
мо создавать специальные средства, английские слова algorithmic language
позволяющие, с одной стороны, раз- можно понимать как «алгоритмиче-
работчику в удобном виде записывать ский язык» (синоним слов «язык про-
алгоритмы, а с другой — дающие ком- граммирования») и как «язык для за-
пьютеру возможность понимать на- писи алгоритмов». На протяжении
писанное, — языки программирова- многих лет Algol-60 фактически яв-
ния, или алгоритмические языки. лялся стандартом для записи алго-
Один из первых языков програм- ритмов, общепринятым при их пуб-
мирования — Algol-60 изначально ликации.

О ПРОИСХОЖДЕНИИ СЛОВА «АЛГОРИТМ»

Известно, что в раннем Средневеко- числа «больные»? Другие склонялись


вье слово algorism использовали для к ещё более экстравагантному объяс-
обозначения способа арифметиче- нению, связывая слово с неким ми-
ских вычислений на бумаге без при- фическим древним испанским пра-
менения счётных досок (абаков). вителем King Algor of Castil. Свой
Именно в таком значении оно вошло вариант предлагает и Энциклопеди-
в некоторые европейские языки. На- ческий словарь Брокгауза и Ефрона
пример, в авторитетном словаре анг- (1890 г.). В нём «алгорифм» (кстати,
лийского языка «Webster′s New World до революции использовалось и на-
Dictionary», изданном в 1957 г., оно писание «алгориθм», через «фиту»)
снабжено пометкой «устаревшее» производится от арабского слова
и объясняется как выполнение ариф- «аль-горетм», т. е. «корень».
метических действий с помощью Но истину удалось установить не
арабских цифр. лингвистам, а историкам математики.
Несмотря на то что известно, ког- Они доказали, что слово происходит
да появился термин «алгоритм», от имени великого среднеазиатского
лингвисты по-разному пытались тол- учёного, автора популярнейшего на
ковать его происхождение. Одни вы- протяжении многих веков учебника
водили algorism из греческих «алги- по математике аль-Хорезми, жившего
рос» — «больной» и «арифмос» — в первой половине IX в. В латинской
«число». Правда, не понятно, почему транскрипции его имя записывается

93
Алгоритмизация

как Abu ‘Abd Allah Muhammad ibn Musa в одном из германских математичес-
al-Khwarismi и означает «Мухаммад, ких словарей «Vollstandiges mathema-
сын Мусы, отец Абдуллы, родом из Хо- tisches Lexicon», изданном в Лейпциге
резма». Хорезм — это историческая об- в 1747 г. Термин algorithmus объясня-
ласть на территории современного Уз- ется в нём как понятие о четырёх ариф-
бекистана, центром которой является метических операциях. Но такое зна-
древний город Хива. чение не было единственным, ведь
Почти все словари сходятся в том, терминология математической науки
что первоначально слово имело фор- в те времена ещё только формирова-
му algorismi и лишь спустя какое-то вре- лась. В частности, латинское выраже-
Аль-Хорезми. мя потеряло последнюю букву, приоб- ние «algorithmus infinitesimalis» приме-
ретя более удобный для европейского нялось к способам выполнения
произношения вид algorism. Позднее действий с бесконечно малыми вели-
и оно, в свою очередь, неоднократно чинами.
подвергалось искажениям, последнее Постепенно все старинные значе-
из которых, скорее всего, связано со ния вышли из употребления. К нача-
словом arithmetic, имеющим гречес- лу XX в. слово «алгоритм» уже означа-
кое происхождение. Уже в новом на- ло «всякий арифметический или
писании слово встречается в XVIII в. алгебраический процесс, который вы-
полняется по строго определённым
правилам», именно так оно объясня-
ется в Большой советской энцикло-
СПОР АЛГОРИСМИКОВ И АБАЦИСТОВ педии (1926 г.).
Можно проследить процесс про-
Многие века абак фактически был единственным средством для прак- никновения слова «алгоритм» в рус-
тических вычислений. В историю математики вошло упорное проти- ский язык. Его не было ни в «Толковом
востояние лагерей абацистов и алгорисмиков (первых иногда называ- словаре живого великорусского язы-
ли гербекистами). Началось оно с появления в 1202 г. знаменитой ка» В. И. Даля (1863 г.; а вот слово «ал-
«Книги абака» Леонардо Пизанского (Фибоначчи), где впервые было гебра» там присутствует), ни в «Толко-
сказано, что кроме счёта на пальцах и на абаке возможен также счёт вом словаре русского языка» под
на бумаге. Алгорисмики предложили использовать для вычислений редакцией Д. Н. Ушакова (1935 г.). За-
арабские цифры, только-только начавшие проникать в Европу благо- то слово «алгорифм» есть и в популяр-
даря переводам сочинений восточных математиков. Но прошло це- ном дореволюционном Энциклопеди-
лых три столетия, прежде чем новый способ счёта окончательно ческом словаре братьев Гранат, и в уже
утвердился, — столько времени потребовалось, чтобы выработать упоминавшемся первом издании БСЭ,
общепризнанные обозначения, усовершенствовать и приспособить где говорится, что в Средние века так
к записи на бумаге методы вычислений. И хотя трактат Луки Пачоли называли «правило, по которому вы-
«Сумма знаний по арифметике, геометрии, отношениям и пропорцио- полняется то или другое из четырёх
нальности» (1494 г.) подвёл черту под этим спором, счётная доска ещё арифметических действий по десятич-
долго не выходила из употребления. ной системе счисления». А вот «Мате-
матическая энциклопедия» даёт его
расширенное толкование: не только
как искусства счёта в десятичной по-
зиционной системе счисления, но
и как самой десятичной системы.
То, что алгоритм воспринимался
как термин сугубо специальный и ма-
лозначительный, подтверждается от-
сутствием соответствующих статей
в менее объёмных изданиях. В част-
ности, его нет даже в десятитомной
Малой советской энциклопедии
(1957 г.), не говоря об однотомных
энциклопедических словарях. Но за-
то спустя десять лет в третьем изда-
Лука Пачоли. нии БСЭ (1969 г.) «алгоритм» уже ха-
рактеризуется как «одно из основных

94
Алгоритм

понятий (категорий) математики, За последние полтора-два десяти-


не обладающих формальным опре- летия XX в. компьютер сделался неотъ-
делением в терминах более простых емлемым атрибутом нашей жизни,
понятий, а абстрагируемых непо- общеупотребительной становится и
средственно из опыта». За 40 лет ал- компьютерная лексика. Слово «алго-
горитм из понятия, знакомого лишь ритм» в наши дни известно каждому.
узкому кругу специалистов, превра- Оно настолько уверенно шагнуло
тился в одно из ключевых понятий в разговорную речь, что сейчас мы не-
математики — и признанием этого редко встречаем на страницах газет,
стало включение слова не в энцикло- слышим в выступлениях политиков
педии, а в словари. Например, оно выражения вроде «алгоритм поведе-
присутствует в академическом «Сло- ния», «алгоритм успеха» или даже «ал-
варе русского языка» (1981 г.) — горитм предательства». Слово живёт, Фибоначчи.
именно как термин из области мате- обогащается всё новыми значениями
матики. и смысловыми оттенками, так что, ско-
Одновременно с развитием поня- рее всего, в словарях будущего его уже
тия алгоритма постепенно происхо- никогда не придётся снабжать помет-
дила и его экспансия из чистой мате- кой «устаревшее».
матики в другие сферы. И начало ей
положило появление компьютеров,
благодаря которому слово «алго-
ритм» обрело новую жизнь. Напри-
мер, в третьем томе «Детской энцик-
лопедии» (1959 г.) о вычислительных
машинах говорится немало, но они
всё ещё воспринимаются скорее как
некий атрибут светлого будущего, по-
этому и алгоритмы ни разу не упо-
минаются на её страницах. Но в на-
чале 70-х гг., когда компьютеры
перестали быть экзотической дико-
винкой, слово «алгоритм» стреми-
тельно входит в обиход. В «Энцикло-
педии кибернетики» (1974 г.) в статье
«Алгоритм» оно теперь связывается
с реализацией на вычислительных
машинах, а в «Военной энциклопе-
дии» (1976 г.) даже появляется отдель- Дама Арифметика ре-
шает спор абацистов
ная статья «Алгоритм решения зада- и алгорисмиков.
чи на ЭВМ». Гравюра. 1504 г.

95
ОСНОВЫ ПРОГРАММИРОВАНИЯ
ПРОСТЕЙШИЕ ПРОГРАММЫ

Любой компьютерной программе — всего выражается в передаче ей ка-


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

ввод а

приостанавливает работу програм-


мы: она ждёт неограниченно долго,

96
Основы программирования

когда пользователь введёт (напри-


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

ввод a пашку по квадратному маршруту и да-


ввод b же вычертит на экране этот квадрат,
с := (a+b)/2 если ввести угол 90°, но никакое зна- Каким будет значение
чение или сообщение в результате величины один после
После того как введены исходные работы этой программы не будет вы- выполнения следую-
данные a и b, программа вычисляет дано: щей программы:
их среднее арифметическое и раз- ввод два
мещает результат этого вычисления вводчисла : сторона ввод три
в ячейке, названной с. Команду, со- вводчисла : угол один := два + три - 4
держащую символ := , называют при- опустить перо при условии, что при
сваиванием. вперёд : сторона первой команде вво-
Программа может считаться завер- вправо : УГОЛ да пользователь на-
шённой, если её результат нужен дру- вперёд : сторона бирает на клавиатуре
гим программам (которые «знают», вправо : УГОЛ число 5, а при вто-
что нужный им результат находится вперёд : сторона рой — число 6?
в ячейке с). Но если результат нужен вправо : УГОЛ Ответ: один = 7.
пользователю, который хочет увидеть вперёд : сторона
его выведенным на экран или распе- вправо : УГОЛ
чатанным на принтере, то програм-
му нужно завершить командой выво- Несколько пояснений:
да величины с: • непосредственно перед имена-
ми величин (без пробела) в ЛОГО
ввод a принято ставить двоеточие;
ввод b • слово «числа», написанное вслед за
с := (a+b)/2 словом «ввод», необходимо для того,
вывод с чтобы программа смогла распознать,

Далеко не всегда результатом вы-


полнения программы является чис-
ловое значение или текстовое сооб-
щение, которое программа выдаёт
пользователю. Нередко выполнение
программы состоит в осуществлении
действий, изменяющих среду, в кото-
рой она работает. Такая программа
не вырабатывает и не выдаёт никаких
значений.
Например, написанная на языке
ЛОГО программа переместит Чере-

97
Алгоритмизация

вперёд 20
вправо 90
вперёд 20
вправо 90
вперёд 20
вправо 90
вперёд 20
вправо 90

Программы, в которых предусма-


тривается выработка результирующе-
го значения для последующего ис-
пользования его в других программах,
называют функциями.
Программы, которые не выраба-
тывают результирующее значение, на-
зывают процедурами.
Приведённые здесь в качестве при-
меров программы относят к простей-
что вводимая величина является чис- шим, потому что они линейны: после-
лом (существует также команда «ввод довательность команд фиксирована,
текста» для ввода текстовых значе- при каждом осуществлении програм-
ний); мы (независимо от значений исход-
• наконец, вместо предложенно- ных данных) вторая команда выпол-
го здесь способа ввода в ЛОГО обыч- няется вслед за первой, третья после
но указывают необходимые значе- второй и т. д.
ния непосредственно в команде Большинство программ устроено
(в качестве её параметров). Таким об- сложнее. В них встречаются ветвле-
разом, более привычной будет сле- ния, которые заставляют менять по-
дующая запись той же программы рядок следования команд, и циклы,
(если перемещение выполняется на которые организуют многократные
20 шагов, а поворот — на 90°): повторения отдельных групп команд.

УПРАВЛЯЮЩИЕ СТРУКТУРЫ — ВЕТВЛЕНИЯ

Простейшие программы линейны: ко- программы. Во всех языках програм-


манды данных программ выполняются мирования предусматриваются управ-
в порядке, в котором они записаны, т. е. ляющие команды, которые позволя-
последовательно друг за другом. Ино- ют менять порядок выполнения
гда такую группу последовательно вы- команд в программе. Команды, управ-
полняемых команд называют серией. ляющие порядком исполнения про-
Программирование было бы очень граммы, называют управляющими
скучным и трудоёмким занятием, ес- структурами.
ли бы существовали только линейные Существует три основных типа
управляющих структур:
• серии;
• ветвления (условные команды);
Примеры условий: a = 15, a + 1 < c, 15 = 5. Первое из них вер- • циклы (команды повторения).
но (т. е. даёт ответ «да») лишь в случае, когда величина имеет Общий вид условной команды:
значение 15. Второе условие истинно для всех a и c, при кото-
рых может выполняться неравенство a+1<c. А вот третье усло- если <условие>
вие не выполняется никогда. Говорят ещё, что такое условие тож- | то <команда-1>
дественно-ложно. | иначе <команда-2>
всё

98
Основы программирования

Подчёркиванием выделяется клю-


чевое слово языка, а в угловых скобках
указывается языковая категория, тре-
бующая конкретизации — определе-
ния или толкования.
Условие обычно имеет вид утверж-
дения, проверка которого даёт одно-
значный ответ — «да» или «нет» (0 или
1, истина или ложь).
Первая операция, которая выпол-
няется любой условной командой, —
это проверка утверждения-условия.
Его значение используется для выбо-
ра одной из двух ветвей условной ко-
манды. Ветвь, на которой стоит <коман-
да-1>, называют иногда ветвью то,
а другую ветвь — <команда-2> — вет-
вью иначе.
Например,
В языке программирования КуМир, используемом, в частнос-
a:= 10 ти, для управления учебным исполнителем Робот, предусмат-
если a > 5 риваются условия, проверяющие значения двух физических ве-
| то вывод “всё в порядке” личин, характеризующих среду, в которой работает этот
| иначе вывод “аварийная ситуация” исполнитель, — радиацию и температуру. Текущее значение
всё этих величин находится в областях памяти (ячейках), назван-
c:= a + 1 ных ключевыми словами — «радиация» и «температура». Поэто-
му в этом языке допустимы, например, такие условия: радиа-
программа выведет на экран «спокой-
ция <0,7, температура >100.
ное» сообщение, поскольку истин-
ность условия a > 5 обеспечена дей-
ствием предшествующей команды
присваивание a:= 10. Сообщение “ава- одну команду. Однако если группа ко-
рийная ситуация” при этом не выводит- манд, которые желательно выполнить
ся, так как следующая исполняемая на ветви условной команды, может
команда — присваивание — c:= a + 1. понадобиться в программе неодно-
Обычно как на ветви то, так и на ве- кратно, то рекомендуется создать
тви иначе можно задавать не только процедуру из этой группы команд
(«запроцедурить» её), и тогда на со-
ответствующей ветви выражение
< команда > записывается как вызов
процедуры, т. е. как простое упоми-
нание имени процедуры.

99
Алгоритмизация

например, команду на ветви то следу-


ет выполнять только при положитель-
ном результате проверки условия,
а в случае отрицательного результата
никаких дополнительных действий
предпринимать не нужно, то услов-
ную команду можно записать так:

a:= 1
если a < 3
| то b:= “подходящий результат”
всё
c:= 10

Здесь ветвь иначе в условной коман-


де отсутствует, а величина b получает
текстовое значение “подходящий ре-
зультат” только в том случае, если ус-
ловие истинно.
Ветви то и иначе рекомендуется Вот программа, которая даёт совет,
записывать с небольшими смеще- как выбрать одежду по погоде:
ниями вправо от соответствующего
ключевого слова если и размещать вывод “надень рубашку”
знак окончания условной команды — если t < 0
слово всё — строго под её началом | то вывод “надень шубу”
(соответствующим слову если). Эта всё
рекомендация (но не требование
языка!) связана с тем, что на месте При любой температуре она поре-
выражений < команда-1 > и < коман- комендует надеть рубашку, но в холод-
да-2 > могут записываться, в свою ный день добавит ещё один совет —
очередь, ветвления, образующие це- надеть шубу.
почки вложенных условных команд. Уже приводился пример, когда од-
В этом случае аккуратные смещения на условная команда выполнялась внут-
ветвей условных команд помогают ри другой. Случаи подобного рода
человеку, читающему программу, ра- нередки, если приходится выбирать
зобраться в самых сложных ветвле- одну из нескольких возможностей.
ниях без использования громоздких В следующем примере проекти-
и избыточных блок-схем. Вот как вы- рования программы задаётся (напри-
глядит описание программы, кото- мер, с клавиатуры) код дня недели по
рая находит максимум среди трёх таблице:
чисел a, b и c:
понедельник 1
eсли a > b вторник 2
| то среда 3
| если a > c четверг 4
| | то max:= a пятница 5
| | иначе max:= c суббота 6
| всё воскресенье 7
| иначе
| если b > c Необходимо этот код преобразо-
| | то max:= b вать в текстовое значение величины
| | иначе max:= c день.
| всё Такую программу можно записать,
всё конечно, с помощью классической ко-
манды если. Эта программа представ-
Условные команды записываются ляет собой сложную вложенную услов-
иногда и в сокращённой форме. Если, ную команду.

100
Основы программирования

ввод код С помощью команды выбор наша


если код = 1 программа записывается короче и на-
| то день:= “понедельник” гляднее:
| иначе
| если код = 2 выбор
| | то день:= “вторник” | при код = 1: день:= “понедельник“
| | иначе | при код = 2: день:= “вторник“
| | если код = 3 | при код = 3: день:= “среда“
| | | то день:= “среда” | при код = 4: день:= “четверг“
| | | иначе | при код = 5: день:= “пятница“
| | | если код = 4 | при код = 6: день:= “суббота“
| | | | то день:= “четверг“ | при код = 7: день:= “воскресенье“
| | | | иначе | иначе вывод “ошибка кода“
| | | | если код = 5 всё
| | | | | то день:= “пятница”
| | | | | иначе При проектировании программы
| | | | | если код = 6 со сложными условиями следует про-
| | | | | | то день:= “суббота” являть внимательность: быть может,
| | | | | | иначе всё решается гораздо проще, чем ка-
| | | | | | если код = 7 жется вначале. Представим себе тест,
| | | | | | | то день:= “воскресенье” где компьютер должен распознать
| | | | | | | иначе вывод “ошибка кода” один из четырёх предложенных от-
| | | | | | всё ветов. Ответы закодированы числа-
| | | | | всё ми 1, 2, 3 и 4. Именно одно из этих
| | | | всё чисел программа ожидает от поль-
| | | всё зователя, вводящего с клавиатуры
| | всё значение после команды ввод. Пред-
| всё положим, что правильным в рассма-
всё триваемом тесте оказывается ответ,
закодированный числом 3. При всей
Однако подобные ситуации столь внешней схожести этой задачи с ко-
часты в программировании, что ряд дированием дней недели она реша-
языков предусматривает специальные ется существенно проще:
условные команды, позволяющие вы-
бирать одну ветвь из нескольких воз- ввод код
можных. если код = 3
| то вывод “ответ верный“
| иначе вывод “вы не правы“
всё

101
Алгоритмизация

УПРАВЛЯЮЩИЕ СТРУКТУРЫ — ЦИКЛЫ

как и условие команды ветвления. Ус-


ловие — это утверждение, требующее
проверки, в результате которой мо-
жет быть получен единственный из
двух возможных ответов — «да» или
«нет» (0 или 1, истина или ложь). На-
пример, утверждение-условие a < 10
истинно при значениях a, равных 0,
3, 7 и ложно при a, равных 12, 100,
105.
Группа (серия) команд, выполняе-
мых при каждом повторении цикла,
образует тело цикла. В нём могут при-
сутствовать и другие управляющие
Для выполнения многократно повто- структуры — команды ветвления и по-
ряющихся операций в языках про- вторения. Если в теле одного цикла ра-
граммирования существуют команды ботает другой цикл, такие команды по-
повторения, или циклы. вторения называют вложенными.
В языках программирования встре- Границы тела цикла отмечаются скоб-
чается четыре типа циклов (записы- ками. Например, в языке программи-
ваемых иногда в разной форме), рования КуМир открывающая скобка,
но в каждом из них присутствуют обя- или начало цикла, — это ключевое сло-
зательные элементы: во нц, закрывающая скобка, или конец
• заголовок цикла; цикла, — слово кц.
• условие завершения цикла; Наконец, элемент, который может
• тело цикла; отсутствовать в некоторых типах цик-
• счётчик числа повторений. лов, — это счётчик числа повторений,
Заголовком служит ключевое сло- часто оказывающий хорошую служ-
во, отмечающее начало команды по- бу программисту или пользователю,
вторения. Для каждого типа циклов когда важно зафиксировать число тре-
в качестве заголовка используется своё буемых повторений.
ключевое слово. Итак, четыре типа циклов, исполь-
Условие завершения цикла запи- зуемые в языках программирования:
сывается обычно в такой же форме, • циклы с фиксированным числом
повторений;
• циклы с предусловием;
• циклы с постусловием;
• циклы с задаваемым шагом из-
менения переменной цикла.
Наиболее простыми считаются
циклы с фиксированным числом по-
вторений. Их общий вид:

нц <выражение> раз
| <серия>
кц

По такой команде сначала опреде-


ляется числовое значение арифмети-
ческого выражения <выражение> (оно
должно быть целым), а затем найден-
ное значение n служит для фиксации
числа повторений. Таким образом, хо-
тя в этом типе циклов условие завер-

102
Основы программирования

шения формально отсутствует, его такого цикла? Для этого есть две воз-
участие в выполнении команды оче- можности:
видно: цикл завершается, как только • если группа команд, которые же-
неявно формируемое и увеличиваю- лательно выполнить в теле команды
щееся на единицу при каждом повто- повторения, может понадобиться
рении тела цикла значение счётчика в программе неоднократно, то реко-
сравняется с n. Так, цикл мендуется создать процедуру из этой
группы команд, и тогда на соответст-
a:= 10 вующей ветви выражение <команда>
b:= 12 записать как вызов процедуры. Вот как
i:= 1 Кукарача решает задачу спуска вниз
s:= 0 по лесенке:
нц a + b раз
| s:= s + m [i] ЭТО СПУСК
| i:= i+1 ПОВТОРИ 9 ЛЕСЕНКА
кц КОНЕЦ
ЭТО ЛЕСЕНКА
суммирует первые 22 значения мас- ВПРАВО
сива m, от m[1] до m[22]. ВНИЗ
В языке управления исполнителем КОНЕЦ
Кукарача, где в качестве тела цикла
<серия> допускается единственная ко-
манда, цикл с фиксированным числом
повторений выглядит совсем просто:

ПОВТОРИ n <команда>

Так, заставить погулять Кукарачу,


который понимает и умеет выполнять
четыре команды — ВВЕРХ, ВНИЗ, ВЛЕВО
и ВПРАВО, перемещаясь при их выпол-
нении на одну ячейку в заданном на-
правлении по квадратному полю раз-
мером 10 × 10, можно с помощью всего
четырёх команд:

ПОВТОРИ 9 ВПРАВО
ПОВТОРИ 9 ВНИЗ
ПОВТОРИ 9 ВЛЕВО
ПОВТОРИ 9 ВВЕРХ

Как же быть, если потребуется вы-


полнение нескольких команд в теле

103
Алгоритмизация

• если такая группа используется в теле цикла происходит изменение


однократно, в теле команды цикла, значения той переменной, которая
то тогда можно и не прибегать к за- фигурирует в условии. Если условие
процедуриванию, а заключить группу постоянно истинно, то цикл становит-
в фигурные скобки {} (по существу, те ся бесконечным, если, наоборот, ус-
же нц и кц); все команды, окаймлённые ловие изначально ложно, то тело не
открывающей и закрывающей скоб- выполнится ни разу, а управление пе-
ками, воспринимаются компьютером рейдёт к команде, записанной вслед
как единая команда: за циклом.
Задачу, поставленную в программе,
ЭТО СПУСК суммирующей первые 22 значения спи-
ПОВТОРИ 9 ска m, от m[1] до m[22], можно решить
{ и с помощью цикла с предусловием:
ВПРАВО
ВНИЗ a:= 10
} b:= 12
КОНЕЦ i:= 1
s:= 0
В цикле с предусловием число по- нц пока i < a + b
вторений тела не всегда легко опре- | s:= s + m [i]
делить заранее. Да в этом и нет необ- | i:= i+1
ходимости — завершение цикла кц
отслеживается условием, которое за- Цикл с постусловием имеет следу-
писывают в заголовке цикла: ющий вид:

нц пока <условие> нц
| <тело цикла> | <тело цикла>
кц кц при <условие>

Такая команда начинается с про- Он отличается от предыдущего тем,


верки условия. Если оно истинно, что условие проверяется не перед на-
то выполняется тело цикла и вновь чалом тела, а в конце повторяемой се-
проверяется условие — до тех пор рии. Это означает, что в любом случае
пока оно не перестанет быть истин- (независимо от условия) тело цикла
ным. Это последнее условие и явля- будет выполнено, по крайней мере,
ется признаком завершения команды один раз. Вариант программы с цик-
повторения. Такая последователь- лом с предусловием, записанный в ви-
ность операций предполагает, что де цикла с постусловием, имеет вид:

a:= 10
b:= 12
i:= 1
s:= 0
нц
| s:= s + m [i]
| i:= i + 1
кц при i < a + b

В циклах с задаваемым шагом из-


менения переменной цикла появля-
ется ещё два понятия — переменная
цикла и шаг её изменения при каж-
дом повторении тела. В таком цикле
нет необходимости устанавливать на-
чальное значение счётчика (или, как
говорят, инициализировать значение
этой переменной), поскольку и на-

104
Основы программирования

чальное, и конечное значения этой


переменной и шаг её изменения мо-
гут быть заданы в команде повторе-
ния, имеющей такой вид:

нц для <переменная> от <выражение-1>


| до <выражение-2>
| [шаг <выражение-3>]
| <тело цикла>
кц

Вообще говоря, переменная цик-


ла совсем не обязательно должна сов-
падать со счётчиком. Однако в таком
виде переменную цикла используют
чаще всего. В общем представлении
этого цикла элемент заголовка связана с тем, что в теле цикла могут
окаймлён квадратными скобками. встречаться, в свою очередь, циклы
Это означает, что данных элементов и ветвления, образуя цепочки вложен-
в конкретном представлении коман- ных управляющих структур. В этом слу-
ды может и не быть. Так, отсутствие чае аккуратные смещения команд по-
элемента шага <выражение-3> застав- вторения и условных команд помогают
ляет команду повторения менять зна- человеку, читающему программу, ра-
чение цикла при каждом выполне- зобраться в самых сложных ветвлени-
нии тела на 1. Тем самым значение ях без использования громоздких и из-
выражения <выражение-3> по умолча- быточных блок-схем.
нию предполагается равным 1. Цикл Если вооружить математика каран-
с задаваемым шагом в нашем про- дашом и бумагой и попросить его ре-
стом примере записывается так: шить две задачи, одна из которых —
вычисление сложного интеграла,
a:= 10 а вторая — сложение трёх сотен чи-
b:= 12 сел, то результат получится удиви-
s:= 0 тельный: первую задачу математик,
нц для i от 1 до a + b конечно, решит, а во второй почти
| s:= s + m [i] наверняка допустит ошибку. Хотя
кц каждое отдельное сложение без тру-
да выполнит даже младший школь-
Здесь переменной цикла объявле- ник. Поэтому если математику при-
на величина i. Необходимости в из- дётся делать выбор, какую из этих
менении счётчика в теле цикла нет, двух задач он предпочёл бы решать,
так как команда i:= i+ 1 предполагает- то, без сомнения, он остановится на
ся определением цикла (единица в ка- первой: со сложной задачей иметь
честве шага изменения в этом приме- дело интереснее, она соответст-
ре принята по умолчанию). вует его интеллекту. А вторая
Последний тип цикла наиболее
компактен. Если же учесть, что на ме-
сте элементов <выражение-1>, <выраже-
ние-2> и <выражение-3> можно записы-
вать сложные формулы, то становятся
очевидными широкие возможности
этого типа команды повторения.
Заметим, что во всех записях при-
меров программ с командами повто-
рения тело цикла смещено вправо
относительно команд нц и кц, располо-
женных на одной вертикали. Эта реко-
мендация (но не требование языка!)

105
Алгоритмизация

задача — это скучная, но тем не ме- ница человеческих и машинных воз-


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

МАССИВЫ

Одна из фундаментальных структур ных по четырём забегам, в каждом из


данных, применяемых в информати- которых по семь бегунов).
ке, — массивы. Это понятие часто Описания данных таблиц (в соот-
встречается и в иных, синонимичных ветствии с правилами языка КуМир)
терминах — «векторы», «матрицы» построены следующим образом:
и др. Например, язык программиро- 1) сначала указывается тип эле-
вания КуМир (используемый здесь для ментов, образующих таблицу; первая
иллюстрирования различных меха- таблица составлена вещественными
низмов программирования) опери- числами (вещ), вторая — литерными
рует термином «таблица» или «таб- величинами (лит);
личные величины», т. е. конечные 2) затем следует тип табличной ве-
упорядоченные совокупности одно- личины — ключевое слово таб;
типных элементов. 3) далее задаётся имя описыва-
Вот примеры массивов-таблиц: емой табличной величины (зарплата,
1) вещ таб зарплата [1:20] забег, кросс);
(табличная величина названа зарпла- 4) завершает описание конструк-
та, её элементы — 20 вещественных ция, определяющая размеры табли-
чисел); цы.
2) лит таб забег [1:7] Поскольку таблица относится к со-
(в таблицу забег входит семь элемен- ставным (а не простым) структурам
тов — текстовых, или литерных, вели- данных, то именно конструкция, за-
чин; в ней собраны фамилии участ- дающая размеры таблицы, является
ников легкоатлетического забега); специфической в её описании. В квад-
3) лит таб кросс [1:4, 1:7] ратных скобках дана пара целых чи-
(таблица кросс состоит из четырёх сел, разделённых двоеточием. Пер-
строк и семи столбцов; в ней перечис- вое число в этой паре указывает
лены фамилии всех участников лег- номер первого элемента таблицы,
коатлетического кросса, распределён- второе — номер её последнего эле-
мента (предполагается последова-
тельная порядковая нумерация). Это
означает, что если первый элемент
в паре является единицей, то её вто-
рой элемент выражает число элемен-
тов в таблице. Так обстоит дело в пер-
вых двух приведённых примерах:
в таблице зарплата — 20 элементов,
в таблице забег — 7.
Указанные таблицы — линейные,
или одномерные. Этот факт отражён
тем, что в квадратных скобках указа-
на только одна пара целых чисел. Но-
мер элемента в линейной таблице на-
зывается его индексом.

106
Основы программирования

Например, таблица забег имеет вид: соких размерностей. Чтобы указать


элемент таблицы, имеющей размер-
лит таб забег [1:7] ность n, надо использовать не один
индекс, а n — по значению размерно-
Значения Индексы сти. Так, в двухмерной таблице кросс
элементов элементов
Кошкин 1 кросс [3, 1] = «Иванов»,
Мышкин 2 кросс [2, 4] = «Залкинд»,
кросс [4, 5] = «Лосев».
Блошкин 3
Плошкин 4 Поскольку каждый элемент одно-
Мошкин 5 значно в ней распознаётся с помощью
индексов, то над элементами табли-
Ложкин 6 цы допустимы все операции, приме-
Рожкин 7 няемые к величинам соответствую-
щего типа. Например, по команде
Фамилия Мошкин — это значение
5-го элемента таблицы забег. С помо- зарплата [17]:= зарплата [1] + зарплата [3]
щью индекса этот факт записывается
так: компьютер выберет из таблицы зар-
плата два числа — зарплата [1] и зар-
забег [5] = «Мошкин» плата [3], сложит их и результат при-
своит элементу этой же таблицы
А вот таблица кросс — двухмерная: с индексом 17, а по команде
в ней четыре строки, и в каждой —
семь элементов. Эти параметры лег- вывод кросс [4, 7]
ко прочитываются в двух парах целых
чисел, стоящих в квадратных скобках напечатает слово — Зайцев.
после имени таблицы кросс. Анало- Упорядоченность элементов таб-
гичным образом описываются трёх- лицы позволяет эффективно осуще-
мерные таблицы и таблицы более вы- ствлять групповые операции. Вот как

лит таб кросс [1:4, 1:7]

Кошкин Мышкин Блошкин Плошкин Мошкин Ложкин Рожкин


Галкин Палкин Ёлкин Залкинд Чалкин Салкин Малкин
Иванов Петров Сидоров Семёнов Кузьмин Фомин Егоров
Волков Бобров Лисицын Енотов Лосев Сурков Зайцев
1 2 3 4 5 6 7

107
Алгоритмизация

можно, воспользовавшись циклом, вы- алг повышение


полнить увеличение сразу для всех (рез вещ зарплата [1:n])
элементов таблицы зарплата на 9 %: нач цел i
| нц для i от 1 до n
алг увелич | | зарплата [i]:= зарплата [i] * 1.09
(арг рез вещ зарплата [1:20]) | кц
нач цел i кон
| нц для i от 1 до 20
| | зарплата [i]:= зарплата [i]*1.09 Таблицы удобны при поиске среди
| кц множества элементов по заданным
кон признакам, при определении наиболь-
ших и наименьших значений, в разно-
Здесь i — имя величины целого ти- образных сортировках.
па (управляющая переменная цикла), Пример: найти в упорядоченном
которая в этом примере увеличивает- множестве числовых положительных
ся на 1 при каждом выполнении тела элементов, т. е. в таблице, наибольший
цикла от 1 до 20. Таблица зарплата яв- элемент и его индекс — номер в этом
ляется в этом алгоритме одновремен- множестве.
но и аргументом, и результатом.
В описанных выше трёх примерах алг максимум
таблицы имели фиксированное число (арг вещ зарплата[1:n],
элементов. Вместе с тем лучше исполь- рез вещ мак, цел инд)
зовать в качестве этих количествен- нач цел i; мак:= 0; инд:= 1
ных значений переменные величины. | нц для i от 1 до n
Если, например, в описании таблицы | | если зарплата [i] > мак
зарплата указать не фиксированные | | | то мак:= зарплата [i]; инд := i
ограничения, а поставить после дво- | | всё
еточия целую переменную n, то такую | кц
таблицу можно применить в алгорит- кон
ме при любом числе элементов:

СТРУКТУРЫ ДАННЫХ

«Алгоритмы + структуры данных = про- МАССИВ КАК


граммы» — так называется книга Ник-
лауса Вирта, известного швейцарско- БАЗОВАЯ СТРУКТУРА
го специалиста по программированию,
блестящего педагога, автора языков Как известно, две главные составные
программирования Pascal, Modula-2, части компьютера — это процессор
Oberon. Обе составляющие програм- и оперативная память. Оперативная
мы, обозначенные Виртом, в равной память компьютера состоит из эле-
степени важны. Не только несовершен- ментов, каждый из которых имеет
ный алгоритм, но и неудачная органи- свой адрес. В современных компью-
зация работы с данными может приве- терах минимальным адресуемым эле-
сти к замедлению работы программы ментом является байт. Важно также
в десятки, а иногда и в миллионы раз. понятие машинного слова — это не-
С другой стороны, владение теорией сколько подряд идущих байтов, обо-
программирования и умение система- значающих одно целое число. Разряд-
тически применять её на практике поз- ность машинного слова (количество
воляют разрабатывать эффективные битов) в современных процессорах
и в то же время красивые программы. составляет 32 или 64 бит, соответст-
Искусство работы с данными является венно машинное слово включает 4
важнейшей составляющей искусства или 8 байт. Процессор все действия
Никлаус Вирт. программирования. производит со словами (машинное

108
Основы программирования

слово — наиболее естественный эле-


мент данных для процессора). Адресом
машинного слова является наимень-
ший из адресов байтов, составляю-
щих его. Таким образом, адреса ма-
шинных слов кратны четырём или
восьми в зависимости от разряднос-
ти процессора.
Оперативная память, с точки зре-
ния программиста, — это массив эле-
ментов. Каждый элемент массива
имеет свой адрес, который обычно
называют индексом. Любой элемент
можно прочитать или записать мгно- осуществляется исключительно бы-
венно, за одно элементарное дейст- стро, они доступны без каких-либо
вие. Структуры данных, в которых предварительных действий.
непосредственный доступ возможен Тем не менее одних массивов
к любым их элементам, называют недостаточно для написания эффек-
структурами данных с прямым, или тивных программ. Большинство ре-
произвольным, доступом (англ. ran- альных задач требует более сложной
dom access). Примером такой струк- организации работы с данными.
туры является массив (или, как его Массивы выступают лишь в роли ба-
ещё называют, таблица). Структуры зовых элементов, из которых стро-
данных, в которых непосредствен- ятся более сложные структуры.
ный доступ возможен лишь к одно- В качестве примера можно рас-
му или нескольким элементам (для смотреть библиотеку. С точки зре-
доступа к остальным элементам на- ния программирования библиоте-
до произвести дополнительные дей- ка — это структура данных для
ствия), называются структурами по- работы с книгами. Стеллажи в биб-
следовательного доступа. Бытовым лиотеке с пронумерованными пол-
примером такой структуры являет- ками являются аналогом массива. Ро-
ся магнитофонная кассета, на кото- ли элементов этого массива играют
рой записаны песни. В любой мо- книги на полках, роли индексов —
мент времени можно слушать лишь номера полок. Но библиотека — это
одну песню. Чтобы добраться до не только набор стеллажей. Её струк-
иных музыкальных фрагментов, на- тура включает каталоги (алфавит-
до перемотать ленту в ту или другую ный и систематический). Существу-
сторону. ют также системы доставки запросов
Третья важнейшая составляющая в книгохранилище (например, пнев-
компьютера — магнитный диск с ло- матическую почту) и доставки книг
гической точки зрения также явля- читателям, наконец, персонал биб-
ется массивом. Элементарной еди- лиотеки, выполняющий запросы
ницей чтения и записи для него читателей, а также осуществля-
является блок. Размер блока зависит ющий хранение и пополнение
от конструкции конкретного диска, библиотечного фонда.
обычно он кратен числу 512. За од-
ну элементарную операцию можно
прочесть или записать один блок
с заданным адресом.
Итак, наиболее важные запоми-
нающие устройства компьютера —
оперативная память и магнитный
диск представляют собой массивы.
Массив для программиста — это не-
кая данность, так же как, например,
для математика данность — целые
числа. Работа с элементами массива

109
Алгоритмизация

ПРОСТЕЙШИЕ рую всегда можно при желании поки-


СТРУКТУРЫ ДАННЫХ нуть, в программе из середины оче-
реди удалять элементы нельзя.
Очередь можно представить в виде
Наиболее важными из простейших трубки. В один конец трубки (конец
структур данных являются стек и оче- очереди) добавляются шарики — эле-
редь. Эти структуры встречаются в про- менты очереди, из другого конца (на-
граммировании буквально на каждом чало очереди) они извлекаются. Эле-
шагу, в самых разнообразных случа- менты в середине очереди, т. е. шарики
ях. Особенно интересен стек, который внутри трубки, недоступны. Таким об-
может иметь весьма неожиданные разом, концы трубки несимметричны,
применения. При разработке серии шарики внутри неё движутся только
компьютеров IBM 360 в начале 70-х гг. в одном направлении.
XX в. фирма IBM совершила драмати- Если продолжить аналогию с труб-
ческую ошибку, не предусмотрев ап- кой, то ясно, что в принципе можно
паратную реализацию стека. Эта серия добавлять элементы в оба её конца
содержала много других неудачных и забирать их также из обоих концов.
решений, но, к сожалению, была ско- Подобная структура данных в про-
пирована в Советском Союзе под на- граммировании тоже существует, её
званием ЕС ЭВМ («Единая серия»). название — «дек» (от англ. Double Ended
Queue — «очередь с двумя концами»),
но используется она значительно ре-
же, чем очередь.
Роль очереди в программирова-
нии почти соответствует её роли
в обыденной жизни. Очередь практи-
чески всегда связана с обслуживани-
ем запросов в тех случаях, когда они
не могут быть выполнены сразу. На-
пример, когда человек, набирая текст,
нажимает клавишу на клавиатуре (т. е.
Машина серии просит машину выполнить какое-то
ЕС ЭВМ 1022. действие), то действие компьютера
состоит в добавлении к тексту одно-
го символа или же перерисовке обла-
ОЧЕРЕДЬ сти экрана, прокрутке окна, перефор-
матировании абзаца и т. п.
Очередь в программировании анало- Любая, даже самая простая, опера-
гична очереди в повседневной жиз- ционная система всегда в той или
ни. Она содержит элементы, как бы иной степени многозадачна. Это зна-
выстроенные друг за другом в цепоч- чит, что в момент нажатия пользова-
ку. У очереди есть начало и конец. телем клавиши операционная систе-
В отличие от обычной очереди, кото- ма может быть занята какой-либо
другой работой. Тем не менее опера-
ционная система ни в коем случае
не имеет права проигнорировать
команду пользователя. Поэтому при
нажатии клавиши на какое-то время
прекращается выполнение предыду-
щей задачи. Машина запоминает те-
кущий момент в работе и переключа-
ется на обслуживание запроса. Эта
операция должна быть очень корот-
кой, чтобы не нарушилось выполне-
ние других задач. Поэтому команда,
отдаваемая нажатием на клавишу, про-
сто добавляется в конец очереди за-

110
Основы программирования

просов, ждущих выполнения. После


этого компьютер возвращается к той
работе, которая была прервана нажа-
тием на клавишу. Запрос, поставлен-
ный в очередь, будет выполнен не сра-
зу, а только когда наступит его черёд.
Каждая программа имеет свою оче-
редь запросов. По мере продвижения
в работе она считывает очередной за-
прос из начала очереди и выполняет
его. Очередь поддерживается опера-
ционной системой.
Подход, состоящий не в прямом
запуске нужных процедур, а в посыл-
ке сообщений, которые добавляют- лизации. Вообще, все реализации
ся в очередь запросов, имеет много структур данных делятся на два клас-
преимуществ и является одной из са — непрерывные и ссылочные. В не-
характеристик объектно-ориенти- прерывных реализациях элементы
рованного программирования, ши- структуры данных хранятся в масси-
роко распространившегося на рубе- ве подряд, без промежутков, занимая
же XX—XXI вв. Например, если таким образом непрерывную часть
программе нужно завершить свою массива. В ссылочных, или списковых,
работу по какой-либо причине, она реализациях элементы структуры дан-
не вызывает сразу команду заверше- ных хранятся в хаотическом порядке,
ния, которая опасна, потому что на- в массиве или непосредственно в
рушает логику работы и может при- динамической оперативной памяти,
вести к потере данных. Вместо этого которую программисты называют «ку-
программа посылает самой себе со- чей». При этом вместе с каждым эле-
общение о необходимости заверше- ментом хранятся ссылки на соседние
ния работы, которое ставится в оче- элементы. В случае списка таких ссы-
редь запросов и выполняется после лок может быть две (на следующий
запросов, поступивших ранее. и предыдущий) или одна (ссылка на
следующий элемент). Элементы спи-
ска как бы образуют связную цепоч-
РЕАЛИЗАЦИЯ ОЧЕРЕДИ ку, и чтобы добраться до элементов
в середине списка, нужно пройти по
НА БАЗЕ МАССИВА этой цепочке, начиная с её первого
элемента.
Если принять массив как изначальную В случае очереди наиболее попу-
данность, все остальные структуры лярны две реализации — непрерывная
данных должны реализовываться на на базе массива, которую называют
его базе. Реализация одной структу- также реализацией на базе кольцево-
ры данных на основе другой — это го буфера, и ссылочная реализация,
описание её работы в терминах. Реа- или реализация на базе списка.
лизация обязательно включает в себя При непрерывной реализации очере-
описание «идеи реализации» (т. е. то- ди в качестве базы выступает массив
го, как хранить элементы реализуе- фиксированной длины N, таким об-
мой структуры в базовой структуре, разом очередь ограничена и не может
какие дополнительные переменные содержать более N элементов. Индек-
нужны) и набор подпрограмм, каждая сы элементов массива изменяются
из которых моделирует определён- в пределах от 0 до N–1. Кроме масси-
ное предписание реализуемой струк- ва реализация очереди содержит три
туры при помощи предписаний базо- простые переменные: индекс начала
вой структуры. очереди, индекс конца очереди, чис-
Реализация может быть многоэтап- ло элементов очереди. Элементы оче-
ной, а массив не всегда выступает в ка- реди хранятся в отрезке массива от
честве непосредственной базы реа- индекса начала до индекса конца.

111
Алгоритмизация

0 1 N–1 ляет собой запоминающее устрой-


ство, из которого элементы извлека-
ются в порядке, обратном их добав-
лению. Это как бы неправильная
очередь, в которой первым обслужи-
Индекс начала Индекс конца вают того, кто встал в неё последним.
очереди очереди В литературе по программированию
общепринятыми являются аббреви-
При добавлении нового элемента атуры, обозначающие порядок рабо-
в конец очереди индекс конца снача- ты очереди и стека. Порядок работы
ла увеличивается на единицу, а затем очереди — FIFO, что означает «пер-
новый элемент записывается в ячей- вым пришёл — первым уйдёшь»
ку массива с этим индексом. Анало- (англ. First In First Out). Порядок ра-
гично при извлечении элемента из боты стека — LIFO, «первым при-
начала очереди ячейка массива с ин- шёл — последним уйдёшь» (англ. Last
дексом начала очереди запоминает- In First Out).
ся в качестве результата операции, Примером стека может служить
а затем индекс начала очереди увели- стопка бумаг на столе или стопка та-
чивается на единицу. релок. Само слово «стек» так и пере-
Ключевая идея реализации очере- водится с английского — «стопка». Та-
ди состоит в том, что массив как бы релки берутся в порядке, обратном
замыкается в кольцо. За последним их добавлению. Доступна только
элементом массива следует его пер- верхняя тарелка, т. е. тарелка «навер-
вый элемент (напомним, что послед- ху» стека.
ний элемент имеет индекс N–1, а пер-
вый — индекс 0). При сдвиге индекса
Вершина
конца очереди вправо в случае, когда
стека
он указывает на последний элемент
массива, он переходит на первый эле-
мент массива.
0 1 N–1

Дно
стека

Индекс конца Индекс начала


очереди очереди

Пружина

СТЕК
Стек легко представить в виде рас-
Стек — самая популярная и, пожалуй, положенной вертикально трубки
самая важная структура данных с пружинным дном. Верхний конец
в программировании. Стек представ- трубки открыт, и в него можно до-
бавлять элементы. Каждый новый
элемент проталкивает на одну пози-
цию вниз элементы, помещённые
в стек ранее. При извлечении эле-
мента из стека все остальные как бы
выталкиваются вверх. (Общеприня-
тые английские термины здесь очень
выразительны: операция добавления
элемента в стек обозначается словом
push — «затолкнуть», «запихнуть»,
а операция удаления словом pop —
«выстреливать».) Пример стека — ма-
газин карабина.

112
Основы программирования

ИСПОЛЬЗОВАНИЕ СТЕКА
В ПРОГРАММИРОВАНИИ

Стек используется чрезвычайно ча-


сто, причём в самых разных ситуа-
циях. Объединяет их общая цель: тре-
бование запомнить текущий момент
в работе, которая ещё не выполнена
до конца, при необходимости пере-
ключения на другую задачу. Почему
именно стек используется для «замо-
раживания» прерванного задания?
Предположим, компьютер выполня-
ет задачу A. В процессе её выполне-
ния возникает необходимость сде- работу с того места, где она была пре-
лать задачу B. Текущий момент рвана обращением к самой себе.
решения задачи A запоминается, При этом не приходится специ-
и компьютер переходит к выполне- ально сохранять в стеке значения ло-
нию задачи B. Но и здесь компьютер кальных переменных подпрограммы,
может переключиться на задачу C, так как это происходит автоматиче-
и нужно будет запомнить состояние ски: в самом начале работы подпро-
задачи B, прежде чем перейти грамма захватывает место в аппа-
к C. Позже, когда задача С окажется ратном стеке под свои локальные
выполненной, сначала будет восста- переменные — этот блок памяти на-
новлен текущий момент задачи B, зывают обычно «блок локальных пе-
затем, по окончании B, — текущий ременных подпрограммы» (англ.
момент задачи A. Таким образом, вос- frame — «кадр»). В момент окончания
становление происходит в последо- работы подпрограмма освобождает
вательности, обратной запомина- память, удаляя из стека блок своих
нию, что соответствует порядку локальных переменных.
работы стека. Кроме локальных переменных
Стек позволяет организовать ре- в аппаратном стеке сохраняются ад-
курсию, т. е. обращение подпрограм- реса возврата при вызовах подпро-
мы к самой себе либо непосредст- грамм. Предположим, в какой-то
венно, либо через цепочку других точке программы A вызывается под-
вызовов. Пусть, например, подпро- программа B. Перед её вызовом адрес
грамма A выполняет алгоритм, зави- инструкции, следующей за инструк-
сящий от входного параметра X и, воз- цией вызова B, сохраняется в стеке.
можно, от состояния общих данных. Это так называемый адрес возврата
Для самых простых значений X алго- в программу A. По окончании работы
ритм реализуется непосредственно.
В случае более сложных значений X
алгоритм осуществляется через при-
менение того же алгоритма для более
простых значений X. При этом под-
программа A обращается сама к себе,
передавая в качестве нужного па-
раметра более простое значение X.
В этом случае подпрограмма A пере-
ключается на новый набор перемен-
ных, не уничтожая предыдущего на-
бора, который сохраняется в стеке.
По окончании этих промежуточных
действий начальное значение вход-
ного параметра X восстанавливается
из стека и подпрограмма продолжает

113
Алгоритмизация

такую память статической, оттого что


статические переменные занимают
всегда одно и то же место в любой мо-
мент работы программы. При исполь-
Y
зовании только этой памяти рекурсия
A невозможна, поскольку при каждом
G
D
новом вызове разрушаются предыду-
щие значения локальных переменных.
K

РЕАЛИЗАЦИЯ СТЕКА
НА БАЗЕ МАССИВА

Реализация стека на базе массива яв-


ляется «классикой» программирова-
ния. Иногда даже само понятие стека
неправильно отождествляется с этой
реализацией.
Базой реализации является массив
подпрограмма B извлекает из стека размера N, т. е. реализован может быть
адрес возврата в программу A и пере- стек ограниченного размера, макси-
Современный стан- даёт управление по этому адресу. Та- мальная глубина которого не превы-
дарт FORTRAN 90 ким образом, компьютер продолжа- шает параметра N. Индексы ячеек
уже вводит стековую ет выполнение программы A, начиная массива изменяются от 0 до N –1. Эле-
память, устраняя не- с инструкции, следующей за инструк- менты стека хранятся в массиве следу-
достатки ранних вер- цией вызова. В большинстве процес- ющим образом: элемент на дне стека
сий языка. соров имеются специальные команды, располагается в начале массива, т. е.
поддерживающие вызов подпрограм- в ячейке с индексом 0. Элемент, распо-
мы с предварительным помещением ложенный над самым нижним элемен-
адреса возврата в стек, а также возврат том стека, хранится в ячейке с индек-
из подпрограммы по адресу, извлека- сом 1 и т. д. Вершина стека расположена
емому из стека. Обычно команда вы- где-то в середине массива. Индекс эле-
зова обозначается словом call, коман- мента на вершине стека обозначается
да возврата — словом return. специальной переменной, которую
В стек помещаются также парамет- обычно называют указателем стека
ры подпрограммы или функции перед (англ. Stack Pointer, или SP).
её вызовом. Порядок их помещения Когда стек пуст, его указатель име-
в стек зависит от соглашений, приня- ет значение –1. При добавлении эле-
тых в компиляторах языков высокого мента в стек указатель сначала увели-
уровня. Так, в языке С или C++ наверху чивается на единицу, затем в ячейку
стека лежит первый аргумент функции, массива с индексом, содержащемся
под ним второй и т. д. В языке Pascal всё в указателе стека, записывается добав-
наоборот — наверху стека лежит по- ляемый элемент. При извлечении эле-
следний аргумент функции. мента из стека содержимое ячейки
В FORTRAN IV (одном из самых ста- массива с индексом, обозначенным
рых и удачных языков программиро- в указателе стека, запоминается во вре-
вания) аргументы передавались через менной переменной в качестве резуль-
специальную область памяти, которая тата операции, затем указатель стека
располагалась не в стеке, поскольку уменьшается на единицу. В описанной
в 60—70-х гг. XX в. ещё существовали реализации стек растёт в сторону уве-
компьютеры (например, IBM 360 или личения индексов ячеек массива.
ЕС ЭВМ) без аппаратной реализации
стека. Точно так же адреса возврата со- 0 1 Вершина стека N–1
хранялись не в стеке, а в фиксирован-
ных для каждой подпрограммы ячей-
ках памяти. Программисты называют

114
Основы программирования

Часто используется и другой ва- SP (Stack Pointer). Регистр PC содер-


риант реализации стека на базе век- жит адрес машинной команды (ин-
тора, когда дно стека помещается струкции), которая будет выполнять-
в последнюю ячейку массива, т. е. ся на следующем шаге. Регистр SP
в ячейку с индексом N–1. Элементы содержит текущий адрес вершины
стека занимают непрерывный отре- стека. Аппаратная реализация стека
зок массива, начиная с ячейки, ин- совпадает с вариантом реализации
декс которой хранится в SP, и закан- стека на базе массива, в котором стек
чивая последней ячейкой массива. растёт в сторону уменьшения индек-
В этом варианте стек растёт в сторо- сов ячеек массива.
ну уменьшения индексов. Если стек
пуст, то его указатель имеет значе- 0
ние N.
2

0 1 Вершина стека N–1 4

Вершина стека SP
Элементы
стека

АППАРАТНАЯ АППАРАТНЫЙ СТЕК


РЕАЛИЗАЦИЯ СТЕКА И ЛОКАЛЬНЫЕ
ПЕРЕМЕННЫЕ
Строго говоря, в компьютере нет ни-
какого аппаратного стека. Есть толь- ПОДПРОГРАММЫ
ко оперативная память, которую
можно рассматривать либо как мас- Аппаратный стек — это просто об-
сив байтов, либо как массив машин- ласть оперативной памяти плюс ре-
ных слов. Аппаратный стек реализу- гистр SP, который хранит адрес вер- На использовании
ется на базе оперативной памяти. шины стека. В аппаратном стеке нитей основана рабо-
Машинное слово вмещает в себя можно размещать обычные перемен- та графических при-
адрес ячейки памяти, например, ные программы. Размещение локаль- ложений в системе
в 32-разрядной архитектуре адреса ных переменных в стеке обладает ря- Microsoft Windows.
байтов могут изменяться от 0 до дом серьёзнейших преимуществ по
232–1. Адреса машинных слов крат- сравнению со статическим размеще-
ны четырём и принимают значения нием переменных в фиксированных
0, 4, 8, ... , 232–4. ячейках оперативной памяти — напри-
Кроме оперативной памяти про- мер, это позволяет организовывать
цессор имеет свою внутреннюю, рекурсию. В современных архитекту-
очень быструю память, которую на- рах весьма важное значение имеет
зывают регистрами процессора. Сре- поддержка параллельных процессов,
ди них есть регистры общего назна- работающих над общими статичес-
чения, хранящие целые числа или кими переменными. Это так называ-
адреса ячеек памяти, и так называ- емые легковесные процессы, или ни-
емые плавающие регистры, храня- ти (Thread), работающие параллельно
щие вещественные числа (на про- в рамках одной программы. Разные
граммистском сленге вещественные нити работают параллельно над об-
числа называются плавающими). щими статическими данными, совер-
В дешёвых процессорах плавающие шая таким образом некоторую сов-
регистры могут отсутствовать, но ре- местную работу. При этом одна и та же
гистры общего назначения имеются подпрограмма может вызываться из
обязательно. Два из них играют осо- разных нитей. В отличие от статиче-
бую роль — это счётчик команд PC ских переменных, которые являются
(англ. Program Counter, иногда упо- общими для всех нитей, локальные
требляется также обозначение IP, переменные подпрограммы должны
Instruction Pointer) и указатель стека располагаться в стеке, выделенном

115
Алгоритмизация

функции в стек помещается также ад-


рес возврата. В начале работы функ-
ции f стек имеет следующий вид:

Адрес возврата SP
222

333

Перед выполнением функция f


должна захватить в стеке область па-
мяти под свои локальные переменные
a, b, c. В языке С принято следующее
соглашение: адрес блока локальных
переменных функции в момент её ра-
для каждой нити. Тогда наборы локаль- боты помещается в специальный ре-
ных данных одной и той же подпро- гистр процессора, который называ-
граммы, вызываемой из разных нитей, ется FP (англ. Frame Pointer —
будут различны, поскольку они распо- «указатель кадра»). В первую очередь
лагаются в разных стеках. Если бы это функция f сохраняет в стеке преды-
было не так, то вызов подпрограммы, дущее значение регистра FP. Затем
уже работающей в рамках одной ни- значение указателя стека копируется
ти, из другой нити разрушил бы набор в регистр FP. Потом функция f захва-
локальных переменных этой подпро- тывает в стеке область памяти разме-
граммы. ром в три машинных слова под свои
Как же размещаются локальные пе- локальные переменные a, b, c. Для это-
ременные подпрограммы в стеке? го функция f просто уменьшает зна-
В языке С подпрограммы называются чение регистра SP на 12 (три машин-
функциями. Функция может иметь ар- ных слова равны 12 байтам). После
гументы и локальные переменные, т. е. захвата кадра локальных переменных
переменные, существующие только стек выглядит следующим образом:
в процессе выполнения функции. Пред-
положим, функция зависит от двух c SP
входных аргументов x и y целого типа
и использует три локальные перемен- b
ные a, b и c также целого типа. Функ- a
ция возвращает целое значение. Cтарое значение FP FP
Адрес возврата
int f(int x, int y) {
int a, b, c; x=222
... y=333
} …

Пусть, в определённом месте про-


граммы вызывается функция f с аргу- Аргументы и локальные перемен-
ментами x = 222, y = 333. ные функции f адресуются относи-
тельно регистра FP. Так, аргумент x
z = f(222, 333); имеет адрес FP + 8, аргумент y — адрес
FP +12. Переменная a имеет адрес
Вызывающая программа помеща- FP–4, переменная b — адрес FP –8, пе-
ет фактические значения аргументов ременная c — адрес FP–12.
x и y функции f в стек, при этом на вер- По окончании работы функция f
шине стека лежит первый аргумент сначала увеличивает указатель стека
функции, под ним — второй аргумент. на 12, удаляя таким образом из него
При выполнении инструкции вызова свои локальные переменные a, b, c. За-

116
Основы программирования

тем старое значение FP извлекается из объекты, над которыми оно должно


стека и помещается в FP (т. е. регистр быть совершено, уже даны. Предполо-
FP восстанавливает своё значение, су- жим, что кого-то просят налить стакан
ществовавшее до вызова функции f). чаю. В обратной польской записи сна-
Затем происходит возврат в вызыва- чала дают стакан, затем чайник и толь-
ющую программу: адрес возврата сни- ко потом уже просят налить чай. В ин-
мается со стека, и управление переда- фиксной форме прежде дают стакан,
ётся по адресу возврата. Результат затем просят налить чай, кто-то дол-
функции f передаётся через нулевой жен сходить на кухню за чайником
регистр. Вызывающая программа са- и только потом налить чай. В прямой
ма удаляет из стека фактические зна- польской записи сначала просят на-
чения аргументов x и y, помещённые лить чай, кто-то должен раздобыть ста-
в стек перед вызовом функции f. кан, затем чайник и только потом вы-
полнить требуемое действие.
Обратная польская запись форму- Ян Лукасевич.
СТЕКОВЫЙ КАЛЬКУЛЯТОР лы позволяет проводить вычисле-
ния любой сложности, используя стек
И ОБРАТНАЯ ПОЛЬСКАЯ как запоминающее устройство для
ЗАПИСЬ ФОРМУЛЫ хранения промежуточных результа-
тов. Такой стековый калькулятор был
В 1920 г. польский математик Ян Лу- впервые выпущен фирмой Hewlett
касевич предложил способ записи Packard (США). Обычные модели
арифметических формул без исполь- калькуляторов не позволяют вычис-
зования скобок. В привычной нам за- лять по сложным формулам без ис-
писи знак операции записывается пользования бумаги и ручки для за-
между аргументами: например, сум- писи промежуточных результатов.
ма чисел 2 и 3 записывается как 2+3. В некоторых моделях предусмотре-
Ян Лукасевич предложил две другие ны скобки с одним или двумя уров-
формы записи: префиксную форму, нями вложенности, но более слож-
в которой знак операции записыва- ные вычисления провести на них
ется перед аргументами, и постфикс- невозможно. Кроме того, в обыч-
ную форму, в которой знак операции ных калькуляторах трудно понять,
записывается после аргументов. как результат и аргументы переме-
В честь родины математика эти фор- щаются в процессе ввода и вычис-
мы записи называют прямой и обрат- ления между регистрами калькулято-
ной польской записью. Обычная же ра. Напротив, устройство стекового
форма записи называется инфиксной. калькулятора вполне понятно и лег-
В польской записи скобки не нуж- ко запоминается. Калькулятор име-
ны. Например, выражение ет память в виде стека. При вводе чис-
ла оно просто добавляется в стек.
(2 + 3) × (15 – 7) При нажатии на клавишу операции,
например на клавишу «+», аргументы
записывается в прямой польской за- операции сначала извлекаются из
писи как

× + 2 3 – 15 7,

а в обратной польской записи как

2 3 + 15 7 – × .

Если прямая польская запись не по-


лучила большого распространения,
то обратная польская запись оказалась
чрезвычайно полезной. Её преимуще-
ство можно объяснить тем, что гораз-
до удобнее выполнять действие, если

117
Алгоритмизация

работы с компьютером. Для вычисле-


ний используется стек, что позволяет
работать с выражениями любой сте-
пени сложности. Реализация стеково-
го вычислителя не представляет ни-
какого труда. Кроме того, имеется
простой алгоритм преобразования
выражения из обычной записи в об-
ратную польскую запись. Всё это при-
вело к тому, что многие компиляторы
языков высокого уровня используют
обратную польскую запись в качест-
ве внутренней формы представления
программы.
Например, язык программирова-
ния Java является интерпретируемым,
Калькулятор фирмы а не компилируемым языком. Это зна-
Hewlett Packard. чит, что компилятор Java преобразует
исходную Java-программу не в машин-
стека, затем над ними выполняется ные коды, а в некоторый промежу-
действие, наконец, результат опера- точный язык, предназначенный для
ции помещается обратно в стек. выполнения (интерпретации) на спе-
Вершина стека всегда содержит ре- циальной Java-машине. В случае Java
зультат последней операции и высве- этот промежуточный язык называют
чивается на дисплее калькулятора. байт-кодом. Байт-код представляет со-
Для вычисления надо сначала пре- бой, условно говоря, обратную поль-
образовать выражение в обратную скую запись Java-программы, а Java-ма-
польскую запись (при некотором на- шина — стековый вычислитель.
выке это легко сделать в уме). Затем
запись просматривается последова-
тельно слева направо. Если видим чис- ЯЗЫК POSTSCRIPT
ло, то вводим его в калькулятор, до-
бавляя его таким образом в стек. Если Другой яркий пример использования
видим знак операции, то нажимаем обратной польской записи — графи-
соответствующую клавишу калькуля- ческий язык PostScript, предназна-
тора, выполняя должную операцию ченный для высококачественной пе-
с числами наверху стека. чати текстов на лазерных принтерах.
Фрагмент программы Обратная польская запись формул Он является стандартом типограф-
на языке Java. оказалась исключительно удобной для ского качества представления текс-
тов, не зависящим от конкретной мо-
дели принтера.
То, что PostScript — это язык про-
граммирования, для многих людей,
знакомых с типографским делом, но да-
лёких от программирования, звучит
непривычно. Общепринятое мнение,
что компьютер работает с числами и в
основном что-то вычисляет, не впол-
не верно. Не менее часто компьютер-
ная программа работает с текстами и
изображениями. Текст, содержащийся
в текстовом файле, можно рассматри-
вать с двух точек зрения. Например,
трактовать его просто как текст статьи
или книги. Но рассмотрим процесс пе-
чати текста на обычном (не графичес-
ком) принтере. Принтер соединён

118
Основы программирования

с компьютером кабелем, и компьютер % Программа Крест


посылает через этот кабель один за дру- 2.83 2.83 scale % установить мил-
гим коды символов, составляющих лиметровую шкалу
текст. В этом случае букву «А», имеющу- 0.2 setlinewidth % установить
юся в тексте, следует рассматривать как толщину линии 0,2 мм
команду, предписывающую принтеру 100 0 moveto % переместиться
напечатать символ «А» в текущей точ- в точку (100, 0)
ке страницы, используя заданный за- 100 350 lineto % провести линию
ранее шрифт. Затем координату X те- к точке (100, 350)
кущей точки надо увеличить на ширину stroke % и начертить её
буквы «А». 0 150 moveto % переместиться
С этих позиций весь текст можно в точку (0, 150)
трактовать как программу его собст- 250 150 lineto % провести линию
венной печати. В случае любого тек- к точке (250, 150)
стового файла эта программа весьма stroke % и начертить её Доналд Кнут.
примитивна, в ней, например, нет ко- showpage % выдать страницу
манд смены шрифтов, изменения те-
кущей позиции, рисования линий В первой строке программы уста-
и т. д. Понятно, что текст типограф- навливается миллиметровая шкала.
ского качества не может быть пред- Дело в том, что по умолчанию для
ставлен текстовым файлом. принтера единицей измерения явля-
В случае языка PostScript файл, пе- ется один пункт, или 1/72 дюйма. Лю-
ресылаемый на PostScript-принтер, бой программист знает, что 1 дюйм
представляет собой программу печа- равен 25,4 мм. Надо вычислить соот-
ти текста. Язык PostScript весьма богат, ношение одного миллиметра и одно-
и вряд ли найдётся много людей, вла- го пункта:
деющих им. Чаще всего PostScript-
программа создаётся другой програм- 1 мм / 1 pt = 1 мм / (1/72) =
мой обработки текста. Например, = 1 мм / (25,4/72) мм = 2,834645.
PostScript-файл создаётся для печати
на принтере при помощи языка TeX. Если увеличить масштаб в 2,83 раза,
(TeX — это язык записи текстов, со- происходит переход от пунктов к мил-
держащих математические формулы, лиметрам. Для изменения масштаба
созданный замечательным математи- в стек сначала помещается число 2,83,
ком и теоретиком программирования соответствующее увеличению мас-
Доналдом Кнутом.) Некоторые текс- штаба по X, затем в стек добавляется
товые редакторы, например Adobe второе число 2,83, соответствующее
Acrobat или MS Word, в случае печати увеличению масштаба по Y, и после
на профессиональном принтере так- этого выполняется команда scale (из-
же преобразуют текст в PostScript-про- менить масштаб). Из стека при этом
грамму. PostScript-файлы очень удоб- вынимаются два числа, и масштаб по
ны для распространения, поскольку X и Y изменяется.
записываются в обычном текстовом Разные команды могут иметь раз-
формате и будут одинаково напеча- ное число аргументов. Например,
таны в любой стране, независимо от вторая строка программы устанавли-
национальных кодировок, версий вает толщину линии. Команда set
операционных систем, наличия нуж- linewidth имеет один аргумент, кото-
ных шрифтов и т. п. рый помещается в стек перед её вызо-
PostScript-программа представляет вом. При выполнении команды он
собой обратную польскую запись, т. е. снимается со стека, и толщина линии
любая команда записывается после устанавливается равной этому снято-
своих аргументов. При выполнении му числу.
PostScript-программы используется Третья строка перемещает теку-
стек. Рассмотрим для примера простей- щую позицию курсора в точку с коор-
шую программу, рисующую крест на динатами X = 100, Y = 0. (В качестве
странице. Символ % используется в язы- единиц используются миллиметры,
ке PostScript в качестве комментария. о чём мы позаботились в первой стро-

119
Алгоритмизация

ординаты были получены из стека.


Язык PostScript является достаточно
мощным языком программирования,
в нём предусмотрены функции, цик-
лы, ветвления и т. п. Используемая
в нём обратная польская запись
очень удобна для выполнения на ком-
пьютере. Поэтому интерпретатор
языка PostScript легко встраивается
в конструкцию принтера (который,
конечно же, всегда оснащён более
или менее сложным процессором),
совсем ненамного увеличивая его
стоимость.
Язык Java, байт-код которого пред-
ставляет собой обратную польскую
запись, тоже был первоначально раз-
работан для программирования не-
Фрагмент программы ке; начало координат находится в ле- дорогих бытовых приборов, таких,
на языке TeX. вом нижнем углу страницы.) В стек как телевизор, стиральная машина
сначала добавляются два числа, соот- и т. п. Стековый вычислитель устроен
ветствующие координатам X и Y, и за- просто и может быть применён там,
тем выполняется команда moveto, ко- где быстродействие не играет особой
торая снимает эти числа со стека роли, зато важны скорость и дешевиз-
и перемещает курсор в точку, чьи ко- на разработки.

ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ


И ССЫЛОЧНЫЕ РЕАЛИЗАЦИИ

Все структуры данных можно услов- последовательно друг за другом в неко-


но разделить на два класса — структу- тором непрерывном отрезке массива,
ры последовательного и произвольно- причём порядок их расположения в
го доступа. В первых структурах доступ массиве соответствует их порядку в ре-
возможен к одному или нескольким ализуемой структуре. В ссылочных ре-
элементам. Обычно это элементы в на- ализациях элементы структуры данных
чале или конце структуры, а также ино- хранятся в совершенно произвольном,
гда вблизи некоторого «выделенного» хаотичном порядке. При этом вместе
места, отмеченного специальным «ука- с каждым элементом хранятся ссылки
зателем». Так, в случае очереди доступ- на один или несколько «соседних» эле-
ны лишь элементы в её начале и кон- ментов. В качестве ссылок могут высту-
це, в случае стека — элемент в его пать либо индексы ячеек массива, либо
вершине. В структурах произвольно- адреса памяти. Можно представить се-
го, или «прямого», доступа можно про- бе шпионскую сеть, в которой каждый
изводить действия с любыми элемен- участник знает лишь координаты одно-
тами структуры, при этом не требуется го или двух своих коллег. Контрразвед-
никаких переборов всех или части эле- чикам, чтобы обезвредить сеть, нужно
ментов. пройти последовательно по всей цепоч-
Большинство структур данных ре- ке, начиная с выявленного шпиона.
ализуется на базе массива. Все реали- Ссылочные реализации обладают
зации можно также разделить на два двумя ярко выраженными недостат-
класса — непрерывные и ссылочные. ками:
В непрерывных реализациях элемен- 1) для хранения ссылок требует-
ты структуры данных располагаются ся дополнительная память;

120
Основы программирования

2) для доступа к некоторому эле- редине, обязательно должны быть ре-


менту структуры необходимо снача- ализованы ссылочным образом.
ла добраться до него, проходя по-
следовательно по цепочке других
элементов. СПИСОК
Казалось бы, зачем нужны такие
реализаци? Все недостатки ссылоч- Классический пример структуры дан-
ных реализаций компенсируются ных последовательного доступа, в ко-
одним чрезвычайно важным досто- торой можно удалять и добавлять эле-
инством: в них можно добавлять и менты в середине структуры, — это
удалять элементы в середине струк- линейный список. Различают одно-
туры данных, не перемещая осталь- направленный и двунаправленный
ные элементы. списки (иногда говорят «односвяз-
ный» и «двусвязный»).
Элементы списка как бы выстрое-
МАССОВЫЕ ОПЕРАЦИИ ны в цепочку друг за другом. У спис-
ка есть начало и конец. Имеется также
Массовые операции — это операции, указатель списка, который распола-
затрагивающие значительную часть гается между элементами. Если мыс-
всех элементов структуры данных. ленно вообразить, что соседние эле-
Допустим, нужно добавить или уда- менты списка связаны между собой
лить один элемент. Если при этом верёвкой, то указатель — это красная
приходится переписывать значитель- ленточка, которая вешается на верёв-
ную часть остальных элементов с од- ку. В любой момент времени в спис-
ного места на другое, то говорят, что ке доступны лишь два элемента — эле-
добавление или удаление приводит менты до указателя и за указателем.
к массовым операциям. Хорошая ре-
ализация структуры данных — та,
в которой таких операций либо нет
совсем, либо они происходят очень
редко. Массовые операции — это про-
клятие программиста, то, чего он все-
гда стремится избежать.
В непрерывных реализациях до-
бавление или удаление элементов
в середине структуры неизбежно при-
водит к массовым операциям. По-
этому структуры, в которых можно
удалять или добавлять элементы в се-

121
Алгоритмизация

В однонаправленном списке ука- списке. Благодаря этому всегда мож-


затель можно передвигать лишь впе- но считать, что перед указателем есть
рёд, в направлении от начала к концу. какой-то элемент, что упрощает про-
Указатель также можно установить цедуры добавления и удаления эле-
в начало списка, перед первым эле- ментов.
ментом. В отличие от однонаправ- В двунаправленном списке счита-
ленного списка двунаправленный аб- ется, что вслед за последним элемен-
солютно симметричен, указатель том вновь следует голова списка, т. е.
в нём передвигается как вперёд, так список замкнут в кольцо.
и назад и устанавливается как перед Можно было бы точно так же замк-
первым, так и за последним элемен- нуть и однонаправленный список.
том списка. Но гораздо чаще считают, что за по-
В двунаправленном списке можно следним элементом однонаправлен-
добавлять и удалять элементы до и за ного списка ничего не следует. Этот
указателем. В однонаправленном спи- список, таким образом, представляет
ске элементы добавляются также с обе- собой цепочку, заканчивающуюся
их сторон от указателя, а удаляются эле- ссылкой «в никуда».
менты только за указателем.
Удобно считать, что перед первым
элементом списка располагается спе- ССЫЛОЧНАЯ
циальный «пустой» элемент, который
называется «головой списка». Голова
РЕАЛИЗАЦИЯ СПИСКА
присутствует всегда, даже в пустом
В программировании нередко отож-
дествляют понятие списка с его ссы-
лочной реализацией на базе массива
ПРОБЛЕМЫ НЕПРЕРЫВНОСТИ или непосредственно на базе опера-
тивной памяти.
Пример неудачного использования непрерывных реализаций — файло- Основная идея реализации двуна-
вые системы в некоторых старых операционных системах, например правленного списка заключается в том,
в ОС ЕС, в системе РАФОС (применявшейся в мини-компьютерах СМ что вместе с каждым элементом хра-
ЭВМ). Если в современных файловых системах файлы фрагментирова- нятся ссылки на следующий и преды-
ны (кусочки большого файла могут быть «раскиданы» по всему диску), дущий элементы. В случае реализации
то раньше это было не так. Файлы обязательно занимали непрерывный на базе массива ссылки представляют
участок на диске. При постоянной работе они уничтожались и созда- собой индексы его ячеек. Чаще, одна-
вались заново на новом месте — так, всякое редактирование текстово- ко, элементы списка не располагают
го файла приводило к его обновлению. В результате свободное прост- в каком-либо массиве, а просто разме-
ранство на диске становилось фрагментированным, т. е. состоящим из щают каждый по отдельности в дина-
множества небольших кусков. Очень быстро возникла ситуация, когда мической памяти, выделенной дан-
большой файл невозможно было записать на диск: хотя свободного ме- ной задаче. В качестве ссылок в этом
ста в сумме оставалось много, не имелось достаточно большого сво- случае используют адреса элементов
бодного фрагмента. в оперативной памяти.
В старых операционных системах приходилось выполнять проце- Голова списка хранит ссылки на
дуру сжатия, или, по-научному, дефрагментацию, диска. Файлы пе- первый и последний элементы спис-
реписывались вплотную друг к другу, чтобы собрать свободное про- ка, но не хранит никакого элемента.
странство диска в один непрерывный фрагмент. Во время выполнения Следующим за головой списка будет
этой длительной процедуры компьютер ничего другого делать не мог, его первый элемент, а предыдущим —
т. е. фактически был недоступен для работы. последний элемент. Когда список пуст,
голова списка зациклена сама на себя.

122
Основы программирования

Указатель списка реализуется в виде ведёт от корня дерева к данной вер-


пары ссылок на следующий и преды- шине.
дущий элементы, он лишь отмечает не- Пусть выбрана некоторая вершина Динамическая па-
которое место в цепочке элементов. Х. Вершины, соединённые рёбрами мять, или «куча», —
В случае однонаправленного спис- с вершиной Х и расположенные даль- это область оператив-
ка вместе с каждым элементом хранит- ше её от корня дерева, называют сы- ной памяти, в которой
ся только ссылка на следующий эле- новьями вершины Х. Они обычно упо- можно при необходи-
мент, таким образом, экономится рядочены слева направо. Вершины, мости захватывать ку-
память. Голова списка хранит ссылку у которых нет сыновей, называются ски нужного размера,
на первый элемент, а последний эле- терминальными. Дерево изображают а после использова-
мент хранит нулевую ссылку (ссылка перевёрнутым, корнем вверх. ния освобождать, т. е.
«в никуда»), так как в программах ну- возвращать обратно
левой адрес никогда не используется. в «кучу».
Процедуры добавления и удаления
элементов списка не приводят к мас-
совым операциям, потому что для их
выполнения нужно всего лишь моди-
фицировать ссылки в двух соседних
элементах.

ДЕРЕВЬЯ И ГРАФЫ
Деревья в программировании —
Граф — это фигура, которая состоит наиболее часто используемый вид гра-
из вершин и рёбер, соединяющих вер- фа. Так, на их построении основаны
шины. Примером графа является схе- многие алгоритмы сортировки и по-
ма линий метро. Рёбра могут иметь иска. Компиляторы в процессе пере-
направления, т. е. изображаться стре- вода программы с языка высокого
лочками; такие графы называют ори- уровня на машинный язык представ-
ентированными. ляют фрагменты программы в виде
Дерево — связный граф без цик- деревьев, которые называются син-
лов. Кроме того, в нём выделена одна таксическими.
вершина, которая называется корнем Деревья естественно появляют-
дерева. Остальные вершины упоря- ся всюду, где имеются какие-либо
дочиваются по длине пути, который иерархические структуры (структуры,

123
Алгоритмизация

ритмы, которые могут вызывать сами


себя). При вызове алгоритма ему пе-
редаётся в качестве параметра ссыл-
ка на вершину дерева, которая рассма-
тривается как корень поддерева,
растущего из этой вершины. Если вер-
шина терминальная, то алгоритм про-
сто применяется к данной вершине.
Если же у вершины есть сыновья, то он
рекурсивно вызывается также для каж-
дого из них. Порядок обхода подде-
ревьев зависит от сути алгоритма.
Приведём пример простейшего ре-
курсивного алгоритма, подсчитыва-
ющего число терминальных вершин
дерева. Его можно использовать для
которые могут вкладываться друг подсчёта числа файлов, содержащих-
в друга). Примером служит оглавле- ся в заданном каталоге и во всех его
ние книги. Пусть книга состоит из ча- подкаталогах.
стей, части — из глав, главы — из па-
раграфов. Сама книга представляется алг цел число терминальныx вершин
корнем дерева, из которого выходят (арг вершина V)
рёбра к вершинам, соответствующим дано V — ссылка на корень дерева
частям книги. Из каждой вершины-ча- надо Подсчитать число терминальных
сти книги выходят рёбра к вершинам- вершин дерева
главам, входящим в эту часть, и т. д. нач
Файловую систему компьютера | если у вершины V нет сыновей
также можно представить в виде де- | | то знач:= 1
рева. Вершинам соответствуют ката- | | иначе
логи (их ещё называют директория- | | знач:= 0
ми или папками) и файлы. Файлы | | нц для каждого сына X вершины V
представляются терминальными вер- | | | знач:= знач + число
шинами дерева. Корню дерева соот- | | | терминальных вершин(X)
ветствует корневой каталог диска. | | кц
Ссылочные реализации как будто | всё
специально придуманы для реализа- кон
ции деревьев. Вершина дерева пред-
ставляется в виде объекта, содержа-
щего ссылки на всех сыновей, а также МНОЖЕСТВО
некоторую дополнительную инфор-
мацию, зависящую от конкретной за- Множество — это структура данных,
дачи. Такой объект занимает область содержащая конечный набор эле-
памяти фиксированного размера, ко- ментов некоторого типа. Элементы
торая обычно размещается в динами- множества никак не упорядочены
ческой памяти. Число сыновей, как и не равны между собой. В множество
правило, зависит от смысла решаемой М можно добавить, а можно и удалить
задачи. Так, очень часто рассматрива- из него элемент х. Если при добавле-
ются бинарные деревья, в которых нии он уже содержится там, то ничего
число сыновей у произвольной вер- не происходит. Множество — потен-
шины не превышает двух. Если один циально не ограниченная структура,
или несколько сыновей у вершины от- которая может содержать любое ко-
сутствуют, то соответствующие ссыл- нечное число элементов.
ки содержат нулевые значения. У тер- В некоторых языках программиро-
минальных вершин все ссылки вания накладывают ограничения на
нулевые. тип элементов и на максимальное ко-
При работе с деревьями использу- личество элементов множества. Так,
ются рекурсивные алгоритмы (алго- иногда рассматривают множество эле-

124
Основы программирования

ментов дискретного типа (все сущест-


вующие значения можно занумеровать
целыми числами), где число элемен-
тов не должно превышать константы,
задаваемой при его создании. Для та-
ких множеств употребляют наимено-
вание Bitset (набор битов) или просто
Set. Как правило, для их реализации ис-
пользуется так называемая битовая ре-
ализация множества на базе массива
целых чисел. Каждое целое число рас-
сматривается в двоичном представле-
нии как набор битов, содержащий 32
элемента. Биты внутри одного числа
нумеруются справа налево (от млад-
ших разрядов к старшим); нумерация
битов продолжается от одного числа
к другому, когда мы перебираем эле-
менты массива. На пример, массив из точек на плоскости битовая реализа-
десяти целых чисел содержит 320 бит, ция не подходит.
номера которых изменяются от 0 до В программировании очень часто
319. Множество в данной реализации рассматривают структуру чуть более
может содержать любой набор целых сложную, чем просто множество, —
чисел в диапазоне от 0 до 319. Число N «нагруженное множество». Пусть каж-
содержится в множестве тогда и толь- дый элемент множества содержится
ко тогда, когда бит с номером N равен в нём вместе с некоторой дополните-
единице (программисты говорят «бит льной информацией, которую имену-
установлен»). Соответственно если чис- ют «нагрузкой» элемента. При добавле-
ло N не содержится в множестве, то бит нии элемента в множество нужно
с номером N равен нулю (программи- обязательно указывать нагрузку, кото-
сты говорят «бит очищен»). рую он несёт. В разных языках про-
Хотя в языке программирования граммирования и в различных стан-
Pascal слово Set (в переводе «множе- дартных библиотеках такие структуры
ство») закреплено за ограниченным называют отображением (Map) или
множеством элементов дискретного словарём (Dictionary). Действительно,
типа, такими множествами не исчер- элементы множества как бы отобража-
пываются потребности программи- ются на нагрузку, которую они несут.
рования. Например, для множества В интерпретации Cловаря элемент

125
Алгоритмизация

ющая имя и адрес владельца счёта,


код валюты, сумму остатка и т. п.
Наиболее часто применяемая опе-
рация в нагруженном множестве —
определение нагрузки для заданного
элемента x (значения ключа x). Реали-
зация данной операции включает по-
иск элемента x в множестве. Поэтому
эффективность любой реализации
множества определяется прежде все-
го быстротой поиска элемента.

РЕАЛИЗАЦИИ МНОЖЕСТВА:
ПОСЛЕДОВАТЕЛЬНЫЙ
И БИНАРНЫЙ ПОИСК,
ХЕШИРОВАНИЕ

Для простоты можно рассмотреть ре-


ализацию обычного, ненагруженно-
го, множества. Его элементы хранятся
в массиве, начиная с первой ячейки,
в произвольном порядке, а в специаль-
ной переменной находится текущее
множества — это иностранное слово, число элементов множества, т. е. чис-
нагрузка элемента — это перевод сло- ло используемых в данный момент
ва на русский язык. ячеек массива. При поиске элемента х
Все элементы содержатся в нагру- придётся последовательно перебрать
женном множестве в одном экземп- все элементы, пока либо он найдётся,
ляре, т. е. разные элементы множест- либо выяснится, что его там нет.
ва не могут быть равны друг другу. При добавлении элемента х к мно-
В отличие от самих элементов их на- жеству сначала мы должны опреде-
грузки могут совпадать (так, различ- лить, не содержится ли там уже х.
ные иностранные слова могут иметь Для этого используется процедура по-
одинаковый перевод). Поэтому ино- иска. Если элемент х принадлежит
гда элементы нагруженного множе- множеству, то выдаётся индекс ячей-
ства называют ключами, их нагруз- ки массива, в которой он находится,
ки — значениями ключей. Каждый в противном случае он просто допи-
ключ уникален. Принято говорить, сывается в конец (в ячейку массива
что ключи «отображаются» на их зна- с индексом «число элементов») и пе-
чения. ременная «число элементов» увеличи-
В качестве примера нагруженно- вается на единицу. Для удаления эле-
го множества наряду со словарём мента достаточно последний элемент
можно рассмотреть множество бан- множества переписать на место уда-
ковских счетов. Банковский счёт — ляемого и уменьшить переменную
это уникальный идентификатор, со- «число элементов» на единицу.
стоящий из 20 десятичных цифр. На- Такая реализация годится только
грузка счёта — вся информация, для небольших множеств.
которая ему соответствует, включа-

БИНАРНЫЙ ПОИСК
0 1 Число элементов — 1 N –1
Допустим, можно сравнивать элемен-
ты множества друг с другом, опреде-
ляя, какой из них больше. (Например,

126
Основы программирования

для текстовых строк применяется лек-


сикографическое сравнение: первые
буквы сравниваются по алфавиту; ес-
ли они равны, то сравниваются вторые
буквы и т. д.) Тогда удаётся существен-
но ускорить поиск, применяя алгоритм
бинарного поиска. Для этого элемен-
ты множества хранят в массиве в воз-
растающем порядке.
На каждом шаге поиска отрезок
массива, в котором может находить-
ся искомый элемент x, делится попо-
лам. Рассматривается элемент y в се-
редине отрезка. Если x меньше y,
то выбирается левая половина отрез- ХЕШИРОВАНИЕ
ка, если больше, то правая. Поиск про-
должается в новом отрезке. Идея хеширования состоит в том, что
Реализация бинарного поиска мы сводим работу с одним большим
с программной точки зрения не множеством к работе с массивом Идея бинарного по-
представляет никакого труда, поэто- небольших подмножеств. Например, иска иллюстрируется
му реализация множества с исполь- записная книжка содержит список следующей шуточной
зованием бинарного поиска во всех фамилий людей с их телефонами (те- задачей «Как поймать
отношениях лучше «наивной» реа- лефоны — это «нагрузка» элементов льва в пустыне?». На-
лизации. Вместе с тем и она имеет множества). Страницы записной до разделить пусты-
недостатки: 1) при добавлении и книжки помечены буквами алфави- ню забором пополам,
удалении элементов в середине мас- та. Всё множество фамилий разбито затем ту половину,
сива приходится «сдвигать» элемен- на 28 подмножеств (буквы «ё», «й», «ь», в которой находится
ты в его конце на новое место; 2) по- «ы», «ъ» не учитываются), соответст- лев, снова разделить
иск выполняется гарантированно вующих буквам русского алфавита. пополам и т. д., пока
быстро, но всё-таки не мгновенно. При поиске фамилии сразу открыва- лев не окажется пой-
От первого из этих недостатков ют записную книжку на нужной стра- манным.
можно избавиться, применяя вместо нице — и поиск значительно ускоря-
непрерывной реализации на базе ется.
массива ссылочную, при которой эле- Разбиение множества на подмно-
менты множества содержатся в узлах жества осуществляется с помощью
бинарного дерева. Элементы в верши- так называемой хеш-функции.
нах упорядочены следующим обра- Хеш-функция — это функция,
зом: зафиксируем элемент x в произ- определённая на элементах множе-
вольной вершине и рассмотрим два ства и принимающая целые неотри-
поддерева, растущих из этой верши- цательные значения. Хеш-функция
ны. Все элементы левого поддерева подбирается таким образом, чтобы:
должны быть меньше, чем x, а все эле-
менты правого поддерева — больше
x. Чтобы поиск выполнялся быстро,
дерево должно быть «сбалансирован-
ным», т. е. все его ветви должны иметь
почти одинаковую длину. Процедуры
добавления и удаления элементов
должны сохранять свойство сбалан-
сированности.

127
Алгоритмизация

1) её можно было легко вычислять;


2) она принимала всевозможные раз-
личные значения приблизительно
с равной вероятностью. Например,
хеш-функция для данной фамилии
принимает значение номера первой
буквы фамилии в русском алфавите
(номера, как всегда в программиро-
вании, начинаются с нуля).
Прежде всего нужно построить мас-
сив подмножеств, называемый также
хеш-таблицей. При этом важно опре- Теперь нужно подобрать хеш-
делиться с числом подмножеств, т. е. функцию. Она должна принимать
размером хеш-таблицы. Для эффек- значения 0, 1, 2, ... , N –1. Если изна-
тивной реализации каждое подмно- чально у нас есть некоторая функция
жество должно содержать по возмож- H(x), принимающая произвольные
ности не более одного элемента. целые значения, то в качестве хеш-
Следовательно, размер хеш-таблицы функции надо использовать функ-
(пусть он равен N) должен быть боль- цию b(x), которая равна остатку от
ше, чем среднее число элементов мно- деления H(x) на N.
жества. Обычно N выбирают превыша- При поиске элемента x сначала
ющим число элементов множества вычисляется значение его хеш-функ-
примерно в три раза. В примере с за- ции. Пусть оно равно b. Затем ищет-
писной книжкой это означает, что ся x в подмножестве с индексом b.
должно быть записано около 10 фами- Поскольку это подмножество не-
лий. В таком случае большинство стра- большое, то поиск осуществляется
ниц либо пустые, либо содержат одну быстро.
фамилию, хотя не исключены и кол- Различные конкретные схемы
лизии, когда на одной странице запи- хеш-реализации множества по-разно-
сано несколько фамилий. му организуют массив подмножеств
Итак, множество M разбивается на и борются с коллизиями. Наиболее
N непересекающихся подмножеств, за- универсальная схема, использующая
нумерованных индексами от 0 до N –1. ссылочную реализацию, выглядит
Подмножество с индексом i содержит так: каждое подмножество представ-
все элементы x из M, значения хеш- ляется в виде линейного однона-
функции для которых равняются i. правленного списка, содержащего
элементы подмножества. То есть име-
ется N списков. Головы всех списков
хранятся в хеш-таблице. Элемент
хеш-таблицы с индексом i представ-
ляет собой голову i-го списка. Голова
содержит ссылку на первый элемент
списка, первый элемент — на второй
и т. д. Последний элемент в цепочке
содержит нулевую ссылку. Если спи-
сок пустой, то элемент хеш-табли-
цы с индексом i содержит нулевую
ссылку.

Голова i-го списка


Хеш-таблица

Элементы
множества

128
Основы программирования

«ЦИКЛЫ ДЛЯ КАЖДОГО»


И ИТЕРАТОРЫ

Часто бывает необходимо перебрать


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

нц для каждого элемента X


| из множества M
| действие(X)
кц

В большинстве структур данных В случае множества M «цикл для


такой цикл можно реализовать, каждого» записывается с помощью
пользуясь другими действиями, суще- итератора примерно так:
ствующими для конкретного типа. На-
пример, для списка применим следу- итератор:= начать перебор элементов
ющий фрагмент программы: множества M
нц пока итератор. есть ещё элементы
установить указатель в начало списка | x:= итератор. получить следующий
нц пока указатель не в конце списка | элемент множества
| действие (элемент за указателем) | действие (x)
| передвинуть указатель вперёд кц
кц
***
Множество отличается от всех дру-
гих структур данных тем, что «цикл для Конечно, рассмотренными примера-
каждого» невозможно смоделировать, ми не исчерпывается всё многообра-
пользуясь другими предписаниями зие структур данных. Однако боль-
множества. Поэтому выполнение та- шинство реальных примеров либо
кого цикла должно быть обеспечено аналогичны им, либо получаются из
реализацией множества. Метод по- комбинаций нескольких элементар-
строения «цикла для каждого» сильно ных структур — например, реализа-
зависит от используемого языка про- ция множества может использовать
граммирования и от конкретной биб- деревья. Искусство программиста со-
лиотеки классов или подпрограмм. стоит в том, чтобы выбрать структу-
Обычно создаётся некоторый объект, ру данных, наиболее подходящую для
позволяющий последовательно пере- решаемой задачи, в которой отсутст-
бирать элементы структуры. Внутрен- вуют массовые операции, память рас-
нее устройство такого объекта зависит ходуется экономно и поиск выполня-
от структуры данных и скрыто от про- ется быстро. Но, пожалуй, главный
граммиста. Данный объект обычно на- критерий — это простота и изящест-
зывают итератором или энумерато- во программы, которая получается
ром. С итератором возможны два в результате; отсюда вытекает всё ос-
действия: тальное. Стремительный прогресс
• проверить, есть ли ещё элемен- современной вычислительной тех-
ты структуры данных, которые не бы- ники частично нивелирует описан-
ли перебраны на предыдущих шагах; ные выше проблемы и позволяет
• получить следующий элемент плодить ресурсоёмкие программы и
структуры данных. проекты.

129
Алгоритмизация

СОРТИРОВКА

Человеку свойственно стремление «Требование в одной машине объеди-


к порядку, гармонии. Это заметно по- нить возможности вычислений и сор-
всюду, начиная от телефонной книги тировки кое-кому может показаться
или каталога библиотеки и заканчи- требованием использовать один при-
вая расстановкой товаров на полке бор и как консервный нож, и как ав-
в магазине. торучку»...
Вероятно, первым примером авто- Здесь рассматриваются методы
матизации процесса упорядочивания только так называемой внутренней
данных является электромеханиче- сортировки (это название возникло
ский табулятор Германа Холлерита, исторически, поскольку она применя-
применённый в 1890 г. для обработ- лась для переупорядочивания масси-
ки результатов переписи населения вов, все элементы которых располага-
в США. Впоследствии аналогичные лись во внутренней, оперативной,
устройства получили самое широкое памяти компьютера с произвольным
Герман Холлерит. распространение. Известно, что доступом. Кроме того, известна внеш-
в 1930 г. в Англии статистические няя сортировка, алгоритмы которой
и бухгалтерские фирмы охотно бра- используют вспомогательную память
ли в аренду сортировочные маши- на внешних носителях). Методы сор-
ны — всего за 9 фунтов стерлингов тировки могут быть разбиты на не-
в месяц. Были изобретены и более сколько групп, в зависимости от основ-
сложные, так называемые подбороч- ной идеи переупорядочивания данных,
ные, машины, выполнявшие за один лежащей в их основе:
проход слияние двух отсортирован- • сортировка с помощью вклю-
ных колод карт. чения;
И всё-таки возможность быстрого • сортировка с помощью выбора;
переупорядочивания действительно • сортировка с помощью обмена.
больших массивов данных появилась
только после изобретения компьюте-
ров, и именно тогда задача сортиров- СОРТИРОВКА
ки приобрела важное практическое
значение. Первым сортировку данных
С ПОМОЩЬЮ
Джон Моучли. на компьютере, применяя свой соб- ПРЯМОГО ВКЛЮЧЕНИЯ
ственный метод, выполнил в 1946 г.
Джон Моучли, создатель компьютера Суть метода состоит в том, что исход-
ENIAC. Необходимость использова- ный массив условно делится на две
ния компьютеров для сортировки дан- части — уже отсортированную и ещё
ных не казалась в то время очевидной. не отсортированную (первоначаль-
Не случайно в своей лекции о сорти- но отсортированная часть состоит
ровке в том же году Моучли сказал: лишь из первого элемента массива).
Затем на каждом шаге первый эле-
мент неотсортированной части уда-
ляется из неё и помещается в отсор-
Пусть дана последовательность из n элементов a1, a2, ... , an; сор- тированную часть на своё место —
тировкой называют операцию перестановки этих элементов в по- с учётом упорядоченности.
следовательность ai1, ai2, ... , ain, на которой выполняются Число сравнений элементов при
отношения f(ai ) J f(ai ), k=1, ... , n–1. включении i-го элемента на своё мес-
k k+1
Чаще всего значения функции f не вычисляются, а задаются то в отсортированную часть в сред-
в явном виде и связаны с определёнными элементами последо- нем равно i/2. Поскольку эта опера-
вательности. Эти значения называют ключами; обычно ключи — ция выполняется для каждого из n –1
целые или действительные числа. Вообще говоря, можно упоря- элементов, то алгоритм имеет слож-
дочивать не сами элементы, а только их ключи, ведь перестанов- ность порядка n2. Если элементы ис-
ка соответствующего элемента вместе с ключом на сложность ходного массива уже упорядочены,
алгоритма не повлияет. то количество сравнений будет ми-
нимальным, а если массив упорядо-

130
Основы программирования

чен в обратном порядке, то макси-


мальным.
На первый взгляд кажется, что ал-
горитм можно улучшить. Действитель-
но, последовательность, в которую
надо включить очередной элемент,
упорядочена, так что возможен двоич-
ный поиск места включения (включа-
емый элемент сравнивается с элемен-
том в середине уже отсортированной
последовательности, и процесс деле-
ния пополам идёт до тех пор, пока не
будет найдено место включения).
Модифицированный таким образом
алгоритм называется сортировкой с
двоичным включением. Включение
элемента в отсортированную часть
требует сдвига всех элементов, рас-
положенных справа от него. Так что, 2) выбранный элемент меняется
хотя количество сравнений явно со- местами с первым элементом.
кращается, число перестановок эле- Считая первый элемент отсорти-
ментов остаётся тем же и сложность рованной частью массива, повторяем
алгоритма по-прежнему имеет поря- эти действия для n-1 оставшихся не-
док n2. отсортированных элементов, затем
Этот результат показывает, что для n –2 и т. д. до тех пор, пока в неот-
далеко не всегда очевидные на пер- сортированной части массива не ос-
вый взгляд усовершенствования ал- танется один элемент — самый боль-
горитма дают существенный эффект. шой в исходном массиве.
Вообще метод прямого включения Этот метод в некотором смысле
не кажется слишком привлекатель- является антиподом предыдущего.
ным, ведь сдвиг элементов массива При прямом включении на каждом
в памяти достаточно длительная опе- шаге рассматриваются один элемент
рация. исходного массива и все элементы
отсортированной части. Здесь же
просматриваются все неупорядочен-
СОРТИРОВКА ные элементы исходного массива
и выбирается один, помещаемый
С ПОМОЩЬЮ в конец отсортированной части.
ПРЯМОГО ВЫБОРА Число сравнений элементов не
зависит от их исходного располо-
Общая схема алгоритма следующая: жения и пропорционально n2, зна-
1) выбирается наименьший из n чит, алгоритм также имеет квадра-
элементов массива; тичную сложность. А вот среднее

131
Алгоритмизация

О ВАЖНОСТИ ПОРЯДКА

Идея удобного расположения объектов весьма древняя. Возмож-


но, самый ранний пример её воплощения — вавилонская таблица
(она датируется приблизительно 200 г. до н. э.), которая содер-
жит более 100 пар значений шестидесятеричных чисел и их об-
ратных величин, записанных для упрощения поиска в порядке воз-
растания.
Сравнение чисел издавна кажется делом естественным.
Но в Древней Греции для обозначения чисел использовались бук-
вы (и некоторые дополнительные знаки), так что, вероятно, мысль
о внесении определённого порядка в расположение слов также
не должна была казаться нелепой.
Археологи много раз находили упорядоченные по алфавиту
(и даже по первым двум буквам) списки жителей древнегреческих СОРТИРОВКА
поселений. Упорядочивали слова в словарях многие авторы антич-
ности и раннего Cредневековья, например знаменитый римский
С ПОМОЩЬЮ
врач и естествоиспытатель Клавдий Гален (около 130 — около 200) ПРЯМОГО ОБМЕНА
в «Словаре Гиппократа».
А то, что сегодня называют лексикографическим порядком, бы- Хотя в обоих описанных алгоритмах
ло впервые описано в 1286 г. неким Джованни из Генуи. В предис- элементы меняются местами, всё-та-
ловии к своему словарю он приводит ки перестановки играют в них вспо-
примеры, когда порядок слов опре- могательную роль. Данный метод,
деляется не только второй, но и по- напротив, основан именно на них.
следующими буквами, вплоть до Алгоритм заключается в проходе по
шестой. Однако спустя ещё 300 неупорядоченной части массива
лет этот метод требовал допол- справа налево; при этом соседние
нительных пояснений. Так, элементы попарно сравниваются и,
в словаре английского языка если необходимо, меняются места-
«Table Alphabetical», издан- ми. В результате каждого прохода ми-
ном в Лондоне в 1604 г., объ- нимальный элемент неупорядочен-
яснялось, что слова, начина- ной части массива сдвигается к её
ющиеся с a, следует искать левому концу. Можно сказать, что бо-
в начале книги, а начинающи- лее «лёгкие» элементы всплывают, как
еся с v — в её конце... пузырьки воздуха в воде, поэтому ме-
Разумеется, расстановка тод иногда называют пузырьковой
слов в необходимом порядке сортировкой. Проходы повторяют-
выполнялась составителями сло- ся до тех пор, пока не будут упорядо-
варей вручную и требовала доста- чены все элементы. Если во время
точной усидчивости и немалого вни- прохода не произошло ни одной пе-
мания (упомянутый словарь английского рестановки, выполнение алгоритма
Клавдий Гален. языка содержал немало ошибок). можно закончить.
Хотя в наилучшем случае (исход-
ный массив полностью упорядочен)
число перестановок меньше, чем для число перестановок элементов равно
прямого включения, поэтому сор- нулю, в среднем оно всё-таки пропор-
тировка с помощью прямого вы- ционально n2. А вот число сравнений
бора чаще всего предпочтительнее. постоянно и равно (n 2–n)/2. Алго-
Однако если элементы исходного ритм, следовательно, также имеет ква-
массива достаточно хорошо упоря- дратичную сложность.
дочены, прямое включение всё же Минимальный элемент всплывает
несколько эффективнее (в этом слу- за один проход, а вот «тяжёлые» эле-
чае при равном количестве пере- менты опускаются при каждом прохо-
становок оно требует меньше срав- де только на одну позицию. Поэтому
нений). если наибольший элемент расположен

132
Основы программирования

в исходном массиве слева, то потребу- элементов, отстоящих друг от друга на


ется максимальное количество прохо- расстояние 4, и отсортировать каждую
дов. Избежать этого можно, чередуя на- группу (она называется четверной) не- Сложность задачи —
правления просмотра массива (этот зависимо, любым известным методом. это сложность наи-
метод назвали шейкерной сортиров- Затем сформировать две группы, в ко- лучшего алгоритма,
кой). К сожалению, сложность алгорит- торых элементы отстоят друг от друга известного для её
ма при этом не уменьшается: число пе- на две позиции. Их сортировку вновь решения.
рестановок остаётся прежним. произвести отдельно внутри каждой
из групп (двойная сортировка). На тре-
тьем этапе (одинарная сортировка)
УЛУЧШЕННЫЕ сортируется весь массив. В результате
получается упорядоченный массив, и,
АЛГОРИТМЫ СОРТИРОВКИ хотя число этапов велико, на каждом
из них либо сортируется небольшое
Итак, все рассмотренные до сих пор число элементов, либо элементы уже
методы сортировки (их называют достаточно упорядочены и требуется
прямыми) имеют квадратичную слож- сравнительно немного перестановок.
ность. Выигрыш достигается за счёт того, что
Возникает принципиальный во- меняются местами элементы, распо-
прос: а можно ли и до какого предела ложенные на значительном расстоя-
улучшать алгоритм решения некото- нии друг от друга.
рой задачи? Интересно, что им зада- Интересную математическую про-
вался ещё Чарлз Бэббидж, который блему представляет выбор расстояний
считал, что, получив с помощью ана- между элементами для последователь-
литической машины какой-либо ре- ных сортировок. Доказано, что если
зультат, надо обязательно выяснить, массив отсортировать сначала с ша-
не существует ли метод вычислений, гом i, а затем с шагом j, то его упоря-
дающий тот же результат за меньшее доченность сохранится. Расстояния,
время. используемые последовательными
Легко заметить, что во всех прямых сортировками, не обязательно долж-
методах сортировки за один элемен- ны быть степенями двойки (лишь на
тарный шаг элемент массива переме- последнем этапе расстояние должно
щается только на одну позицию. Дока- быть равно единице). Более того, же-
зано, что в среднем каждый из n лательно, чтобы они не были множи-
элементов массива должен за время телями друг друга — в этом случае при
сортировки сдвинуться на n/3 пози- каждом очередном проходе элемен-
ции. Это означает, что для упорядочи- ты групп будут перемешиваться, что
вания n элементов требуется порядка даёт значительный эффект. В одной
n2 элементарных шагов. Чтобы умень- из работ предлагается, например, та-
шить сложность алгоритма, на каждом кая последовательность расстояний:
элементарном шаге надо стремиться 1, 4, 13, 40, 121, ... (применяемая, разу-
перемещать элементы на большие рас- меется, в обратном порядке). В случае
стояния. Именно эта идея лежит в ос- последовательности расстояний 1, 3,
нове построения всех улучшенных ал- 7, 15, 31, ... сложность алгоритма оце-
горитмов сортировки. нивается как n1,2. Но, хотя эта оценка
значительно лучше, чем n2, есть и бо-
лее предпочтительные алгоритмы
СОРТИРОВКА ШЕЛЛА сортировки.

Она является усовершенствованием


сортировки с помощью прямого вклю- СОРТИРОВКА
чения. Её суть заключается в неодно-
кратном разбиении исходного мас-
С ПОМОЩЬЮ ДЕРЕВА
сива на группы и их независимой
сортировке. Метод является аналогом метода пря-
Например, сначала надо разбить мого выбора, так как он тоже сводит-
исходный массив на четыре группы ся к нахождению сначала минимума Доналд Шелл.

133
Алгоритмизация

В результате, выполнив n –1 срав-


нений, найдём наименьший элемент
(он находится в корне дерева). Это
начальный этап сортировки. На ри-
сунке показано минимизирующее де-
рево для массива {32, 41, 1, 33, 79, 12,
2, 53}.

Теперь нужно вернуться из корня


дерева назад вдоль пути, содержаще-
го минимальный элемент, исключая
его из дерева и заменяя на пустой эле-
мент. После этого снова произвести
подъём, помещая в пустые промежу-
точные вершины меньшие из срав-
ниваемых элементов. Элемент, пере-
среди n элементов, затем минимума двинувшийся в корень дерева после
среди n –1 элементов и т. д. Всего, та- выполнения этих действий, — вновь
ким образом, требуется произвести наименьший из оставшихся.
(n 2 – n)/2 сравнений. Однако эту
оценку можно улучшить. Дело в том,
что во время поиска наименьшего
элемента получена масса информа-
ции, которая затем теряется. Но её
можно сохранить, если представить
массив с помощью специально по-
строенного минимизирующего дере-
ва. Сравнить попарно элементы мас-
сива и выбрать каждой паре меньший
элемент, затем также сравнить их по- Снова исключить его. Спустя n та-
парно и т. д. ких шагов дерево станет пустым
и процесс сортировки на этом закон-
чится. На каждом из n шагов выбора
минимального элемента требуется
только log2n сравнений (по одному
сравнению, уточняющему значение
некоторых вершин на каждом уров-
не дерева). Поэтому сложность все-
го процесса составляет nlog2n. Таким
образом, получился алгоритм, даже
лучший, чем сортировка Шелла!

БЫСТРАЯ СОРТИРОВКА
Этот метод сортировки используют
в основном обмены. Главная его идея
заключается в том, чтобы осуществ-
лять перестановки элементов на как

134
Основы программирования

можно большее расстояние. Последо-


вательность действий при этом такая:
1) выбрать наугад (например, по-
середине массива) элемент x;
2) просмотреть массив слева от x,
пока не обнаружен элемент a, кото-
рый больше его; если такого элемен-
та нет, то a=x (т. е. за искомый a при-
нимается x);
3) просмотреть массив справа от
x, пока не обнаружен элемент b, кото-
рый меньше его; если такого элемен-
та нет, то b=x (т. е. за искомый b при-
нимается x);
4) поменять местами элементы a
и b, если a>b;
5) продолжить процесс просмот-
ра и обмена до тех пор, пока исход-
ный массив не окажется разбитым на
две части. Левая содержит элементы,
не превосходящие любой из элемен-
тов, составляющих правую. Теперь
описанную процедуру (шаги 1 — 4)
применить для обеих частей массива.
Доказано, что если в качестве гра- лиз алгоритмов сортировки вскрыва-
ницы x выбрана медиана сортируемого ет сущность понятия сложности алго-
массива (так называется элемент, ритмов, а их сравнение даёт богатый
не больший половины и не меньший материал для поиска путей совершен-
другой половины элементов), то общее ствования. (Возможно получить суще-
число сравнений составляет nlog2n, а пе- ственный выигрыш в эффективности,
рестановок — nlog2n/6. Вообще выбор перейти от квадратичной сложности
границы представляет интересную ма- тривиальных алгоритмов к сложнос-
тематическую задачу. Установлено, что ти порядка nlog2n эффективных алго-
ей может быть любой элемент массива, ритмов.)
в том числе первый или последний; есть Почти все алгоритмы сортировки
даже предположение, что её надо вы- представляют несомненный практи-
бирать случайным образом. В целом ческий интерес. Даже, казалось бы,
сложность алгоритма составляет nlog2n. не слишком эффективные прямые
Для решения одной и той же задачи методы, и те в ряде случаев могут
возможны самые разные подходы. Ана- быть с успехом применены.

ПОСТРОЕНИЕ ИНФОРМАЦИОННЫХ МОДЕЛЕЙ

Информация, обрабатываемая на ком- только ту часть, которая нужна для


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

135
Алгоритмизация

С помощью этой таблицы мож-


но получить информацию о ходе
продажи и подсчитать количество
билетов, оставшихся в кассе ( цел
остаток):

oстаток:= 0
нц для i от 1 до 40
| нц для j от 1 до 50
| | если a[i, j]= 0
Билетная касса | | | то остаток:= остаток+1
в кинотеатре. | | всё
| кц
Пусть надо организовать предва- кц
рительную продажу билетов на один
сеанс в кинотеатр, где в зале 40 рядов Для того чтобы определить общую
по 50 мест. Для этого необходимо стоимость непроданных билетов, на-
знать, на какие места билеты уже про- до знать цену каждого билета, одна-
даны. Раньше перед кассиром лежал ко в кинотеатре цена билетов разная,
план с изображением всех мест в ки- в зависимости от ряда. Следователь-
нозале, где крестиками отмечали ме- но, в модель логично включить ин-
ста, билеты на которые уже проданы. формацию о ценах на билеты, пред-
Таблица заменила план в информа- ставив её в виде линейной таблицы
ционной модели: или вспомогательного алгоритма

целтаб а[1:40, 1:50], алг цел цена (цел i)

а[i, j]=1, если место продано, и 0 — Алгоритм возвращает стоимость


если нет. в рублях без копеек (поэтому цел, а
Перед началом продажи, пока ни не вещ ) билета в ряде i , например:
один билет не продан, таблицу необ- цена (1) вернёт 100, цена(20) вернёт
ходимо заполнить нулями: 250, так как 20-й ряд дороже первого.
Перед началом продажи этот вспо-
нц для i от 1 до 40 могательный алгоритм уже должен
| нц для j от 1 до 50 быть определён, т. е. цена билетов
|| a[i, j]:= 0 должна быть задана. Чтобы изменить
| кц стоимость билетов, достаточно из-
кц менить вспомогательный алгоритм
цена или создать новый, например для
При продаже билета на место 1 в ря- выходных и праздничных дней ли-
ду 20 нужно выполнить команду: бо, наоборот, для будней.
Теперь в модели достаточно ин-
а[20, 1]:= 1 формации и для подсчёта выручки в
любой момент:

s:= 0
нц для i от 1 до 40
| нц для j от 1 до 50
| | если a[i, j]= 1
| | | то s:= s + цена(i)
| | всё
| кц
кц

В модели кинозала можно было бы


пронумеровать места подряд во всех
Зал кинотеатра. рядах 40 × 50=2000 и вместо прямо-

136
Основы программирования

угольной таблицы ввести линейную


таблицу а[1:2000]. Но это неудобно,
так как в реальном кинозале никакой ИНФОРМАЦИОННАЯ МОДЕЛЬ
сквозной нумерации мест нет, места ТРАНСПОРТНОЙ СЕТИ
задаются номером ряда и номером
кресла в ряду. К тому же при постоян- В некой стране 100 городов, между которыми проложены авиатрас-
ном преобразовании информации из сы. Из одного города можно перелететь (при необходимости —
одной формы в другую избежать оши- с пересадками) в любой другой. В каждом городе только один аэро-
бок практически невозможно. порт.
Алгоритмы можно написать по- Требуется построить информационную модель, которая позволит
иному уже после того, как модель ответить на вопросы, как перелететь из одного города в другой с мини-
выбрана. Если в таблице а[1:40, 1:50] мальным числом пересадок и какая при этом будет длина пути.
проданным местам соответствуют
единицы, а непроданным — нули, то цел n; n:= 100 | количество городов
количество проданных мест под-
считывают просто как сумму всех литтаб название[1:n] | название города
элементов таблицы, так же как и вещтаб расстояние[1:n, 1:n] | расстояние между
выручку: | городами i и j
n:= 0; s:= 0 | расстояние[i, i]=0 для всех i и расстояние[i, j]=0,
нц для i от 1 до 40 | если нет прямой дороги
| нц для j от 1 до 50
| | n:= n+ a[i, j] Используя эту модель, можно, например, проанализировать, как
| | s:= s+ a[i, j]*цена(i) добраться из города i1 в город i2, совершив не более одной пере-
| кц садки:
кц
вывод "из города", название[i1], "в город", название[i2]
Предложенная модель не учиты- если расстояние[i1, i2]>0
вает возможности бронирования | то вывод "рейс есть, расстояние =", расстояние[i1, i2]
мест, продажи абонементов, скидок | иначе p:= 0; найден:= "нет"
пенсионерам и т. п. В ней также от- | нц пока p<n и найден = "нет"
сутствует информация о количестве | | p := p +1
входов и выходов из кинозала, нали- | | если расстояние[i1, p]>0 и расстояние[p, i2]>0
чии проходов в зале, количестве бу- | | | то найден:= "да"
фетов и пр. Для подсчёта выручки или | | всё
числа проданных билетов данная ин- | кц
формация, конечно, не нужна, но ес- | если найден = "да"
ли требуется найти два места рядом, | | то вывод "есть маршрут с пересадкой в", название [p]
это важно. | | вывод "расстояние =", расстояние[i1, p]+
Значит, придётся расширить мо- || + расстояние[p, i2]
дель. Пусть в кинозале есть проход от | всё
первого до последнего ряда, тогда ин- всё
формацию можно задать заранее со-
зданной линейной таблицей p[1:49]
(49=50 –1), так как количество про-
ходов не превышает 49, если кресел

137
Алгоритмизация

жа билетов со скидкой 50 % затраги-


вает и модель, и алгоритмы. При под-
В разработке компьютерной системы обычно принимают уча-
счёте выручки придётся учитывать
стие заказчик и исполнитель. Задача последнего — выполнить
скидку, поэтому в модель должна быть
требования заказчика. Однако на практике заказчик не всегда в
добавлена эта информация. Тогда в
состоянии сразу сформулировать все требования к компьютер-
таблице а[1:40, 1:50]: непроданным
ной системе. Часто он добавляет условия в процессе разработ-
местам по-прежнему будут соответ-
ки и даже в процессе эксплуатации системы. Поэтому опытный
ствовать нули, а проданному месту —
исполнитель заранее предугадывает возможные запросы заказ-
процент с оплаты стоимости билета:
чика и старается построить информационную модель так, что-
а[i, j]=100, если билет оплачен на
бы в процессе развития системы модель только расширялась, а
100 %, а[i, j]= 50, если билет опла-
её готовые части и работающие с ними алгоритмы менялись как
чен на 50 %.
можно реже.
Алгоритм подсчёта числа продан-
ных мест и выручки теперь выглядит
так:
в ряду 50). Если p[i]=1, то в ряду име-
ется проход между i-м и (i+1)-м ме- n:= 0; s:= 0
стами. Как найти два места рядом, ре- нц для i от 1 до 40
шает следующий алгоритм. | нц для j от 1 до 50
| | если a[i, j]<>0
нашли:= ”нет” | | | то n:= n + 1
i:= 1; j:= 1 | | | s:= s + a[i, j]/100*цена(i)
нц пока нашли=”нет” и i<=40 | | всё
| если a[i, j]=0 и a[i, j + 1]=0 и | кц
|| p[j]=0 кц
| | то нашли:= ”да”
| | иначе j:= j + 1 Достоинства данной модели в
| | если j=50 том, что при необходимости она по-
| | | то i:= i + 1; j:= 1 зволяет варьировать размеры скид-
| | всё ки или продавать билеты с учётом
| всё разных скидок, например детям до
кц 12 лет со скидкой 70 %. Однако выда-
вать в ней совсем бесплатно билеты
Пусть в кинотеатре билеты пенси- нельзя, потому что при скидке 100 %
онерам продаются без очереди и со в таблицу а[1:40, 1:50] нужно зане-
скидкой 50 %. Очерёдность никакого сти 0 % от стоимости билета, а такое
отношения к компьютерной модели место нельзя будет отличить от сво-
и алгоритмам не имеет, а вот прода- бодного.

ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ

В докомпьютерное время в кассах ки- месте, то кассир заранее брал бланки


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

138
Основы программирования

ИНФОРМАЦИОННЫЕ МОДЕЛИ В ГЕОМЕТРИИ

Основы числового кодирования геометрической инфор-


мации заложил великий французский учёный XVII в. Ре-
не Декарт (1596–1650): любую точку плоскости можно за-
дать парой чисел (декартова система координат). Числовое
кодирование точек позволяет кодировать более сложные
геометрические объекты планиметрии. Любая компью-
терная система, разрешающая проводить геометрические
операции, базируется на моделях подобного типа.
Для всякого геометрического объекта можно при-
думать много моделей. Для каких-то операций над объ-
ектами будут удобны одни модели, а для других — дру-
гие. Поэтому для каждого объекта нужно создать
несколько информационных моделей и при необходи-
мости переходить от одной к другой. Вот несколько мо-
делей хорошо известных геометрических объектов:

Точка Рене Декарт.


вещ x, y | координаты точки
Пользуясь этими моделями, можно переводить гео-
Окружность метрические понятия на алгоритмический язык:
вещ r | радиус окружности
вещ a, b | координаты центра Длина отрезка: (x1–x2)**2 + (y1–y2)**2

Прямая Точка внутри окружности:


вещ x1, y1 | координаты двух (x–a)**2 + (y–b)**2 < r**2
вещ x2, y2 | точек на прямой
Периметр n-угольника:
Отрезок p:= 0
вещ x1, y1 | координаты начала отрезка нц для i от 1 до n–1
вещ x2, y2 | координаты конца отрезка | p:= p+ длина(i, i+1)
кц
Треугольник p:= p+ длина(n, 1)
вещ x1, y1 | координаты
вещ x2, y2 | вершин Один и тот же геометрический объект можно коди-
вещ x3, y3 | треугольника ровать по-разному, например, отрезок задаётся и так:

n-угольник вещ а, b | координаты середины отрезка


вещтаб х[1:n] | (x[i], y[i]) координаты вещ l | длина отрезка
вещтаб y[1:n] | i-й вершины вещ ф | угол наклона отрезка к оси абсцисс.

нять сразу несколько программ), при цессов при доступе к общему ресур-
этом работа каждого кассира рассмат- су. Для этого нужно выделить в
ривалась как независимый процесс, а каждом процессе часть, называемую
список билетов — как общий ресурс. критической секцией или крити-
ческим интервалом, где происходит
доступ к общему ресурсу. Например,
ПРОБЛЕМА ВЗАИМНОГО алгоритм «процесс» выполняется цик-
лически: начинается с обращения к
ИСКЛЮЧЕНИЯ вспомогательному алгоритму «кри-
тическая секция», и заканчивается вы-
Требуется решить проблему син- полнением вспомогательного алго-
хронизации выполнения двух про- ритма «окончание».

139
Алгоритмизация

Если модифицировать алгоритмы


процессов так, чтобы только один про-
Когда число процессов невелико и они фиксированы заранее,
цесс мог вызывать свою критическую
разделить их общий ресурс не представляет особой трудности.
секцию, то это решит данную проблему.
Так, легко синхронизировать два процесса: драйвер клавиатуры
Первое выполнение синхронизации
(программа, осуществляющая ввод символов при нажатии кла-
процессов состоит в добавлении целой
виш) и текстовый редактор (программа, запрашивающая очеред-
величины переключатель, которая будет
ной символ). Сложнее обеспечить синхронизацию работы
принимать одно из двух значений: «1»
процессов, число которых заранее неизвестно.
или «2» — в зависимости от того, какой
из процессов может запускать свою
критическую секцию.
алг процесс Если переключатель равен 1, про-
нач цесс 2 находится в состоянии ожида-
| нц ния, пока переключатель не станет ра-
| | критическая секция вен 2. Переключатель примет такое
| | окончание значение, когда первый процесс прой-
| кц дёт свою критическую секцию. Ана-
кон логично поступит и второй процесс,
заставив, в свою очередь, ждать пер-
вый. Таким образом, в каждый момент
алг параллельные процессы времени лишь один процесс может
нач цел переключатель находиться в своём критическом ин-
| переключатель:= 1 тервале. Но для того чтобы процесс
| процесс1 : процесс 2 | параллельное выполнение процессов повторно вошёл в свою критическую
кон секцию, ему необходимо дождаться
другого процесса, т. е. процессы входят
алг процесс 1 алг процесс 2 в свои критические секции последова-
нач нач тельно: первый, второй, первый, вто-
| нц | | нц рой... Это излишне жёстко связывает
| | нц пока переключатель = 2 | | нц пока переключатель = 1 выполнение двух параллельных про-
| | кц | | кц цессов.
| | критическая секция1 | | критическая секция2 Поэтому к алгоритму синхрониза-
| | переключатель:= 2 | | переключатель:= 1 ции требуется добавить обязательное
| | окончание 1 | | окончание 2 условие: задержка любого процесса
| кц | кц вне его критического интервала не
кон кон должна влиять на ход остальных
процессов.
Алгоритм синхронизации соответ-
алг параллельные процессы ственно изменится: вместо простого
нач лог флаг1, флаг2 переключателя будут введены логи-
| флаг1:= "нет" ческие величины флаг1 и флаг2, ко-
| флаг2:= "нет" торые принимают значение да, когда
| процесс1 : процесс 2 | параллельное выполнение процессов процесс входит в свою критическую
кон секцию, т. е. занимает общий ресурс.
Данный алгоритм более удачен: он
алг процесс 1 алг процесс 2 не требует соблюдения чёткой после-
нач нач довательности выполнения кри-
| нц | нц тических секций. Если один из про-
| | флаг1:= "да" | | флаг2:= "да" цессов короче другого, то он может
| | нц пока флаг2 | | нц пока флаг1 чаще попадать в критическую секцию.
| | кц | | кц Однако и этот алгоритм не лишён
| | критическая секция1 | | критическая секция2 недостатков. В случае когда оба про-
| | флаг1:= "нет" | | флаг2:= "нет" цесса готовы войти в свои крити-
| | окончание 1 | | окончание 2 ческие секции, т. е. флаг1 и флаг2
| кц | кц приняли значение да, следующие за
кон кон командой присвоения циклы ожида-
ния будут выполняться бесконечно,

140
Основы программирования

алг параллельные процессы


нач лог флаг1, флаг2, цел переключатель
| флаг1:= "нет"
| флаг2:= "нет"
| процесс1 : процесс 2 | параллельное выполнение процессов
кон
алг процесс 2 алг процесс 2
нач нач
| нц | нц
| | флаг1:= "да" | | флаг2:= "да"
| | переключатель:= 2 | | переключатель:= 1
| | нц пока флаг2 и | | нц пока флаг1 и
| | переключатель = 2 | | переключатель = 1
| | кц | | кц
| | критическая секция1 | | критическая секция2
| | флаг1:= "нет" | | флаг2:= "нет"
| | окончание 1 | | окончание 2
и ни один из процессов не сможет | кц | кц
войти в свою критическую секцию. кон кон
Это напоминает любезность Чичи-
кова и Манилова в «Мёртвых душах»
Н. В. Гоголя, когда они, стоя перед от- флаг). Переключатель нужен лишь для
крытой дверью, пропускают друг того, чтобы не возникала ситуация,
друга вперёд: «...Только после вас». подобная случаю с Чичиковым и Ма-
И в том и другом случае возникает ниловым.
необходимость выполнения ещё од- Проблема взаимного исключения
ного условия: решение, какой процесс возникла в начале 60-х гг. ХХ в.
должен войти в свой критический Одним из первых создателей ал-
интервал, необходимо принять за горитма считается Доналд Кнут. Из-
конечное время. вестный голландский программист
В таком алгоритме как бы объеди- Эдсгер Дейкстра в 1965 г. представил
няются первый и второй алгоритмы. наиболее полное и оригинальное
Для синхронизации требуются и вели- решение проблемы синхронизации
чина переключатель, и величины флаг1 параллельных процессов. Однако эти
и флаг2. Переключатель по-прежнему алгоритмы не работали, если один из
равен номеру процесса, который вы- процессов ломался (останавливался)
полняется в критической секции. при исполнении своего «окончания».
Можно заметить, что величина Непревзойдённый по простоте и кра-
переключатель вообще не требует ини- соте алгоритм предложил в 1981 г.
циализации (присваивания началь- американец Гарри Петерсен (версия
ного значения), так как устанавли- этого алгоритма и приведена в каче-
вается в значении «1» или «2» до цикла стве решения проблемы критической
ожидания. В отличие от переклю- секции выше в примере). Алгоритм
чателя, флаги сбрасываются (значе- Петерсена настолько прост, что, как
ние нет). Их нельзя не инициализиро- говорят, вообще не нуждается в пояс-
вать, так как какой-нибудь из нениях.
процессов может «вырваться» вперёд,
и другой не успеет присвоить свой
флаг. В начале процессов флаг подни- СЕМАФОРНАЯ ТЕХНИКА
мается (значение да), процесс готов
войти в критическую секцию. Пере- Эдсгер Дейкстра не только предло-
ключатель присваивает номер другого жил алгоритм, но и придумал ориги-
процесса, как бы «пропуская» соседа нальное средство синхронизации па-
вперёд. Цикл ожидания прервётся, раллельных процессов. Основная
если другой процесс покинет свою сложность при синхронизации со-
критическую секцию (сбросив свой стоит в том, что проверка значений Эдсгер Дейкстра.

141
Алгоритмизация

процесс не увеличит значение се-


мафора (сем означает тип «семафор»):
СЕМАФОРЫ
алг V (сем s) алг P (сем s)
Семафоры — одна из простейших техник синхронизации параллель- нач нач
ных процессов. Не менее красивые и эффективные алгоритмы получа- | s:= s+1 | нц пока s=0
ются при использовании так называемых условных критических интер- кон | кц
валов. (Общие ресурсы представлены переменными специального | s:= s-1
типа, или общими, которые процесс может использовать только внутри кон
специальных операторов — в условных критических интервалах.)
Подобные операторы были внедрены в специальную версию языка Существенно, что операции P и V
Pascal. Развитие техники синхронизации параллельных процессов считаются неделимыми. Это значит,
привело к появлению программ-мониторов, вобравших в себя и что с начала выполнения операции V
управляющие синхронизацией переменные, и программы захвата и до её окончания доступ к семафору
освобождения ресурсов. запрещён. В случае ожидания неск-
олькими процессами в операции P
(когда семафор равен нулю) и изме-
нения его другим процессом (приме-
величин и изменение этих величин нение к нему операции V ) только одна
не зависят друг от друга. Пока один операция P сможет завершиться. Ост-
Алгоритм, решающий процесс проверяет условие, разре- альные останутся ждать следующего
проблемы взаимного шающее или не разрешающее ему выполнения операции V . В соответ-
исключения, легко войти в критический интервал, он не ствии со своим названием один сема-
расширяется на N па- знает, начал ли другой процесс из- фор организует движение у одного
раллельных процес- менять это значение, т. е. не измени- разделяемого ресурса. То есть для ре-
сов. Для синхро- лось ли условие, пока его проверяли. шения проблемы синхронизации
низации по-прежнему Дейкстра определил величины спе- процессов потребуется всего один
потребуются пере- циального типа — семафоры и две семафор независимо от количества
ключатель и по од- операции, которые можно с ними про- процессов.
ному флагу на каж- изводить. Семафоры могут принимать
дый процесс. целые неотрицательные значения.
Существуют и так называемые бинар- ЧИТАТЕЛИ — ПИСАТЕЛИ
ные семафоры, соответственно при-
нимающие только значения «0» и «1». С помощью семафоров решаются
Операция V увеличивает значение многие проблемы синхронизации.
семафора на единицу. Операция P Интересным примером является за-
уменьшает на единицу, если значение дача читатели — писатели, типичная
семафора больше нуля, или останав- для реальных операционных систем.
ливается и ждёт, пока какой-нибудь Несколько процессов-писателей вы-
полняют алгоритм записи в общий
ресурс — память. Из памяти читают
алг параллельные процессы другие процессы, которые и называют
нач сем семафор процессами-читателями. По условию
| семафор:= 1 задачи одновременно лишь один пи-
| процесс1 : процесс 2 | параллельное выполнение процессов сатель может находиться в своём кри-
кон тическом интервале, и тогда из памяти
нельзя читать. Напротив, сразу не-
алг процесс 1 алг процесс 2 сколько читателей могут обращаться
нач нач к общей памяти.
| нц | нц Задача имеет две версии. В первой
| | P(семафор) | | P(семафор) ожидание писателя произвести запись
| | критическая секция1 | | критическая секция2 в буфер не мешает очередному чита-
| | V(семафор) | | V(семафор) телю присоединиться к тем, кто уже
| | окончание алгоритма1 | | окончание алгоритма2 занят чтением. Во второй писатели
| кц | кц имеют приоритет по сравнению с чи-
кон кон тателями при доступе к общей памяти:
если какой-то писатель готов сделать

142
Основы программирования

запись, то новые читатели не допуска-


ются. Последняя версия задачи несо- алг читатели — писатели
мненно сложнее первой. Для прос- нач сем читатель, память, цел число читателей
тоты будет приведено решение | число читателей:= 0
первой версии. | память := 1
Для решения задачи применяют- | читатель := 1
ся два семафора. Первый семафор — | читатель: ... | параллельное выполнение процессов-читателей
память — предназначен для синхро- | ... : писатель | параллельное выполнение процессов-писателей
низации доступа писателей к памяти. кон
Семафор не должен разрешать писа-
телю осуществить запись, если хотя алг читатель алг писатель
бы один читатель производит чтение. нач нач
Для этого вводится целая величина | P(читатель) | P(память)
число читателей, показывающая чи- | число читателей:= число читателей + 1 | запись в память
сло процессов, которые осуществля- | если число читателей=1 | V(память)
ют чтение в данный момент. Когда | | то P(память) кон
первый процесс хочет начать чтение, | все
то он увеличивает число читателей — | V(читатель)
значение равно «1». При этом следу- | чтение из памяти
ющее условие становится истинным | P(читатель)
и выполняется операция P с семафо- | число читателей:= число читателей – 1
ром память. Если ресурс свободен, то | если число читателей=0
он «захватывается» читателями или | | то V(память)
ждёт, когда писатель закончит свою | всё
критическую секцию — запись в па- | V(читатель)
мять. Аналогичные действия осущест- кон
вляются после критической секции
чтение из памяти, когда последний чи-
татель освобождает ресурс и разре- внимание, что для решения данной
шает запись или чтение из него. задачи использовались бинарные
Семафор читатель служит, чтобы семафоры. Дейкстра в своих работах
ограничить доступ к величине число показал, что все задачи, решённые
читателей только одному процессу. посредством семафоров, легко вы-
Увеличение (или уменьшение) этой полнить, применяя лишь бинарные
величины происходит неразрывно с семафоры. Вообще говоря, все сема-
его проверкой в условии. Подобную форы можно представить как целую
технику удобно применять, когда нуж- величину и бинарный семафор, что,
но ограничивать доступ процессов собственно, и продемонстрировано
к любой величине. Важно обратить с величиной число читателей и семафо-
ром читатель.

ЗАДАЧА ПРО ОБЕДАЮЩИХ


ФИЛОСОФОВ

В повседневной жизни часто встреча-


ются задачи параллельного доступа.
Самый простой пример: если в ванной
комнате уже кто-то моется, а кому-то
ещё вдруг понадобилась ванна, то по-
следний лучше поторопит первого,
чем станет мыться вместе с ним. Ещё
одна задача про параллельные про-
цессы — хорошо знакомая всем во-
дителям проблема проезда нерегу-
лируемого перекрёстка. По правилам

143
Алгоритмизация

Классическая задача синхро-


низации — задача про обедающих фи-
Во многих языках программирования также существует под-
лософов. В замке жили пять филосо-
держка параллельного программирования. Так, в SmallTalk есть
фов. Они всё время проводили в
специальный класс Process, в C++, Java синхронизация и
размышлениях о сущности бытия.
параллелизм осуществляются с помощью специальных библио-
Редкие встречи проходили у них за
тек классов.
обеденным столом. Ели философы
только вилками, причём двумя одно-
временно. В замке имелось всего пять
вилок, которые и лежали на столе.
алг обедающие философы Когда кто-то из учёных спускался в
нач семтаб вилка [1:5], цел к трапезную, то садился на свободное
| нц для к от 1 до 5 место за пятиугольный стол и брал
| | вилка[к]:= 1 вилку справа и вилку слева, если те
| кц были свободны, и ел. Потом клал вил-
| философ(1): ... :философ(5)| параллельный запуск процессов- ки на место и уходил к себе в комна-
| философов ту. Обед и размышления, обед и раз-
кон мышления — так проводили своё
время философы в замке.
алг философ(цел n) алг цел след (цел n) Для упрощения записи алгоритма
дано n дано n используется таблица из пяти сема-
надо надо форов семтаб, где для каждой вилки
нач нач имеется свой семафор ресурса. Алго-
| нц | n:= n+1 ритм написан для произвольного
| | P(вилка[n]) | если n>5 числа философов. Вспомогательный
| | P(вилка [след(n)]) | | то n:= 1 алгоритм след реализует операцию
| | ОБЕД | все (n+1)mod 5, mod 5 — остаток от деления
| | V(вилка [n]) | знач:= n числа на 5.
| | V(вилка [след(n)]) кон Однако теоретически вполне реаль-
| | РАЗМЫШЛЕНИЯ на ситуация, когда на обед придут сра-
| кц зу все философы, одновременно
кон возьмут в правую руку по вилке и будут
ждать, когда освободится вилка слева.
Такое положение называется deadlock
дорожного движения водитель должен (в переводе с английского «смерте-
уступить дорогу машине справа. Но что льное объятие»), оно создаёт взаимную
делать, если к перекрёстку с разных блокировку процессов. При бло-
сторон одновременно подъехали кировке философы просто умрут от
четыре автомобиля? голода. Избежать этой проблемы по-
может следующий алгоритм. Теперь
вилка — логическая величина, равная
да, если её никто не взял. Изменение
этой величины «охраняет» обычный
семафор (сем). Что делать, когда фило-
соф не может есть? Он должен спать,
прямо за столом. Семафор сон бло-
кирует соответствующий процесс: если
философ собрался поесть, а вилка за-
нята, то в ожидании он засыпает. Его
будит другой философ, освободивший
нужную вилку. Вообще, когда кто-то
пообедал, он на всякий случай на-
чинает будить соседей. При этом опять
требуется использовать бинарный
семафор, чтобы значение семафора
никогда не превышало единицы. При-
ведённый алгоритм позволяет избе-

144
Основы программирования

алг обедающие философы


нач семтаб сон [1:5], сем, цел к, лог таб вилка [1:5]
| нц для к от 1 до 5
| | сон [к]:= 1
| | вилка [к]:= "да"
| кц
| философ(1): ... :философ(5)| параллельный запуск процессов-
| философов
кон

алг философ (цел n)


дано n
надо
нач
| нц
жать блокировки процессов, однако | | P(сем)
возможна ситуация, когда один фило- | | нц пока не (вилка[n] и вилка[след(n)])
соф всё время спит, так как ему по- | | | V(сем)
стоянно недостаёт то левой, то правой | | | P(сон[n])
вилки. Такую ситуацию называют star- | | | P(сем)
vation (в переводе с английского «от- | | кц
талкивание»). Правда, существует ре- | | вилка[n]:= "нет"
шение и этой проблемы, однако оно | | вилка[след(n)]:= "нет"
достаточно сложно для данной энцик- | | V(сем)
лопедии. | | ОБЕД
| | P(сем)
| | вилка[n]:= "да" | n — вилка справа
| | вилка[след(n)]:= "да" | n + 1 — вилка слева
| | V(сон[след(n)]) | n + 1 — сосед слева
| | V(сон[след(след(след(след(n))))]) | n + 4 — сосед справа
| | V(сем)
| | РАЗМЫШЛЕНИЯ
| кц
кон

145
ТЕОРИЯ ПРОГРАММИРОВАНИЯ
МАТЕМАТИЧЕСКАЯ ЛОГИКА
Логика (от греч. «ло-
гос», означающего од-
новременно «слово» и КЛАССИЧЕСКАЯ ЛОГИКА Ещё античные философы замети-
«смысл») — наука о за- ли, что очень часто рассуждения име-
конах, формах и опе- Наука логика известна с глубокой ют значительное сходство в своём
рациях правильного древности, её отцом считается вели- строении, которое не зависит от со-
мышления. Её основ- кий древнегреческий философ Ари- держания входящих в него утверж-
ная задача заключа- стотель (384—322 до н. э.). дений.
ется в нахождении и Если идёт снег, то сейчас зима; идёт Вот другой пример.
систематизации пра- снег; следовательно, сейчас зима. Если воду нагреть до 100° С, то она
вильных способов рас- Это рассуждение состоит из трёх закипает; воду нагрели до 100° С; сле-
суждения. утверждений. Первые два утвержде- довательно, вода кипит.
ния называют посылками, а третье — Несмотря на различие содержания,
заключением. форма (схема) у обоих рассуждений
одинакова.
Если есть первое, то есть и вто-
рое; первое имеет место; следова-
тельно, имеет место и второе.
Разумно оценивать правильность
рассуждения теми результатами, к ко-
торым оно приводит. Рассуждение
с использованием этой схемы оста-
нется правильным, о каких бы объек-
тах ни велась речь. Если рассуждение
правильное, то из его посылок следу-
ет заключение. В таких случаях гово-
рят, что схема рассуждения представ-
ляет собой логический закон.

146
Теория программирования

Существует множество других схем


правильного рассуждения, например:
Есть или первое, или второе; перво- Лейбниц полагал, что
го нет; следовательно, есть второе. единица представ-
Важность логики заключается ляет божественное
в том, что она даёт возможность вы- начало, а нуль — не-
рабатывать новые знания без обраще- бытие. Добавление
ния к опыту или интуиции, с помо- единиц к нулю, поз-
щью формальных рассуждений. воляющее выразить
За два тысячелетия со времён Ари- любое число, он отож-
стотеля традиционная логика не слиш- дествлял с актом бо-
ком далеко ушла вперёд. Великий не- жественного творе-
мецкий философ Иммануил Кант ния всего сущего из
(1724 — 1804) даже считал, что эта на- ничего.
ука уже полностью завершила своё раз-
витие. Однако постепенно в логике на-
зревала революция. И подготовил её
другой немецкий философ, математик,
физик, изобретатель, юрист, историк, результаты нельзя поставить под со-
лингвист — Готфрид Вильгельм Лейб- мнение или оспорить. После этого
ниц (1646—1716). у Лейбница возникла идея: нельзя ли
Ещё в 1672 г., посетив работавшего сделать столь же неоспоримыми
в Париже голландского изобретателя и производимые человеком умозаклю-
и физика Христиана Гюйгенса (1629— чения, представив их как вычисления?
1695), Лейбниц был обескуражен тем, Правда, проблему он исследовал боль-
как много сил и времени расходует тот ше как философ, предложив девиз:
на осуществление необходимых ма- «Будем вычислять».
тематических расчётов. Возможно, эти Идеи Лейбница о математизации
впечатления и стали отправной точ- умозаключений, значительно опере-
кой в размышлениях Лейбница над див своё время, не оказали заметного Иммануил Кант.
проблемой вычислений. «Недостой- влияния на научные воззрения его
но таких замечательных людей, подоб- современников. Потребовалось ещё
но рабам, терять время на вычисли- целых полтора столетия, пока в трудах
тельную работу, которую безусловно английского математика Джорджа
можно было бы поручить любому ли- Буля (1815—1864) не были заложены
цу при использовании машины», — пи- основы математического подхода
сал он позднее. Такую машину Лейб- к логике. Интересно, что Буль не имел
ницу удалось создать спустя много лет, математического образования, но это
в 1694 г. не помешало ему в 1849 г. стать про-
Лейбниц изучал проблему вычис- фессором кафедры математики в Ку-
лений и теоретически. В 1703 г. он инс-колледже в Корке (Ирландия). Его
впервые привлёк внимание учёного труды «Математический анализ логи-
мира к двоичной системе счисления, ки» (1847 г.), «Логическое исчисление»
доказывая её преимущества перед де- (1848 г.), «Исследование законов мыш-
сятичной системой, так как в после- ления» (1854 г.) вошли в фундамент Готфрид Вильгельм
довательностях нулей и единиц гораз- современной математической логики. Лейбниц.
до легче обнаружить закономерности
их поведения (он называл их «чудес-
ным порядком»). АЛГЕБРА ЛОГИКИ
Лейбниц первым заметил, что вы-
полнение арифметических действий Школьная алгебра изучает формулы,
ведётся с помощью простых правил, которые состоят из букв, знаков ариф-
для которых не имеет значения смысл метических операций и скобок.
чисел, а важно лишь то, как они запи- Формулы можно преобразовывать.
саны. Правила эти достаточно очевид- Любые допустимые (эквивалентные)
ны, а их применение даёт однознач- преобразования алгебраических фор-
ный результат, следовательно, эти мул задаются законами:

147
Алгоритмизация

• ассоциативным x ϕ1 ϕ2 ϕ3 ϕ4
(a+b)+c=a+(b+c), 0 0 0 1 1
1 0 1 0 1
(a. b). c=a. (b. c);

• коммутативным аргументов и соответствующие зна-


чения функции.
a+b=b+a, В случае функции от одного аргу-
мента, ϕ(x), такая таблица будет
a. b=b. a; выглядеть крайне просто.
Первая функция, ϕ1, принимает зна-
• дистрибутивным чение 0 при любых значениях аргу-
Джордж Буль. мента, т. е. это константа 0, анало-
a(b+c)=ab+ac, гично функция ϕ4 — константа 1.
Значения этих функций не зависят
а также получаемыми с их помощью от x, поэтому говорят, что для них пе-
важными следствиями (например, ременная x несущественна. Функция
формулами сокращённого умноже- ϕ3, заменяющая значение своего ар-
ния), такими, как гумента на противоположное, назы-
вается отрицанием. Обозначается
a2–b2=(a+b)(a–b). отрицание по-разному: ϕ3(x)= ¬ x или,
более часто, ϕ 3(x)=x – . И наконец,
Кроме того, формулы могут ис- функция ϕ2(x)=x называется повто-
пользоваться для вычислений; в этом рением.
случае вместо букв подставляют их Логических функций одной пе-
числовые значения и производят со- ременной насчитывается всего четы-
ответствующие арифметические дей- ре. В общем же случае число логиче-
ствия. Каждая формула задаёт ариф- ских функций n переменных будет
n
метическую функцию, количество равно 22 . (2n — это число возможных
аргументов которой равно количест- наборов длины n, состоящих из 0 и 1,
n
ву различающихся букв в формуле. т. е. число строк таблицы. Тогда 22 рав-
Алгебра логики также изучает фор- но количеству различных расстановок
мулы. Но переменные в них могут 0 и 1 в столбце с таким числом строк.)
принимать только одно из двух воз- Значит, логических функций двух пе-
n
можных значений — ложь и истина. ременных должно быть 22 =16.
Эти значения называют логическими. Как и в случае функций одной пе-
Они обозначаются также, как 0 и 1, ременной, функции ϕ1 и ϕ16 — это кон-
Л и И, false и true. Вводятся специ- станты, соответственно 0 и 1. У них
альные знаки логических операций. обе переменные несущественны.
И в этом случае каждая формула за- Для функций ϕ4(x 1, x 2) и ϕ13(x 1, x 2)
даёт функцию. Эти функции называ- несущественна переменная x 2, по-
ют логическими. Их аргументами яв- –.
скольку ϕ4(x1, x2)= x1, а ϕ13(x1, x2)=x 1
ляются логические переменные, А для функций ϕ6(x1, x2) и ϕ11(x1, x2)
а сами функции могут принимать несущественна переменная x 1, по-
только логические значения. –.
скольку ϕ6(x1, x2)= x2, а ϕ11(x1, x2)=x 2
Любую такую функцию можно за- Функцию ϕ2(x1, x2) называют конъ-
дать в виде таблицы, в которой указа- юнкцией x1 и x2. Её принято обозна-
ны все возможные наборы значений чать x1&x2 или же x1∧x2. Конъюнкция

148
Теория программирования

равна 1 только в том случае, когда Вообще таблицу соответствующей


и x 1, и x 2 равны 1. Поэтому конъ- функции можно построить для каждой
юнкцию часто называют ещё функ- формулы, подставляя в неё значения
цией И. Называют её также логичес- переменных на всех наборах. Таблич-
ким умножением, так как значения ное представление функции (а следо-
функции совпадают с результатом вательно, и формулы) единственно. Но
умножения аргументов по правилам одна и та же функция может быть за-
арифметики. писана с помощью разных формул.
Функцию ϕ8(x1, x2) называют дизъ- Например, функцию штрих Шеф-
юнкцией x 1 и x 2. Обозначают дизъ- фера можно записать и как ϕ15(x1,
юнкцию x 1∨x 2. Её называют также –∨x
x2)=x – , и как ϕ (x , x )=x ∧x Такие
1 2 15 1 2 1 2.
функцией ИЛИ, так как она равна 1, формулы, представляющие одну и ту
если единице равен или x 1, или x 2. же функцию, называются эквивалент-
Ещё одна функция, ϕ7(x1, x2), полу- ными или равносильными.
чила название сложения по модулю 2. Для записи формул нет необхо-
Для неё используется обозначение димости использовать все функции.
x1⊕x2. Функция равна 1, если значения Например, от штриха Шеффера в
аргументов различаются, и равна 0, формулах можно избавиться, выра-
если они совпадают. Отсюда проис- зив его через конъюнкцию, дизъюнк-
ходит другое название этой функ- цию и отрицание, поэтому функция
ции — неравнозначность. ϕ(x1, x2, x3) может быть записана в виде
Напротив, функция ϕ10(x1, x2) в слу- x1∧x2 ∨ x1∨x3. Существуют наборы ло-
чае равенства аргументов равна 1, гических функций, посредством ко-
а в случае неравенства — равна 0. торых можно выразить любые другие
Поэтому она названа эквивалентно- логические функции. Такие наборы
стью или равнозначностью. Обозна- называют функционально полными,
чается эта функция x1∼x2 или же x1≡x2. или базисами.
Имеют названия ещё три функции: Так же как и штрих Шеффера,через
импликация — ϕ14(x1,x2), обозна- конъюнкцию, дизъюнкцию и отрица-
чается x1→x2 или x1⊃x2; читается «ес- ние можно выразить и другие логиче-
ли x1, то x2»; ские функции двух переменных:
стрелка Пирса (другое название
НЕ-ИЛИ) — ϕ9(x1, x2). Обозначается – ∨x ,
x1→x2=x1 2
x1↓x2.
штрих Шеффера (другое название ––
x1∼x2=x1x2∨x1 x2 ,
НЕ-И) — ϕ15(x1, x2), обозначается x1 | x2.
Остальные функции используются x1⊕ x2=x1– –x ,
x2∨x1 2
достаточно редко.
––
Если формула содержит только вве- x1↓x2=x1∨x2=x1x2 . Если кит идёт по
дённые знаки операций, то её значе- улице, то полночь!
ние на любом наборе переменных лег-
ко вычислить. Например, функцию
ϕ(x1, x2, x3), которая задана формулой
– |(x ∨ x ), можно задать следу-
x 1∧ x 2 1 3
ющей таблицей:

x1 x2 x3 ϕ(x 1, x 2, x 3)
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1

149
Алгоритмизация

• Правила де Моргана:
– –
x1∧x2=x1∨x2 ,
– –
x1∨x2=x1∧x2 .

• Идемпотентность:

x∧x=x,

x∨x=x.

(Это значит, что в логических фор-


мулах, в отличие от алгебраических, не
бывает степеней и коэффициентов.)

• Двойное отрицание:
=
x =x.

• Закон противоречия:

x∨x =0.

Формулы, содержащие только зна- • Закон исключённого третьего:


ки этих трёх операций (а также пере-
менные и скобки), называют булевыми x∨x =1.
формулами (в честь Дж. Буля). Спра-
ведлива теорема, гласящая, что любая • Свойства констант:
логическая функция может быть пред-
ставлена в виде булевой формулы. По- x∧1=x, x∧0=0,
этому набор из конъюнкции, дизъюн-
кции и отрицания образует базис. x∨1=1, x∨0=x,
Множество логических функций, на
– –
которых определены эти три опера- 0=1, 1 =0.
ции, называется булевой алгеброй.
Операции булевой алгебры обычно на- Справедливость каждого из этих
зывают булевыми операциями. эквивалентных соотношений может
Для булевых операций характер- быть легко проверена, достаточно вы-
ны общие основные свойства. числить их левые и правые части на
• Законы ассоциативности: всех возможных наборах значений
входящих в них переменных.
(x1∨x2)∨x3 = x1∨(x2∨x3), При записи булевых формул зна-
ки операции конъюнкции чаще все-
(x1∧x2)∧x3=x1∧(x2∧x3). го опускают, как и знак умножения
в алгебре. Аналогично при последо-
• Законы коммутативности: вательном выполнении нескольких
конъюнкций или дизъюнкций опус-
x1∨x2=x2∨x1, кают скобки; опускаются и внешние
скобки у конъюнкции:
x1∧x2=x2∧x1.
(x1∧(x2∧x3))∨((x4∨x5)∧x6) =
• Законы дистрибутивности:
= x1x2x3∨(x4∨ x5)x6.
x1∧(x2∨x3)=(x1∧x2)∨(x1∧x3),
Основные эквивалентные преоб-
x1∨(x2∧x3)=(x1∨x2)∧(x1∨x3). разования бывают двух типов. Пер-

150
Теория программирования

вый — упрощение формул. Оно поз- к первой и второй, а также к третьей


воляет получать эквивалентные фор- и четвертой конъюнкциям):
мулы меньшей длины.
• Поглощение: –x
x – ∨x x .
1 3 1 2

x∨xy=x; x(x∨y)=x. Полученная ДНФ значительно ко-


роче.
• Склеивание: Наборы конъюнкция и отрицание,
дизъюнкция и отрицание также явля-
–=x,
xy∨xy ются базисами. С помощью отрица-
ния конъюнкцию можно выразить че-
–)=x.
(x∨y)( x∨y рез дизъюнкцию и наоборот:

• Обобщённое склеивание: – –
x1∨x2 = x1∨x2=x x ,
1 2

–∨xy= xz∨yz
xz∨yz –. – ∨x
x1x2=x1x2 =x –
1 2.

Второй тип — приведение к дизъ- Существуют и другие базисы. Наи-


юнктивной нормальной форме более известен среди них базис Же-
(ДНФ). галкина, включающий конъюнкцию,
Конъюнкция переменных или их сложение по модулю 2 и константу 1.
отрицаний, в которой каждая перемен- В самом деле,
ная встречается не более одного раза,
называется элементарной конъюнк- –=x⊕1,
x
цией. ДНФ — это формула, имеющая
вид дизъюнкции элементарных конъ- x1∨x2=x1x2⊕x1⊕x2.
юнкций. Из соотношения обобщённо-
го склеивания видно, что ДНФ форму- Базис может состоять даже из од-
лы не обязательно единственна. ной функции. Например, и штрих
Если функция n переменных ϕ(x1, Шеффера, и стрелка Пирса также об-
x2, ..., xn) задана таблицей, то её буле- разуют базисы, поскольку любая из
ву формулу можно построить так. Вы- функций — отрицание, конъюнкция
писываются конъюнкции всех пере- и дизъюнкция — может быть выраже-
менных, на наборе которых функция на через них:
равна 1. Переменные, равные 0, бе-

рутся с отрицанием. Все конъюнкции x =x| x=x↓x,
соединяются знаками дизъюнкции.
Получившаяся формула называется x1x2=x1x2 =x1| x2 = (x1| x2)|(x1| x2),
совершенной дизъюнктивной нор-
мальной формой (СДНФ). СДНФ для x1∨x2= x1↓x2 = (x1↓x2)↓(x1↓x2).
каждой функции единственна (что
следует из самого метода построения
СДНФ), они могут отличаться только
порядком следования переменных
в конъюнкциях и порядком конъюнк-
ций. Не имеет СДНФ лишь функция
константа 0.
Используя таблицу, построим
СДНФ функции ϕ(x1, x2, x3):
–x –x– –x – –
x 1 2 3∨x 1 2 x 3∨x 1 x 2 x ∨x 1 x 2 x 3 .

Получившаяся формула достаточ-


но громоздка, но её можно упростить,
используя эквивалентные преобразо-
вания. В данном случае дважды при-
менив склеивание (соответственно

151
Алгоритмизация

БУЛЕВА АЛГЕБРА Интересное применение алгебры


логики в программировании — это ис-
И КОМПЬЮТЕР пользование так называемых преди-
катных вычислений. Компилятор снаб-
Наличие в программах проверок ус- жает некоторые машинные команды
ловия, условных переходов — имен- предикатами (логическими условия-
но то, что определяет чёткую грань ми). Значения предикатов хранятся на
между вычислительными устройства- специальных регистрах, а в систему
ми (вроде арифмометра или карман- команд компьютера вводятся коман-
ного калькулятора) и компьютером. ды над предикатами. Команды под
Они позволяют программисту преду- управлением предикатов выполняют-
смотреть все возможные варианты вы- ся независимо от значения последних.
полнения разрабатываемой им про- Но при этом если значение предиката
граммы. есть true, то команда выполняется
Для установления истинности обычным образом, а если значение
условия требуется составление логи- предиката равно false, то она не изме-
ческих формул и вычисление логиче- няет состояние процессора. Исполь-
ских выражений с использованием зование предикатного механизма поз-
правил алгебры логики. Поэтому во воляет компилятору переупорядочить
М. А. Гаврилов. многих языках программирования, команды в программе для более эф-
начиная с самых ранних, таких, как фективного её исполнения.
FORTRAN или Algol-60, определены Ещё одним важнейшим примене-
логические значения и операции с ни- нием алгебры логики в информатике
ми. Для логических значений в язы- является создание логических схем.
ках программирования часто испо- Над возможностями применения ло-
льзуются обозначения false и true, гики в технике учёные и инженеры за-
позволяющие не путать их с числами думывались уже давно. Например, гол-
0 и 1 в тексте программы (хотя фак- ландский физик Пауль Эренфест
тически истинным считается любое (1880—1933), кстати несколько лет ра-
Вентили есть не ненулевое значение логической пе- ботавший в России, писал ещё в 1910 г.:
только в схемах. ременной). «...пусть имеется проект схемы прово-
дов автоматической телефонной стан-
ции. Надо определить: 1) будет ли она
правильно функционировать при
любой комбинации, могущей встре-
титься в ходе деятельности станции;
2) не содержит ли она излишних ус-
ложнений. Каждая такая комбина-
ция является посылкой, каждый ма-
ленький коммутатор есть логическое
“или-или”, воплощённое в эбоните
и латуни; всё вместе — система чис-
то качественных... “посылок”, ничего
не оставляющая желать в отношении
сложности и запутанности... Правда
ли, что, несмотря на существование
алгебры логики, своего рода “алгеб-
ра распределительных схем” должна
считаться утопией?». Созданная позд-
нее М. А. Гавриловым (1903—1979)
теория релейно-контактных схем по-
казала, что это вовсе не утопия.
Основой построения сложных ло-
гических схем являются вентили —
так называют простейшие устройст-
ва, на входы которых поступают
начальные данные, а на выходе полу-

152
Теория программирования

чается результат некоторой булевой ческие схемы (в частности, элемент


операции. На разных этапах развития задержки, имеющий один вход и один
техники вентили строились с исполь- выход, на который с определённой за-
зованием доступной технологии, на- держкой поступает сигнал, поданный
пример зубчатых колёс или электро- на вход) используют для построения
механических реле. В современном всё более и более сложных схем. Про-
компьютере вентиль — это неболь- цесс разработки общей логической
шая электронная цепь, в которой зна- схемы устройства (в том числе и ком-
чения 0 и 1 соответствуют разным пьютера в целом), таким образом, ста-
уровням электрического напряжения. новится иерархическим, причём на
На рисунке показаны использу- каждом следующем уровне в качестве
емые в логических схемах изображе- «кирпичиков» используются логиче-
ния вентилей, соответствующих логи- ские схемы, созданные на предыду-
ческим функциям NOT (отрицание), щем этапе.
AND (логическое И), OR (логическое Алгебра логики дала в руки конст-
ИЛИ) и XOR (неравнозначность, ис- рукторам мощное средство разработ-
ключающее ИЛИ). ки, анализа и совершенствования ло-
Из вентилей составляют более гических схем. В самом деле, гораздо
сложные схемы, в частности тригге- проще, быстрее и дешевле изучать
ры. Триггером называется схема, по- свойства и доказывать правильность
стоянно выдающая значение 0 или 1 работы схемы с помощью выража-
до тех пор, пока одиночный импульс ющей её формулы, чем создавать ре-
от другой схемы не переведёт её в про- альное техническое устройство. Имен-
тивоположное состояние. Следова- но в этом состоит смысл любого
тельно, триггер позволяет хранить математического моделирования.
в компьютере один бит информации. Набор операций, выполняемых
Возможны разные варианты по- логическими элементами, должен
строения триггера (на рисунке пред- быть функционально полным (вспом-
ставлены два из них). ним понятие базиса). В этом случае
Несмотря на различную структуру, любая логическая схема заведомо
оба этих триггера имеют абсолютно реализуема. А применение эквива-
одинаковые свойства. Отсюда видно, лентных преобразований формул

как велико значение формального позволяет существенно упрощать их.


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

153
Алгоритмизация

ВОЗМОЖНА И ДРУГАЯ ЛОГИКА

«Человек не знал двух слов — “да” и “нет”. Он отве- Лукасевича значения могли быть истинными, лож-
чал туманно: “Может быть, возможно, мы подума- ными и нейтральными. Спустя год американский
ем”...». Эту запись находим на страницах знамени- учёный Эмиль Пост (1897—1954) создал её обоб-
тых «Записных книжек» замечательного писателя щённую модель — k-значную логику. Ещё позднее,
Ильи Ильфа (одного из соавторов романов «Две- в 1930 г., Ян Лукасевич и Альфред Тарский (1902—
надцать стульев» и «Золотой телёнок»). 1983) разработали бесконечнозначную логику.
И в самом деле, часто нам явно не хватает двух Для многозначных логик также можно опреде-
известных слов, точнее, двух логических значений. лять алгебры, подобные булевой. Для k-значной ло-
Ведь то и дело мы слышим высказывания, про ко- гики операции отрицания, конъюнкции и дизъюнк-
торые нельзя сказать, истинны они или ложны. ции можно задать следующим образом:
«Возможно, я получу на экзамене отличную оцен-
ку». Или, например, обычной является ситуация, ког- –
x=(k – 1) – x,
да мы должны принять решение — делать что-либо
или нет, не имея при этом всей необходимой инфор- x1∧x2= min(x1, x2),
мации либо не зная степени её достоверности.
Учёные давно пытались преодолеть ограниче- x1∨ x2 = max(x1, x2).
ния классической аристотелевой логики. Например,
русский логик Н. А. Васильев в 1910 г. разработал Для двузначной логики, т. е. для случая k=2, это
оригинальную систему, назвав её «воображаемая ло- определение приводит к уже известным булевым
гика». Согласно Васильеву, каждое суждение может операциям.
быть утвердительным, отрицательным или акциден- Применяется в логике и так называемый лингви-
тальным. стический подход, при котором истинность пере-
Если акцидентальное суждение истинно, то и менных задаётся не числовыми значениями, а упо-
утвердительное, и отрицательное суждения явля- рядоченным набором словесных характеристик.
ются ложными. Тем не менее одно и то же сужде- Например, набор значений лингвистической пере-
ние не может быть одновременно и истинным, и лож- менной «Рост человека» можно упорядочить (по воз-
ным. Логика Васильева не имела большой растанию): лилипут, очень маленький, маленький,
известности и только в последние годы учёные вновь ниже среднего, средний, выше среднего, высокий,
стали обращаться к его идеям. очень высокий, великан.
Зато самое широкое распространение получили Лингвистические переменные имеют прямое от-
так называемые многозначные логики. В них значе- ношение к так называемой нечёткой математике, по-
ния истинности переменных и функций располага- строенной на базе понятий нечёткого множества
ются в диапазоне от 0 до k – 1 (тогда 0 можно пони- и нечёткого вывода. С её помощью решаются мно-
мать как абсолютную ложь, а k – 1 — как абсолютную гие важные практические задачи. Например, в об-
истину). ласти искусственного интеллекта, где разрабатыва-
Основоположником новой науки стал польский емые для разных аналитических и диагностических
логик и математик Ян Лукасевич (1878—1956), пред- целей технические, медицинские и другие эксперт-
ложивший в 1920 г. трёхзначную логику. В логике ные системы в основе механизма принятия решения
содержат нечёткий вывод.
Основоположником нечёткой математики явля-
ется американский учёный Лофти Заде, развива-
ющий свою теорию с 60-х гг. XX в.
Существует ещё и совершенно особая женская
логика! Великий русский писатель Иван Сергеевич
Тургенев так охарактеризовал её, вложив в уста Пи-
гасова (персонаж романа «Рудин») слова: «...мужчи-
на может, например, сказать, что дважды два не че-
тыре, а пять или три с половиною, а женщина скажет,
что дважды два — стеариновая свечка».
Но тут уж пасуют и математика, и информа-
тика...

154
Теория программирования

ТЕОРИЯ АЛГОРИТМОВ

ФОРМАЛИЗАЦИЯ
ПОНЯТИЯ АЛГОРИТМА Суперпозиция — подстановка одних функций в другие. Она
порождает математические формулы. Например, если в функ-
цию xy+z вместо y подставить функцию t – u, а вместо z функ-
Теория алгоритмов строит и изучает
цию vw, получим формулу x(t – u)+vw.
конкретные модели алгоритмов. Эти
модели различаются наборами преоб-
разуемых объектов и элементарных
шагов, способами выбора следующе-
го шага и т. д.
Можно выделить три главные ли-
нии построения теоретических мо- НОРМАЛЬНЫЕ АЛГОРИТМЫ МАРКОВА
делей алгоритмов.
Первая линия связана с тем очевид- Для нормальных алгоритмов задаются ко-
ным фактом, что любые данные могут нечный алфавит и конечное множество
быть закодированы числами. Каждое подстановок (правил замены одних час-
преобразование данных сводится к тей слова на другие). Работа алгоритма
арифметическим вычислениям, а каж- состоит из выполнения в определённом
дый алгоритм находит значение неко- порядке двух операторов: операторов-
торой числовой функции. Элементар- распознавателей и операторов подста-
ными шагами алгоритма являются новки. Оператор-распознаватель находит
выполняемые арифметические опера- вхождение левой части подстановки
ции. Последовательность элементар- в слово, а оператор подстановки заменя-
ных шагов определяется в таких моде- ет это вхождение на соответствующую
лях либо с помощью суперпозиции правую часть.
функций, либо с помощью рекурсии. Пусть заданы алфавит A={x, y} и мно-
Вторая линия связана с предполо- А. А. Марков жество подстановок yyxÕy; xxÕy; yyyÕx!
жением, что любой алгоритм можно (Последняя — заключительная подстанов-
представить как последовательное ка, после выполнения которой процесс останавливается.) Исходное
преобразование входных слов, со- слово p = x y x x x y y.
ставленных из символов конечного Если с помощью оператора-распознавателя выяснилось, что первая
алфавита. Таким образом возникло подстановка к этому слову неприменима, надо перейти к анализу вто-
понятие нормальных алгоритмов, рой подстановки. Оператор-распознаватель выделяет первое вхожде-
предложенных и изученных А. А. Мар- ние её левой части (xx) в p: p=xy(xx)Õxyy. Оператор подстановки вы-
ковым (1903—1979). полнит подстановку, в результате чего получается новое слово p1=xyyxyy.
Третья линия достаточно близка К нему применима первая подстановка: p1=x(yyx)yyÕxyyy=p2. К полу-
ко второй. Только в отличие от неё ченному слову применима лишь третья подстановка: p2=x(yyy)Õxx=p3.
использует не абстрактные подста- Это была заключительная подстановка, поэтому слово p3 — оконча-
новки, а определяет какие-либо кон- тельный результат работы алгоритма.
кретные механизмы. При этом пред-
полагается: каждый шаг алгоритма
таков, что его может выполнить до-
статочно простое устройство (маши-
на). Желательно, чтобы оно было уни-
версальным, т. е. чтобы на нём можно
было выполнять любой алгоритм.
Значит, надо представить механизм
работы машины в виде стандартной
схемы, максимально простой по логи-
ческой структуре, но настолько точной,
чтобы она могла служить предметом
математического исследования. Впер-
вые это было сделано американским
математиком Эмилем Постом в 1936 г.,

155
Алгоритмизация

Работают машины Поста под управ-


лением программ. Программы состо-
Рекурсией называют вычисление очередного значения функции
ят из команд, имеющих по три поля,
с использованием ранее полученных её значений. Примером ре-
в которых записываются номер коман-
курсивного задания функции является определение факториа-
ды, операция и отсылка. Команды ну-
ла: f(0)=1; f(n+1)=f(n)(n+1). Здесь значение функции задаётся
меруются начиная с 1; выполнение
для начального значения аргумента, а каждое последующее оп-
программы начинается с команды но-
ределяется через предыдущее.
мер 1. Отсылка показывает, какую ко-
манду нужно выполнять после данной.
Для машины Поста определены опе-
ещё до создания современных вычис- рации пяти видов:
лительных машин, и практически од- • движение головки на одну клет-
новременно английским математиком ку вправо;
Аланом Тьюрингом. • движение головки на одну клет-
ку влево;
• запись символа S в обозреваемую
МАШИНА ПОСТА клетку, при этом прежнее содержи-
мое клетки пропадает;
Машина Поста состоит из ленты и го- • СТОП — завершение работы ма-
ловки. Лента разделена на клетки шины Поста, в поле отсылки не нуж-
и считается условно бесконечной (это дается;
означает, что при необходимости

{
S 1, M1
число клеток может быть увеличено). • команда разветвле- S 2, M2
В каждой клетке может быть записан ния, записываемая так: ? …
один символ из фиксированного ал- S n, Mn
фавита. В любой конкретный мо-
мент головка обозревает одну клет- Здесь S1, S2, ... — некоторые симво-
ку и способна работать только с ней. лы из алфавита машины Поста, M 1,
M2, ... — отсылки. По этой команде ана-
лизируется символ из обозреваемой
клетки. Если он совпадает с Si, следу-
ющей будет выполняться команда
с номером Mi. При этом головка ни-
куда не перемещается и на ленту ни-
чего не записывается. Если в клетке
стоит символ, не упомянутый в ко-
манде разветвления, то происходит
так называемая безрезультатная оста-
новка машины Поста (иначе говоря,
машина ломается).
Другими возможными исходами
выполнения программы на машине
Поста являются бесконечная работа
и результативная остановка, которая
вызывается выполнением команды
СТОП.
Вот пример. Пусть алфавит маши-
ны Поста состоит из символов {-, 0, 1}
(символом «-» обозначим пробел), а на
ленте записана последовательность
символов 1 и 0. Головка «смотрит» на
самый левый элемент этой последо-
вательности. Требуется заменить все
символы 1 на 0, а 0 на 1. Программа
(вместе с комментариями, которые
размещаются между % ... %) будет вы-
глядеть так:

156
Теория программирования

1 2 % если символ 1, то выпол- В каждый момент машина Тьюрин-

{ нить команду 2%;


1. ? 0 3 % если символ 0, то выпол-
нить команду 3%;
- 5 % если символ «-», то
выполнить команду 5%
га описывается своей конфигурацией,
включающей сведения о состоянии
управляющего устройства, запись на
ленте и указание на обозреваемую
ячейку. Работа машины Тьюринга со-
стоит из тактов; во время (i+1)-го так-
2. 0 4 % записать 0 в обозревае- та конфигурация машины преобразу-
мую клетку, выполнить ется из текущей, Ki, в новую, Ki+1.
команду 4%;
Преобразование зависит лишь от со-
3. 1 4 % записать 1 в обозревае- стояния УУ и содержимого обозрева-
мую клетку, выполнить емой ячейки. Оно заключается в сле-
команду 4%; дующих действиях:
4. → 1 % сдвинуть головку вправо,
выполнить команду 1%; Алан Тьюринг.

5. СТОП % если встретили символ «-»,


то остановка машины %.
Исходные данные в примере за-
писываются в виде конечной после-
довательности непустых символов из
входного алфавита машины. Такие по-
следовательности называются слова- • изменить состояние qi на состо-
ми в этом алфавите. Известно предло- яние qj;
жение Поста: «Для всякого алгоритма, • заменить букву sl, которая записа-
исходными данными и результатами на в обозреваемой ячейке, буквой sp;
которого являются слова, существует • изменить положение головки —
эквивалентная ему программа для ма- сдвинуть её на одну ячейку влево или
шины Поста». Поэтому алгоритмы, ра- вправо (или же не сдвигать вовсе).
ботающие со словами, часто называ- Такое преобразование называют
ют постовыми. командой машины Тьюринга. Коман-
ды записываются в виде q is l→q js pR.
R — это одна из букв Л, Н или П, оз-
МАШИНА ТЬЮРИНГА начающих: Л — обозревать соседнюю
слева ячейку; Н — продолжать обозре-
Машина Тьюринга состоит из трёх ча- вать ту же ячейку; П — обозревать со-
стей: седнюю справа ячейку. Совокупность
• неограниченная в обе стороны всех команд, выполняемых машиной
лента, разделённая на ячейки; Тьюринга, называется программой.
• управляющее устройство (УУ); Для каждой буквы sl ∈ S и состояния
• головка (Г). qi ∈ Q программа содержит всего одну
С каждой машиной Тьюринга свя- команду с левой частью qi sl . Поэтому
заны два конечных алфавита. Один если зафиксировать конфигурацию
из них называют алфавитом внеш- K1, с которой начинается работа, то
них символов S={s0, s1, s2, ... , sk}, а дру- работа машины Тьюринга определя-
гой — алфавитом внутренних состо- ется однозначно. В первом такте кон-
яний Q={q0, q1, ..., qn}, причём особо фигурация K1 (в ней применима един-
выделяют два состояния — началь- ственная команда) преобразуется
ное q0 и заключительное qr. В каждый в конфигурацию K2. Аналогично во
момент времени каждая ячейка лен- втором такте K2 единственным спо-
ты содержит только одну букву из ал- собом преобразуется в конфигурацию
фавита S. Отсутствие записи в ячей- K3 и т. д.
ке интерпретируется как запись Работа машины Тьюринга может
буквы s0. Устройство управления мо- продолжаться неограниченно долго,
жет находиться в одном из состоя- причём начиная с любой конфигура-
ний qi ∈ Q. Головка «смотрит» на од- ции, поэтому необходимо определить
ну из ячеек. правила окончания процесса. Можно

157
Алгоритмизация

считать, что её работа прекращается


на некотором такте, если в нём —
АЛГОРИТМИЧЕСКИ НЕРАЗРЕШИМЫЕ ПРОБЛЕМЫ а соответственно и во всех последу-
ющих — конфигурация не изменяет-
Задачу называют алгоритмически неразрешимой, если не существует ся. Такую конфигурацию называют
машины Тьюринга (или нормального алгоритма Маркова, или маши- заключительной.
ны Поста), которая её решает. Программу можно задавать в виде
Вот несколько примеров из области теории алгоритмов. таблицы, отражающей связь нового
Пусть по описанию алгоритма A и аргументу x необходимо выяс- содержимого обозреваемой ячейки,
нить, остановится ли алгоритм A, если x подаётся на его вход. Эта за- дальнейшего движения головки и но-
дача (её называют проблемой остановки) является алгоритмически не- вого состояния.
разрешимой. В частности, доказана теорема о том, что нельзя построить Пусть алфавит внешних символов
машину Тьюринга T0, решающую проблему остановки для произволь- машины Тьюринга состоит из двух
ной машины Тьюринга T. Важным практическим следствием этого фак- символов: {*, 1}; кроме того, пусть сим-
та является невозможность создать универсальный (пригодный для вол 0 соответствует пустой ячейке.
любой программы) алгоритм отладки программ. В самом деле, одним На ленту подаются два слова (каждое
из наиболее распространённых последствий ошибок программиста из которых содержит только едини-
является зацикливание програмы, при котором она не доходит до кон- цы), разделённых символом *. Надо уб-
ца выполнения и может работать «бесконечно долго». Алгоритмиче- рать этот разделитель и слить слова
ская неразрешимость проблемы остановки означает, что невозможно в одно. Следовательно, начальную
определить, результативно ли будет работать произвольный алгоритм. конфигурацию машины Тьюринга
В теории алгоритмов известно утверждение — теорема Райса: «Ни- можно изобразить так:
какое нетривиальное свойство вычислимых функций не является алго-
ритмически разрешимым». Смысл данной теоремы таков: нельзя по-
строить алгоритм (т. е. машину Тьюринга, машину Поста, нормальный
алгоритм Маркова и др.), определяющий, обладает или нет функция,
вычисляемая произвольным алгоритмом A, тем или иным свойством.
Согласно теореме Райса, нельзя построить алгоритм, устанавливающий,
является ли функция постоянной, периодической, ограниченной, есть а конечное состояние ленты должно
ли среди её значений данное число, равна ли она другой функции быть таким:
и т. д. Можно даже подумать, что вообще всё на свете неразрешимо!
Но мы не случайно говорили о необходимости различать понятия
функции и реализующего её алгоритма, ведь в теореме Райса присут-
ствуют и те и другие. Теорему Райса тогда можно понимать как невоз-
можность из описания алгоритма узнать что-либо о свойствах вычис- Соответствующая программа имеет вид:
ляемой им функции. Установление неразрешимости той или иной задачи
отнюдь не является неуспехом. Напротив, это новый научный резуль-
q0 q1 q2
тат, такой же как и в любой естественно-научной дисциплине. Даже
если задача алгоритмически неразрешима, её частные случаи вполне 1 0 П q2 Л П
могут иметь решение. Так, признано, что не существует общего алго-
ритма отладки произвольной программы. Но ведь конкретные програм- 0 П П q0 1 q1
мы каждый программист отлаживал неоднократно! 0! Л П
*

В момент начала работы головка


обозревает крайнюю левую едини-
цу, а машина находится в состоянии
q0. В обозреваемую ячейку записыва-
ется 0, головка сдвигается вправо на
одну ячейку, и происходит переход
к состоянию q2. В этом состоянии го-
ловка последовательно сдвигается
вправо до конца слова, пропуская
символы * и 1. Обнаружив символ 0,
головка в эту ячейку записывает вме-
сто него 1, а машина переходит в со-
стояние q1:

158
Теория программирования

Машина остаётся в этом состоянии,


пока головка не вернётся снова к пер-
вой единице (она сдвигается влево, а
достигнув «пустой» ячейки, сдвинется
на одну ячейку вправо). После этого
конфигурация установится в состоя-
ние q0. Вместо первой единицы будет
записан 0, а машина переходит в со-
стояние q2. Теперь весь предыдущий
цикл повторится четыре раза, пока, на-
конец, машина не примет вид

удобно предполагать, что головка не-


подвижна, а ленты движутся, причём,
возможно, в разных направлениях.
Такт работы этой машины вклю-
чает следующие действия: одновре-
Символы 1 и «*» в состоянии q1 вы- менное считывание текущего сим-
зывают сдвиг головки влево, так что, вола со всех лент (кроме выходной),
лишь дойдя до первого символа 0, смена состояния в зависимости от
машина выполнит команду Пq0, и её считанного набора символов, запись
состояние изменится на q0. Однако новых символов, сдвиг лент.
в этом состоянии вместо «*» в ячейку
записывается символ 0 и машина
останавливается.
Легко заметить некоторое сходство
между машиной Тьюринга и вычисли-
тельными машинами, ведь и те и дру-
гие работают над исходными данны-
ми задачи по некоторой программе её
решения. Можно даже сказать, что ма-
шина Тьюринга является в каком-то
смысле идеальной моделью компью-
тера. Однако она намного проще даже
самых первых, весьма примитивных
с современной точки зрения вычисли- ВЫЧИСЛИМЫЕ
тельных машин. Разумеется, машина
Тьюринга не предназначена для ши- И НЕВЫЧИСЛИМЫЕ
рокого практического применения. Не ФУНКЦИИ
слишком удобна она и при чисто тео-
ретических построениях из-за её гро- Возникает естественный вопрос:
моздкости. а можно ли в принципе говорить об
В связи с этим получили распро- общих свойствах алгоритма, не теря-
странение многочисленные усовер- ется ли эта общность при такой кон-
шенствованные образцы, одним из кретизации?
которых является многоленточная Оказалось, и это строго доказано в
машина Тьюринга. Она имеет не- теории алгоритмов, что любой алго-
сколько входных лент и только одну ритм, описанный в одной модели, мо-
выходную, на которую записывают- жет быть описан и в другой. Такая вза-
ся символы результата. Содержимое имная сводимость алгоритмических
ячеек выходной ленты нельзя читать моделей позволила создать систему
и корректировать. В такой машине понятий, не зависящую от выбора

159
Алгоритмизация

конкретной формализации. И её ос- деления алгоритма к другому. Напри-


новой является понятие вычислимой мер, доказаны сводимость машин
функции, т. е. функции, для вычисле- Тьюринга к нормальным алгоритмам
ния которой существует алгоритм. Маркова, предложение Поста об экви-
Какие же функции могут быть вы- валентности алгоритмов над словами
числены с помощью алгоритмов? Пер- и машин Поста. То есть действительно
вым в истории математики ответ на можно говорить об алгоритмах в са-
этот вопрос дал Алонзо Черч (1903— мом общем смысле, не конкретизируя
1995). В 1930 г. он сформулировал та- используемую модель.
кое утверждение: «Всякая функция, вы- Фактически алгоритм — это спо-
числимая некоторым алгоритмом, яв- соб задания функции. Но функция мо-
ляется рекурсивной». Оно известно жет задаваться разными способами,
сейчас как тезис Черча. например таблицей или формулой.
Алонзо Черч. Спустя несколько лет А. Тьюринг Однако существуют зависимости, ко-
предложил другое утверждение, на- торые невозможно представить ни
званное позднее тезисом Тьюринга: в том ни в другом виде. Известная
«Всякий алгоритм может быть реали- формула,
зован машиной Тьюринга». Тезис Тью- x2 x3
ринга не является теоремой, его не- ex=1 + x + — + —
2! 3!
возможно доказать, но он проверен
многолетней практикой, и до сих пор лишь позволяет посчитать это значе-
не приведено ни одного примера алго- ние с устраивающей нас точностью,
ритма, который нельзя было бы реали- но не является точным представлени-
зовать с помощью машины Тьюринга. ем функции ex.
Сравнение двух тезисов позволяет Этот пример показывает, что, веро-
записать их в обобщённом виде: ятно, существуют и невычислимые
«Функция вычислима на машине Тью- функции, что имеются и такие задачи,
ринга тогда и только тогда, когда она в которых связь между входными и вы-
является рекурсивной» (тезис Тью- ходными величинами столь сложна,
ринга — Черча). Таким образом, тезис что нельзя задать строго определён-
Эмиль Пост. Тьюринга — Черча говорит об экви- ный пошаговый процесс преобразо-
валентности двух введённых моделей вания исходных данных в результат.
алгоритма. Но при этом он является Иными словами, нельзя построить ал-
утверждением, которое можно стро- горитм их решения. Такие задачи на-
го доказать. Доказываются и другие зываются алгоритмически неразре-
теоремы о сводимости одного опре- шимыми.

СЛОЖНОСТЬ АЛГОРИТМОВ

ПОНЯТИЕ СЛОЖНОСТИ ет разветвлённой логической струк-


турой, содержит большое количест-
По мере накопления опыта работы во проверок условий, переходов и т. д.
в той или иной области знаний чело- Программа, реализующая алгоритм
век начинает интуитивно чувствовать, её решения, также кажется нам слож-
что одна задача более трудна, чем дру- ной, поскольку нельзя понять, что же
гая. Разумеется, такого субъективного, она делает. А вот для компьютера вы-
не выраженного строгой количествен- полнение этой программы никакой
ной мерой понятия, как «легче» или трудности не представляет! Потому
«труднее», недостаточно. Как же мож- что он просто выполняет одну за дру-
но (и можно ли?) определить действи- гой команды, которые там написаны.
тельную сложность задачи? Для этого Для него абсолютно неважно, какие
существуют разные подходы. они именно — сложения или провер-
Очень часто задачу называют ки условия и перехода, циклы или
сложной из-за того, что она облада- команды выбора.

160
Теория программирования

Более сложной может показаться


программа с текстом, состоящим из
большего числа операторов. Но и та-
кой взгляд на сложность оказывается
не вполне оправданным. В самом де-
ле, для компьютера две программы —
состоящая из одного оператора цик-
ла, 100 раз повторяющего сложение
двух чисел, и состоящая из 100 опера-
торов сложения, выписанных под-
ряд, — практически одинаковы.
В то время, когда начинала скла- Пространственная сложность не мо-
дываться теория алгоритмов, вычис- жет расти быстрее временной слож-
лительные возможности человека всё ности, ведь на использование каждой
ещё оставались крайне скромными. дополнительной единицы памяти
Поэтому в течение длительного вре- обязательно потребуется дополни-
мени разработка алгоритмов на прак- тельное время. Поэтому для просто-
тике не представлялась возможной. ты часто ограничиваются рассмотре-
Лишь с появлением первых компью- нием лишь временной сложности.
теров учёные стали уделять особое На практике сложность алгоритма
внимание вопросам создания алго- обычно связывают с основным его па-
ритмов. С началом их практического раметром, существенно влияющим на
использования выяснилось, что ог- количество выполняемых действий.
ромное значение имеет ещё одно Как правило, это размер массива об-
свойство — эффективность. Не толь- рабатываемых данных (размер зада-
ко весь алгоритм, но и каждый его шаг чи). Например, в задаче умножения
должны быть такими, чтобы испол- двух квадратных матриц это количе-
нитель был способен выполнить их ство их строк, в задаче упорядочива-
за конечное время, лежащее в неко- ния в алфавитном порядке слов неко-
торых разумных пределах. А если торого текста — количество слов и др.
речь идёт о вычислительной маши- Сложность алгоритма (число опера-
не, то и в пределах, обусловленных ций, необходимых для его реализа-
конкретным запасом памяти. С эф- ции) выражают в виде функции от
фективностью алгоритма интуитив- объема входных данных.
но связано понятие стоимости, по- Например, время работы алго-
нимаемое как количественная оценка ритма, выполняющего только опе-
требуемых для его реализации ресур- рации чтения и занесения n данных
сов. Более точный смысл понятию
стоимости придаёт понятие сложно-
сти алгоритмов. Оно овеществляет
стоимость во времени и в простран-
стве, позволяет оценить срок выпол-
нения и объём требуемой при этом
памяти.
Временна′ я сложность алгорит-
ма — это время T, необходимое для
его выполнения. Оно равно произве-
дению числа элементарных шагов ал-
горитма на среднее время выполне-
ния одного шага, T=kt. Поскольку t
зависит от исполнителя, реализующе-
го алгоритм, то естественно считать,
что сложность алгоритма в первую
очередь зависит именно от k. Прост-
ранственная сложность алгоритма
выражается количеством единиц па-
мяти, требуемых для его реализации.

161
Алгоритмизация

димо выполнить (n –1)+(n –2)+...+1=


=(n2 – n)/2 сравнений. Для больших n
можно считать, что сложность опре-
деляется только старшим членом это-
го полинома, поэтому её записывают
как O(n2). Говорят, что этот алгоритм
имеет квадратичную сложность.
А вот сложность алгоритма умно-
жения матриц (таблиц) размера n × n
будет уже кубической, O(n3). Ведь для
вычисления каждого элемента резуль-
тирующей матрицы требуется n умно-
жений и (n –1) сложений, а всего этих
элементов n2.
На практике время выполнения ал-
в оперативную память, определяется горитма может зависеть от набора
формулой T=an+b, где a — время чте- данных, к которым он применяется.
ния записи, b — суммарное время Например, для некоторых алгорит-
вспомогательных операций. Коэффи- мов сортировки оно существенно со-
циенты a и b неизвестны, но они за- кращается, если первоначально эти
висят от характеристик компьютера, данные были частично упорядочены.
транслятора и т. д. Однако наиболее Чтобы учитывать это, сохраняя воз-
важен характер зависимости от ос- можность анализировать алгоритм
новного параметра, поскольку имен- независимо от данных, различают:
но он определяет сложность. Здесь максимальную сложность Tmax(n) —
имеет место линейная зависимость от время выполнения алгоритма в том
n, и сложность алгоритма поэтому на- случае, когда выбранный набор n дан-
зывается линейной. Записывается она ных наиболее увеличивает срок вы-
как O(n), а читается «О большое от n». полнения алгоритма;
Можно рассмотреть процесс упо- среднюю сложность Tср.(n) — сре-
рядочивания по возрастанию n эле- днее время выполнения алгоритма,
ментов массива с помощью так на- применённого к n произвольных
зываемого прямого выбора. Он данных.
выполняется так: определяется наи- Сложность задачи — это слож-
меньший элемент во всём массиве ность наилучшего алгоритма, извест-
и меняется местами с первым эле- ного для её решения, поэтому она за-
ментом; затем определяется наи- висит от уровня развития методов
меньший элемент в оставшейся ча- решения. Например, известна задача
сти массива и меняется местами со проверки планарности графа (т. е. про-
вторым элементом и т. д. В первый верки того, можно ли изобразить граф
раз при поиске минимального эле- на плоскости так, что его рёбра не пе-
мента выполняются (n – 1) сравнений, ресекаются). Первый алгоритм её ре-
затем (n – 2) сравнений. Всего необхо- шения, предложенный в 1930 г., имел
сложность O(n6). Затем его неодно-
кратно улучшали, а в 1974 г. удалось
построить алгоритм сложности O(n)!
Пусть есть алгоритм A. Почти всегда существует параметр n,
Для решения задачи могут быть раз-
характеризующий объём обрабатываемых алгоритмом данных.
работаны алгоритмы разной сложно-
Пусть функция T(n) — время выполнения A, а f — функция от n.
сти. Логично воспользоваться лучшим
Говорят, что алгоритм A имеет теоретическую сложность O(f(n)),
среди них, обладающим наименьшей
если
сложностью, но одновременно хочет-
T(n)
____ ся знать: нельзя ли его ещё улучшить?
→ k , где k — константа.
f(n) n→∞ Для этого надо разделить задачи (и ал-
Если алгоритм выполняется за фиксированное время, не завися- горитмы) на группы — классы слож-
щее от размера задачи, говорят, что его сложность равна O(1). ности.
Ясно, что лучшими являются линей-
ные алгоритмы, имеющие сложность

162
Теория программирования

порядка O(n), где n — размерность


входных данных. Такие алгоритмы дей-
ствительно существуют. Например, ПОЛИНОМИАЛЬНЫЕ
сложение двух чисел столбиком в слу- И ЭКСПОНЕНЦИАЛЬНЫЕ АЛГОРИТМЫ
чае, если одно из них состоит из n,
а другое — из m цифр, требует не бо- Полиномиальным (или алгоритмом полиномиальной временной слож-
лее max(n, m) сложений и не более ности) называют алгоритм, у которого временная сложность есть
max(n, m) запоминаний, т. е. данный O(p(n)), где p(n) — полином от n. Задачи, имеющие алгоритм решения,
алгоритм имеет сложность порядка сложность которого составляет полином заданной, постоянной и не
O(n+m). Это выражение показывает зависящей от n степени, относят к классу P. Это фактически означает,
только порядок величины — постоян- что их можно решить с использованием компьютера. Ведь даже для
ные факторы в нём не учитываются. очень больших значений n общее число операций, необходимых для
К сожалению, алгоритмов, имеющих реализации полиномиального алгоритма, всё равно остаётся таким,
линейную сложность (а тем более та- что современный компьютер без труда сможет выполнить их за при-
ких, сложность которых не зависит от емлемое время.
размерности обрабатываемых дан- Существует множество других задач, сложность которых состав-
ных), крайне мало. ляет не менее O(xn), где x — константа. Такие задачи относятся к клас-
су E и называются экспоненциальными. Среди них задача построе-
ния всех подмножеств заданного множества или всех поддеревьев
NP-СЛОЖНЫЕ ЗАДАЧИ заданного графа. В самом деле, если множество M содержит n эле-
ментов, то общее количество подмножеств, которые можно обра-
Вот известная задача, называемая за- зовать из них, равно 2n. При больших значениях n эта задача стано-
дачей коммивояжёра. Коммивояжёр вится практически нерешаемой, поскольку алгоритм её решения
(разъездной торговец) выезжает из должен включать в себя 2 n шагов. Соответственно и алгоритмы,
дома, он должен посетить всех своих в оценку сложности которых n входит в показатель степени, отно-
клиентов, проживающих в разных на- сятся к экспоненциальным.
селённых пунктах. Расстояния между Считают, что задача не является хорошо решаемой, пока для неё
ними известны. Коммивояжёру нужно не получен полиномиальный алгоритм. Если же для её решения не су-
выбрать такой маршрут, чтобы посе- ществует подобного алгоритма, то задачу называют трудно решае-
тить каждого клиента ровно один раз мой. (Правда, при небольших значениях n экспоненциальный алго-
и при этом проехать минимальное ритм может быть даже менее сложным, чем полиномиальный. Тем не
расстояние (или проехать не больше, менее различие между алгоритмами этих типов весьма велико и про-
заданного расстояния). Эти ограни- является при больших значениях n.)
чения легко понять. Действительно,
коммивояжёр хочет максимально со-
кратить затраты на бензин (или горитм поиска решения состоит из
не желает истратить на него больше двух этапов:
определённой суммы). предъявление некоторого маршру-
Решение можно искать следующим та (этап угадывания);
образом. По очереди рассматриваем проверка, является ли этот марш-
все вероятные варианты маршрутов, рут решением (этап проверки); если
выбирая среди них тот, который име- является, то выполнение алгоритма
ет минимальную длину. Количество ва- прекращается.
риантов маршрутов легко подсчи- Этап проверки имеет полино-
тать — оно равно n! (конечно, это миальную сложность (он может
факториал, а не знак восклицания).
Значит, чтобы найти самый короткий
маршрут, мы должны проверить n! ва-
риантов решения. Но n! растёт даже
быстрее, чем 2n. Так что, если комми-
вояжёру требуется посетить много кли-
ентов, решение этой задачи становит-
ся весьма трудоёмким.
В то же время, перебирая маршру-
ты, можно обнаружить устраивающий
вариант очень быстро — если пове-
зёт, то практически сразу. Так что ал-

163
Алгоритмизация

шение, которое удаётся получить за


полиномиальное время, были на-
Известно понятие полиномиальной сводимости задач. Говорят,
званы NP-сложными (от nondeter-
что задача A полиномиально сводится к задаче B, если сущест-
ministic — «недетерминированные»
вует функция полиномиальной сложности, преобразующая ре-
и polinomial — «полиномиальные»).
шение задачи A в решение задачи В. Установлено, что среди NP-
Таких задач очень много, они име-
сложных задач существуют такие, которые можно полиномиально
ют огромное практическое значение.
свести к любой другой задаче из класса NP. Их назвали NP-пол-
Поэтому крайне важно знать ответ на
ными задачами (к ним относится, в частности, и задача комми-
вопрос: а не существуют ли детерми-
вояжёра). Если бы удалось найти детерминированный алгоритм
нированные алгоритмы их решения,
полиномиальной сложности для решения хотя бы одной NP-пол-
имеющие полиномиальную слож-
ной задачи, это означало бы, что существуют алгоритмы поли-
ность? Мнения учёных на этот счёт
номиальной сложности решения любой задачи из класса NP.
диаметрально противоположны. По-
давляющее большинство из них уве-
рены, что найти детерминированные
алгоритмы решения этих задач ни-
когда не удастся.
Cуществуют алгоритмы решения
многих NP-сложных задач, которые
для значительного диапазона исход-
ных данных обеспечивают приемле-
мое время решения. В основе таких
алгоритмов часто лежит метод вет-
вей и границ, динамически отсека-
ющий бесперспективные направле-
ния перебора вариантов решений.
Поэтому главным моментом в прак-
тическом решении NP-сложных задач
является умение строить приближён-
ные, или эвристические, алгоритмы,
базирующиеся на некоторых догад-
ках (эвристиках). При построении
заключаться в выполнении всего лишь приближённых алгоритмов обычно
одного сравнения). Этап угадывания требуют, чтобы они имели полино-
состоит в нахождении очередного миальную сложность. Известно, что
маршрута и вычислении его длины; иногда удаётся найти решение, лишь
очевидно, что время его выполнения на 10—15 % хуже оптимального. Од-
пропорционально количеству насе- нако, несмотря на такую хорошую
лённых пунктов n, т. е. этап тоже име- статистику, задачи по-прежнему ос-
ет полиномиальную сложность. Такие таются NP-сложными и, к сожалению,
алгоритмы называют недетермини- не имеют гарантированных оценок
рованными. времени решения. Даже незначитель-
При некоторой доле удачи мож- ное изменение исходных данных
но решить задачу коммивояжёра способно привести к его резкому
за полиномиальное время. Задачи, скачку. В каких-то случаях это время
имеющие недетерминированное ре- может быть недопустимо велико.

ТЕОРИЯ ФОРМАЛЬНЫХ ЯЗЫКОВ.


ПЕРЕВОД И КОМПИЛЯЦИЯ

Программы для самых первых ком- ставленных в виде двоичных или вось-
пьютеров записывались как последо- меричных кодов. Конечно, составлять
вательность машинных команд, пред- и отлаживать большие программы

164
Теория программирования

в таком виде было очень тяжело. По-


этому программисты всегда стреми-
лись научить компьютер понимать
язык, приближенный к человеческо-
му. Так родились Ассемблер, FORTRAN,
Алгол-60, С++ и другие языки програм-
мирования. Но все они в одном отно-
шении кардинально отличаются от
языков естественных.
В устной и письменной речи всегда
допустима определённая неточность
и недосказанность — слушатель или
читатель восстановит смысл из контек-
ста (в общем случае этот контекст
включает весь культурный багаж че- В искусственных языках, к кото-
ловечества). Компьютер же нуждает- рым относятся и языки программи-
ся в точных и однозначных инструк- рования, множество правильно по-
циях. Значит, запись компьютерных строенных предложений может быть
программ на языках программирова- заранее точно описано с помощью
ния должна подчиняться строгим пра- формальных математических конст-
вилам, не допускающим никакой дву- рукций. Поэтому такие языки называ-
смысленности, а компилятор должен ют формальными языками.
безошибочно превращать их в после- Формальный язык считается опре-
довательности машинных команд. делённым, если заданы: 1) алфавит,
Здесь не обойтись без помощи мате- который включает не только буквы,
матики — самой точной из наук. но и все символы данного языка, в том
Неудивительно, что математические числе цифры, пробелы, знаки препи-
методы анализа «машинных» языков нания; 2) критерий, позволяющий од-
были разработаны и широко приме- нозначно определить, является данная
няются при создании компиляторов. цепочка символов из алфавита языка
правильно построенной или нет. Ка-
ким образом задан этот критерий,
ОПРЕДЕЛЕНИЕ не имеет значения. В простейшем слу-
чае можно просто перечислить все до-
ФОРМАЛЬНОГО ЯЗЫКА пустимые цепочки. Или составить свод
правил «создания» подобных цепочек.
Предложение в любом языке состоит Такой свод правил называется грам-
из элементарных символов: букв, матикой, а строение цепочек языка —
цифр, пробелов и знаков препинания. синтаксисом.
Поэтому можно было бы формально
определить предложение как после-
довательность или цепочку символов. КОНТЕКСТНО-СВОБОДНЫЕ
Однако такое определение слишком
широкое. В огромном количестве все-
ГРАММАТИКИ
возможных цепочек символов имеет
смысл выделить подмножество пра- Контекстно-свободные граммати-
вильно построенных цепочек — тех, ки были придуманы вовсе не матема-
которые состоят из «правильных слов, тиками или программистами — впер-
расставленных в правильном поряд- вые их использовали лингвисты для
ке». Например, цепочки «рорылво описания естественных языков.
ргнцои орвылора иыврпфг» и «По ка- Составные части цепочки обозна-
рета дороге плывёт» не являются пра- чают либо буквами, не входящими
вильно составленными предложени- в алфавит языка, либо названиями по-
ями русского языка, предложение же нятий — метасимволами, или нетер-
«Карета плывёт по дороге» правиль- миналами, заключёнными в угловые
но составлено, хотя и сомнительно скобки. Можно рассмотреть наибо-
с точки зрения смысла. лее простые фразы русского языка,

165
Алгоритмизация

в левой, так и в правой частях. Это важ-


ная черта контекстно-свободной
грамматики, позволяющая строить
сколь угодно длинные фразы. В дан-
ном случае второе правило позволя-
ет добавлять слева любое количество
определений к подлежащему.
Если в грамматике имеется не-
сколько правил с одинаковой левой
частью, то их можно свести в одну за-
пись, соединив все правые части при
в которых используются нетермина- помощи вертикальной черты (она чи-
лы: предложение, подлежащее, груп- тается как «или»):
Грамматика называ- па подлежащего, сказуемое, группа
ется контекстно-сво- сказуемого, определение, обстоятель- 〈группа подлежащего〉→
бодной, поскольку ство. Грамматика состоит из правил. 〈подлежащее〉 | 〈определение〉〈группа подле-
при замене нетерми- В левой части правила записывается жащего〉.
нала на правую часть нетерминал, в правой части — произ-
правила никак не учи- вольная цепочка из терминалов и не- Вот все правила грамматики:
тывается, в каком ме- терминалов, где как бы раскрывается
сте текущей цепочки смысл понятия, указанного в левой ча- 〈предложение〉→
он стоит: интерпрета- сти. Правая и левая части правила раз- 〈группа подлежащего〉 〈группа сказуемого〉;
ция понятия не зави- деляются стрелочкой, которая чита- 〈группа подлежащего〉→
сит от контекста. ется «это есть». 〈подлежащее〉 | 〈определение〉 〈группа подле-
Первое правило этой грамматики жащего〉;
определяет, что предложение состо- 〈подлежащее〉→лодка | карета;
ит из двух частей — группы подлежа- 〈определение〉→зелёная | белая | большая;
щего, за которой следует группа ска- 〈группа сказуемого〉→
зуемого. 〈сказуемое〉 〈обстоятельство〉;
〈сказуемое〉→катится | плывёт;
〈предложение〉→ 〈обстоятельство〉→ по дороге | по реке.
〈группа подлежащего〉 〈группа сказуемого〉
В грамматике выделяется началь-
В грамматике должны быть распи- ный нетерминал; цепочки языка вы-
саны правила для всех понятий язы- водятся из него. В примере это нетер-
ка. В примере можно ввести два пра- минал 〈предложение〉. На первом шаге
вила для группы подлежащего: к нему применяют одно из правил, ле-
вая часть которого совпадает с дан-
〈группа подлежащего〉→ ным нетерминалом. Происходит заме-
〈подлежащее〉 на символа на правую часть правила.
〈группа подлежащего〉→ Последовательность таких замен на-
〈определение〉 〈группа подлежащего〉. зывается выводом. Вывод закончен,
когда в цепочке не останется ни одно-
Во втором правиле нетерминал го нетерминала.
группа подлежащего встречается как Рассмотрим пример вывода. Ис-
пользуем единственное правило для
нетерминала 〈предложение〉:

〈предложение〉→
〈группа подлежащего〉 〈группа сказуемого〉.

Затем к нетерминалу 〈группа подле-


жащего〉 применяется второе правило:

〈группа подлежащего〉〈группа сказуемого〉→


〈определение〉〈группа подлежащего〉〈группа
сказуемого〉.

166
Теория программирования

Продолжим вывод:

〈определение〉〈группа подлежащего〉〈группа
сказуемого〉→
зелёная 〈группа подлежащего〉
〈группа сказуемого〉→
зелёная 〈подлежащее〉 〈группа сказуемого〉→
зелёная карета 〈группа сказуемого〉→
зелёная карета 〈сказуемое〉 〈обстоятель-
ство〉→
зелёная карета катится 〈обстоятельство〉→
зелёная карета катится по дороге.

На последнем шаге получился за-


конченный вывод. Аналогично этому
можно построить и другие варианты
〈предложения〉:

большая белая лодка плывёт по реке;


карета плывёт по дороге;
белая зелёная карета катится по реке
и т. п. 〈формула〉→〈формула〉 + 〈формула〉→
〈формула〉 + 〈элементарная формула〉→
Два последних примера показыва- 〈формула〉 +〈константа〉→〈формула〉 + 〈цифра〉→
ют, что грамматика никак не учиты- 〈формула〉 +7→
вает смысл фразы. 〈элементарная формула〉 + 7→
〈переменная〉 + 7 → x + 7.

ЯЗЫК АРИФМЕТИЧЕСКИХ На каждом шаге вывода применя-


ется замена по одному из правил к са-
ФОРМУЛ мому правому нетерминалу текущей
цепочки. Такой вывод называют пра-
Можно рассмотреть пример, более вым. Существует ещё и левый вывод.
важный с точки зрения программиро- Всякую цепочку можно вывести с их
вания, определив понятие арифмети- помощью. Правда, в некоторых грам-
ческого выражения, включающего матиках выводы бывают не единст-
имена переменных, целые константы, венными. Недетерминированность
знаки арифметических операций, неформально означает неоднознач-
а также скобки. Имена переменных со- ность трактовки предложений языка.
стоят из одной латинской буквы. Приведённая грамматика языка ариф-
Задана грамматика: метических формул недетерминиро-
ванная: формула 1-2-3 имеет два раз-
〈формула〉→〈элементарная формула〉 | 〈форму- ных правых вывода:
ла〉 + 〈формула〉 | 〈формула〉 - 〈формула〉 | 〈фор-
мула〉 * 〈формула〉 | 〈формула〉 / 〈формула〉; 1) 〈формула〉→〈формула〉 - 〈формула〉→
〈элементарная формула〉→〈переменная〉 | 〈кон- 〈формула〉 - 〈элементарная формула〉→ ...
станта〉 | (〈формула〉); 〈формула〉 - 3 → ... → 1-2-3;
〈переменная〉→ a | b | c | ... z; 2) 〈формула〉→〈формула〉 - 〈формула〉→
〈константа〉→〈цифра〉 | 〈константа〉 〈цифра〉; 〈формула〉 - 〈формула〉 - 〈формула〉→ ...
〈цифра〉→ 0 | 1 | 2 | ... | 9. 〈формула〉 - 2-3 → ... → 1-2-3.

Язык, заданный этой грамматикой, Первый вывод соответствует тому,


состоит из всех правильных арифме- что операции выполняются слева на-
тических выражений, включающих право, т. е. операция 1-2 сначала пред-
однобуквенные имена переменных ставлена в виде подформулы, а затем
и целые константы. Вот пример выво- от неё вычитают 3. Второй вывод: опе-
да цепочки x+7: рации осуществляют справа налево,

167
Алгоритмизация

т. е. 2-3 — подформула, которую вычи- правильных С-программ обязатель-


тают из единицы. При реальных вы- но включает в себя и некоторые оши-
числениях в первом случае результат бочные программы. Однако это
(1-2)-3=-4, во втором случае 1-(2-3)=2. связано не с синтаксисом, а с неопи-
Формула трактуется неоднозначно, т. е. санными переменными и неправиль-
грамматика неудачна. ными типами выражений. Точно так
Грамматику называют детермини- же контекстно-свободная граммати-
рованной, если правый вывод произво- ка русского языка, если бы её кто-ни-
льной цепочки единственный. В этом будь смог выписать, позволяла бы на-
примере грамматику можно сделать ряду с нормальными предложениями
детерминированной, введя дополни- строить фразы, лишённые смысла.
тельные понятия 〈терм〉 и 〈множитель〉:

〈формула〉→〈формула〉+〈терм〉 | 〈формула〉 - АВТОМАТНЫЕ


〈терм〉 | 〈терм〉;
〈терм〉→〈терм〉 * 〈множитель〉 | 〈терм〉 / 〈множи-
И РЕГУЛЯРНЫЕ ЯЗЫКИ
тель〉 | 〈множитель〉;
〈множитель〉→〈элементарная формула〉. Контекстно-свободная грамматика
обычно описывает синтаксис языка
Остальные правила такие же, как на уровне строения предложения. На-
и в первом случае. Здесь формула пример, с точки зрения синтаксиса
представляется в виде суммы или раз- русского языка нет никакой разницы
ности термов, каждый терм — это про- между прилагательными «зелёный»
изведение или частное, множитель — и «жёлтый», точно так же в любом
это либо переменная или константа, алгоритмическом языке нет грам-
либо произвольная формула, заклю- матического различия между разны-
чённая в скобки. Данная грамматика ми целыми константами. Поэтому
уже детерминированная, она соответ- грамматику алгоритмического языка
ствует выполнению операций слева удобно задавать, беря в качестве эле-
направо, как это и принято в матема- ментарных понятия «переменная»,
тике при отсутствии скобок. Кроме «константа», а не отдельные буквы
того, она учитывает, что приоритет и цифры, составляющие их.
операций умножения и деления вы- «Язык слов» отличается от «языка
ше, чем сложения и вычитания. предложений», его строение значи-
Современные алгоритмические тельно проще и не требует примене-
языки описываются с помощью кон- ния контекстно-свободных грамма-
текстно-свободных грамматик. Бо- тик. В большинстве алгоритмических
лее того, учёные предполагают, что языков отдельные слова задаются с по-
и естественные языки можно задать мощью конечных автоматов или ре-
таким же образом. Интересно, что гулярных выражений.
контекстно-свободный язык, задан- Конечный автомат — это ориен-
ный грамматикой языка С, помимо тированный граф, т. е. фигура, состо-
ящая из вершин, соединённых между
собой стрелочками-рёбрами (допус-
тимы рёбра-петли, соединяющие вер-
шины сами с собой). Рёбра помечены
буквами исходного алфавита. Одна из
вершин графа обозначается как на-
чальная, и несколько вершин — как ко-
нечные. Вершины графа называют так-
же состояниями конечного автомата,
а рёбра — переходами.
Язык, заданный конечным авто-
матом, состоит из всевозможных
цепочек, которые можно прочесть,
двигаясь из начальной вершины в од-
ну из конечных вершин по рёбрам

168
Теория программирования

графа. Рассмотрим, например, конеч-


ный автомат

где вершина 1 — начальная, а верши-


на 2 — конечная. Язык, заданный этим
автоматом, состоит из цепочек a,
abba, abbabba, abbabbabba, ... , соот-
ветствующих путям, начинающимся
в вершине 1 и заканчивающимся
в вершине 2.
Всякий автоматный язык явля-
ется контекстно-свободным. Обрат-
ное неверно, класс контекстно-сво-
бодных языков шире, чем класс простых операций, позволяющих из
автоматных языков. Например, язык, уже построенных регулярных языков
состоящий из всевозможных цепо- строить новые языки. Это операции
чек нулей и единиц, в которых коли- конкатенации (соединения двух це-
чество нулей равно количеству еди- почек), выбора из двух вариантов,
ниц, является контекстно-свободным, а также итерации (повторения цепоч-
но не автоматным. ки произвольное число раз). Процесс
Существует другой способ задания построения начинается с элемен-
автоматных языков — с помощью ре- тарных языков, содержащих единст-
гулярных выражений. Регулярные вы- венную цепочку из одной буквы
ражения включают в себя несколько или пустую цепочку. Теорема Клини

ПРОГРАММЫ LEX И GREP

Операционная система UNIX содержит несколько стан- скольких файлах. В качестве образца поиска можно за-
дартных программ, работа которых основана на теории дать либо произвольный фрагмент текста, либо регу-
регулярных языков. Прежде всего это программа LEX, лярное выражение. Причём поиск происходит очень
осуществляющая лексический анализ текста, т. е. раз- быстро, он занимает время, линейно зависящее от дли-
бивающая текст на слова в соответствии с определён- ны входного файла и не зависящее от длины искомого
ным набором регулярных выражений. Также это про- фрагмента. Высокая скорость работы объясняется тем,
грамма GREP (англ. Get Regular Expression Pattern — что программа GREP строит для поиска конечный авто-
«выделить образец по регулярному выражению»), мат, на который последовательно подаются символы из
осуществляющая контекстный поиск в одном или не- входного потока.

Результат работы программы GREP.


Требовалось найти в словаре слова из шести символов, начи-
нающиеся с букв «Ф» или «У», оканчивающиеся на «Л» или «О»,
с четвёртой буквой «С».

169
Алгоритмизация

Шаг 2: перевод программы на


промежуточный язык, не зависящий
Задача разбора предложения естественного языка, вообще го-
от системы команд конкретного ком-
воря, не имеет однозначного решения. Например, по фразе «за-
пьютера.
порожец обогнал мерседес» не вполне ясно, кто кого обогнал,
Шаг 3: оптимизация кода про-
т. е. что в этом предложении является подлежащим, а что — до-
граммы.
полнением. Смысл фразы иногда можно понять по контексту,
Шаг 4: генерация выходного ко-
но это недоступно компьютеру.
да на Ассемблере или непосредствен-
но на языке машинных команд.
Программисты научились быстро
утверждает, что классы автоматных и эффективно выполнять шаги 1, 2 и 4.
и регулярных языков совпадают, т. е. Основным достижением стало ис-
всякий автоматный язык можно за- пользование теории формальных язы-
дать посредством регулярного выра- ков и разработанных на её основе
жения и, наоборот, всякий регуляр- программ автоматической генерации
ный язык можно задать с помощью компиляторов.
конечного автомата. В примере регу- Шаг 3 является наиболее трудоём-
лярное выражение следующее: ким и наименее формализованным
и представляет собой основное поле
a(bba)*, битвы между различными компания-
ми, выпускающими компиляторы.
где звёздочкой обозначена итерация, Бо′ льшая часть усилий разработчи-
а скобки используются для группи- ков компилятора приходится имен-
ровки. но на оптимизацию кода.
Задание языка с помощью регу-
лярного выражения более удобно для
человека, а представление языка с по- ЗАДАЧА РАЗБОРА
мощью конечного автомата — для
компьютера. На первом шаге работы компилятора
(разбор исходной программы) тре-
буется определить, является ли задан-
ОСНОВНЫЕ ЭТАПЫ ная цепочка символов правильно по-
строенным предложением, и если
РАБОТЫ КОМПИЛЯТОРА является, то восстановить её вывод.
Процесс восстановления вывода на-
Работа любого компилятора состо- зывают разбором или синтаксиче-
ит из несколько шагов. ским анализом, а программу, осуще-
Шаг 1: разбор исходной програм- ствляющую разбор, — парсером (от
мы и перевод её в некоторое внут- англ. to parse — «разбирать»).
реннее представление, удобное для Можно рассмотреть, систему авто-
дальнейшей работы. На этом этапе матического перевода с английского
выявляются также ошибки в тексте языка на русский. Перевод отдельных
исходной программы. слов не даёт результата, потому что
синтаксис английских и русских пред-
ложений не совпадает. Поэтому нуж-
но сначала осуществить разбор анг-
лийского предложения, т. е. понять, что
является подлежащим, сказуемым, до-
полнением и т. д., и только потом со-
ставить соответствующее русское пре-
дложение по правилам русского языка.
В отличие от естественных языков,
задача разбора для алгоритмических
языков всегда имеет однозначное ре-
шение. Транслятор, переводящий про-
грамму с алгоритмического языка вы-
сокого уровня на Ассемблер или язык

170
Теория программирования

машинных команд, решает задачу раз-


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

〈формула〉→〈формула〉 + 〈формула〉 |
〈формула〉 * 〈формула〉 | (〈формула〉) |
〈переменная〉 | 〈константа〉

(для краткости опущены правила для


нетерминалов 〈переменная〉 и 〈константа〉). кающими более быстрый разбор. Важ-
Вот синтаксическое дерево для выра- нее всего два алгоритма разбора.
жения (x+2)*3: • Нисходящий (рекурсивный) раз-
бор. Класс грамматик, разрешающих
〈формула〉 нисходящий разбор, называют LL(1)-
/ | \ грамматиками.
〈формула〉 * 〈формула〉 • Восходящий разбор, или разбор
/ | \ \ с помощью конечного автомата со
(〈формула〉) 〈константа〉 стеком (иногда говорят «автомата
/ | \ \ с магазинной памятью»). Соответст-
〈формула〉 + 〈формула〉 3 вующий класс грамматик называется
| \ LR(1)-грамматиками.
〈переменная〉 〈константа〉 В обоих случаях входная цепочка
| | просматривается слева направо. Пер-
x 2 вая буква L в названии класса означа-
ет направление просмотра (от англ.
Каждая нетерминальная вершина left — «левый»). В первом случае стро-
синтаксического дерева соответству- ятся левые выводы, во втором — пра-
ет одному шагу вывода цепочки. Вер- вые, на что указывает вторая буква в на-
шины нумеруются нетерминалами, звании (от англ. right — «правый»).
которые заменяются на правую часть Единица в названии поясняет, что ал-
соответствующего правила при выво- горитм просматривает входную цепоч-
де. Из вершины выходят ветви ко всем ку на один символ вперёд.
символам, составляющим правую При нисходящем разборе синтак-
часть правила. сическое дерево строится сверху вниз,
По выводу цепочки однозначно начиная с корневой вершины, а при
восстанавливается синтаксическое де- восходящем разборе — восстанавли-
рево и, наоборот, по синтаксическому вается снизу вверх.
дереву однозначно выписываются
правый и левый выводы.
Теоретически для всех контекст-
но-свободных грамматик задача раз-
бора имеет алгоритмическое реше-
ние, но общий алгоритм работает
слишком медленно, за время порядка
N3, где N — длина входной цепочки.
Это неприемлемо для трансляторов:
при увеличении длины входной про-
граммы в 10 раз время трансляции
возрастает в 1000 раз! Поэтому на
практике работают только со специ-
альными классами грамматик, допус-

171
Алгоритмизация

НИСХОДЯЩИЙ
В грамматике арифметических формул имелось правило: (РЕКУРСИВНЫЙ) РАЗБОР
〈формула〉→〈формула〉 + 〈терм〉.
Пусть в грамматике имеется правило
Попытка выполнить нисходящий разбор в этой грамматике при-
ведёт к бесконечной рекурсии, поскольку подпрограмма 〈фор- A→BtD,
мула〉 будет постоянно обращаться сама к себе, не прочитав ни
одного символа, содержащегося во входной цепочке. Следова- где A, B, D — нетерминалы, а t — тер-
тельно, эта грамматика не допускает нисходящего разбора (но минал (т. е. обычный символ). Надо
допускает восходящий разбор!). создать подпрограмму с именем «A»,
которая пытается выделить из вход-
ной цепочки начальный отрезок,
выводимый из нетерминала A. По ука-
Всякая грамматика, обладающая занному правилу этот отрезок дол-
свойством LL(1), располагает также жен начинаться с отрезка, выводимо-
свойством LR(1), т. е. класс LR(1)- го из нетерминала B ; затем следует
грамматик включает в себя класс обычный символ t и далее отрезок,
LL(1). В то же время есть LR(1)-грам- выводимый из нетерминала D. Под-
матики, которые не являются LL(1): программа A сначала вызывает под-
например, детерминированная грам- программу B, которая читает и раз-
матика языка арифметических фор- бирает начальный отрезок цепочки,
мул и грамматика языка С. Вообще, соответствующий нетерминалу B. За-
построить леворекурсивную грам- тем подпрограмма A проверяет, сов-
матику всегда сложно: даже если это падает ли очередной символ цепоч-
удаётся сделать, результат выглядит ки с символом t , пропускает его
крайне неестественно. Напротив, и вызывает подпрограмму D. Таким
LR(1)-грамматика обычно очень лег- образом, обработка отрезка, пред-
ко выписывается для большинства ставляющего нетерминал A, сводится
алгоритмических языков. к обработке более коротких отрез-
Зачем же вообще рассматривать ков, представляющих нетерминалы
LL(1)-грамматики и рекурсивные B и D.
алгоритмы? Единственная причина Если имеются два разных правила
состоит в том, что понимание алго- для нетерминала A, например
ритма восходящего разбора, исполь-
зующегося в большинстве случаев, A→BtD,
требует некоторой программист- A→EFg,
ской культуры. Нужно хотя бы знать,
что такое стек. то подпрограмма A по первому сим-
Поэтому многие пособия по про- волу входной цепочки должна разо-
граммированию для начинающих браться, какое из этих двух правил
ограничиваются только рекурсив- нужно применить. Это можно сде-
ными алгоритмами разбора. лать, только если любые цепочки,
выводимые из нетерминалов B и E ,
обязательно начинаются с разных
символов.
Слово «рекурсивный» в названии
алгоритма употребляется потому, что
в определении нетерминала B снова
может встретиться нетерминал A (либо
в грамматике будет правило, которое
содержит A как в левой, так и в правой
частях). Следовательно, подпрограм-
ма B, в свою очередь, вызывает A (либо
подпрограмма A вызывает сама себя).
Поэтому при нисходящем разборе
возможна рекурсия.

172
Теория программирования

ВОСХОДЯЩИЙ РАЗБОР
В алгоритме восходящего разбора ис-
пользуется стек. Его можно представ-
лять как слово, состоящее из тер-
миналов и нетерминалов, которое
наращивается или изменяется только
с правого конца. Для примера можно
рассмотреть грамматику арифмети-
ческих формул:

F→F+F | V | C
V→x | y
C→1 | 2 | ... | 9,

где нетерминал F обозначает фор-


мулу, V — переменную, C — констан-
ту. Тут ограничились только опера-
цией сложения, двумя переменными Затем дважды выполняется сдвиг:
x, y и цифрами в качестве констант.
Разберём цепочку x+y+1. Алгоритм F ⇐ +y+1 → F+ ⇐ y+1→ F+y ⇐ +1
моделирует так называемый LR-
процесс. На любом шаге состояние Теперь выполняется свёртка по
LR-процесса определяется стеком правилу V→y, затем свёртка по прави-
и непрочитанной частью исходной лу F→V:
цепочки. Стек как бы повёрнут навст-
речу входной цепочке. Вначале стек F+ y ⇐ +1 → F+V ⇐ +1 → F+F ⇐ +1
пуст, а входная цепочка совпадает
с исходной: и, наконец, свёртка по правилу F→
→ F+F, т. е. производится замена це-
⇐ x+y+1 почки F+F в вершине стека на левую
часть правила — на букву F:
Алгоритм может выполнять два
действия. Первое называется сдвигом F+F ⇐ +1 → F ⇐ +1
и состоит в переносе первого симво-
ла входной цепочки в стек (как на Далее дважды выполняется сдвиг,
арабских счётах, символ словно «пе- затем свёртка по правилу C→1, потом
рещёлкивается» справа налево): свёртка по правилу F→C и на послед-
нем шаге свёртка по правилу F→F+F:
⇐ x+y+1 → x ⇐ +y+1
F ⇐ +1 → F+ ⇐ 1 → F+1 ⇐ →
Пусть вершина стека, т. е. конец
слова, представляющего стек, совпа-
дает с правой частью некоторого пра- F+C ⇐ → F+F ⇐ → F⇐
вила, в данном случае правила V → x.
Тогда вершину стека можно заменить По окончании исходная цепочка
на левую часть правила. Это действие полностью прочитана, а стек LR-про-
называется свёрткой по соответству- цесса содержит начальный нетер-
ющему правилу: минал грамматики. Следовательно,
разбор доведён до успешного завер-
x ⇐ +y+1 → V ⇐ +y+1 шения, а исходная цепочка принад-
лежит языку.
Теперь выполняется свёртка по При восходящем разборе может
правилу F→V, т. е. символ V в вершине возникнуть неоднозначность. Так, в не-
стека заменяется на F: который момент можно выполнить
сдвиг или свёртку либо свёртки по раз-
V ⇐ +y+1 → F ⇐ +y+1 ным правилам. В алгоритме разбора

173
Алгоритмизация

жений, представляющих всевозмож-


ные типы слов исходного языка.
На втором этапе сканер передаёт
парсеру очередное слово, указывая
его тип (переменная, константа, клю-
чевое слово и т. п.) и необходимую
дополнительную информацию — на-
пример, для констант передаются их
числовые значения. Парсер реализу-
ет алгоритм восходящего разбора
(LR-разбора). Параллельно стеку
LR- процесса парсер поддерживает
семантический стек, позволяющий
программисту хранить любую допол-
нительную информацию, связанную
с понятиями разбираемого языка,
строится конечный автомат, по вер- и таким образом решать необходи-
шине стека и по первому символу мую ему задачу. Например, в случае
входной цепочки определяющий, ка- перевода с английского языка на рус-
кое именно действие следует выпол- ский для слов можно хранить их зна-
нить. чение, для определений — ссылку на
Существует чёткая процедура по- определяемое существительное, что-
строения этого автомата. Однако для бы согласовать род, и т. д.
реальных алгоритмических языков Текст программы парсера на язы-
число его состояний может измерять- ке С создаётся в результате работы
ся тысячами. Для человека это очень YACC. Созданный YACC файл с про-
много, и кто хоть раз попробовал граммой на С затем используется как
вручную выписать все состояния и за- часть большого проекта, реализу-
полнить таблицы разбора, скорее на- ющего компилятор.
пишет программу, делающую это ав- Такая технология разработки ком-
томатически, чем согласится снова пиляторов имеет огромные преиму-
выполнить подобную работу. Впро- щества по сравнению с примитивным
чем, писать такую программу не нуж- «ручным» программированием. Во-
но, она уже давным-давно написана первых, она экономит силы и время
и называется YACC. и, следовательно, уменьшает возмож-
ность ошибок. Во-вторых, контекст-
но-свободная грамматика входного
ИНСТРУМЕНТАЛЬНЫЕ языка просто переписывается из со-
ответствующего стандарта. Это гаран-
СРЕДСТВА РАЗРАБОТКИ тирует, что все созданные подобным
КОМПИЛЯТОРОВ LEX образом компиляторы будут соответ-
ствовать стандарту и даже на разных
И YACC компьютерах станут работать одина-
ково (по крайней мере, на стадии син-
Для решения задачи синтаксическо- таксического разбора). А переноси-
го разбора текста предназначены про- мость программ с одной платформы
граммы LEX и YACC (англ. Yet Another на другую по-прежнему является од-
Compiler Compiler — «ещё один ком- ной из главных болевых точек в про-
пилятор компиляторов»). Синтакси- граммировании. Хотя текст парсера
ческий разбор выполняется в два эта- весьма изящен и вообще всегда при-
па. На первом символы разбиваются ятно использовать достижения науки
на слова (лексемы) с помощью скане- на практике, подчас приходится реа-
ра (англ. Scaner; это программа на язы- лизовывать компиляторы вручную,
ке С, текст которой автоматически отодвинув в сторону два замечатель-
воспроизводится программой LEX). ных инструмента LEX и YACC. К сожа-
Входной файл для программы LEX со- лению, за красоту приходится платить
держит перечень регулярных выра- потерей производительности.

174
Теория программирования

ДОКАЗАТЕЛЬСТВО ПРАВИЛЬНОСТИ ПРОГРАММ

Доказательство правильности про-


грамм напоминает доказательство ма-
тематических теорем. Каждая про-
грамма рассматривается как теорема
такого вида: «Если исходные данные
удовлетворяют некоторым условиям,
то после выполнения данной про-
граммы для её результатов будут спра-
ведливы некоторые другие условия».
Доказательство обычно включает
следующие этапы:
1. В программе выделяют несколь-
ко контрольных точек, для каждой из
них формулируется утверждение,
описывающее состояние перемен-
ных программы в данной точке. Эти
утверждения используются при до-
казательстве как промежуточные
опорные точки (в математике анало-
гичную роль играют леммы). (1) самый тяжёлый арбуз — в мешке
2. Исходя из логики программы нц пока в мешке больше одного арбуза
составляется её блок-схема, показы- положить два любых арбуза из мешка на
вающая, из какой точки в какую воз- чашки весов
можен переход, при каком условии (2) самый тяжёлый арбуз — в мешке или
и как при этом изменяются значения на весах
переменных. более лёгкий арбуз отложить в сторону
3. Для каждого перехода доказы- более тяжёлый арбуз вернуть в мешок
вается следующее положение: если кц
в исходной точке выполнялось запи- (3) в мешке ровно один арбуз — самый
санное в ней утверждение, то и тяжёлый
утверждение, записанное в конечной взять из мешка самый тяжёлый арбуз
точке перехода, выполняется. Если это
действительно для всех переходов, вы- Примечание: предполагается, что
полнение программы дойдёт до за- в мешке нет одинаковых арбузов.
ключительной точки, заключитель- Контрольные точки отмечены на
ное утверждение будет верно. блок-схеме кружками, соответству-
Перечисленные пункты показыва- ющие утверждения записаны в алго-
ют, что, если программа завершится, ритме в виде комментариев.
результат её будет правильным, одна-
ко они не гарантируют, что она будет
завершена. Поэтому полное доказа-
тельство обязательно включает ещё
один пункт.
4. Доказывается что заключитиель-
ная точка программы рано или поздно
будет достигнута, т. е. программа за-
вершится.
Пример 1. Есть мешок арбузов.
С помощью чашечных весов (без
гирь) необходимо найти самый тяжё-
лый арбуз. Возможное решение этой
задачи представлено на рисунке в ви-
де блок-схемы. Алгоритмически его
можно записать так:

175
Алгоритмизация

Доказательство правильности это- 3. Если верно условие (2), то при


го алгоритма: следующем проходе цикла верно
1. В начальный момент условие (1) условие (1). То есть если в точке (2)
верно: самый тяжёлый арбуз находит- самый тяжёлый арбуз находился
ся в мешке. в мешке, то он там и остался: между
2. Если верно условие (1), то при точками (2) и (1) из мешка ничего
входе в цикл верно условие (2). Это не вынимали. Если же в точке (2) са-
очевидно: в промежутке между этими мый тяжёлый арбуз был на весах,
точками арбузы из мешка «уходили» то при выполнении следующих дей-
только на весы. ствий он был возвращён в мешок.
4. Если верно условие (1), то при
выходе из цикла верно условие (3).
Выполнение условия (1) означает, что
мешок не пуст. Переход в (3) возмо-
жен, только если не выполняется
условие цикла, т. е. в мешке не боль-
ше одного арбуза. Следовательно,
в мешке ровно один арбуз, и в соот-
ветствии с условием (1) он — самый
тяжёлый.
5. Выполнение алгоритма обяза-
тельно завершится, так как при каж-
дом исполнении цикла в мешке ста-
новится на один арбуз меньше.
Пример 2. На рисунке изображе-
ны блок-схема алгоритма нахожде-
ния наибольшего общего делителя
двух целых чисел (алгоритм Евклида)
и процедура на языке Pascal.
Правильность этого алгоритма
можно доказать следующим образом:
1. Выделяем контрольные точки
и записываем соответствующие им
утверждения.
2. Возможные переходы, условия
и изменения переменных видны на
рисунке.
3. Все утверждения в контрольных
точках верны:

(1) x0 > 0, y0 > 0

Данное положение верно по опреде-


лению:

(2) x > 0, y > 0,НОД(x,y) =


= НОД(x0, y0)

В эту точку возможен переход из


двух мест: из точек (1) и (6). Переход
из (1) происходит в начале работы
программы, из (6) — на каждом оче-
редном витке цикла. Справедливость
утверждения (2) надо доказывать от-
дельно для каждого перехода.
Между точками (1) и (2) выполня-
ются присваивания: x:= x0; y:= y0.

176
Теория программирования

После этих присваиваний x = x0, Пусть теперь d — произвольный


y = y0. Если было выполнено (1), то общий делитель x_н и y. Очевидно, что
справедливость (2) очевидна. сумма x_н + y делится на d, значит, d —
Между (6) и (2) не происходит во- общий делитель x_с и y.
обще никаких действий, а утвержде- Отсюда следует, что множество
ния в этих точках совпадают. Следова- общих делителей x_с и y совпадает
тельно, если выполняется утверждение со множеством общих делителей
(6), то выполняется и утверждение (2). x_н и y. А значит, и наибольшие об-
Утверждение (2), расположенное щие делители этих пар совпадают,
при входе в цикл, играет особую роль т. е. НОД(x_н ,y) = НОД(x_с, y).
в доказательстве правильности про- Утверждение (6) доказано.
грамм.
(7) x = y > 0, Евклид.
(3) x > 0, y > 0, x <> y, НОД(x, y) = НОД(x0, y0)
НОД(x, y) = НОД(x0, y0)
Переход в (7) происходит из (2)
При переходе из (2) в (3) никаких при нарушении условия x <> y, т. е.
изменений в значениях переменных при x = y. Утверждение (7) — это Утверждение, кото-
нет, значит, все условия, входящие в ут- и есть утверждение (2), к которому до- рое всегда выполня-
верждение (2), остаются верными. бавилось условие x = y. ется перед проверкой
В точке (3) к ним добавилось условие условия цикла, назы-
из заголовка цикла — x <> y. Здесь оно (8) d = НОД(x0, y0) вается инвариантом
обязательно верно, так как в противном цикла.
случае тело цикла не выполнялось бы. В (7) утверждается, что x = y.
НОД(x, x) = x, значит, после присваи-
(4) x > y > 0, вания d:= x условие (8) выполнено.
НОД(x, y) = НОД(x0, y0) 4. Программа обязательно за-
вершится, поскольку при каждом ис-
В точку (4) совершается переход полнении большее из чисел x умень-
из (3) при условии x > y. Если доба- шается, а числа при этом должны
вить это условие к утверждению (3), оставаться положительными.
как раз и получится утверждение (4).

(5) y > x > 0,


НОД(x, y) = НОД(x0, y0) АЛГОРИТМ ЭВКЛИДА НА ЯЗЫКЕ PASCAL

В точку (5) переходим из (3), ес- procedure Euclid (x0, y0: integer; var d: integer)
ли не выполняется предыдущее усло- var x, y: integer
вие x > y, т. е. при y >= x. Случай y = begin
x исключается, так как в (3) утверж- {(1) x0 > 0, y0 > 0}
дается, что x <> y. x:= x0; y:= y0;
{(2) x > 0, y > 0, НОД(x, y) = НОД(x0, y0)}
(6) x > 0, y > 0, while x <> y do begin
НОД(x, y) = НОД(x0, y0) {(3) x > 0, y > 0, x <> y,
НОД(x, y) = НОД(x0,y0)}
В точку (6) переходим из (4) и из (5). if x > y
При переходе из (4) выполняется then {(4) x > y > 0, НОД(x, y) = НОД(x0, y0)}
присваивание x:= x — y. Предположим, x:= x - y
что старое значение x (до присваива- else {(5) y > x > 0, НОД(x, y) = НОД(x0, y0)}
ния) было x_с, а новое (после присва- y:= y - x
ивания) — x_н. {(6) x > 0, y > 0, НОД(x, y) = НОД(x0, y0)}
В соответствии с (4) x_с > y, по- end
этому x_н = x_с – y > 0. {(7) x = y > 0, НОД(x, y) = НОД(x0, y0)}
Пусть d — произвольный общий d:= x;
делитель x_с и y. Очевидно, что раз- {(8) d = НОД(x0, y0)}
ность x_с — y делится на d, значит, d — end
общий делитель x_н и y.

177
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
ЯЗЫК ПРОГРАММИРОВАНИЯ ЛОГО

Язык программирования ЛОГО создал программно-управляемых исполни-


в 1969 г. выдающийся американский телей играют аппаратные роботы. Од-
учёный Сеймур Пайперт, известный нако наибольшую популярность по-
своими работами в области педагоги- лучил программно-реализованный
ки, математики, психологии и инфор- исполнитель Черепашка, который пе-
матики. Главная идея языка — програм- ремещается по плоскости с поднятым
мирование деятельности исполнителя, или опущенным пером, что позволя-
управляемого с помощью компьюте- ет ему оставлять след — нарисованную
ра. По существу, ЛОГО — это язык траекторию движения.
управления исполнителем. Система команд, непосредствен-
Среди многочисленных но воспринимаемых и выполняемых
реализаций систем про- Черепашкой, как правило, невелика
граммирования и проста. В эту систему команд вклю-
ЛОГО есть и чаются, в частности, перемещения
такие, где вперёд и назад на задаваемую поль-
роль зователем длину, поворот на указан-
ный угол, а также операции с рису-
ющим инструментом — «поднять»
и «опустить».
ЛОГО ориентирован на обучение
программированию младших шко-
льников. Тот факт, что этот язык
не умер (как случилось с многими ис-
кусственными языками), а уже треть
века живёт и продолжает развивать-
ся, свидетельствует, что выбранная

178
Языки программирования

предметная область (раннее обуче- Например, с помощью такой про-


ние детей информатике) и предло- цедуры можно выложить стенку из
женные разработчиками языка сред- квадратных кирпичей — написать
ства удачно сочетаются друг с другом. процедуру СТЕНА, которая вызывает
В язык управления Черепашкой КВАДРАТ:
встроены управляющие структуры,
которые позволяют передавать груп- ЭТО СТЕНА СТЕНА
пы команд, сформированные с помо- ПОВТОРИ 4
щью повторений и ветвлений. Типич- [
ный пример — цикл ЛОГО: КВАДРАТ
ПЕРОПОДНЯТЬ
ПОВТОРИ 360 [ ВПЕРЁД 1 НАПРАВО 1] ВПЕРЁД 10
ПЕРООПУСТИТЬ
Этот цикл рисует «окружность», со- ]
ставленную из 360 отрезков, а услов- КОНЕЦ Сеймур Пайперт.
ная команда

ЕСЛИ :А [ НАПРАВО 90 ] [ НАЛЕВО 90 ]


Столь же естественно в описание
заставляет Черепашку повернуть под процедуры вводятся параметры: ес-
прямым углом направо или налево ли тот же квадрат приходится рисо-
в зависимости от текущего значения вать с разными длинами сторон,
переменной :А. то с этой целью полезно описать про-
В ЛОГО просто и естественно за- цедуру с параметром (величина :СТО-
писываются и используются проце- РОНА — параметр процедуры КВАДРА-
дуры. Поэтому процедура как фунда- ТИК):
ментальное понятие информатики
вводится на самых первых уроках. ЭТО КВАДРАТИК :СТОРОНА
Действительно, цикл ПОВТОРИ 4
[
ПОВТОРИ 4 [ВПЕРЁД 10 НАПРАВО 90] ВПЕРЁД :СТОРОНА НАПРАВО 90
]
легко приводит к описанию процеду- КОНЕЦ
ры КВАДРАТ:
Теперь при вызове КВАДРАТИК с раз-
ЭТО КВАДРАТ ными значениями фактического па-
ПОВТОРИ 4 [ВПЕРЁД 10 НАПРАВО 90] раметра можно с помощью одной
КОНЕЦ и той же процедуры рисовать квадра-
ты разных размеров:
Здесь заголовок описания — его
первая строка — включает режим за- КВАДРАТИК 10
поминания (а не выполнения!) про- КВАДРАТИК 20
цедуры, названной КВАДРАТ, а слово КВАДРАТИК 30
КОНЕЦ, завершающее описание, возвра-
щает программу из режима запоми-
нания в режим выполнения. После
этого квадрат можно рисовать про-
стым вызовом процедуры, т. е. упоми-
нанием её имени:

КВАДРАТ

Коль скоро одна процедура спо-


собна вызывать другую, образуя цепоч-
ку вложенных процедур, то можно
представить и такой частный случай,

179
Алгоритмизация

когда имена вызывающей и вызывае- и построенный ею рисунок:


мой процедур совпадают, т. е. проце-
дура вызывает сама себя. Процедуру, УЗОР 10
вызывающую (непосредственно или
через цепочку вложенных вызовов)
процедуру с тем же именем, называют
рекурсивной, а соответствующий вы-
зов — рекурсивным вызовом, или, ко-
роче, рекурсией. В ЛОГО такие вызовы
разрешены (существуют языки, в ко-
торых рекурсивные вызовы не допус-
каются в принципе). Рекурсивная про-
цедура

ЭТО КВАДРАТИК :СТОРОНА


ПОВТОРИ 4
[
ВПЕРЁД :СТОРОНА НАПРАВО 90 Рекурсивная процедура рисования
] спирали имеет два параметра — ШАГ
КВАДРАТИК :СТОРОНА и УГОЛ:
КОНЕЦ
ЭТО СПИРАЛЬ :ШАГ :УГОЛ
заставит Черепашку безостановочно ВПЕРЁД :ШАГ НАПРАВО :УГОЛ
двигаться по одному и тому же пути СПИРАЛЬ (:ШАГ + 5) :УГОЛ
(описывать квадрат). КОНЕЦ
Более интересны рекурсивные вы-
зовы процедур, в которых значение Примеры нескольких спиралей
параметра вызова (фактического па- при разных значениях угла:
раметра) меняется от одного рекур-
сивного вызова к другому. Вот пример
такой процедуры

ЭТО УЗОР :А
ПОВТОРИ 8
[ВПЕРЁД :А НАПРАВО 45]
Спираль с шагом 50 УЗОР :А + 2
и углом 20. КОНЕЦ

Другой пример не сложнее, но он


более привлекателен. Здесь при каж-

180
Языки программирования

дом рекурсивном вызове меняется не ЭТО УРЕЗАНИЕ :СЛОВО


длина перемещения, а угол поворота: ПОКАЖИ БЕЗПЕРВОГО :СЛОВО
УРЕЗАНИЕ БЕЗПЕРВОГО :СЛОВО
ЭТО СПИРАЛЬ :ШАГ :УГОЛ КОНЕЦ
ВПЕРЁД :ШАГ НАПРАВО :УГОЛ
СПИРАЛЬ :ШАГ (:УГОЛ + 7) На экран будет выведен такой стол-
КОНЕЦ бец слов:

Результат выполнения этой проце- ОБЕДА


дуры: БЕДА
ЕДА
ДА
А

В ЛОГО удачно сочетаются воз-


можности «учебного» и производст-
венного языка. Интересную интегра-
цию различных областей применения
этого языка продемонстрировал со-
зданный профессором М. Виве’ науч-
ный центр во французском городе
Ле-Мане. Здесь одновременно прово-
дили обучение программированию
в начальной школе; подготовку спе-
За годы развития Черепашка Пай- циализирующихся в информатике
перта и управляющий ею язык ЛОГО студентов университета; переподго-
обросли многими новыми возможно- товку квалифицированных рабочих
стями. Сначала появились средства на промышленных предприятиях ре-
управления цветом. Позднее Черепаш- гиона, где широко использовались
ка «научилась» воспроизводить мело- станки с числовым программным
дии. Ещё интереснее стало работать управлением; исследования психоло-
на ЛОГО, когда появилась возмож- гов, изучавших влияние информаци-
ность в одной программе управлять онных технологий на мышление и де-
одновременно несколькими испол- ятельность людей. ЛОГО оказался
нителями. эффективным инструментом для
Язык ЛОГО не только отображал пользователей с разными уровнями Спираль с шагом 10
в своём инструментарии средства для развития и разных сфер деятельности. и углом 1.
обслуживания новых возможностей
Черепашки, но и развивался автоном-
но, позволяя обучать программиру-
емый исполнитель новым «умениям».
Так, благодаря вычислительным
возможностям при работе с число-
вой информацией и богатым средст-
вам обработки текстовой информа-
ции язык ЛОГО допускает работу не
только с графикой, но и другими спо-
собами представления информации.
ЛОГО предлагает эффективные ме-
тоды обработки таких структур дан-
ных, как списки. Важно, что идея ре-
курсивности проводится в структурах
данных столь же последовательно,
как и в управляющих структурах. Вот,
например, как запрограммировано
в ЛОГО последовательное «урезание»
слова «ПОБЕДА»:

181
Алгоритмизация

ЛОГО рос и развивался не только при помощи команд на английском


за счёт увеличения функций языка языке. И дети легко делают это:
и Черепашки. Его распространение
в мире связано в первую очередь ЭТО FORWARD :ШАГ ЭТО LEFT :УГОЛ
с многообразием лексических версий. ВПЕРЁД :ШАГ НАЛЕВО :УГОЛ
Практически в каждой развитой стра- КОНЕЦ КОНЕЦ
не используются свои национальные
версии этого языка. Хотя, например, Необходимо ли такое разнообра-
в основе французского языка заложе- зие лексических версий языка про-
на та же латиница, что и в английском граммирования? На этот вопрос после-
(в лексике которого создавались пер- довал бы, вероятно, отрицательный
вые версии ЛОГО), тем не менее они ответ, если бы речь шла о «профессио-
предпочитают рассказывать юным нальном», производственном языке,
французским школьникам о Черепаш- таком, как С, FORTRAN, Аda, или о язы-
ке, понимающей французские ключе- ке для изучения информатики стар-
вые слова ЛОГО. шеклассниками или студентами (та-
Та же картина и в странах, где в на- ков Pascal). Но малышей, которым
циональных языках используется ки- приходится осваивать азы программи-
риллица. Несмотря на близость сла- рования — дисциплины и без того на-
вянских языков, ЛОГО существует сыщенной непростыми фундамен-
в русской, украинской и болгарской тальными понятиями, очень важно
версиях. Более того, при изучении освободить от дополнительных мето-
языка ЛОГО в русских школах часто дических препятствий, каким, безус-
включают такое задание — запро- ловно, является лексика чужого, ино-
граммировать действия Черепашки странного языка.

ИСТОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

Самым распространённым способом жать» и т. д. Однако это не всегда при-


дрессуры домашних животных явля- менимо к кошачьим, которые мало
ется обучение их ограниченному на- того что непослушные, но и не пони-
бору команд, например «сидеть», «ле- мают команды. Некоторые прозор-
ливые хозяева легко управляются со
своенравными питомцами, разгова-
ривая на их языке, шипя и мяукая, и,
поверьте, достигают практически
полного взаимопонимания.
Центральное устройство в ком-
пьютере — процессор также облада-
ет своим собственным языком. И сде-
лать так, чтобы компьютер стал
«понимать» программиста, весьма
сложная задача.
Команды для процессора надо
как-то закодировать, например пред-
ставить в числовой форме: 1 может
означать сложение, 2 — умножение,
3 — деление и т. д. Помимо команд
процессору предоставляются и дан-
ные, необходимые для выполнения
тех или иных операций. Пусть у не-
которого вымышленного процессо-
ра для простоты такой формат за-
писи команд:

182
Языки программирования

код первый второй ячейка для


команды операнд операнд результата

А данные для команды, т. е. операнды,


записываются так:

00 xx — число xx;
01 xx — ячейка памяти с номером xx.

Тогда программа нахождения сред-


него арифметического двух чисел,
расположенных в ячейках 1 и 2, вы-
глядит так:

01 0101 0102 0103


03 0103 0002 0103

Или, если записать её в строчку, ПЕРЕХОД


01 01 01 01 02 01 03 03 01 03 00 02
К МНЕМОНИЧЕСКОЙ
01 03. ЗАПИСИ ПРОГРАММ.
Даже для такой простой програм- ЯЗЫК АССЕМБЛЕР
мы машинный код представляет со-
бой загадочный шифр, для раз- Норма развития — от простого к слож-
гадывания которого надо обладать ному. В программировании первым
способностями Шерлока Холмса. шагом было создание системы сим-
В настоящих, невымышленных, ком- вольного обозначения команд. Коман-
пьютерах машинный код намного ды представлялись сокращениями
сложнее. Программировать на таком обычных слов, обозначающих опера-
коде и проверять программу было ции. Несмотря на простоту идеи, её ре-
очень трудно и неудобно, поскольку ализация позволила сильно улучшить
для всех операций приходилось ли- восприятие существующих программ,
бо помнить их коды и форматы, либо уменьшить количество ошибок, облег-
постоянно пользоваться специаль- чить работу программистов.
ными таблицами. Малейшая неакку- Вот пример программы, записан-
ратность при кодировании, ошибка ной с помощью символьных обозна-
при записи, перепутанные цифры чений:
приводили к непредсказуемым по-
следствиям. А найти такую ошибку СЛЖ П№1, П№2 > П№3
оказывалось нелегко, поскольку пе- ДЕЛ П№3, 2 > П№3
ред программистами был не алго-
ритм, описанный более или менее
понятным языком, а набор цифр.
Программисты искали способы
облегчить себе жизнь, создать ин-
струмент, который позволил бы им
писать программы, не тратя время
на мелкие детали, не отвлекаясь на
само кодирование. Они хотели по-
ручить рутинную работу тому, кто
умеет выполнять её лучше всех, —
компьютеру. А самим заняться тем,
что свойственно человеку, — твор-
чеством, составлением алгоритмов.

183
Алгоритмизация

Это означает СЛоЖить ячейки Памя- лист привёл бы совсем в другую часть
ти №1 и №2, результат поместить города.
в ячейку Памяти №3. Потом ячейку Па- Можно было сохранить идею, ал-
мяти №3 разДЕЛить на 2 и результат горитм, общий принцип решения.
снова поместить в ячейку Памяти №3. А сам машинный код приходилось пи-
Такая символьная система записи сать (или исправлять) каждый раз за-
команд называется мнемонической ново.
(от греч. «мнеме» — «память»), т. е. Для решения задачи придумали си-
удобной для запоминания. стему именования адресов ячеек па-
Но одной только мнемонической мяти и участков кода. Каждой ячейке
записи для эффективного создания памяти присваивалось своё уникаль-
программ мало. Программистам при- ное имя, и дальше в программе ис-
ходилось постоянно «изобретать ве- пользовался уже не номер ячейки па-
лосипед» — писать код для одного и мяти, а соответствующее ей имя:
того же действия. Части кода про-
грамм, решавшие ту или иную подза- ИМЯ “X” П№1
дачу, конечно, можно было сохранить ИМЯ “Y” П№2
для последующего использования, ИМЯ “РЕЗУЛЬТАТ” П№3
но ценность такого сохранённого ко-
да невелика, поскольку его нельзя сра- СЛЖ X, Y > РЕЗУЛЬТАТ
зу же использовать при создании но- ДЕЛ РЕЗУЛЬТАТ, 2 > РЕЗУЛЬТАТ
вых программ.
Части машинного кода были «при- Таким образом, стало возможным
вязаны» не только к определённому выделение частей кода для решения
процессору, компьютеру, но и к про- отдельных подзадач в качестве еди-
грамме, в рамках которой они напи- ного целого. Эти небольшие програм-
саны. В машинном коде явно заданы мы называются подпрограммами или
адреса ячеек памяти для хранения ре- процедурами. У процедуры есть стро-
зультатов вычисления и адреса, по ко- го определённый набор начальных
торым передаётся управление при на- данных, которые ей необходимы для
ступлении тех или иных событий. работы, и набор выходных данных,
А в новой программе эти ячейки па- которые, собственно, и являются ре-
мяти могут уже использоваться сов- зультатом её работы.
сем по-другому. Старый машинный Для удобства процедуры объединя-
код «почувствовал» бы себя так же, как ют в библиотеки процедур. Обычно
и шофёр, если бы все улицы города процедуры в рамках одной библиоте-
внезапно переименовали. Путевой ки применяются для решения одина-

184
Языки программирования

ковых или похожих задач, обладают сту приходилось каждый раз «приду-
сходными правилами и предназначе- мывать» свою алгебру, геометрию,
ны для совместного использования. химию, вместо того чтобы восполь-
Может существовать библиотека про- зоваться готовым учебником и, от-
цедур для решения алгебраических толкнувшись от базовых знаний,
уравнений, библиотека для обработки изобрести что-то новое. Библиоте-
звука и видео и даже библиотека для ки процедур позволили программи-
работы с другими библиотеками про- стам быстрее и качественнее созда-
цедур. вать новые сложные программы.
Но недостаточно только придумать Эти два направления послужили
красивую систему записи программы. основой для развития новых языков
Такую программу компьютер выпол- и систем программирования.
нить не сможет, ему необходимы ма-
шинные коды. Процесс перевода мне-
монической записи в код легко ФОРМУЛЫ, ФОРМУЛЫ,
описать в виде простых пошаговых
инструкций. Однако если её будет
ФОРМУЛЫ... FORTRAN
выполнять человек, то вместо преиму-
ществ новой системы возникнет Язык Ассемблер был хорош для про-
большое количество ошибок, описок граммистов, разрабатывающих при-
и времени это займёт немало. Выпол- кладные программы, операционные
нение подобной скучной, чисто меха- системы. Но, несмотря на его мнемо-
нической, кропотливой и просто ничность, он не подходил для основ-
неинтересной, но в то же время ответ- ных пользователей компьютеров то-
ственной работы (по таблицам вмес- го времени — учёных, проводивших
то одного набора значков-операторов сложные математические расчёты.
подставлять другой набор значков-ко- Язык Ассемблер из-за своей бли-
дов операций) необходимо передать зости к машинному коду сам по се-
компьютеру. бе труден для изучения. Кроме того,
В 1952 г. американка Грейс М. Хоп- он предназначался для определён-
пер создала первый в мире мнемони- ного процессора, а значит, человек,
ческий язык программирования работающий на нескольких компью-
Ассемблер (от англ. assemble — «со- терах, должен был знать несколько
бирать», «компоновать»). Он включал иногда существенно разных языков.
в себя мнемоническую систему ко- И наконец, язык Ассемблер представ-
манд (список команд), библиотеки лял собой несколько «очеловечен-
процедур и специальную программу ную» запись машинных кодов.
для перевода текста программы в ма- Для программирования на этом
шинный код. Такая процедура полу- языке необходимо представить все
чения машинного кода называется действия в виде простейших кирпи-
компиляцией (от англ. compile — «со- чиков, сложные формулы разбить на
ставлять», «собирать»), а программа, последовательности отдельных опе-
её осуществляющая, — компилято- раций. Программист же оперирует
ром, который также придуман Грейс в уме более общими категориями:
М. Хоппер. вычислить формулу, напечатать чис-
Это был первый шаг — создание ло на экране, повторить операцию
языка программирования как спе- десять раз и т. п.
циального языка, понятного и чело- Для решения этих проблем был
веку, и компьютеру. До тех пор су- предложен язык программирования,
ществовал только один язык — язык при создании которого применялся
компьютеров, а человек как более новый способ — разработка языка
разумное существо просто «разгова- по предварительной спецификации,
ривал» на нём. описанию. Сотрудники фирмы IBM
Второй шаг — создание библиоте- подготовили документы, подробно
ки процедур, т. е. повторное исполь- описывающие новый язык програм-
зование кода. До этого, если немного мирования и требования к нему.
преувеличить, каждому программи- В отличие от языка Ассемблер он Грейс Хоппер.

185
Алгоритмизация

нятном для человека виде. Вычисление


среднего арифметического, например,
выглядит следующим образом:

RES = (A+B)/2

Такая запись уже близка к обычной


математической, и человеку, пишуще-
му программу для компьютера, не на-
до учиться хотя бы записывать форму-
лы. Помимо логичного представления
вычисления в виде единой формулы
FORTRAN предоставил ещё и богатую
библиотеку математических функций.
Например, для вычисления квадратно-
го корня достаточно вызвать специ-
альную процедуру «сорт»:
В фильмах «Терминатор» и «Терминатор-2»
робот-убийца запрограммирован на Ассемблере. RES = SQRT(169)

Эта процедура может быть включена


в сложную формулу как один из опе-
рандов:

X1 = (-B - SQRT(B*B - 4*A*C)) / (2*A)

На языке Ассемблер вычисление


корня квадратного уравнения заняло
бы много строчек машинного кода,
да и операцию вычисления квадрат-
ного корня пришлось бы программи-
ровать самому или, по крайней мере,
взять из библиотеки процедур. Труд-
но придумать алгоритм вычисления
квадратного корня с использованием
только четырёх арифметических опе-
раций.

разрабатывался не на основе машин- ПРОЦЕДУРНОЕ


ного кода, не как язык, понятный
компьютеру, а как язык, удобный для
ПРОГРАММИРОВАНИЕ
человека.
В 1956 г. группой программистов Термин «библиотека» подпрограмм
под руководством Джона Бэкуса был или процедур появился ещё при
создан первый компилятор для ново- создании языка Ассемблер. Подпро-
го, более «человечного» языка про- граммы представляли собой выде-
граммирования. Он получил назва- ленные части кода, оформленные как
ние FORTRAN (от англ. formula единое целое. Программист должен
translation — «трансляция», «перевод был определять, каким образом пе-
формул»). редаются данные в подпрограмму
Новый язык программирования (например, через ячейку опера-
стал универсальным, одну и ту же про- тивной памяти), каким образом под-
грамму можно было запустить на раз- программа запоминает, кто именно
ных компьютерах (естественно, пред- её вызвал и как она передаёт управ-
варительно скомпилировав её). Он ление обратно. Эти соглашения о вы-
Джон Бэкус. позволял записывать формулы в по- зове подпрограмм были разными

186
Языки программирования

в различных библиотеках, более то-


го, они могли быть разными для раз-
личных подпрограмм в одной биб-
лиотеке.
Для организации эффективной ра-
боты программистов требовалось
автоматизировать, стандартизировать
процесс написания и использования
подпрограмм. Это осуществилось
в языке FORTRAN. То есть подпрограм-
мы, библиотеки подпрограмм уже не
являлись чем-то внешним, пристрой-
кой к языку, а были созданы прямо
в нём.
Перед выполнением процедуры В данном примере описана проце-
ей необходимо передать данные, дура с именем SQ, у которой есть три
с которыми она будет работать, т. е. входных параметра A, B, C и два выход-
входные данные. Результат процеду- ных — X1, X2. Что является входными
ры называется выходными данными. и выходными параметрами, опреде-
Если это процедура вычисления кор- ляет программист, пишущий проце-
ней квадратного уравнения, то для дуру, и описывает их в комментари-
неё входные данные — три коэффи- ях, которые присутствуют в коде
циента при степенях неизвестного, программы, но игнорируются компи-
а выходные данные — два искомых лятором.
корня (хотя, возможно, корень будет
всего один, корней не будет или лю- SUBROUTINE SQ (A,B,C,X1,X2)
бое число будет удовлетворять урав-
нению; тогда на выходе процеду- C Процедура вычисления корней
ры необходимо иметь ещё один C квадратного уравнения
параметр — количество искомых C Входные данные: A,B,C —
корней). C коэффициенты при неизвестном
Процедура может и не иметь вход- C Выходные данные: X1,X2 — корни
ных или выходных данных, а ино- C квадратного уравнения
гда — и тех и других. Процедура по- C Внимание: работает, только если
лучения текущего времени не имеет C уравнение имеет решение!
входных данных — она берёт время
«изнутри» компьютера. У процедуры D = SQRT(B*B - 4.*A*C)
печати числа нет явных выходных X1 = (-B-D)/(2.*A)
данных — результатом работы явля- X2 = (-B+D)/(2.*A)
ется изображение на экране или на RETURN
принтере. А процедура форматиро- END
вания всех жёстких дисков системы
не имеет ни входных, ни выходных При вызове необходимо только пра-
данных. Они ей не нужны, она и так вильно указать параметры процедуры,
знает, что ей делать, и ей нечего пе- и получается решение уравнения:
редать наружу — всё будет и так за-
метно. CALL SQ (1,–3,2,RES1,RES2)
При описании процедуры на язы- PRINT RES1, RES2
ке FORTRAN ей даётся имя, по кото-
рому её можно будет вызвать. В этой Машина напечатает ожидаемые ре-
же строчке описываются входные шения уравнения x2–3x + 2 = 0:
и выходные данные. Каждому эле-
менту данных присваивается имя, под 1 2
которым оно будет использоваться
внутри процедуры: Чёткое выделение процедур при-
вело к появлению новой модели про-
SUBROUTINE SQ (A,B,C,X1,X2) граммирования.

187
Алгоритмизация

Большая задача разбивается на мно- виатуры коэффициенты уравнения


жество более мелких простых подза- и печатает на экран решения. Когда
дач. Общий код программы не пере- программист убеждается, что его про-
гружен деталями, и автор программы цедуры работают правильно, он на-
всегда может решить, надо ли ему раз- чинает из них, как из кубиков, соби-
бираться в алгоритме программы в це- рать большую программу.
лом (вероятно, эта теория непримени-
ма для описания полёта ракеты?) или
отдельного фрагмента (так вот из-за СТРУКТУРНОЕ
чего она взорвалась: я не проверил, по-
ложительный ли дискриминант при
ПРОГРАММИРОВАНИЕ.
решении квадратного уравнения!). ЯЗЫК ALGOL
Такой метод программирования
называется процедурным програм- За создание следующего языка про-
мированием. Основой его является граммирования решили взяться учё-
разделение большой программы на ные — специалисты в области ки-
меньшие кирпичики — процедуры. бернетики, теории алгоритмов, тех
При использовании технологии про- областей науки, которые в англоязыч-
цедурного программирования про- ной литературе обычно объединяют
грамма может создаваться двумя спо- под названием «Computer Science»,
собами — сверху вниз и снизу вверх. т. е. «наука о компьютерах».
В первом случае сначала разраба- В 1960 г. на основании отчётов на-
тывается общий алгоритм решения учных конференций был создан обоб-
программы; определяется, какие будут щающий документ, описывающий но-
нужны вспомогательные функции вый язык — Algol-60. Его наименование
(процедуры); пишутся специальные произошло от английского algorith-
пустые «процедуры-заглушки», кото- mic language — «алгоритмический
рые только имитируют работу насто- язык».
ящих процедур; отлаживается общий Для переменных стали чётко опре-
алгоритм работы, затем пишутся вспо- деляться участки программы, в преде-
могательные функции. лах которых эти переменные могут
Во втором случае сначала создаёт- использоваться. Такие участки про-
ся набор вспомогательных процедур, граммы называются областями види-
они отлаживаются при помощи спе- мости, а про переменную говорят, что
циальных небольших программ. На- она видна или не видна в данной об-
пример, для процедуры решения ласти программы. Переменная, объ-
квадратного уравнения это может явленная внутри функции, процеду-
быть программа, которая вводит с кла- ры или специального логического

188
Языки программирования

блока операторов, будет видна толь-


ко внутри данной конструкции.
Например, если в функции A есть
переменная tmp и эта функция вызы-
вает функцию B, в которой тоже есть
переменная tmp, то операции над
tmp в функции B никак не изменят
значение tmp в функции A. Перемен-
ная tmp из функции A не видна в
функции B.
Стало обязательным указание ти-
па переменных перед их использова-
нием — объявление. С введением та-
кого ограничения ошибки, подобные
приведённой ниже, оказались невоз-
можными:

REAL I1
.... (несколько страниц кода)
I1 = 3./2.

Здесь программист, использу-


ющий переменную I1 в операции
деления, предполагал, что по описа- Вызов таких вложенных функций
нию стандарта FORTRAN перемен- называется рекурсией, а функции, ко-
ная, начинающаяся с буквы I, имеет торые вызывают сами себя, — рекур-
целый тип (целые переменные начи- сивными.
наются с I, J, K, L, M, N, остальные — В языке Algol были чётко описаны
вещественные). Но он не обратил структурные управляющие операто-
внимания, что тип переменной был ры: операторы выбора и операторы
указан необязательным (и, в общем, повторения (цикла). Операторы вы-
редко используемым оператором). бора позволяют выполнять те или
Как результат значением I1 является иные участки кода в зависимости от
не ожидаемое 1, а 1,5. вычисляемого условия. Операторы
Помимо «общеоздоровительного цикла предназначены для повторе-
эффекта», связанного с более проду- ния определённого участка кода за-
манным использованием перемен- данное количество раз или до тех пор,
ных, введение областей видимости пока не выполнится определённое ус-
позволило добавить в язык вызов ловие.
функции из самой себя. Например, вы- Управляющие операторы, конеч-
числение факториала числа но же, присутствовали и в языках Ас-
семблер и FORTRAN, но они не были
N! =1 . 2 . 3 . ... .(N –1) . N основным элементом при написании
программ, не обладали удобством ис-
удобнее всего производить именно пользования.
с помощью вложенного вызова функ- Через восемь лет, в 1968 г., вышел
ции: новый, переработанный и дополнен-
ный вариант языка Algol-60, который
алг цел факториал (цел N) получил вполне предсказуемое имя
дано N Algol-68. С этим стандартом связана
надо и опубликованная в 1969 г. статья
нач Эдсгера В. Дейкстры о структурном
| если N <= 1 программировании.
| | то знач := 1 Он доказал, что для записи любо-
| | иначе знач:= N * факториал (N – 1) го алгоритма достаточно основных
| всё конструкций структурного програм-
кон мирования: Эдсгер Дейкстра.

189
Алгоритмизация

граммы, которая создавалась боль-


шим коллективом программистов
и была рассчитана на долгосрочное
использование в отличие от сиюми-
нутного расчёта уравнения на языке
FORTRAN. Программа начинала жить
своей собственной жизнью, и очень
часто случалось так, что изменения
и дополнения в неё вносил человек,
не имеющий никакого отношения
к её созданию. В связи с этим на пер-
вое место стали выходить надёж-
ность программы, понятность её ко-
да, упорядоченность, структурность.
К сожалению, новая версия языка
Algol-68 так и не смогла не только за-
воевать популярность у прикладных
программистов, но даже пробиться
• последовательность операторов; в ряды коммерческих продуктов.
• альтернатива (выбор); Язык Algol остался научным исследо-
• повторение (цикл). ванием, «академическим» языком, ко-
Эта статья подводит итог почти де- торый оказал огромное влияние на
сятилетним исследованиям по струк- развитие языков программирования
турному программированию. В ней в целом. Он стал фактически стандар-
утверждается, что при программиро- том для описания компьютерных ал-
вании можно обойтись без операто- горитмов в научных исследованиях
ра перехода на определённую метку и породил целое семейство алголо-
в программе (GOTO), при активном подобных языков (к которым, собст-
использовании которого программы венно, и относятся почти все совре-
становились непонятными, их логика менные процедурные языки, такие,
напоминала «блюдо спагетти». Термин как Pascal, Modula, С).
«структурное программирование» от-
ражает тенденции в построении про-
грамм с чётким описанием их струк- СТРУКТУРЫ ДАННЫХ.
туры.
Время шло, и компьютеры, и про-
ЯЗЫК PASCAL
граммы для них становились всё бо-
лее сложными. Появилось понятие В 1970 г. известный швейцарский
программного продукта, т. е. про- учёный профессор Никлаус Вирт со-
здал собственный язык программи-
рования, в котором постарался изба-
виться от всех недостатков языка
Algol. Новый язык получил название
Pascal.
Этот язык стал первым широко
распространённым языком, реализу-
ющим в себе концепции структурно-
го программирования, проработан-
ные в 60-х гг. Почему же язык Pascal,
созданный одним человеком, смог
достичь того, чего не достиг Algol,
над которым несколько лет трудилась
целая группа видных учёных?
Новый язык вобрал в себя многие
черты языка Algol, такие, как стро-
гость описания, богатство управля-
ющих структур, но был более лёгким

190
Языки программирования

для изучения. Это определило воз-


можность его использования для пре-
подавания программирования в уни- НЕСТРУКТУРИРОВАННЫЙ КОД
верситетах, колледжах. Но Pascal
избежал участи исключительно «учеб- Простейшее действие — определение, имеет ли квадратное уравнение
ного» языка. Он представляет собой корни
достаточно мощный язык програм-
мирования, подходящий для созда- алг квадратное уравнение
ния больших проектов. дано a, b, c
Общая структура языка и управля- надо
ющие конструкции, такие, как циклы, нач вещ дискриминант
операторы выбора «если — то», на- | дискриминант:= b*b-4*a*c
прямую заимствованы из языка Algol. | если дискриминант < 0
В то же время, поскольку Pascal созда- | | то вывод "корней нет"
вался для обучения программирова- | | иначе вывод "корни есть"
нию, его синтаксис был значительно | всё
упрощён. Новый, упрощённый язык кон
позволял практически так же эффек-
тивно реализовывать алгоритмы, на FORTRANе будет записано так:
однако наряду с этим значительно
уменьшилось время на изучение язы- DISCR = B*B–4.*A*C
ка. Основной его девиз — «Взвешен- IF (DISCR) 1,2,2
ность, простота, лаконичность». 1 PRINT 11
Но одно лишь упрощение синтак- 11 FORMAT "(Корней нет)"
сиса не могло способствовать успеш- GOTO 3
ному становлению и развитию ново- 2 PRINT 22
го языка. Каковы же существенные 22 FORMAT "(Корни есть)"
отличия языков Algol и Pascal? 3 CONTINUE
Создатели первого не учли, что ком-
пьютер является инструментом не То есть если значение дискриминанта меньше нуля, то происходит
только для сложных расчётов, но и для переход на оператор с меткой 1, если равно нулю или больше нуля —
обработки данных. Способы для вы- на оператор с меткой 2. Оператор печати, в свою очередь, ссылается
ражения данных в языках Algol и FOR- на другой оператор (метки 11 и 22), в котором описан формат выво-
TRAN — числа, символы (строки сим- димого сообщения, в нашем случае слова "корней нет" или "корни
волов) и пронумерованные наборы есть". Для того чтобы при отрицательном дискриминанте программа
чисел или символов — массивы. До- после печати соответствующего сообщения не «залезла» на террито-
ступ к элементу массива происходит рию другого варианта, используется оператор перехода GOTO, который
при предъявлении специального же- просто передаёт управление за пределы нашего блока на оператор
тона — номера этого элемента данных. с меткой 3.
Этих трёх типов данных было до-
статочно на ранних этапах развития
компьютеров, когда они в основном кого набора данных нет своего соб-
вычисляли и главным являлось ко- ственного идентификатора, все эле-
дирование формул и простых алго- менты равноправны. Кроме того,
ритмов вычисления. Для написания в нём находится по одному элементу
сложных программ этого явно не с данным значением. Такой набор
хватало. Вирт при разработке языка данных называется множеством и
Pascal сделал второй революцион- в действительности является одним
ный шаг: ввёл новые типы данных из основных понятий современной
и общий механизм для создания про- математики. Множество применяет-
изводных типов данных, который ся в тех ситуациях, когда не важен по-
мог использовать каждый програм- рядок элементов, даже не важны сами
мист в своей программе. элементы, а важен признак наличия
Во-первых, это был ненумерован- элемента данных в наборе.
ный набор данных (чисел, символов), Например, для коллекционера в об-
представленный как единое целое. щем-то не существенно, какой уникаль-
В отличие от массива, у элемента та- ный номер у марки в его коллекции, Никлаус Вирт.

191
Алгоритмизация

ресное. Скорее всего, ему будет ин-


тересно пересечение, если он захо-
СТРУКТУРИРОВАННЫЙ КОД чет узнать, какие марки есть и у не-
го, и у его друга (потом он в уме
DISCR = B*B–4.*A*C discr:=b*b-4*a*c вычтет из своей коллекции это пе-
IF (DISCR) 1,3,2 if discr < 0 then ресечение и получит множество ма-
1 PRINT 11 begin рок, которых нет у его коллеги и ко-
11 FORMAT "(Корней нет)" Print "Корней нет" торыми он может похвастаться).
GOTO 4 end Во-вторых, в языке Pascal впервые
2 X1 = (-B-D)/(2.*A) else if discr = 0 then появился универсальный механизм
PRINT 22, X1 begin для создания новых сложных струк-
22 FORMAT (E8.3, 4X) x1:=(b)/(2*a) турных типов данных. Он позволял
3 X2 = (-B+D)/(2.*A) Print x1 группировать данные, относящиеся
PRINT 33, X2 end к одному объекту, записывать их ря-
33 FORMAT (E8.3, 4X) else дом и потом использовать эти запи-
4 CONTINUE begin си как единое целое. Причём группи-
x1:=(b-d)/(2*a) роваться могли не только числа или
x2:=(b+d)/(2*a) текстовые строки, а любые другие ти-
Print x1,x2 пы данных. Например, если требует-
end ся хранить информацию об ученике,
необходимо объединить в одну запись
По сравнению с программой на языке FORTRAN исчезли данные о его имени, фамилии, росте.
операторы перехода на определённую метку. Вместо этого Сначала нужно создать тип данных
Algol предоставляет блоки операторов, которые выполняют- для хранения имени и фамилии
ся как единое целое. То есть если дискриминант больше ну- (name_t). Это будет массив из 32 сим-
ля, то выполняется блок begin — end, расположенный непо- волов:
средственно после оператора выбора. Если же дискриминант
меньше нуля, то выполнится только следующий блок. type name_t = array[1..32] of char
Такая запись, во-первых, улучшает восприятие кода, по-
скольку не надо отслеживать все переходы по непонятным Потом описывается запись из име-
меткам, человек рассматривает такие блоки как единое це- ни, фамилии и роста ученика. Рост
лое, он может сначала определить действие в целом (если ученика выразим обычным числом
дискриминант больше или равен нулю, то корни есть, иначе
корней нет), а потом уже вникать в то, как устроено данное type pupil_t = record
действие (как именно производится печать текста на экран, firstname : name_t;
каким оператором, какой именно текст печатается). surname : name_t;
Во-вторых, при бесконтрольном использовании операто- height : real
ров перехода часто возникала ситуация, когда управление end
передавалось прямо внутрь части кода, выполняющего ка-
кое-то действие. Такая методика хотя и позволяла иногда И наконец, для описания класса бу-
создавать более эффективные программы, вела к огромно- дет использована запись из массива
му количеству ошибок как при самом написании программы, описаний учеников и номера класса
так и при её модификации, когда уже забывалось, что имен- (номер класса может быть только це-
но и как было реализовано в оригинальной версии. лым числом, поэтому для уменьшения
вероятности ошибки мы прямо сейчас
скажем компилятору, что это целое
вряд ли его заинтересуют повторе- число, и любую попытку присвоить ему
ния — ему важен лишь факт наличия дробное значение необходимо рас-
или отсутствия у него данного редко- сматривать как ошибку):
го экземпляра. Также ему, возможно,
понадобятся следующие операции: type class_t = record
объединение, которое произойдёт, ес- pupils : array[1..40] of pupil_t;
ли два коллекционера решат соеди- number : integer
нить усилия. Они объединят свои кол- end
лекции, а образующиеся повторы
раздарят друзьям или поменяют у дру- Теперь, для того чтобы напечатать
гих коллекционеров на что-то инте- список всех учеников класса, рост ко-

192
Языки программирования

торых выше среднего, можно вос-


пользоваться следующим кодом:
МАССИВЫ
var class : class_t;
var N : integer; Для хранения и обработки информации о росте всех учеников клас-
{ Здесь запись должна быть заполнена са можно создать массив Height, в котором будут храниться соответ-
данными } ствующие числа. Если необходимо получить рост ученика, у которо-
... го номер в журнале 13, то в программе это описывается как Height[13].
{ Вычисление среднего роста в классе } Следующий пример программы на языке Pascal иллюстрирует нахож-
for i:= 1 to N do дение среднего роста учеников в классе.
begin
sum:= sum + class.pupils[i].height { Пусть Height — массив с ростом учеников,
end N — количество учеников в классе }
mean:= sum / N; for i:= 1 to N do
{ Печать имён и фамилий учеников begin
с ростом выше среднего } sum := sum + Height[i]
for i:= 1 to N do end
begin mean := sum / N;
if( class.pupils[i].height > mean )
then Если бы не было возможности объединить все данные в массив,
begin то в программе пришлось бы для роста каждого ученика использо-
writeln(class.pupils[i].sur- вать отдельную переменную, и код выглядел бы примерно так:
name,
class.pupils[i].firstname) sum := sum + heightVasya;
end sum := sum + heightPetya;
end sum := sum + heightMasha;
...
Создание языка Pascal явилось зна-
чительным этапом в развитии языков Да и при изменении количества учеников в классе пришлось бы
программирования и определило путь изменять код программы, а в примере с массивом — только значе-
их развития в 70-х гг. ХХ в.; большин- ние переменной N. Если данное вычисление используется внутри
ство языков следующего десятилетия процедуры и N — её параметр, то приведённый выше код с масси-
можно считать прямыми потомками вом является универсальным и может использоваться в любой про-
языков Algol и Pascal. грамме, в которой необходимо посчитать средний рост школьников
В то же время у языка Pascal имелся в классе (а быть может, и спортсменов в команде или космонавтов
ряд существенных недостатков. Так, на корабле).
в массивах не могла использоваться

193
Алгоритмизация

верхняя «открытая», неизвестная на


момент компиляции граница. Это
ИСТОРИЯ НАПИСАНИЯ ПЕРВОГО видно из примера, когда для описа-
КОМПИЛЯТОРА ЯЗЫКА PASCAL ния класса был использован массив
из 40 элементов в надежде на то, что
в классе не больше 40 учеников.
Но что будет, если найдётся такой ги-
гантский класс?
В языке Pascal не предусмотрен тип
данных для работы с символьными
строками, несмотря на их широкую
распространённость. Каждый раз их
приходилось создавать заново (как при
определении типа name_t, в котором
опять-таки предполагалось, что длина
имени и фамилии школьника меньше
32 символов).
Pascal не учитывал написания ко-
В 1969 г. Вирт поручил одному из своих студентов, Э. Мармье, да программы в разных файлах и по-
написать компилятор языка Pascal. Тот начал создавать компи- следующего объединения при компи-
лятор на единственном языке программирования, который он ляции, поэтому, если создавалась
знал, — FORTRAN. Это и было ошибкой, поскольку, по призна- большая программа, объём файла с её
нию самого Мармье, он полностью запутался из-за ограниче- текстом мог составлять сотни кило-
ний при работе со сложными структурами данных. байтов, что делало практически не-
В 1970 г. после разработки формального описания синтак- возможным работу команды програм-
сиса языка Pascal компилятор создали на самом этом языке. За- мистов. Даже одному программисту —
тем один из разработчиков, Р. Шилд, за две недели вручную автору — уже было затруднительно
перевёл программу компилятора в машинный код. То есть он найти в ней нужный фрагмент.
брал каждую конструкцию языка и записывал её в машинном В языке Pascal ограничены возмож-
коде, работая неким «человеком-компилятором». Таким обра- ности ввода и вывода информации, не
зом, Pascal стал первым языком высокого уровня, реализован- разработана стандартная библиотека
ным на самом себе. вспомогательных функций (например,
Для переноса на другие машины использовалась специаль- сравнение строк, которое каждый раз
но разработанная P-машина, исполнявшая так называемый P- приходилось делать программисту,
код и испытанный временем метод интерпретации. P-код пред- символ за символом; получение сис-
ставлял собой машинный код для вымышленного компьютера. темного времени, работа с файлами
Компилятор перевели вручную на этот вымышленный код. На но- операционной системы и др.).
вой же машине создавался только интерпретатор для данного
P-кода, что оказалось намного более простой задачей, чем сто-
яла перед Шилдом. ЯЗЫК С
Как только интерпретатор P-кода был сделан, с его помо-
щью стало возможным запустить компилятор, написанный на Один из самых популярных сегодня
P-коде, и скомпилировать его ещё раз уже в машинный код для языков с незамысловатым названием
данного компьютера. С (читается как буква английского ал-
Таким образом, Никлауса фавита «с» — «си») создан в 1972 г. Ден-
Вирта и его язык Pascal можно нисом Ритчи. Язык C был разработан
считать родоначальниками идеи для программирования в новой мало-
широкого использования вирту- известной на тот момент операцион-
альных машин, на которой ба- ной системе UNIX (и это не преувели-
зируются хорошо известная и чение: UNIX тогда использовалась
широко используемая техноло- только на нескольких машинах внут-
гия Java и совсем молодая Micro- ри корпорации Bell Telephone Labora-
soft.NET. tories). Исторически он явился после-
дователем практически неизвестного
языка B. Но в то же время он считает-
Н. Вирт и Э. Дейкстра. ся наследником языков Algol и Pascal,
поскольку вобрал в себя многие их чер-

194
Языки программирования

ты; как и они, это процедурный язык ществующие программы, их «смысл»


для структурного программирования. стал ближе машинному коду.
Одна из отличительных особеннос- Появился оператор выбора из не-
тей С — то, что при его создании не скольких альтернатив — switch. Если
ставились сложные концептуальные раньше для выбора того или иного
цели, такие, как получение универсаль- действия в зависимости от значения
ного языка для записи вычислений переменной приходилось использо-
(FORTRAN), академического языка для вать цепочку «если — то»:
процедурного программирования
(Algol), дидактического, учебного язы- if mark = 3
ка (Pascal). Язык С был разработан про- then
фессиональными программистами как writeln(‘Сойдёт ‘)
удобный для них язык. else
Поскольку язык С — результат тру- if mark = 4
да не комитетов и учёных, а програм- then Деннис Ритчи.
мистов, пишущих реальные програм- writeln(‘Хорошо ‘)
мы, в нём были учтены практически else
все моменты, которые мешали нор- if mark = 5
мальному использованию других язы- then
ков при создании сложных систем. writeln(‘Просто замечательно’)
Снова после языка FORTRAN появи-
лась возможность раздельной компи- то теперь в С стало возможным ис-
ляции отдельных файлов и сборки их пользование одного оператора switch:
в единую исполняемую программу
уже после компиляции (компилятор switch( mark )
производил «полуфабрикаты», а спе- {
циальная программа-сборщик «соби- case 3:
рала их на одной сковородке и под- printf(‘Сойдёт‘);
жаривала до состояния готовности»). break;
Вместе с языком была создана стан- case 4:
дартная библиотека основных функ- printf(‘Хорошо‘);
ций, облегчающих работу програм- break;
миста, снимающих с него заботу о case 5:
написании тривиальных действий printf(‘Просто замечательно!‘);
и позволяющих сосредоточиться над break;
программой. Причём библиотека ос- }
новных функций вошла в описание
языка, т. е. являлась его неделимой ча-
стью, и каждый программист мог быть
уверен, что на любой платформе, где
есть компилятор С, есть и данная биб-
лиотека.
По сравнению с языком Pascal язык
С обладал большей гибкостью при вы-
боре разработчиками средств созда-
ния программ. Для эффективности ста-
ло возможным пожертвовать строгой
концепцией структурного програм-
мирования и написать программу, ис-
пользуя нетривиальные и временами
опасные расширения.
В языке С не только появились новые
конструкции, но и прошли доработку
старые. С точки зрения управляющих
структур ничего кардинального внесе-
но не было, но новые операторы поз-
волили более компактно записать су-

195
Алгоритмизация

МАССИВЫ И УКАЗАТЕЛИ

Если есть массив a и указатель p char *pstr, *pcopy;


pstr = str; pcopy = copy;
int a[5]; /* Объявление массива целых чисел из 5 ...
элементов */ while(*pcopy++ = *pstr++)
int *p; /* Объявление указателя на целое число */, ;

то p = a поместит в p адрес первого элемента масси- Используются два указателя на строки pstr и pcopy.
ва а. Чтобы получить доступ к нему, используют Дальше в соответствии с приоритетами операторов
выражение с указателем в виде *p. При увеличении в языке С загадочная операция присваивания обра-
указателя на 1 он станет указывать на следующий эле- батывается таким образом:
мент, т. е. запись *(p +1) эквивалентна a[1]. Указа- 1. Вычисление правого операнда присваивания.
тели можно и вычитать. Если есть два указателя: a) берётся значение указателя pstr, используется
один — на первый элемент массива, а другой — на ка- для применения оператора *;
кой-то произвольный элемент, то индекс этого эле- b) указатель pstr увеличивается на 1 (т. е. проис-
мента получают простым вычитанием указателя нача- ходит переход к следующему элементу массива).
ла массива из указателя элемента. То есть, если pa — 2. Вычисление левого операнда присваивания.
указатель на начало массива, а pe — указатель на про- a) берётся значение указателя pcopy, использует-
извольный элемент, его индекс i равен pe-pa. Это оче- ся для применения оператора *;
видно, если вспомнить, что указатель на элемент мас- b) указатель pcopy увеличивается на 1 (т. е. проис-
сива является суммой указателя на начало массива ходит переход к следующему элементу массива).
и индекса элемента, т. е. pe = pa+i. 3. Производится само присваивание, т. е. эле-
Использование указателей позволяет иногда эле- менту новой строки, полученному на шаге 2, присва-
гантно и необычно решить хорошо известную задачу. ивается значение элемента, полученное на шаге 1.
Например, копирование одной символьной строки, 4. Значением всего выражения в целом является
оканчивающейся символом с нулевым кодом, в дру- значение обрабатываемого элемента массива.
гую. Простейшее решение на языке Pascal может вы- В результате проведения операции были достиг-
глядеть так: нуты все цели. Во-первых, в элемент новой строки
попало значение элемента копируемой строки, во-
var str : array [0...255] of char; вторых, указатели для обеих строк перешли на сле-
var copy : array [0...255] of char; дующие элементы, и, наконец, в качестве значения
var i : integer; выражения мы получили значение элемента, которое
можно сравнить с нулём, чтобы определить допус-
for i := 0 to 255 тимый конец строки.
begin
copy[i]:= str[i];
if str[i] = ‘\0’ then goto finish;
end;
finish: ;

Оператор for обеспечивает цикл, в начале кото-


рого переменной i присваивается значение 0, после
каждой итерации её значение увеличивается на 1,
а условием продолжения цикла является i<255. Вну-
три цикла i- й символ копируется из строки str
в строку copy. Потом i-й символ строки str сравни-
вается с нулевым символом (‘\0’) и, если равенст-
во выполняется, производится выход из цикла c по-
мощью оператора goto.
Если использовать указатели и предположить, что
строка обязательно заканчивается символом с нуле-
вым кодом, то копирование строк на языке С может
быть намного короче:

196
Языки программирования

Снова появилась возможность ис-


пользования глобальных переменных
в программе. Переменные, которые
используются во всех функциях про-
граммы, даже в библиотечных, потен-
циально опасны, так как могут приве-
сти к трудноуловимым ошибкам. Такие
переменные противоречат основным
академическим идеям о «правильном»
структурном программировании. Хо-
тя, с другой стороны, если все функ-
ции программы работают с одним
и тем же набором переменных, то их
можно объявить глобальными, и тог-
да эти переменные не нужно будет пе-
редавать как параметры во все функ-
ции, что значительно ускорит работу
программы. управляющие конструкции, составные
В языке С снова появилась воз- типы данных и пр.).
можность работы с указателями на Указатели на объекты данных —
физические ячейки памяти. Конечно, ссылки — появились ещё в языке Pas-
кажется, что это очень опасно. Что cal, но их можно было запоминать
будет, если программа запишет про-
извольные данные в ячейку с адре-
сом 21324, никто не знает. Там могут
храниться код операционной сис- ЯЗЫК С
темы (хотя правильная операцион- И ОПЕРАЦИОННАЯ СИСТЕМА UNIX
ная система не даст себя «испортить»
и просто прекратит работу «взбесив- В 1973 г. операционную систему UNIX переписали на языке
шейся» программы) или данные C, изобретённого специально для UNIX. UNIX стал одной из
самой программы, и тогда она вроде первых операционных систем, написанной на языке про-
бы продолжит работу, но результаты граммирования высокого уровня. Хотя версия системы на C
будут непредсказуемыми. имела на 20-40 % больший объём и работала медленнее по
Зачем же тогда введение указателей сравнению с предыдущим вариантом на Ассемблере, преиму-
на адреса памяти? Всё дело в том, что щества использования языка высокого уровня — возможность
при должной квалификации програм- легко изучать и изменять программы — перевешивали эти
миста работа с данными программы недостатки.
через их адреса, адресная арифме- Простота языка C и наличие компилятора, который можно
тика, позволяет создавать практиче- легко адаптировать практически под любую аппаратуру,
ски такой же эффективный код, как на сделали UNIX первой мобильной ОС, т. е. операционной
языке Ассемблер, но со всеми удобст- системой, работающей на ЭВМ с различными архитектурами.
вами структурных языков (функции, Это произошло в 1979 г. с выходом седьмой версии UNIX.
Накопленный опыт переноса UNIX на разные ЭВМ привёл
к доработкам языка C: в язык были добавлены контроль типов
и библиотека ввода/вывода stdio (произносится «сту-дай-о»).
С 1976 г. создатели UNIX из лабораторий Белла бесплатно
распространяли исходные тексты операционной системы в
высших учебных заведениях для изучения и использования в
процессе обучения. Это повлекло за собой широкое
распространение Юникс и как следствие языка C. В первой
половине 80-х гг. XX в. Си практически вытеснил все остальные
языки программирования.
В 1978 г. вышла книга Брайана Кернигана и Денниса Ритчи
«Язык программирования C», которая в течение десяти лет
оставалась неформальным стандартом на язык C до появления
в 1989 г. международного стандарта на язык C.

197
Алгоритмизация

PLANKALKUL — ПЕРВЫЙ ЯЗЫК ПРОГРАММИРОВАНИЯ

В последние дни Второй мировой войны немецкий ин- Из битов строятся скалярные типы — двоичные целые
женер и изобретатель Конрад Цузе оказался в малень- числа с фиксированной и плавающей запятой. Состав-
ком селении Хинтерштейн в Альпах. Впервые за несколь- ные объекты (сейчас их назвали бы структурами дан-
ко лет попав в спокойную обстановку (как он писал, «без ных) также образуются из битов. Например, можно оп-
бомбёжек, телефонных звонков и визитёров») и не имея ределить массив произвольной размерности: n × S0
возможности продолжать работу над своим компьюте- (одномерный булевский массив длиной n), m × n × S0
ром Z4, он решил завершить начатое ещё в 1943 г. (двумерный булевский массив m × n) и т. д.
изучение описаний различных вычислительных задач. Кроме массивов в языке Plankalkul есть записи, объ-
Немецкое слово rechnen означает «вычислять», поэто- единяющие данные разных типов (их элементами мо-
му Цузе использовал для этих описаний термин гут быть и другие записи). Хотя записи и появились
Rechnenplan — «план вычислений» (слово «программа» в специализированном языке Cobol в 1959 г., затем ис-
было придумано несколько позднее). Разработанную пользовались в языке PL/I и Pascal.
систему для записи «планов вычислений» Цузе назвал Зато ещё одна идея Цузе долго не имела аналогов
Plankalkul. Считается, что это первый в истории язык в других языках. В текст своих программ он включал
программирования, более чем на десять лет опередив- выражения, задающие условия, которые должны быть
ший FORTRAN и Algol-60. истинными при выполнении тех или иных операторов.
Однако сам Цузе не рассматривал Plankalkul как Например, пусть объект (массив из четырёх битов) ис-
язык программирования. Он хотел создать универсаль- пользуется для записи десятичных цифр. Но так как
ную систему обозначений, дающую возможность опи- цифр всего десять, а объект может принимать 16 раз-
сывать любое преобразование информации. Plankalkul ных значений, на них можно наложить ограничение:
можно было использовать для записи алгоритмов — быть не больше десяти. Только спустя 50 лет анало-
и, в самом деле, Цузе написал на нём множество алго- гичная идея была реализована программистом из Ка-
ритмов решения самых разных задач. С неизменным ус- лифорнии Бертраном Мейером, автором языка про-
пехом он применял Plankalkul и для описания работы граммирования EIFFEL.
аппаратуры компьютера. Тем более удивительно, на- Столь же уникально предложение языка Plankalkul,
сколько Цузе удалось предугадать многие свойства по- позволяющее выбирать из множества объектов лишь
явившихся гораздо позднее языков программирования, те, которые обладают заданным свойством. Конечно,
а некоторые его идеи реализованы совсем недавно! Что это просто сделать с помощью оператора цикла или
же представлял собой язык Plankalkul? процедуры, но специальные конструкции есть не во
Прежде всего, в языке принята очень интересная всех современных языках программирования.
система типов данных. «Вычисления начинаются с би- Plankalkul достаточно богат выразительными воз-
та», как считал Цузе, поэтому простейшим типом у не- можностями. Помимо операторов присваивания в нём
го является бит (состояние да/нет), обозначавшийся S0. имеются условные операторы, операторы повторе-
Биты принимают значения L и 0, так что последова- ния (аналог современных циклов), возможность об-
тельности битов записываются как L0L0, 0LL0 и т. д. ращения к подпрограммам и т. д. Несомненно, он об-

только в других переменных и позже программистами для себя, а в своих-то


использовать для доступа к необходи- силах они были уверены.
мым объектам. В языке С указатели на Программист решает сам, какой код
объекты, переменные и функции мож- ему нужен: переносимый или эффек-
но не только запоминать, но также тивный, понятный и надёжный или бо-
складывать и вычитать. лее производительный? Общая логи-
Язык С предоставляет возможность ка программы может учитывать все
очень компактного, эффективного ре- требования классического структур-
шения поставленной задачи, но след- ного программирования, а отдельные
ствием этого является большая веро- функции могут использовать указате-
ятность труднообнаружимых ошибок. ли и прочие машинные «фокусы». Про-
Для их исключения необходима высо- граммист определяет, что и как ему де-
кая степень самоконтроля и мастерст- лать, а единый инструмент С помогает
ва программиста, что, впрочем, не так ему в решении этой задачи, не диктуя
уж неожиданно, поскольку язык при этом строгие ограничения, как
С создавался профессиональными Pascal или Algol.

198
Языки программирования

запятой и др. Особенно интересны его программы


для игры в шахматы — фактически первый опыт про-
граммирования в области искусственного интеллек-
та (задолго до формирования этой науки). Кстати,
ещё в 1938 г. Цузе предсказывал, что через 50 лет
машина начнёт выигрывать у человека в шахматы.
Удивительно, но он ошибся всего на несколько лет:
чемпион мира Гарри Каспаров проиграл матч супер-
компьютеру Deep Blue в 1997 г.! Впрочем, это Каспа-
ров, а рядовые любители уже лет за десять до этого
не могли соревноваться с шахматными программа-
ми — так что, может быть, Цузе оказался прав в сво-
ём прогнозе.
Б. Мейер с коллегами Конрад Цузе. К сожалению, язык не был реализован ни на одном
в гостях у А. Ершова. 1977 г. компьютере, а его полное описание Конрад Цузе опуб-
ликовал только в 1972 г. Поэтому многие считают, что
ладает многими свойствами, которые обычны в со- Plankalkul не повлиял на развитие современных языков
временных языках программирования. Зато в нём от- программирования, однако это совсем не так.
сутствуют такие привычные нам возможности, как,
например, безусловные переходы или работа со ссыл-
ками, кроме того, принятая форма записи страдает
избыточностью. Перечень недостатков можно про-
должить, но все они не перечёркивают главного:
Plankalkul явился первым в истории языком програм-
мирования высокого уровня. Хотя он не предназна-
чался для написания компьютерных программ, когда
через четверть века алгоритмы Цузе перевели на дру-
гие языки, оказалось, что программы работают! По-
этому не будет большим преувеличением сказать, что
Цузе стал первым в истории программистом, напи-
савшим множество действительно сложных программ:
сортировка данных, анализ синтаксической правиль-
ности логических формул, выполнение арифметиче-
ских действий (в том числе извлечение квадратного
корня) над целыми числами и числами с плавающей Гарри Каспаров играет матч с компьютером Deep Blue.

ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

ОБЪЕКТНО- ных систем ещё не превысила опре-


делённого уровня.
ОРИЕНТИРОВАННЫЙ По мере развития компьютеров всё
ПОДХОД чаще их начинали применять для
решения задач, сложность которых
обычно обусловлена не алгоритмом,
В 50-х гг. XX в. при написании про- а большим количеством участвующих
грамм основное внимание уделялось в процессе объектов и очень сложны-
алгоритмам, процедурам, действиям, ми отношениями между ними. Алго-
которые необходимо было предпри- ритмы, использующиеся для автома-
нять для решения задачи. Подобный тизации деятельности банка, вроде бы
процедурный подход был оправдан не особенно сложны. Они уж точно не
в те годы, когда сложность программ- включают в себя решения уравнений

199
Алгоритмизация

аэродинамики или ядерной физики. следовательных утверждениях) под-


Но это не означает, что получающая- ходит не в полной мере. Гораздо ло-
ся программа или скорее даже про- гичнее рассматривать систему как
граммный комплекс будут простыми — набор объектов, которые «живут своей
в повседневной работе банка задейст- жизнью» и тем или иным способом
вовано большое количество разнооб- реагируют на события (сообщения)
разных объектов: операционисты, бро- внешнего мира. Иногда, правда, они
керы, клерки, клиенты, банкоматы, сети могут сами послать сообщение, чтобы
для связи с другими банками, государ- «попросить» другой объект сделать
ственные и иные аудиторские комис- что-то такое, что они не в состоянии.
сии, биржи и т. п. И добиться надёжной И именно эта идея, т. е. разделе-
работы банковской системы ничуть не ние моделируемой системы на четко
проще, чем получить программу, ре- выраженные объекты, принимаю-
шающую некие уравнения, модели- щие и посылающие сообщения, знаю-
рующие работу ядерного реактора. щие, как делать то, для чего они пред-
Появившиеся в 60—70-х гг. XX в. назначены, и как запросить другие
структурные языки с реализованны- объекты сделать что-то выходящее
Алан Кей. ми в них средствами управления и ти- за эти рамки, привела к созданию
пами данных облегчили разработку объектноориентированного анализа
сложных программных комплексов. и разработки, к созданию объектно-
Но всё же они не давали приемлемо- ориентированных языков програм-
го решения проблемы, поскольку пы- мирования.
тались внести дополнения и улуч- Понятие программных объектов
шения в уже существующую модель было впервые введено Оле-Джоаном
программирования, а не представить Далем, Бьорном Мюрхогом и Кристе-
новую, которая бы лучше подходила ном Ныгардом из Норвежского вы-
для решения всё возрастающего кру- числительного центра в Осло в языке
га задач. Simula-67, который создан по моти-
Процедурные языки программи- вам языка Algol-60. Simula-67 являлся
рования исторически развивались как языком моделирования и описания
логическое средство выполнения за- сложных систем.
дач, которые стояли перед компью- Однако по-настоящему широкое
терами на заре их развития — т. е. внедрение этой идеи произошло при
вычислений и пакетной обработки разработке языка SmallTalk в 1970 г.
данных. (Это отражено и в том, как Аланом Кейем в Исследовательском
они назывались в то время — элект- центре фирмы Xerox в Пало-Альто.
ронные вычислительные машины). SmallTalk состоит лишь из объектно-
Но для моделирования процес- ориентированных конструкций. По-
соров нашего мира такая интерпре- добный подход позволяет сделать
тация (т. е. основанная на чётких по- описания систем компактными и
универсальными, но при использо-
вании только такого механизма ре-
шение задачи не всегда получается
эффективным.
Объект состоит из структур данных
и алгоритмов. Каждому объекту изве-
стно, как выполнять операции над его
собственными данными, но для ос-
тальных объектов он может представ-
лять собой «чёрный ящик». Разные
объекты будут использовать различ-
ные алгоритмы для осуществления
операций, определяемых одним и тем
же ключевым словом. Так, объект, чьи
данные состоят из комплексных чисел,
и объект, чьи данные — целые числа,
будут пользоваться различными мето-

200
Языки программирования

дами для выполнения арифметиче-


ских операций.
Формально описание объекта и его
свойств называют классом. Все объек-
ты, принадлежащие к одному и тому
же классу, имеют одинаковую струк-
туру и свойства, но могут отличаться
значениями своих атрибутов: все
джинсы Levi’s 501-й модели сшиты из
денима, имеют две штанины, пять кар-
манов и застёгиваются на болты,
но могут быть разных размеров, по-
ношенными или абсолютно новыми.
В настоящее время наибольшей по-
пулярностью обладают следующие объ- Абстрагирование. При построе-
ектно-ориентированные языки про- нии сложной модели необходимо
граммирования: C++, Python, Java, C#. выделить самые важные детали пред-
Объектно-ориентированная модель метов, явлений и отвлечься от несу-
программирования характеризуется щественных (хотя эти несуществен-
следующими понятиями и методами. ные детали могут, наоборот, стать

Читатель Книга Стеллаж

-Фамилия -Автор -Этаж


-Имя -Название -Номер комнаты
-Паспорт № -Внутренний № -Где находится
-Контактный телефон -ISBN
-Список книг -Количество страниц
-Цвет обложки
-Количество экземпляров
-Местонахождение

существенными при построении дру-


гих моделей). Такой процесс называ-
ется абстрагированием. Если для при-
мера взять систему автоматизации
работы библиотеки, то основными
действующими лицами этой систе-
мы (объектами) окажутся:
• книга;
• стеллаж, где хранятся книги;
• библиотекарь, который может
эти книги выдать читателю;
• читатель.
Необходимо абстрагироваться от
несущественных деталей и выделить
только значимые свойства каждого
объекта. Цвет волос и куртки читате-
ля, возраст библиотекаря, материал,
из которого сделан стеллаж, скорее
всего, не существенны, а вот цвет об-
ложки книги и её толщина, наверное,
существенны, потому что читатель
может попросить «толстый учебник

201
Алгоритмизация

немецкого языка, с коричневой об-


ложкой, который написан тремя ав-
ИНТЕРФЕЙС И РЕАЛИЗАЦИЯ торами».
К свойствам книги относятся её
Интерфейс: название, авторы, внутренний би-
блиотечный учётный номер и специ-
class Book альный международный учётный но-
{ мер ISBN, количество страниц, тип
String Author(); /* Функция, возвращающая имя и цвет переплёта. Читатель же харак-
автора */ теризуется именем, фамилией, пас-
String Name(); /* Функция, возвращающая название портными данными, контактным те-
книги */ лефоном.
String Code(); /* Функция, возвращающая код Инкапсуляция. Хотя объект «кни-
книги */ га» и описывается как список её
String ISBN(); /* Функция, возвращающая ISBN свойств, это не означает, что она пред-
книги */ ставляет собой просто некоторую стру-
Integer NoPages(); /*Функция, возвращающая количест- ктуру данных, набор строк (подобно
во страниц */ конструкции языка C struct { ... }
Color CoverColor(); /* Функция, возвращающая цвет или record — как в Pascal).
обложки */ Пользователю объект «книга» пре-
Integer NoCopies(); /* Функция, возвращающая доставляет список запросов, т. е. свой-
количество экземпляров книги ства, которые она реализует, и то, в ка-
данного вида в библиотеке */ ком виде реализованы эти свойства.
Location Location(); /* Функция, возвращающая Например, запрос «автор» выводит
местонахождение данной книги символьную строку с полным именем
в библиотеке */ автора, а запрос «количество экземп-
} ляров» — число. Это и называют ин-
терфейсом объекта.
Реализация: Для того чтобы обращаться к
объекту, необходимо знать только его
/* Функция получения имени автора книги */ интерфейс, внутреннее же его устрой-
String Book::Author() ство «спрятано» при помощи инкап-
{ суляции, т. е. сокрытия реализации от-
/* Установить соединение с базой данных */ дельных деталей. (Для других объектов,
DB db = GetDatabaseConnection(); общающихся с «книгой», её внутрен-
/* Сделать запрос к базе данных */ нее устройство совершенно неважно.)
RS rs = db.Execute( "SELECT Author FROM Books WHERE Инкапсуляция позволяет, в частности,
Book_Id = %1", m_Id ); полностью изменить реализацию объ-
/* Вернуть полученное имя автора */ екта без каких-либо изменений в ос-
return rs("Author"); тальной программе. Можно легко
} и быстро совершенствовать работу
программы, добавлять новые возмож-
ности. Например, чтобы хранить опи-
сание книг в базе данных при исполь-
зовании объектно-ориентированного
подхода, необходимо переписать толь-
ко реализацию объекта «книга», а ес-
ли бы применялся обычный проце-
дурный подход, то, скорее всего, нужно
было бы переписать бо′ льшую часть
программы.
Иерархия. Использование абст-
рагирования и инкапсуляции было
возможным ещё в структурных язы-
ках «старшего» поколения, таких, как
Pascal или C. Но практически во всех
случаях, кроме самых простых, чис-

202
Языки программирования

ло абстракций в системе получается но учитывать выданные читателю жур-


очень большим. налы, отдельно — книги и т. д. А если
В библиотеке «книга» в действитель- создать всего один объект «учётная еди-
ности является родовым понятием. Это ница», то этот класс будет чересчур
может быть книга одного автора, сбор- сложным. То есть потеряется одно из
ник рассказов, журнал, подшивка га- основных предназначений объектно-
зет. Книги могут состоять из несколь- ориентированного подхода: уменьше-
ких томов, иметь продолжение. Если ние сложности путём разложения це-
каждый из таких объектов описать как лого на фрагменты.
отдельный независимый класс, то чис- В этом случае используется иерар-
ло абстракций в системе будет очень хическая структура абстракции — под-
большим. Более того, придётся отдель- вид. Определим абстракцию «учётная

203
Алгоритмизация

единица» как базовый класс, описыва-


ющий объекты, которые хранятся
ИСПОЛЬЗОВАНИЕ ОБЪЕКТОВ-НАСЛЕДНИКОВ в библиотеке и могут быть выданы чи-
КАК РОДИТЕЛЬСКИХ ОБЪЕКТОВ тателю. «Книга» или «журнал» будет
подвидом учётной единицы.
/* Функция, которая возвращает список "просроченных" чи- В классе «журнал» необходимо вве-
таталем книг */ сти дополнительные свойства, такие,
BiblioItems Reader::CheckDue() как год и месяц выхода, список авто-
{ ров и статей. Но «книга» тоже может
/* Получить список всех книг, находящихся на руках у чи- представлять собой сборник произ-
тателя */ ведений различных авторов.
BiblioItems bi = GetItems(); Если создать отдельный объект
/* Создать объект, в который будет помещён список книг, для «книги» — сборника рассказов,
для которых срок возврата прошёл */ то получится, что один и тот же код
BiblioItems due; будет использован в совершенно раз-
ных местах, окажется затруднена его
/* Выполнить цикл для всех книг, находящихся на руках реализация, поддержка. Поэтому луч-
у читателя */ ше установить ещё одно иерархиче-
for( bi.First(); ! bi.Last(); bi.GetNext() ) ское соотношение: «журнал» и «сбор-
{ ник рассказов» являются подвидом
/* Если дата возврата книги меньше, чем сегодняш- абстрактного «сборника».
няя дата, значит, эту книгу читатель не вернул Для отчётности и поиска иногда
вовремя и её необходимо добавить к списку "про- бывает полезным рассматривать го-
сроченных" книг */ довые подшивки журналов и много-
if( bi.Current().GetReturnDate() < Today() ) томные романы как единое целое. Тог-
due.Add( bi.Current() ); да появляется ещё один вид иерархии:
} отношение «является частью». Мно-
готомное издание является частью об-
return due; щей серии. Иногда говорят, что отно-
} шение «является подвидом» — это
иерархия классов, а отношение «яв-
В этой функции внутри списка книг, находящихся на руках у чи- ляется частью» — это иерархия объ-
тателя (bi), могут встречаться объекты типа «книга», «журнал», ектов. Классы, которые являются под-
«сборник» и пр. Но поскольку в базовом для них классе «учётная видами более общего класса, — это
единица» объявлена функция для получения даты возврата наследники или потомки, а более об-
GetReturnDate(), то эту функцию можно вызывать и для объек- щий класс — это класс-прародитель
тов-наследников. или просто родительский класс.
В противном случае пришлось бы хранить несколько спи- С отношением «является подви-
сков, а именно список взятых читателем книг, список взятых дом» связано ещё одно очень важное
читателем журналов и т. п. свойство объектно-ориентированно-
го программирования.
Полиморфизм. Для объекта «чи-
татель» необходимо хранить список
выданных на руки книг, журналов, га-
зет. Из созданной структуры видно,
что хранить надо список абстрактных
«учётных единиц». Поскольку классы
«книга», «журнал» являются подвида-
ми учётных единиц, то объекты, опи-
сывающие реальные книги, имеют те
же свойства и допускают те же опера-
ции, что и абстрактные «учётные еди-
ницы». Для них можно установить
ISBN, внутренний номер, найти мес-
тоположение на стеллаже.
Для каждого из учётных объектов не-
обходимо получить полное название.

204
Языки программирования

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


произведения, для журнала — название
журнала, номер и год выпуска. Опреде- ПОЛИМОРФИЗМ
ление различных функций (например,
GetMagazineDescription, GetBookDe- BiblioItems Reader::RemindDue()
scription) для различных классов нару- {
шит иерархическую структуру, сведёт /* Получить список всех книг, для которых подошёл срок воз-
практически на нет так тщательно вы- врата */
строенную иерархию. BiblioItems due = GetDue();
После функции (например, GetDe- /* Создать новое электронное письмо и адресовать его читате-
scription( )) в базовом классе «учётная лю */
единица» и переопределения её в ос- MailMessage mail( Reader.EMailAddress );
тальных классах в классе «книга» опи- /* Добавить в текст письма вежливое напоминание */
сание будет состоять из имени автора mail.addText( "Напоминаем вам, что подошёл срок вернуть сле-
и названия произведения, для много- дующие
томного романа, наверное, добавится книги:" );
ещё и порядковый номер, для сборни-
ка — имя составителя, для журнала — /* Выполнить цикл для всех книг, подлежащих возврату */
номер и год выпуска. Если каждый из for( due.First(); ! due.Last(); due.GetNext() )
таких специализированных объектов {
будет использоваться как представи- /* Добавить в текст письма подробное название книги */
тель родительского класса «учётная mail.addText( due.Current().GetDescription() );
единица», то всегда доступной станет }
эта функция (GetDescription). Причём
вызывающий объект необязательно /* Отослать письмо читателю */
будет знать, к какому подтипу принад- mail.Send();
лежит используемый объект. Объект- }
но-ориентированный язык програм-
мирования сам позаботится обо всём В этой функции при формировании текста письма просматрива-
и вызовет соответствующую функцию ется список всех книг, для которых подошёл срок возврата. Для каж-
подкласса. дого объекта из списка вызывается функция получения подробно-
Такое поведение называют поли- го описания (имя автора, название, быть может, ISBN)
морфизмом: для различных классов GetDescription(). Но в отличие от предыдущего примера здесь эта
объектов имеется общий набор функ- функция уже по-разному определена в различных подклассах «учёт-
ций, определённый в их родительском ная единица».
классе. Эти функции могут быть пере- Используемая объектно-ориентированная система программиро-
определены в классах-наследниках, вания сама позаботится о том, чтобы для каждого объекта вызвать
и для каждого объекта вызывается со- правильную функцию.
ответствующая функция независимо

205
Алгоритмизация

от того, обращаются к нему как к объ- граммирования, но не было ещё меха-


екту данного класса или класса-пра- низма наследования классов (такой
родителя. язык — язык с классами, но без насле-
Типизация. Для создания эффек- дования — можно назвать объектным
тивно работающей, правильной про- языком программирования в проти-
граммы необходимо как можно вовес объектно-ориентированному).
раньше проверять все операции на до- SmallTalk представлял собой не то-
пустимость. Это желательно делать на лько язык программирования, но и це-
этапе создания программы, но никак лую среду разработки с редактором
не во время её выполнения. текста, средствами для просмотра
При создании объектов появляют- иерархии класса, библиотеками гра-
ся новые типы данных, описывающие фического пользовательского интер-
их структуру и допустимые операции. фейса. Его версия SmallTalk-80 полу-
Бьёрн Страуструп. В языках программирования встроен чила широкое признание и была
специальный механизм, который от- перенесена на многие компьютерные
слеживает использование объектов платформы.
различных типов данных и не позво- Object Pascal. Язык программи-
ляет выполнять операции, предусмот- рования Object Pascal был создан со-
ренные для одного типа данных, трудниками фирмы Apple Computers
над объектами другого типа. совместно с Никлаусом Виртом, авто-
Например, если система пошлёт ром процедурного языка Pascal.
электронное письмо не читателю, Язык Object Pascal был включён
а «книге», ничего особенно страшно- в 1986 г. в среду разработки MPW
го не случится, письмо, скорее всего, (Macintosh Programmer’s Workshop)
просто затеряется в компьютерных для компьютера Macintosh. Этот язык
недрах. Но вот если в список взятых явился первым объектно-ориенти-
читателем книг попадёт «стеллаж» или рованным языком разработки для
другой «читатель», то это уже будет не- персонального компьютера. Он не
приятно. Наиболее чувствительные только предоставлял программисту
натуры могут упасть в обморок, полу- удобный инструментарий, все необ-
чив письмо с просьбой срочно вер- ходимые библиотеки, но и позволял
нуть в библиотеку целый стеллаж книг. воспользоваться всеми преимущест-
Чтобы такого не происходило, вами объектно-ориентированного
в объектно-ориентированных языках подхода без потери производитель-
программирования имеется механизм ности программы.
типизации, или способ внутренней В то же время для облегчения языка
защиты от использования объектов од- из него были убраны многие возмож-
ного класса вместо других. Этот меха- ности, такие, как множественное на-
низм срабатывает либо на этапе напи- следование (класс «журнал» является
сания программы (тогда уже в обморок наследником нескольких классов:
от усталости будет падать программист, «учётная единица», «многотомное из-
который пытается найти ошибку), ли- дание» и «сборник»), глобальные функ-
бо в момент выполнения (программа ции и переменные класса. Например,
остановится, но ужасное письмо всё- общее количество книг в библиотеке
таки не будет послано читателю). можно определить как глобальную пе-
ременную класса «учётная единица».
При создании нового объекта — закуп-
ОБЪЕКТНО- ке книг — она увеличивается, при уда-
лении объекта — списании — умень-
ОРИЕНТИРОВАННЫЕ шается.
ЯЗЫКИ C++. На базе языков С и Simula
Бьёрном Страуструпом, сотрудником
ПРОГРАММИРОВАНИЯ AT&T Bell Laboratories, был создан язык
C with Classes, т. е. «C с классами». По-
SmallTalk. В версиях SmallTalk-72 том на его основе разработали насто-
и SmallTalk-74 были заложены осно- ящий объектно-ориентированный
вы объектно-ориентированного про- язык C++, который поддерживает оди-

206
Языки программирования

ночное наследование, перегрузку ме-


тодов, строгую типизацию, полимор-
Название языка C# произносится как «си шарп», # — sharp, анг-
физм.
лийское название музыкального символа «диез», повышающего
Выходило несколько стандартов
ноту на полтона. В самом названии скрыта хитрая игра слов. С од-
C++, в каждом из которых язык на
ной стороны, sharp обозначает «острый», «проницательный», «лов-
основании широкого опыта использо-
ко», «искусно», т. е. положительную характеристику нового язы-
вания перестраивался, дополнялся
ка. С другой стороны, символом «+» обозначается «бемоль», т. е.
необходимыми возможностями. Во
знак, понижающий ноту на полтона. Это значит, что язык C# вы-
второй версии С++ появилось множе-
ше, лучше языка С++.
ственное наследование, в третьей был
проработан механизм реакции про-
граммы на ошибки, непредусмотрен-
ные события — механизм исключения. па по разработке специального объ-
Этот механизм тоже строился на объ- ектно-ориентированного языка для
ектно-ориентированной основе, ис- встроенных систем.
ключениями являлись лишь объекты За основу нового языка программи-
специальных классов, выстроенных рования был взят самый популярный
в иерархию, представляющую возмож- на тот момент объектно-ориентиро-
ные типы ошибок. ванный язык — С++. Но полностью
Поскольку язык С++ создавался на использовать его во встраиваемых си-
основе, пожалуй, самого эффектив- стемах было невозможно из-за огра-
ного и популярного на тот момент ничений на доступные машинные ре-
языка программирования, он и сам зервы, а именно память и мощность
получился эффективным по скорости процессора. Поэтому его синтаксис
выполнения программ (в отличие от был переструктурирован, упрощён
внутренне красивого, но очень мед- и сделан более строгим.
ленного SmallTalk). Похожесть син- Другой особенностью нового язы-
таксиса языков С и С++ позволила про- ка стало то, что он компилировался
граммистам легко перейти на новый не в машинный код для каждого кон-
язык, постепенно осваивая его новые кретного устройства, а в специальный
возможности.
В начале XXI в. язык С++ является
одним из самых популярных языков
программирования. Компиляторы это-
го языка и системы программирова-
ния (как коммерческие, так и бесплат-
ные, с открытым кодом) существуют
практически на всех компьютерных
платформах.
Java. Язык Java (произносится
«джава») зародился как специализиро-
ванный язык для разработки програм-
много обеспечения встроенных ком-
пьютеров.
В 90-х гг. XX в. сотрудник фирмы
Sun Microsystems Патрик Нотон в ходе
работы по поддержанию большого ко-
личества однотипных программ для
различных устройств начал испыты-
вать разочарование. Когда он уже со-
бирался покинуть компанию и перей-
ти на другую работу, ему предложили
составить проект решения возникшей
проблемы. Данный документ неожи-
данно нашёл поддержку не только
у других инженеров компании, но и у её
руководства. Сразу была создана груп-

207
Алгоритмизация

промежуточный код для определён- компьютеров и особенно игр для мо-


ной машины. Во встраиваемых систе- бильных телефонов. Достаточно в
мах существовала специальная среда телефоне реализовать поддержку Java,
выполнения, которая обеспечивала и он сразу превращается не просто в
функциональность этой машины средство для связи, а в маленький
и позволяла воспринимать получен- мобильный центр развлечений.
ный код без перекомпиляции. C#. Язык C# был создан фирмой
Для переноса получившейся про- Microsoft в 2000—2001 гг. как основ-
граммы на другую компьютерную ной язык программирования для но-
платформу (конечно, такую, на кото- вой платформы Microsoft.NET. Для об-
рой существует соответствующая сре- легчения процесса перехода на новый
да выполнения) её не надо переком- язык его синтаксис был большей ча-
пилировать, поскольку двоичный код стью заимствован из самых популяр-
не зависит от процессора и будет вы- ных языков: C++ и Java. Некоторые да-
полняться специальным интерпрета- же называют его точной копией Java,
тором. созданной из коммерческих сообра-
После создания языка разработки жений, но это не совсем так. C# на-
Java и среды выполнения— виртуаль- столько же похож на Java, насколько
ной машины Java предполагали, что Java похож на C++ — помимо явного
её основным применением будут сходства синтаксиса есть и достаточ-
Java-апплеты на страничках Интер- но большие различия.
нета, которые эти странички помо- Например, в языке Java даже самый
гут сделать интерактивными, да и простой тип, число или символ все-
просто оживят. Но, как это часто гда являются объектом соответству-
бывает с творениями рук человече- ющего класса, что значительно сни-
ских, творцы не всегда могут пред- жает производительность программ.
угадать судьбу своего детища. Так В языке C# число может быть и объ-
случилось и на этот раз. ектом класса, и обычной переменной,
Сейчас Java используется в двух как в С или С++.
основных областях. Во-первых это
большие компьютерные системы для
управления производством, финан- ОБЪЕКТНО-
сами, персоналом и т. п.
Java позволяет сделать переноси-
ОРИЕНТИРОВАННАЯ
мое решение, не только не зависящее ПЛАТФОРМА
от конкретного компьютерного обо-
рудования, но даже и такое решение, MICROSOFT.NET
отдельные части которого могут вы-
полняться на различных системах с Как и Java, язык C# компилируется
сильно отличающейся архитектурой. в промежуточный код, единый для
Кроме того, выполнение программы различных машин. Но в отличие от
не напрямую на процессоре, а на вир- Java этот промежуточный код псевдо-
туальной машине позволяет значи- Ассемблер сам является объектно-
тельным образом повысить надёж- ориентированным. Иными словами,
ность системы в целом. В самом деле, при компиляции не теряется инфор-
фатальная ошибка программы будет мация об объектной структуре про-
отловлена виртуальной машиной. граммы. Этот промежуточный код,
И это не только не помешает выпол- MSIL (MicroSoft Intermediate Language),
нению других задач предприятия, но, и является одним из основных «стро-
вполне возможно, что система смо- ительных блоков» новой платформы
жет предпринять такие заранее пред- Microsoft.NET.
усмотренные действия, которые Такое нестандартное решение поз-
позволят продолжить выполнение воляет создавать большие объектно-
«захворавшей» программы. ориентированные системы, в которых
Со второй же областью, мы дума- разные части написаны на разных язы-
ем, сталкивались все из вас. Это раз- ках, и при этом обеспечивается лёг-
работка программ для встраиваемых кость их взаимодействия и возмож-

208
Языки программирования

ность наследования. То есть класс-ро- чие в языках программирования или


дитель может находиться в модуле, ре- даже в диалектах одного и того же
ализованном на C#, а класс-потомок — языка).
в модуле на любом другом языке, ко- Готовые фрагменты кода бывают
торый поддерживает компиляцию в оформлены как внешняя системная
MSIL, например Eiffel, Python, SmallTalk, библиотека, что позволяет использо-
Pascal и др. Точно так же не возникнет вать части программ, написанные на
проблемы и при обращении одного разных языках программирования,
объекта к сервисам другого, несмотря но на одной платформе. Однако при
на различие программных средств. этом теряется объектная ориентиро-
Пока платформа Microsoft.NET ещё ванность, ведь библиотека выдаёт
очень молода, поэтому сложно давать «наружу» только набор функций, пол-
точные прогнозы. Но вполне вероят- ностью скрывая своё внутреннее
но, что именно она сможет наконец устройство.
решить обычную проблему програм- В платформе Microsoft.NET появ-
мирования, а именно невозможность ляются специальные библиотеки ко-
повторного использования уже со- да, называемые сборками. В этих сбор-
зданного кода. ках могут храниться фрагменты
С момента появления объектно- программ, отдельные модули, предо-
ориентированного программирова- ставляющие те или иные сервисы. Бла-
ния одной из главных задач было годаря использованию MSIL эти сбор-
повторное использование уже напи- ки позволяют повторно применять
санного кода. Тысячам программис- программные компоненты в последу-
тов приходится заново писать прак- ющих разработках, поскольку объект-
тически один и тот же код, поскольку ная ориентированность самого этого
прямое использование уже готового промежуточного языка обеспечивает
невозможно по тем или иным техни- возможность наследования классов,
ческим причинам (например, разли- описанных в них.

ЯЗЫКИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА

На протяжении многих веков человек идеи всё-таки были достаточно дале-


производил действия над числами ки от практического воплощения.
и одновременно совершенствовал Да и компьютеры сначала использо-
форму их записи, методы вычислений, вались в основном для действий с чис- Томас Гоббс.
придумывал всё более сложные тех- лами, хотя Конрад Цузе уже в 1945 г.
нические устройства для облегчения написал программу для игры в шах-
этих действий. Но лишь немногие за- маты. Очень скоро учёные всерьёз за-
думывались над тем, что вычисления думались над возможностью приме-
можно понимать более широко. На- нения компьютеров для обработки
пример, великий английский философ нечисловых данных. Речь шла в пер-
Томас Гоббс (1588—1679) писал в сво- вую очередь о задачах из области ис-
ём сочинении «Elementa philosophiae»: кусственного интеллекта — к ним
«Не следует думать, что вычисления мо- относятся моделирование процессов,
гут проводиться только с числами». протекающих в сознании человека,
В XIX в. Ада Лавлейс говорила: «Маши- автоматическое доказательство тео-
на может упорядочивать и комбини- рем, планирование действий робота
ровать числовые значения так же, как и некоторые другие. Для их решения
и буквы или другие символы общего характерно использование символь-
характера. В сущности, при выполне- ных вычислений (когда обрабатыва-
нии соответствующих условий она ются не числа, а символы).
могла бы выдавать результаты и в ал- Ранние языки программирования,
гебраическом виде». Однако до появ- такие, как FORTRAN или Algol-60,
ления первых компьютеров такие не были приспособлены для решения Конрад Цузе.

209
Алгоритмизация

задач символьной обработки. Попыт- первой версии языка LISP (его ещё на-
ки же встроить в них нужные свойства зывают «чистый LISP») явилась потреб-
(например, корпорация IBM разрабо- ность в удобных средствах обработки
тала в 1958 г. расширение языка FOR- списков.
TRAN — язык FLPL) не были удачными. Дальнейшее изучение новой моде-
Поэтому для решения задач искусст- ли вычислений привело Мак-Карти
венного интеллекта стали разрабаты- к мысли построить универсальную
ваться специализированные языки. функцию языка LISP, способную вы-
числять любую функцию этого языка
(подобно универсальной машине Тью-
LISP ринга, имитирующей работу любой
другой машины Тьюринга). Такая
Джон Мак-Карти. Первым таким языком стал LISP (от функция (она получила название
англ. List processing — «обработка спис- EVAL) была разработана и использо-
ков»), появившийся в 1959 г. Его авто- вана в качестве интерпретатора язы-
ром был выдающийся американский ка LISP 1.5, описание которого было
учёный Джон Мак-Карти, внёсший опубликовано в 1965 г. Именно с это-
огромный вклад в развитие информа- го момента начинается широкое рас-
тики. Кстати, термин «искусственный пространение языка. Он молниенос-
интеллект» впервые использовал имен- но завоёвывает популярность —
но он. Первоначально Мак-Карти не на новом языке пишут программы
имел намерения разработать именно почти все исследователи, работающие
язык программирования. Его целью в области искусственного интеллек-
было создание новой модели вычис- та. Язык совершенствуется, появляет-
лений, более удобной, чем машины ся множество его версий и диалектов
Тьюринга. (среди них можно особо отметить ин-
В процессе работы выяснилось, что тересный язык Scheme, 1975 г.), но од-
основой такой модели может стать ре- новременно возникает проблема
курсивная обработка символьных спи- переносимости программ. Для её ре-
сков. Используя её, Мак-Карти сумел шения в 1984 г. был выработан еди-
найти весьма элегантный алгоритм ре- ный стандарт языка Common LISP.
шения задачи символьного дифферен- LISP относится к классу функцио-
цирования алгебраических выраже- нальных языков программирования.
ний. Однако ему не хотелось утяжелять В отличие от обычных (императив-
алгоритм сугубо техническими дета- ных) процедурных языков они не
лями, такими, как явное введение опе- используют ни переменные, ни опе-
раторов динамического размещения раторы присваивания. В них отсутст-
и удаления списков из памяти, но при вуют операторы цикла, а повторение
использовании языка FLPL это было действий реализуется с помощью ре-
неизбежно. Более того, FLPL не поддер- курсии. Программа в таких языках
живал рекурсию. Тогда Мак-Карти по- представляет описание функций, а вы-
нял, что ему необходим новый полнение программы — процесс при-
язык. Так что предпосыл- менения функций к аргументам. Прав-
кой появления да, современный LISP нельзя назвать
функциональным языком в полном
смысле этого слова (им был только
чистый LISP). Он обладает и некото-
рыми свойствами, присущими проце-
дурным языкам.
В языке LISP используются лишь
два типа данных — атомы и списки.
Атомы очень похожи на обычные
идентификаторы в традиционных
языках; кроме того, атомами считают-
ся и числовые константы. Списками
называют заключённые в скобки по-
следовательности элементов — ими

210
Языки программирования

могут быть как атомы, так и другие работали в начале 70-х гг. XX в. Ален
списки. Например, список L = (A (B) C Колмерье и Филипп Руссель из Мар-
(D E F) (G H)) состоит из пяти элемен- сельского университета и Роберт Ко- LISP более 20 лет
тов. Первый и третий из них — это вальски из Эдинбургского универси- безраздельно гос-
атомы A и C, а остальные являются тета. Они развивали свои идеи почти подствовал в облас-
списками. Обратите внимание, что десять лет, но те не получали особой ти искусственного
второй элемент, (B), — это не атом, известности. Всё изменилось в 1981 г., интеллекта. Но и се-
а список, состоящий из одного эле- когда появился так называемый «япон- годня, несмотря на
мента, атома B. ский вызов» — масштабный проект появление многочис-
LISP содержит набор элементарных правительства этой страны, связан- ленных конкурентов,
(или системных) функций, основны- ный с созданием ЭВМ пятого поколе- он по-прежнему яв-
ми среди них являются (CAR L), ния. Резкое повышение интеллекту- ляется самым распро-
(CDR L) и (CONS M L). Функция CAR ального уровня будущих компьютеров странённым языком
выбирает из списка L его первый эле- и возможность общения с ними на для решения задач
мент («голову»), функция CDR удаля- языке, максимально приближённом в этой области.
ет из списка L его «голову» (оставляя к естественному, были важнейшими
«хвост»). В нашем примере (CAR L) = A, целями проекта. Язык Prolog стал осно-
(CDR L) = ((B) C (D E F) (G H)). Эти две вой разработок, что привлекло к нему
функции «разбирают» список на час- всеобщее внимание и вызвало бурный
ти, а вот функция CONS создаёт но- рост его популярности во всём мире.
вый список, помещая элемент M в «го- Что же такое логическое програм-
лову» списка L: (CONS M (B C D)) = мирование? В императивных и функ-
= (M B C D). циональных языках программист зна-
Указанными тремя функциями на- ет, что должна выполнить программа.
бор элементарных функций, разуме- Его задача — дать указание компьюте-
ется, не исчерпывается. Кроме того, ру, как именно надо выполнить вычис-
язык предоставляет удобные средст- ления. Логическое программирование
ва, с помощью которых из элементар- коренным образом отличается и от им-
ных функций можно строить более перативного, и от функционального.
сложные. Программа на языке Prolog не содер-
В языке LISP принята единая фор- жит указаний, как вычислять резуль-
ма записи данных и программ. Напри- тат. Она лишь описывает требуемый
мер, выражение (F X Y) может воспри- вид результата. Получение его — это
ниматься либо как список из трёх дело заложенных в язык механизмов
элементов, либо как обращение к логического вывода (основанных на
функции F с аргументами X и Y. Бла- так называемом методе резолюций).
годаря этому программа пользовате- Программа на языке Prolog состоит из
ля способна в процессе работы не операторов. Операторы делятся на
только создавать новые функции факты и правила. Факт — это некое
и программы, но и немедленно выпол- безусловное утверждение, которое
нять их. Эта возможность языка явля- предполагается истинным. Приведём
ется его уникальной особенностью примеры фактов, записанных в виде
(ведь в программе на императивном операторов языка:
языке все операторы должны быть вы-
писаны до начала её работы и в про- слон (джумбо).
цессе работы не могут изменяться) лягушка (флик).
и очень мощным оружием в руках про- сильнее (джумбо, флик).
граммистов.
Это означает, что объект джумбо яв-
ляется слоном, объект флик — лягуш-
PROLOG кой, а также что джумбо сильнее флика.
Более сложен другой тип операто-
Альтернативным подходом к реше- ров. На языке Prolog правила записы-
нию задач искусственного интеллекта ваются в таком виде: Y: — X, Z... Эта за-
стала концепция логического програм- пись определяет некоторое условие
мирования, реализованная в языке следования и читается так: «справед-
Prolog (Programming in logic). Его раз- ливо Y, если справедливы X и Z, и...».

211
Алгоритмизация

Следовательно, запятая в правой час- алисты. Многие даже полагают, что


ти правила понимается как логическое именно Prolog в будущем станет основ-
Prolog используется И (конъюнкция). Правило ным языком при разработке более про-
для решения самых стого и более надёжного программно-
разных задач. Наибо- сильнее (джумбо, флик) :— слон го обеспечения. А вот в том, что именно
лее важное из его при- (джумбо), лягушка (флик). с языка Prolog необходимо начинать
менений — разработ- обучение основам программирования,
ка экспертных систем. означает, что объект джумбо сильнее некоторые исследователи и педагоги
объекта флик, если джумбо — это слон убеждены уже сегодня.
и флик — лягушка. Иными словами, пра- В то же время существует мнение,
вила используются для описания ло- что Prolog до сих пор всего лишь экс-
гических отношений между фактами. перимент, хотя и грандиозный. Дело
Цель работы программиста на язы- в том, что при использовании языка
ке Prolog — создать совокупность фак- возникает немало проблем, которые
тов и правил, полностью описыва- пока ещё не имеют удовлетворитель-
ющих некоторую ситуацию или ного решения. Основная из этих про-
предметную область. После этого блем — повышение эффективности
Prolog-системе можно задавать (на- выполнения программ. Да и в целом
пример, вводя с клавиатуры) вопро- методы разработки программ на язы-
сы в виде предложений, называемых ках логического программирования
целью. Prolog-система должна прове- ещё до конца не сформировались.
рить цель и либо подтвердить, либо
опровергнуть её.
Принципиальная особенность PLANNER
программы на языке Prolog — то, что
результатом её работы может стать LISP и Prolog — два самых популярных
получение новых фактов, неизвест- языка символьной обработки. Одна-
ных системе (а может быть, неизвест- ко интересные идеи предлагались
ных и самому программисту!). Имен- и создателями других языков, не по-
но это свойство языка обеспечивает лучивших широкой известности.
ему внимание исследователей и раз- Один из таких языков — редко вспо-
работчиков систем искусственного минаемый сейчас Planner. Своё назва-
интеллекта. ние (которое переводится как «пла-
Большие надежды связывают с язы- нировщик») он получил благодаря
ком Prolog (и вообще с логическим тому, что был в основном предназна-
программированием) создатели сис- чен для создания систем планирова-
тем управления базами данных (СУБД) ния действий роботов. Planner был
и систем обработки текстов на естест- разработан Карлом Хьюиттом из Мас-
Карл Хьюитт. венных языках, а также другие специ- сачусетсского технологического ин-

212
Языки программирования

ститута в 1971 г. и стал серьёзным эта-


пом в развитии идей обработки сим-
вольной информации.
Planner обладает всеми возможно-
стями языка LISP, т. е. фактически LISP
является его подмножеством. Но на-
бор встроенных функций в языке
Planner намного шире, а сами они
обычно гораздо мощнее соответст-
вующих функций языка LISP. К при-
меру, функции ELEM и REST обобща-
ют функции CAR и CDR, позволяя
выделять и отбрасывать из списка
произвольные элементы: [ELEM 1 L] =
= A, [REST 2 L] = (C (D E F) (G H)). Кро-
ме того, введение в запись несколь- тов обоих видов также содержатся
ких типов скобок (в языке LISP допу- в описаниях теорем.
скаются только круглые скобки, что Самым важным нововведением язы-
весьма затрудняет чтение программ) ка Planner стал режим возвратов. Он
сделало программы гораздо понят- позволяет во время работы програм-
нее. Но самое главное, язык был обо- мы отказываться от принятых ранее
гащён дополнительными возможно- решений, если оказывается, что они не
стями. приведут к цели. Для искусственного
Первая из них — поиск и анализ интеллекта вообще характерно ис-
данных по образцу. Подобный меха- пользование перебора вариантов во
низм был успешно опробован в язы- время решения задач. Встроенный
ке Snobol и широко используется в язык Planner режим возвратов (его
сейчас — например, когда в Norton ещё называют механизмом поиска
Commander задаётся поиск всех фай- с возвратом, или, по-английски, back-
лов вида *.doc, то выполняется имен- tracking) избавляет программиста от
но это действие. необходимости самому реализовывать
Вторая дополнительная возмож- такой перебор.
ность позволяет весьма эффективно Работы в области искусственного
применять Planner при создании интеллекта ведутся уже около 50 лет.
систем искусственного интеллекта: Первоначальный энтузиазм, ожида-
можно строить и изменять описание ние быстрого и решительного успе-
среды, в которой решается задача. ха в создании универсального искус-
Описание среды называется базой ственного разума давно уступили
данных и содержит отдельные утверж- место кропотливой работе по авто-
дения (факты), истинные в данной матизации решения отдельных задач,
среде. Кроме фактов, содержащихся традиционно предполагающих учас-
в базе данных, в программе можно тие мыслительных способностей че-
задавать логические отношения меж- ловека. Роль языков программирова-
ду используемыми в задаче поня- ния в построении интеллектуальных
тиями, а также описания действий, систем крайне велика. Современные
которые разрешено производить. языки искусственного интеллекта поз-
Такие описания называются теоре- воляют успешно решать многие про-
мами. Каждая теорема имеет список блемы, однако ограниченность их воз-
условий (предпосылок), которые можностей очевидна. Так что очень
должны быть выполнены, прежде чем трудно сказать, какие языки будут ис-
станет возможным её применение. пользоваться в будущем — функцио-
В результате применения теоремы нальные, похожие на LISP, или логи-
некоторые факты из базы данных ческие, похожие на Prolog. А может
перестают быть истинными и долж- быть, появятся новые языки, основан-
ны быть из неё удалены, а другие, ные на совершенно новых идеях, об-
напротив, становятся истинными ладающие такими свойствами, о ко-
и должны её пополнить. Списки фак- торых сегодня никто не подозревает?

213
ПРОГРАММИСТЫ
И ПРОГРАММИРОВАНИЕ
АВГУСТА АДА БАЙРОН, ЛЕДИ ЛАВЛЕЙС

Дочь, птенчик, Ада милая! На мать


Похожа ль ты, единственно родная?
В день той разлуки мне могла сиять
В твоих глазах надежда голубая...
Дж. Байрон

В июле 1980 г. в Министерстве обо- Гордона Байрона (1788—1824), вели-


роны США был разработан язык про- кого английского поэта-романтика,
граммирования, получивший назва- и возвращается в отчий дом. Семей-
ние Ada. Учебники по этому языку ный разлад Байрона и его жены нахо-
были переведены и в России. Наз- дит громкий отклик в высшем свете
вание одной из книг — «Язык про- и становится поводом для злобной
граммирования Ада» — порождало травли поэта — он оказывается перед
негативные ассоциации. Однако необходимостью покинуть родину.
к тёмным силам зла и ада этот язык Отправляясь в Италию, с тем чтобы
не имеет никакого отношения. Он уже никогда не вернуться в Лондон,
был назван в честь первого в мире Байрон даже не предполагал, что
программиста — Августы Ады Лав- оставляет в колыбели будущую леген-
лейс. ду кибернетики.
Августа Ада Байрон родилась 10 де- В доме, где росла и воспитывалась
кабря 1815 г. Спустя месяц её мать, Ан- Ада Байрон, царил закон: никакого
Джордж Гордон на Изабелла Милбэнк (1792—1860), упоминания об опальном поэте. Все
Байрон. бросает своего мужа, Джорджа Ноэла его книги были исключены из семей-

214
Программисты и программирование

ной библиотеки, и даже имя Августа Августа Ада Байрон.


Ада сократилось до Ады (Августой де-
вочка была названа в честь сводной
сестры Байрона).
Августа Ада была похожа на отца
лицом, но пристрастия унаследовала
материнские. Анна Изабелла Байрон,
в лучшие дни своей семейной жизни
получившая от мужа прозвище Коро-
лева Параллелограммов, увлекалась
математикой. Аналитические способ-
ности она хотела развить и в дочери
в противовес романтическим склон-
ностям, которые вполне могли до-
статься девочке от отца.
Девочка превосходно играла на не-
скольких музыкальных инструментах
и владела иностранными языками,
но самым сильным её увлечением бы-
ла математика. В этом Аду поддержи-
вали и мать, и учёные друзья Анны Иза-
беллы — семья профессора де Морган
и супруги Соммервиль (Мэри Соммер-
виль знаменита тем, что перевела
с французского «Трактат о небесной
механике» астронома Пьера Лапласа).
В 13 лет Ада уже рисовала чертежи ле-
тательных аппаратов. Профессор Ога-
стес де Морган был настолько высо-
кого мнения о способностях своей
ученицы, что даже сравнивал её с Ма-
рией Аньези (1718—1799), выдающей- способностью к пониманию, прояв-
ся итальянской женщиной-математи- лявшейся в умении решительно и бы-
ком. Одновременно девочка тайком стро схватывать суть дела в целом,
писала стихи, стыдясь этого как какой- леди Лавлейс обладала всеми прелес-
нибудь наследственной болезни. Свои тями утончённого женского характе-
поэтические наклонности она реали- ра. Её манера, её вкус, её образование,
зовала гораздо позднее. особенно музыкальное, в котором
Семейная жизнь Августы Ады сло- она достигла совершенства, были
жилась счастливее, чем у её родите- женственными в наиболее прекрас-
лей. В июле 1835 г. она вышла замуж ном смысле этого слова, и поверхно-
за Уильяма, 18-го лорда Кинга, став- стный наблюдатель никогда не уга-
шего впоследствии первым графом дал бы, сколько внутренней силы
Лавлейсом. Он с одобрением относил- и знания скрыто под её женской гра-
ся к научным занятиям жены и во цией. В той же степени, в какой она
всём помогал ей. Супруги вели свет- не терпела легкомыслия и банально-
ский образ жизни, регулярно устраи- сти, она получала удовольствие от ис-
вая вечера и приёмы, на которых бы- тинно интеллектуального общества
вал «весь Лондон». и потому энергично искала знаком-
Один из завсегдатаев этих вечеров ства со всеми, кто был известен в
редактор популярного журнала «Эк- науке, искусстве и литературе».
заменатор» Олбани Фонбланк соста- Однажды осенью на обеде у Мэри
вил такой портрет хозяйки дома: «Она Соммервиль Ада впервые услышала
была ни на кого не похожа и облада- об аналитической машине Чарлза
ла талантом не только поэтическим, Бэббиджа, профессора кафедры ма-
но математическим и метафизиче- тематики Кембриджского универси-
ским... Наряду с совершенно мужской тета (см. статью «Чарлз Бэббидж»). Огастес де Морган.

215
Алгоритмизация

Вскоре она была представлена зна- не написала самостоятельной статьи


менитому учёному. Вот как описыва- по этому вопросу, с которым была так
ет в своих мемуарах миссис София де хорошо знакома. На это леди Лавлейс
Морган первое посещение юной Адой отвечала, что такая мысль не пришла
мастерской Бэббиджа: «Пока часть ей в голову. Тогда я предложил, что-
гостей в изумлении глядела на это бы она добавила некоторые коммен-
удивительное устройство, с таким чув- тарии к очерку Менабреа. Эта идея
ством, как, говорят, дикари первый была немедленно принята». План
раз видят зеркальце или слышат вы- комментариев разрабатывался со-
стрел из ружья, мисс Байрон, совсем вместно с Бэббиджем, который ко-
ещё юная, смогла понять работу ма- ротко упомянул об этом в «Страни-
шины и оценила большое достоин- цах...» фразой: «Мы обсуждали вместе
ство изобретения». различные иллюстрации, которые
Общая увлечённость наукой связа- могли быть использованы; я предло-
Чарлз Бэббидж. ла Аду и Бэббиджа на долгие годы пло- жил несколько, но выбор она сдела-
дотворного сотрудничества. ла совершенно самостоятельно».
В 1840 г. Бэббидж побывал с визи- В 1843 г. Ада Лавлейс перевела ста-
том в Турине, куда его пригласили для тью на английский, снабдив подроб-
чтения лекций об аналитической ма- ными комментариями (по объёму
шине. В Италии к нему отнеслись они превосходили основной текст).
с большим пониманием, чем на роди- Кроме того, она привела ряд приме-
не, лекции имели шумный успех. Один ров практического использования
из слушателей, молодой инженер Лу- машин и, выражаясь современным
иджи Менабреа, составил и опубли- языком, составила программу вычис-
ковал конспект этих лекций. Менаб- ления чисел Бернулли по довольно
реа был глубоким мыслителем, он сложному алгоритму. Именно Адой
закончил свой очерк удивительными были предложены термины «рабочая
словами, которые стоило бы услышать ячейка» и «цикл».
тем, кто наделял и наделяет машины Ознакомившись с её трудом, Бэб-
сверхчеловеческими способностями: бидж договорился с редактором солид-
«Машина — не мыслящее существо, ного научного журнала «Учёные запи-
это просто автомат, выполняющий за- ски Тейлора» о публикации перевода
ложенное в него». статьи Менабреа и комментариев Ады
«Спустя некоторое время после по- к нему. В этой работе наилучшим
явления этой статьи, — писал Бэб- образом освещены алгоритмические
бидж в своих “Страницах о жизни основы аналитической машины.
философа”, — графиня Лавлейс со- Ада Лавлейс перевела замыслы Бэб-
общила мне, что она перевела очерк биджа на математический и «техно-
Менабреа. Я спросил, почему она логический» языки. Вот несколько

216
Программисты и программирование

фрагментов: «Машину нельзя наделить


разумом, она только реализует пред-
ложенные представления. Эти пред-
ставления зафиксированы на перфо-
картах, они передаются различным
механизмам, выполняющим последо-
вательность действий...», «Весь интел-
лектуальный труд ограничен подго-
товкой необходимых для вычисления
выражений...», «Машину можно рас-
сматривать как настоящую фабрику
чисел».
В то время как статья Менабреа ка-
сается в большей степени техниче-
ской стороны дела, комментарии ле-
ди Лавлейс посвящены в основном
математическим вопросам. Поэтому
сама статья, в отличие от коммента-
риев, представляет сейчас лишь ис-
торический интерес, поскольку сего-
дняшние вычислительные машины
построены на иных технических
принципах, тогда как дополнения рядке, то ли с природой, но лошади Фамильный склеп
к ней заложили основы современно- упорно отказывались бегать по при- Байронов в Ноттин-
гемшире.
го программирования. думанной для них системе. Августа
Ада Лавлейс была человеком раз- Ада проиграла не только свои день-
носторонней одарённости, глубоких ги, но и деньги мужа, а от полного ра-
знаний и интересов — от математи- зорения семью, как это ни печально
ки и вычислительных машин до ло- звучит, спасла только скоропостиж-
шадей и музыки. Она предположила, ная смерть Ады от рака.
что со временем аналитическая ма- Она скончалась 27 ноября 1852 г. Во многих энциклопе-
шина будет сочинять музыкальные в возрасте 36 лет, как и Джордж Гордон диях Августа Ада Кинг
произведения, рисовать картины Байрон. Согласно завещанию, она бы- Лавлейс фигурирует
и использоваться в практической ла похоронена рядом с отцом в фа- как английский мате-
и научной деятельности. Сейчас воз- мильном склепе Байронов в Ноттин- матик. В качестве ос-
можно оценить её правоту и точность гемпшире при Хакнеллской церкви. новного её научного
прогнозов. Судьба отца, от влияния которого труда указываются пе-
А вот другое предложение, кото- так хотела уберечь Аду мать, повтори- ревод статьи Менаб-
рое сделала Ада Бэббиджу, чуть не по- лась в судьбе его единственной закон- реа «Элементы ана-
губило его научную карьеру. Леди Лав- ной дочери. Они были похожи: идеа- литической машины
лейс была уверена, что машина уже листы с горящими глазами, готовые Бэббиджа» и коммен-
может решать практические задачи, умереть за свободу чужой далёкой тарии к ней.
а именно прогнозировать беспроиг- страны или пожертвовать всем ради
рышные ставки на бегах. Однако то изобретения, которого никто не при-
ли с машиной что-то было не в по- нимает.

ПРОГРАММИСТЫ

Это одна из самых молодых и очень ный, ставивший задачу и определяв-


популярных профессий. Програм- ший необходимые данные для её
мист — человек, составляющий про- решения; математик-алгоритмист,
граммы для ЭВМ. придумывавший алгоритм решения
В 60-х гг. XX в. в создании про- задачи и описывавший его на особом
грамм участвовали три человека: учё- языке; программист, кодировавший

217
Алгоритмизация

острую нехватку программистов. В на-


ши дни творческий подход и проме-
жуточный результат удовлетворяют
только запросы учёных, а финансис-
там и менеджерам необходимы гото-
вые решения в минимальные сроки
и с гарантированными показателями.
Поэтому разработаны специальные
технологии создания программных
продуктов. Например, сначала систе-
ма описывалась полностью, проект из-
лагался в деталях, и лишь затем начи-
налась реализация системы. А вот
документация по системе уж точно пи-
шется в последнюю очередь. Правда,
так возникают только сопровожда-
ющие программные продукты: редак-
торы, операционные системы и пр.
Труд программиста, как правило, со-
ставляет 10—15 % общих трудозатрат
на машинном языке заданный алго- по созданию и продвижению на ры-
ритм, пытаясь вместить большую про- нок программной системы.
грамму в маленькую память медлен- Среди менеджеров, художников,
но работающего компьютера. дизайнеров, технических писателей,
Каждая программа являлась дости- тестеров и остального персонала, ра-
жением человеческой мысли. За её ботающего над программной систе-
эффективность отвечали автор алго- мой, одни программисты — истинные
ритма и программист. Математик дол- творцы. Наиболее удачные программ-
жен был знать допустимый размер ма- ные продукты выполнены и придума-
трицы действительных чисел, при ны программистами для самих себя
котором возможно производить об- и уже во вторую очередь они полез-
работку данных. Кодирование также ны другим. Но этими творческими
требовало внимания — не меньшего, личностями надо как-то руководить.
чем у авиадиспетчера. Создание бригад главного про-
С появлением языков программи- граммиста — одна из попыток орга-
рования высокого уровня задачи про- низовать совместный труд несколь-
граммиста начали расширяться: те- ких программистов. В коллектив из
перь он сам придумывает алгоритмы 5—7 человек назначался более опыт-
и кодирует их на подходящем языке. ный главный руководитель-програм-
Процесс создания эффективного ал-
горитма сохранил творческое начало.
А вот кодирование становится рутин-
ной операцией, которую можно пере-
поручить компьютеру.
Когда количество ЭВМ возросло,
поменялся и круг задач, что вызвало

В одной из серий известной компьютерной игры «Larry» герой


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

218
Программисты и программирование

мист. Он определял ежедневные за-


дания и проводил собрания, на кото-
рых программисты представляли
фрагменты своих программ, их обсуж-
дали, критиковали и утверждали. Ре-
зультат работы такой группы действи-
тельно был гарантированным, но мало
эффективным и дорогим. Порой один
программист выполнял работу, пред-
назначенную для всего коллектива.
Коллектив программистов похож
на экипаж космического корабля.
При создании важной программной
системы решающим фактором эф-
фективности его работы будет внут-
ренняя психологическая атмосфера
среди сотрудников.
Профессия программиста требует
от человека определённых черт харак-
тера. Программисты, как правило, тру-
дятся в одиночку, каждый имеет свой
стиль работы. Подчас для реализации
общего проекта эти стили совместить и заполнение полей информацией,
тяжело. Здесь всё зависит от профес- при этом программист при выпол-
сионализма руководителя: правильно нении этой работы не напишет ни
ли он распределил работу, удачно ли строчки кода. Его по старинке на-
при этом подобрал программистов. зывают программистом баз данных.
Ведь просчёты в архитектуре системы Таких «программистов» сейчас боль-
могут привести к фатальным послед- шинство во всех областях деятель-
ствиям для всего проекта. ности, где используется компьютер.
Однако не следует думать, что се- Однако, например, дома никто не на-
годня миллионы программистов ис- зывает себя программистом, когда
пытывают муки творчества. Совре- «программирует» видеомагнитофон,
менные системы программирования независимо от того, что не все до-
позволяют в большинстве случаев машние могут справиться с этой опе-
осуществлять параметрическую на- рацией. И вряд ли назовёт себя хи-
стройку системы. Так, при создании рургом медсестра, обрабатывающая
базы данных может быть предусмо- неглубокую рану тому, кто не в состо-
трено только представление отчётов янии сделать это сам.

РЕКУРСИЯ

Наиболее распространённый приём (вычислений), дать подпрограмме


в программировании — обращение имя, а затем вызывать её столько раз,
к ранее созданным и описанным сколько это будет необходимо.
программам, или, другими словами, Действительно, если написать (на
вызовы подпрограмм (процедур или языке ЛОГО) процедуру КВАДРАТИК
функций). Это естественно: если вы-
полнение некоторой группы дейст- ЭТО КВАДРАТИК
вий или вычисление одинаково ПОВТОРИ 4 [ВПЕРЁД 5 ВПРАВО 90]
определяемых значений должно осу- КОНЕЦ
ществляться в программе неодно-
кратно, то целесообразно один раз оставляющую на экране след в виде
составить описание этих действий маленького квадрата со стороной 5,

219
Алгоритмизация

ЭТО УГОЛ
ПОВТОРИ 4 [ВПЕРЁД 6 ВПРАВО 90]
КОНЕЦ

Процедура УГОЛ удивительно похо-


жа на КВАДРАТИК и отличается только
значением шага в команде ВПЕРЁД (из-
за этого стороны квадратика в проце-
дуре УГОЛ получаются на один шаг
больше). Если же процедуру КВАДРАТ
описать как процедуру с параметром,
то исчезнет и это отличие:

ЭТО КВАДРАТ :К
ПОВТОРИ 4 [ВПЕРЁД :К ВПРАВО 90]
КОНЕЦ
то с помощью другой процедуры —
КВАДРАТЫ, которая вызывает при своём (В языке ЛОГО принято имя перемен-
Параметром процеду- выполнении первую процедуру, мож- ной величины предварять двоеточи-
ры называют пере- но изобразить, например, такую кар- ем без пробела.)
менную величину, ис- тинку: Теперь вызов программы КВАДРАТ 5
пользуемую в теле будет работать точно так же, как про-
процедуры, если её цедура КВАДРАТИК, а вызов КВАДРАТ 6 —
значение задаётся при как процедура УГОЛ.
вызове процедуры. В примере, где программа КВАДРА-
Формальный пара- ТИК_ПОШИРЕ обращается к программе
метр (или параметр УГОЛ, нет ничего необычного: одна
описания) — это имя процедура вызывает другую, отлича-
переменной, а факти- ющуюся от первой. А что произойдёт,
ческий параметр (или ЭТО КВАДРАТЫ если заменить вызывающую и вызы-
параметр вызова) — КВАДРАТИК ваемую программы на процедуру с па-
это значение. ПОВТОРИ 3 раметрами КВАДРАТ :К
[
ПЕРОПОДНЯТЬ ЭТО КВАДРАТ :К
ВПЕРЁД 10 ПОВТОРИ 4 [ВПЕРЁД :К ВПРАВО 90]
ПЕРООПУСТИТЬ КВАДРАТ :К + 1
КВАДРАТИК КОНЕЦ
ВПРАВО 90
] где значение параметра К = 5? Не па-
КОНЕЦ радокс ли: программа КВАДРАТ будет
вызывать программу КВАДРАТ?
А вот пример вызывающей про- Парадокса нет. Ситуация, в кото-
граммы КВАДРАТИК_ПОШИРЕ; при этом рой процедура А вызывает процедуру
роль вызываемой программы играет А (процедуру с тем же именем, но, воз-
процедура УГОЛ: можно, с другим значением фактиче-
ского параметра), часто встречается
ЭТО КВАДРАТИК_ПОШИРЕ в программировании и имеет специ-
ПОВТОРИ 4 [ВПЕРЁД 5 ВПРАВО 90] альное название — «рекурсия». Следо-
УГОЛ вательно, выше был приведён пример
КОНЕЦ рекурсивной процедуры КВАДРАТ.

220
Программисты и программирование

когда не завершится... если не слома-


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

Рассмотрим, как работает данная


процедура при вызове КВАДРАТ 5. Пер-
вая строка в теле процедуры прори-
сует квадрат со стороной 5, а затем
управление перейдёт к команде во
второй строке тела. Следующее дей-
ствие — обращение к процедуре КВА-
ДРАТ. Правда, предварительно вычис-
ляется фактический параметр:
предыдущее значение 5 увеличива-
ется на 1 и становится равным 6. Про-
цедура КВАДРАТ прочерчивает поверх
уже имеющегося квадрата ещё один,
чуть пошире. Снова изменяется зна-
чение параметра, и вновь — вызов
процедуры КВАДРАТ, на сей раз изоб-
ражается ещё более широкий квад-
рат. Теперь уже, очевидно, можно ска-
зать «и так далее».

Такую рекурсию называют беско-


нечной: однажды начавшись, она ни-

221
Алгоритмизация

процесс «регистрации» входов в вы-


зываемую процедуру и запоминания
КУКАРАЧА точек входа не зависит от того, являет-
ся ли процедура рекурсивной или нет.
Этот язык настолько прост, что в нём даже отсутствует понятие Та часть памяти, которая автоматиче-
переменной. Тем не менее рекурсии применяются Кукарачей весь- ски отводится компьютером для запо-
ма активно. минания точек возврата, называется
Исполнитель действует в среде, которая составлена из кле- стеком отложенных (открываемых)
точных полей, уложенных в несколько слоёв-этажей. Он переме- процедур. В нём содержится перечень
щается по ячейкам командами ВЛЕВО, ВПРАВО, ВВЕРХ и ВНИЗ (в пре- процедур (или, в случае рекурсивных
делах одного этажа), ВПЕРЁД и НАЗАД (с этажа на этаж) при условии вызовов, экземпляров рекурсивных
не покидать среду. Кукарача может передвигать кубики, стоящие процедур), которые открыты выпол-
на его пути (в том числе несколько кубиков), в направлении вы- няемой программой. Стек устроен так,
полняемой команды. На кубиках поставлены буквы (или любые что в нём самой первой доступной яв-
вводимые с клавиатуры символы). Некоторые из кубиков опроки- ляется последняя из перечисленных
нуты: на верхней грани вместо буквы изображён вопросительный процедур. Чем длиннее цепочка вло-
знак. Кукарача может выяснить, какая буква стоит на расположен- женных вызванных процедур, тем
ном в соседней ячейке кубике, толкнув его. После такого толчка больше места занимает стек открыва-
ответ на вопрос о букве даёт условная команда емых процедур. В обычных вызовах
места в стеке достаточно при выпол-
ЕСЛИ <условие> ТО <команда-1> ИНАЧЕ <команда-2> нении самых сложных (не рекур-
сивных!) программ. Но любая беско-
где <условие> — это буква, разыскиваемая исполнителем. нечная рекурсия рано или поздно
Например, по командам переполнит стек. Вот почему, хотя она
и может выполняться на современном
ВПРАВО компьютере достаточно долго, этот
ЕСЛИ А ТО ВВЕРХ ИНАЧЕ ВНИЗ процесс не вечен.
Однако как ни увлекательна теоре-
Кукарача направляется вверх (во вторую ячейку первой строки), тически бесконечная рекурсия, есте-
если на кубике с вопросительным знаком стоит буква «А», и вниз ственно поставить вопрос: а возмож-
(во вторую ячейку третьей строки) — в противном случае. на ли рекурсия конечная? Ответить на
Условия могут включать и отрицания. Например, НЕ А него легко. В примере с рекурсивной
означает «любая буква, кроме А». процедурой непосредственно перед
Ограничитель управляющей структуры в этом языке не ну- рекурсивным вызовом вставим сокра-
жен, поскольку на ветвях ТО и ИНАЧЕ разрешается записывать щённую условную команду:
не более одной команды.
Цикл с фиксированным числом повторений записывает- ЭТО КВАДРАТ :К
ся так: ПОВТОРИ 4 [ВПЕРЁД :К ВПРАВО 90]
ЕСЛИ К < 100 ТО КВАДРАТ :К + 1
ПОВТОРИ n <команда> КОНЕЦ

где целое n — это Такое «усовершенствование» про-


число повторений. граммы останавливает цепочку рекур-
сивных вызовов после прочерчива-
ния квадрата со стороной 100 или
больше. Конечная рекурсивная про-
цедура очень напоминает цикл с пре-
дусловием. В этом качестве её неред-
ко используют программисты.
Механизм рекурсии считается не-
простым. Видимо, именно этим можно
объяснить тот факт, что не в каждом
языке программирования разрешает-
ся её использование. В ЛОГО рекурсия
представлена так, что производит впе-
чатление основной управляющей
структуры. Описание Pascal подаёт её

222
Программисты и программирование

как одну из возможных управляющих


структур, а в очень распространённом
в своё время языке программирова-
ния Basic рекурсии не допускались во-
все. Из этих примеров ясно, что мес-
то рекурсии в том или ином языке
никак нельзя связывать со «сложнос-
тью» этого языка.
Несколько следующих понятий
и примеров приводятся в рамках язы-
ка управления исполнителем Кукара-
ча. Например, программа

ЭТО ПРОГУЛКА
ПОВТОРИ 9 ВПРАВО
ПОВТОРИ 9 ВНИЗ
ПОВТОРИ 9 ВЛЕВО
ПОВТОРИ 9 ВВЕРХ Вот вызов программы, в которой Кукарача решает
ПРОГУЛКА «выясняются» эти отношения. Здесь задачу
с нерекурсивной
КОНЕЦ и процедура ЛЕСЕНКА, и процедура СТУ- процедурой.
ПЕНЬ не обращаются к одноимённой
заставит исполнителя долго-долго процедуре.
обходить поле размером 10 × 10. Прав-
да, остановить выполнение такой ЛЕСЕНКА
программы иначе как прерыванием ЭТО ЛЕСЕНКА
трудно. Допускаемый языком цикл СТУПЕНЬ
с предусловием (цикл ПОКА) использу- КОНЕЦ
ет условие так же, как и в условных ко- ЭТО СТУПЕНЬ
мандах. Например, по командам ВНИЗ
ВПРАВО
ПОКА ПУСТО ВНИЗ ЕСЛИ НЕ * ЛЕСЕНКА
ВПРАВО КОНЕЦ

Кукарача спускается по столбцу вниз Казалось бы, обе они не подходят


до тех пор, пока он остаётся на по- под ранее приводившееся упрощён-
лях, свободных от кубиков (условие ное определение рекурсивной про-
ПУСТО), и переходит к команде ВПРА- граммы. Но определение рекурсии
ВО, следующей за циклом, как только можно естественным образом рас-
условие нарушится. Это произойдёт ширить.
в момент, когда Кукарача коснётся
ближайшего кубика.
Та же задача — определение бли-
жайшего непустого поля— решается
и с помощью конечной рекурсии:

ЭТО СПУСК
ВНИЗ
ЕСЛИ ПУСТО СПУСК
КОНЕЦ

В следующей задаче — спуске Ку-


карачи по лесенке, в конце которой
стоит кубик с символом *, обознача-
ющей окончание программы, — от-
ношения между вызывающей и вызы-
ваемой программами складываются
иначе.

223
Алгоритмизация

В этой задаче Если программа А вызывает про-


Кукарача использует грамму В, а программа В (возможно, косвенную рекурсию (или цикл ПОКА)
три рекурсии.
через цепочку других вызываемых с условием, определяющим прикос-
программ) вновь обращается к А, новение Кукарачи к кубику. Сущест-
то эти две процедуры (А и В) образу- венно сложнее вернуться с кубиком
ют косвенную рекурсию (в отличие от в исходную строку. Ведь предстоит
прямой, или непосредственной, ре- подняться на столько же шагов вверх,
курсии). При таком определении не- сколько было сделано спусков вниз.
посредственная рекурсия рассматри- Но у Кукарачи не может быть счётчи-
вается как частный случай косвенной ка, так как нет переменных! Как же от-
рекурсии. считывать и запоминать шаги испол-
Во всех предшествующих приме- нителя? Здесь и приходит на помощь
рах рекурсий, как прямой, так и кос- приём, называемый отложенной ре-
венной, рекурсивный вызов всегда курсией.
оказывался последней командой про- Процедуры СТОЛБЕЦ и ОБХОД толкают
цедуры. В таком случае рекурсия рабо- кубик и возвращают его в первую
тает в основном как один из способов строку:
управления повторяющимися процес-
сами. Если же в описании вызываемой ЭТО СТОЛБЕЦ
процедуры вслед за рекурсивным вы- ВНИЗ
зовом следуют другие команды, то воз- ЕСЛИ ПУСТО ТО СТОЛБЕЦ ИНАЧЕ ОБХОД
никают дополнительные, неожидан- ВВЕРХ
ные на первый взгляд эффекты. КОНЕЦ
Вот задача, в которой будет задей-
ствована многоэтажная структура ЭТО ОБХОД
среды. По полю 10 × 10 (на первом эта- ВПЕРЁД ВНИЗ ВНИЗ НАЗАД ВВЕРХ
же), за исключением первой и послед- КОНЕЦ
ней строк, беспорядочно разброса-
ны десять кубиков, по одному в каж- В программе ОБХОД использованы
дом столбце. Кукарача, расположенный команды Кукарачи, которые пере-
исходно в клетке (1,1,1), должен наве- мещают исполнителя на следующий
сти порядок на поле — собрать все ку- этаж, ВПЕРЁД, и опускают его на пре-
бики в первой строке (которая, таким дыдущий этаж, НАЗАД. Обратите вни-
образом, окажется заполненной). мание, что в языке ЛОГО такие
Главной частью этой задачи явля- команды перемещают исполнителя в
ется процедура, которая устанавли- горизонтальной плоскости, а в языке
вает на первой строке кубик из про- управления Кукарачей — по вертикали.
извольного положения в столбце. ОБХОД — это обычная процедура,
Спуститься из первой строки до куби- с помощью которой Кукарача обхо-
ка нетрудно: достаточно использовать дит по нижнему этажу исследуемую

224
Программисты и программирование

ячейку. СТОЛБЕЦ — косвенно-рекурсив- СТОЛБЕЦ


ная процедура, которая вызывается
при каждом «пустом» (без толчка) ша- ВНИЗ
ге вниз. Её особенность — последняя СТОЛБЕЦ СТОЛБЕЦ
команда ВВЕРХ. Дело в том, что началь- ВВЕРХ
ная команда процедуры СТОЛБЕЦ ВНИЗ
ВНИЗ
и условная команда ЕСЛИ повторяют- СТОЛБЕЦ
ся при каждом вызове процедуры ВВЕРХ
СТОЛБЕЦ, а выполнение команды ВВЕРХ
при этом откладывается до тех пор, Схема для кубика пятой строки
пока не будут завершены команды на имеет вид:
ветви ИНАЧЕ условной команды.
Как выполняются команды проце- СТОЛБЕЦ
дуры «столбец» для кубика, стоящего,
например, в третьей строке? ВНИЗ
1. Запуск процедуры СТОЛБЕЦ. Вы- СТОЛБЕЦ СТОЛБЕЦ
полняется команда ВНИЗ. Кукарача спу- ВВЕРХ ВНИЗ
скается на вторую строчку. СТОЛБЕЦ СТОЛБЕЦ
2. Поскольку в предыдущем дви-
жении Кукарача не встретил куби- ВВЕРХ ВНИЗ
ка, то условие ПУСТО истинно, про- СТОЛБЕЦ СТОЛБЕЦ
исходит второй вызов рекурсивной ВВЕРХ ВНИЗ
процедуры. Выполнение команды
СТОЛБЕЦ
ВВЕРХ, составляющей часть первого
вызова, отложено — она запомина- ВВЕРХ
ется в стеке отложенных команд. Описав процедуру СТОЛБЕЦ, нетруд-
3. При втором вызове вновь выпол- но включить её в процедуру ПОРЯДОК,
няется команда ВНИЗ. Кукарача оказы- которая решает нашу задачу:
вается в третьей строке.
4. Здесь он встречает кубик. Усло- ЭТО ПОРЯДОК
вие ПУСТО нарушено. Поэтому испол- ПОВТОРИ 9 {СТОЛБЕЦ ВПЕРЁД ВВЕРХ
нитель обходит кубик по соседнему ВПРАВО НАЗАД}
полю и встаёт в позицию, из которой СТОЛБЕЦ
ему удобно толкать кубик вверх — на КОНЕЦ
пятую строку.
Выполняется команда ВВЕРХ внут-
ри процедуры «обход» . Кукарача под-
нимается на четвёртую строку и тол-
кает кубик на третью.
5. Теперь выполняется команда
ВВЕРХ, относящаяся к вызову процеду-
ры СТОЛБЕЦ. Кукарача поднимается
на третью строку, а кубик — на вто-
рую. Второй рекурсивный вызов за-
вершён.
6. Но не завершён ещё первый ре-
курсивный вызов, поскольку осталась
невыполненной команда ВВЕРХ. Ин-
терпретатор извлекает её из стека от-
ложенных команд и передаёт испол-
нителю. Кукарача встаёт на вторую
строку, толкая кубик в первую. Завер-
шён первый (последний в стеке) ре-
курсивный вызов, а с ним и выполне-
ние процедуры СТОЛБЕЦ.
Описанные этапы условно отобра-
жаются схемой:

225
Алгоритмизация

Эта функция возвращает числовое значение n! вы-


ВЫЧИСЛЕНИЕ ФАКТОРИАЛА ЧИСЛА n звавшей её программе. При этом в начале работы про-
грамма не знает ещё, что такое факториал (n), и, сле-
Примером рекурсивной функции может служить довательно, откладывает его вычисление, по крайней
программа вычисления факториала числа n, обозна- мере, до следующего рекурсивного вызова. Однако
чаемого n! (n с восклицательным знаком). Факториал и тогда может случиться, что вычисление факториа-
от целого числа n представляет собой произведение ла окажется отложенным. И только при n-м вызове
всех целых чисел от 1 до n включительно и вычисля- компьютер начнёт вычисления, извлекая из стека от-
ется по формуле ложенных команд сначала вызов факториал (n), за ним
факториала (n-1) и т. д. Здесь мы тоже имеем дело
Ф (n) = 1.2.3 ... (n-2).(n-1).n с отложенной рекурсией.
По комaндам
Принято считать, что 0! = 1.
a := 5
Программа-функция вычисления факториала при- b := 6
ведена ниже на языке КуМир: вывод (факториал (a) + факториал (b)) : 2

алг цел факториал (цел n) компьютер выведет на экран числовое значение


дано n
надо
нач
| если n <= 1 поскольку
| | то знач :=1
| | иначе знач := n * факториал (n-1) 5! = 1.2.3.4. 5 = 120, а 6! = 120 .6 = 720.
| всё
кон

(Фигурные скобки, употреблённые грамм фигурировали только проце-


в этом примере, позволяют считать дуры. Однако рекурсии с таким же
окаймлённую ими группу команд успехом используются и в програм-
единой командой в соответствии мировании функций.
с соглашениями языка программи- Не следует думать, что с рекурсией
рования.) люди сталкиваются только в инфор-
Во всех приведённых выше при- матике. Рекурсивными функциями на-
мерах в качестве рекурсивных про- полнена современная математика.
Да и в повседневной жизни можно
найти немало примеров рекурсий. Ху-
дожники любят создавать рекурсив-
ные картинки: например, на рисунке
изображён телезритель, рассматрива-
ющий экран, на котором видно зри-
теля, тоже взирающего на телеэкран.
На том экране — снова зритель и т. д.
Пример литературной рекурсии —
известный стих-притча про попа, ко-
торый любил свою собаку:

У попа была собака,


Он её любил.
Она съела кусок мяса —
Он её убил.
Убил и закопал,
И надпись написал:
У попа была собака...

226
Программисты и программирование

КАК ПИСАТЬ НАДЁЖНЫЕ ПРОГРАММЫ

Любую программу можно рассматри-


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

227
Алгоритмизация

ЗАДАЧА О ТРЕУГОЛЬНИКЕ

Даны три натуральных числа. Определить тип треуголь- (В списке нет варианта «равнобедренный, прямоуголь-
ника по заданным сторонам (равносторонний, равнобед- ный», так как он невыполним при сторонах, заданных на-
ренный, разносторонний) и углам (остроугольный, пря- туральными числами.)
моугольный, тупоугольный). Очевидно, что при тестировании каждый из перечис-
Ограничения: 0 < a, b, c < 1000. ленных ответов нужно получить хотя бы по одному разу.
Ввод: 3 4 5 Какие типичные ошибки могут быть допущены при ре-
Вывод: треугольник разносторонний, прямоугольный. шении этой задачи? Обратим особое внимание на симмет-
Чтобы подготовить хороший набор тестов, надо хотя рию входных данных. Все три заданных числа равноправ-
бы в общих чертах представлять себе возможные реше- ны, так как в условиях ничего не сказано о каком-то
ния и ошибки. Исходные данные заведомо корректные, специальном порядке. В такой ситуации в решении часто
т. е. удовлетворяют заданным в условиях ограничениям. возникают ошибки. Неравенство треугольника, например,
Подготовка тестов начинается с анализа условий. Лег- может проверяться не для всех трёх сторон. Практический
ко заметить, что в условиях совсем не говорится об одном вывод: нужны тесты, в которых одни и те же числа будут
крайне важном обстоятельстве: треугольник может вооб- располагаться в различном порядке.
ще не существовать. Это бывает при нарушении неравен- Необходимо отдельно рассмотреть предельный слу-
ства треугольника: каждая сторона должна быть меньше чай, когда сумма двух сторон равна третьей. Кроме того,
суммы двух других. Таким образом, получается следу- нужно проверить предельные значения, лежащие на гра-
ющий список возможных реакций программы на коррект- нице допустимого диапазона.
ные входные данные: Часто встречается ошибка переполнения. Она возни-
• не существует; кает, когда в программе использованы 16-битные числа,
• равносторонний, остроугольный; поскольку их не хватает для возведения в квадрат (для
• равнобедренный, остроугольный; определения углов треугольника стороны возводят в ква-
• равнобедренный, тупоугольный; драт). Тесты в последней секции специально подобраны
• разносторонний, остроугольный; так, чтобы данная ошибка сразу обнаруживалась.
• разносторонний, прямоугольный; В таблице приведён примерный набор тестов для за-
• разносторонний, тупоугольный. дачи о треугольнике.

Ввод Ожидаемый результат Комментарий

3 20 100 не существует Для всех ли сторон


20 100 3 не существует проверено неравенство
100 3 20 не существует треугольника?

999 1 1 не существует Несуществующие


1 1 999 не существует «равнобедренные»
1 999 1 не существует треугольники

235 не существует Вырожденные


30 50 20 не существует треугольники
500 200 300 не существует

111 равносторонний, остроугольный Крайние значения


999 999 999 равносторонний, остроугольный Одновременно тестируем
правильный треугольник

500 500 300 равнобедренный, остроугольный Равнобедренные треугольники с разными


400 700 400 равнобедренный, тупоугольный углами и разным порядком ввода сторон

32 48 56 разносторонний, остроугольный Аналогично


30 40 50 разносторонний, прямоугольный для разносторонних
256 368 600 разносторонний, тупоугольный треугольников

255 256 257 разносторонний, остроугольный Проверка переполнения

228
Программисты и программирование

При втором подходе всё меняется. Тестирование по методу белого


Цель тестирующего — сломать про- ящика основано на тексте конкрет-
грамму, доказать её ошибочность, най- ной программы, в которой выделяют-
ти трудные для обработки случаи и ся отдельные блоки. Каждый такой
предложить программе именно их. По- блок можно тестировать как единое
нятно, что здесь дело не ограничива- целое (чёрный ящик) или разбивать
ется простейшими тестами. В ход идут на ещё более мелкие блоки (белый
самые каверзные входные данные, са- ящик).
мые неожиданные их комбинации. Обычно в процессе работы над
И если программа выдержала подоб- программой автор тестирует её по
ный натиск, можно надеяться, что она методу белого ящика. Когда же рабо-
действительно написана правильно. та закончена, программу обязатель-
Все методы тестирования можно но должны проверить по методу чёр-
разделить на две группы: тестирова- ного ящика, причём очень жёстко
ние по принципу чёрного ящика и по и строго.
принципу белого ящика. Самое трудное в тестировании —
Чёрным ящиком обычно называ- составить набор тестов. Это творче-
ют объект, который способен как-то ская, трудноформализуемая опера-
реагировать на внешние воздействия, ция, однако существуют общие прин-
но его внутренняя структура неизве- ципы:
стна. Например, любая бытовая тех- • тесты составляются на основе
ника для большинства людей — ти- условий задачи, они не должны учи-
пичный чёрный ящик. Все знают, что, тывать особенности конкретной про-
если нажать на определённую кноп- граммы;
ку, звук телевизора станет громче, • если задача разбивается на раз-
но мало кто представляет, какие ре- ные случаи, необходимы тесты, про-
альные физические процессы при веряющие их все;
этом происходят. • составляя набор тестов, желатель-
Тестирование по методу чёрного но представить разные способы реше-
ящика основано на анализе задачи, ния задачи, в том числе готовить тест,
которую программа должна решать. который выявляет заведомо ошибоч-
Изучая условия задачи, определяют ное решение, дав косвенный ответ.
различные возможные ситуации, фор- • для каждого типа данных суще-
мируют для каждой из них пример ствуют определённые критические
входных данных и обязательно нахо- значения. Необходимо проверить,
дят правильный результат. Таким об- как обрабатываются эти значения во
разом, полученный набор тестов при- входных данных.
меним к любой программе, решающей • если допустимые значения вход-
данную задачу. ных данных ограничены, требуется

229
Алгоритмизация

протестировать работу программы


при предельных и близких к ним зна-
чениях. Например, если в условии
задачи говорится о целом N из диа-
пазона от 1 до 100, надо отдельно
рассмотреть работу программы при
N=1, 2, 99, 100;
• в тесты обязательно нужно вклю-
чать допустимые в задаче значения
(положительные, отрицательные и ну-
левые), а также запрещённые (нечис-
ловые или нетекстовые).
Для некоторых тестирование — де-
структивная деятельность: ломать
не строить. На самом деле умение гра-
мотно провести исследование, вы-
явить глубоко скрытые в программе
ошибки очень ценный навык, поэто-
му такой специалист весьма нужный
человек в коллективе программистов.

КАК ПИСАТЬ КРАСИВЫЕ ПРОГРАММЫ?

В процессе разработки каждая про- Правила оформления программ


грамма не один раз подвергается ис- обычно называют стилем программи-
правлениям, и при этом человеку рования. Одни и те же действия поч-
каждый раз приходится читать её, раз- ти всегда можно выполнить по-раз-
бираться в структуре, искать места, ному. У каждого программиста есть
в которых могут возникнуть затруд- свои привычки и пристрастия, кото-
нения. рые и образуют его стиль. Со време-
Начинающие программисты час- нем у него обязательно вырабатыва-
то считают, что им нет необходимо- ется свой неповторимый «почерк»,
сти специально заботиться о внят- свой способ использования инстру-
ности программы: ведь они сами её ментов, по которому его нетрудно
придумали и всё в ней знают, зачем опознать, как по подписи на бумаге.
тратить время на какое-то оформле- Казалось бы, если стиль столь ин-
ние? Увы, это заблуждение, хотя и дивидуален, стоит ли обсуждать его?
очень распространённое. Обратимся опять к сравнению.
Как бы хорошо программист ни
понимал свою программу, есть пре-
дел, после которого невозможно удер-
жать в памяти все детали. Если работа
ведётся с продолжительными пере-
рывами, вспомнить подробности бы-
вает не так-то просто. Довольно час-
тая жизненная ситуация — программу
начинает один человек, а доделыва-
ет другой.
Опытные программисты всегда уде-
ляют внимание тому, как выглядит их
программа. Получится красивой — её
будет легко читать, понимать и исправ-
лять, а значит, у неё больше шансов ока-
заться правильной и полезной.

230
Программисты и программирование

Общеизвестно, что у любого чело- и надо сделать так, чтобы при этом
века почерк уникален, как отпечатки не возникало лишних трудностей.
пальцев. Но почерк, в отличие от от- Вот несколько рекомендаций, ко-
печатков, можно оценить: красивый — торые позволяют понять, что такое
некрасивый, разборчивый — нераз- хороший стиль.
борчивый. Руку специально готовят Кто ясно мыслит, тот ясно из-
к письму: особые упражнения по об- лагает!
разцам помогают развить внимание, Прежде чем писать программу, на-
мышление и воображение. до чётко уяснить, какая поставлена за-
Это применимо и к стилю про- дача и как её решить. Если в мыслях
граммирования, который бывает как нет ясности — не помогут никакие
хорошим, так и плохим. Ему нужно приёмы и ухищрения.
учить, и лучше, если начинающий Не забывать о комментариях!
программист придерживается неко- Все языки программирования поз-
торого стандарта, как первоклассни- воляют включать в программу ком-
ки — прописей. ментарии — пояснительный текст, ко-
Стиль программирования сравним торый нужен только для человека.
и со стилем речи, где имеются свои
нормы (есть даже понятие стилисти-
ческой ошибки). У каждого человека
есть свои любимые слова, своя манера
построения фраз, свой способ изложе-
ния. Эксперты-литературоведы спо-
собны по фрагменту текста определить
его автора. Но ведь и речевой стиль то-
же можно оценивать! Ведь говорят о
хорошем и плохом стиле речи.
И ещё одно необычное сравне-
ние — кулинарное. Стиль программи-
рования подобен приправам. Пище-
вая ценность блюда определяется
основными использованными про-
дуктами. Полученные калории и чув-
ство сытости от приправ не зависят,
а вот вкусовые ощущения складыва-
ются во многом благодаря именно им.
Если повар забыл положить их или,
что ещё хуже, использовал неверно,
насытиться полученным блюдом бу-
дет всё-таки можно, а вот получить
удовольствие — вряд ли.
Мыслитель.
Необходимо всё время помнить, Скульптура
что программу кто-то будет читать, Огюста Родена.

231
Алгоритмизация

Компьютер не читает комментарии, Необходимо помнить, что компью-


он просто не замечает их. Коммента- тер всегда делает то, что написано
Примеры плохих ком- рии — важнейший элемент стиля, это в программе, а не в комментариях. Хо-
ментариев: «счётчик», очень мощный инструмент, позволя- роший комментарий рассказывает
«дополнительная пере- ющий сделать программу действитель- о замысле программиста, а анализ са-
менная», «веществен- но понятной. мой программы — о реализации заду-
ное число», «строка». • У программы должно быть пре- манного.
Примеры хороших дисловие — большой вступительный Но, с другой стороны, подробный
комментариев: «ко- комментарий, который может зани- комментарий в иных случаях помо-
личество найденных мать несколько страниц текста. Он гает заметить, что выполняются не те
совпадений», «самое включает следующие разделы: действия, о которых было заявлено.
большое число в спи- — имя автора программы (твор- Понимание переменных —
ске». чество не должно быть анонимным!); ключ к пониманию программы.
— название программы и её на- Любая программа обрабатывает
значение; какую-то информацию, представлен-
— по возможности подробное ную в виде переменных. Поэтому не-
описание решаемой задачи; обходимо в первую очередь понять
— описание исходных данных смысл переменных, которые в ней ис-
и требуемых результатов задачи; пользуются.
— описание основной идеи реше- • Все переменные должны быть
ния; описаны.
— ссылки на литературу и другие Некоторые языки программирова-
источники, связанные с задачей и её ния — КуМир, Pascal, С — заставляют
решением; описывать переменные, иначе про-
— дата написания первоначаль- грамма считается синтаксически не-
ной версии программы и история по- верной.
следующих изменений. А вот Basic и некоторые другие
• Каждое описание переменных, языки дают программисту больше
объектов, величин должно сопровож- свободы: использование переменных
даться комментарием, поясняющим подразумевает автоматическое сооб-
их содержательную суть. щение о них, а тип переменной и дру-
• Для каждой процедуры требует- гие необходимые данные определя-
ся давать небольшой вступительный ются из контекста.
комментарий — для чего предназна- Но это очень обманчивая свобода.
чена данная конкретная процедура. Обязательные описания дисциплини-
• Программы порой основаны на
довольно сложных алгоритмах, понять
которые по тексту не так-то легко.
В этом случае хорошие комментарии,
поясняющие смысл алгоритма в целом,
могут оказаться очень полезными.
• Не доверять комментариям.
Этот совет предназначен не для
тех, кто пишет, а для тех, кто будет чи-
тать программу.

Вот типичный фрагмент из программы на языке Pascal:


k := k + 1; {увеличим k на 1}
Комментарий абсолютно ничего не прибавляет к тексту програм-
мы: читатель и так видит, что k увеличивается на 1 (а если не ви-
дит, то здесь ему не поможет даже самый подробный коммен-
тарий). Желательно описать, почему происходит это увеличение.
Например, «нашли очередное совпадение» или «переходим к сле-
дующему элементу».

232
Программисты и программирование

руют программиста, стимулируют бо-


лее тщательную проработку структу-
ры данных. И читать такие програм-
мы намного легче: информация обо
всех переменных собрана в одном ме-
сте, и если читатель забыл, что озна-
чает какая-то переменная, он знает,
где сможет найти эти сведения.
• Надо тщательно выбирать имена
переменных.
Описание и комментарий — это
очень хорошо, но когда читают про-
грамму, они остаются далеко в начале
текста, и не очень хочется слишком
часто к ним возвращаться. Имя же пе- строки и где в них поставлены пробе-
ременной совсем другое дело. лы. Компилятор должен отделить лек-
Имя неотделимо от переменной, семы (минимальные элементы, из ко-
оно всегда рядом и соответствует её торых состоит программа: имена,
значению в программе. знаки операций, служебные слова)
Следует избегать однобуквенных друг от друга, а остальное ему безраз-
имён и конструкций типа «буква лично.
с цифрой» — в них легко запутаться. Человек же, наоборот, обращает
Надо давать близкие имена родст- особое внимание на то, как оформлен
венным данным, но нельзя называть текст, ведь от этого зависит его вос-
похожими именами данные, которые приятие.
ничего общего не имеют. • Надо «выделять» алгоритмиче-
Разделяй и властвуй! скую структуру.
Нельзя объять необъятное, поэто- Опытные программисты всегда пи-
му грамотное разбиение программы шут программу «лесенкой». Каждый
на процедуры — ключ к успешному раз, когда в ней используется алгорит-
решению больших задач. (Здесь под мическая структура (цикл, ветвление,
процедурами понимаются также выбор и т. д.), текст сдвигается впра-
функции, подпрограммы и все осталь- во. Например:
ные воплощения процедур в различ-
ных языках программирования.) <действия до цикла>
• Любая процедура решает свою | while <условие цикла> do
небольшую задачу, обозначенную в ви- | begin
де начального комментария. В идеале | | <тело цикла>
она должна описываться одной корот- | end
кой фразой. Если формулировка по- <действия после цикла>
лучается длинной и сложной, значит,
разбиение проведено не до конца:
можно выделить и записать отдельно
ещё одну или несколько процедур.
• Объём процедуры должен быть
таким, чтобы её было несложно охва-
тить как единое целое, понять сразу
всю логику её работы. Обычно проце-
дура без описаний и вступительного
комментария должна целиком поме-
щаться на экране. Если экрана не хва-
тает, есть смысл подумать о дальней-
шем разбиении.
Текст должен быть удобен для
чтения.
Для компьютера чаще всего неваж-
но, как ваша программа разбита на

233
Алгоритмизация

изменить подобное число. Допустим,


программа обрабатывает массив из
Существует даже строго доказанная теорема, что любую про-
100 элементов. Понятно, что число
грамму можно записать, не применяя goto (если, конечно, в язы-
100 будет встречаться довольно час-
ке программирования есть конструкции if-then-else и while). Опыт
то. А если теперь потребуется задать
профессиональных программистов говорит о том, что использо-
исходным массив из 200 элемен-
вание goto чаще всего оказывается следствием того, что разра-
тов, программисту придётся заменить
ботчик просто не умеет грамотно строить структуру программы.
по всей программе 100 на 200. Мало
того, где-то нужно будет менять 99 на
199, 101 на 201, а где-то окажется, что
Эта запись позволяет сразу увидеть, 100 — это температура кипения во-
где начинается и где заканчивается ды, а вовсе не количество элементов
конструкция, какие команды входят и в замене не нуждается. В общем, вы-
в неё, а какие нет. полняется кропотливая и не очень
• Смещение означает подчинение. приятная работа.
Данное правило — пояснительное Числам надо давать имена и рабо-
расширение предыдущего. тать только с ними. В Pascal для это-
Вообще, всегда, когда надо показать, го существует понятие константы.
что один фрагмент подчинён другому, В языках, где механизм констант
подчинённый фрагмент записывают не предусмотрен (КуМир, Basic), вво-
со смещением вправо. Тем самым по- дят дополнительную переменную
ясняют, что это не самостоятельное и присваивают ей значение в самом
действие, а часть предыдущего. начале программы.
• Не надо экономить на пробелах. Конечно, такие числа, как 0 или 1,
Они облегчают чтение и понима- не стоит делать константами — это
ние программы. Если в одной строке только усложнит программу.
записывается несколько операторов, Шаг за шагом.
необходимо поставить пробелы меж- Известно, что проще всего разо-
ду ними. Во многих случаях желатель- браться в линейной программе, в ко-
но использовать пробелы при знаках торой все действия выполняются по-
действий. следовательно, одно за другим, как
Надо избегать волшебных чи- записаны. Это не означает, что надо
сел. избегать циклов и ветвлений — без
Числа в программе не стоит ис- них невозможно построить ни один
пользовать в явном виде. Когда в тек- сложный алгоритм. Но лучше, чтобы
сте программы встречается такое конструкции были короткими, тогда
число (что-нибудь вроде 179), чита- каждая из них может рассматривать-
телю часто бывает совершенно не- ся как отдельное действие в общей ли-
понятно, что оно означает и откуда нейной последовательности.
взялось. • Без goto.
Тяжело приходится программис- Оператор goto делает программу
ту, когда возникает необходимость чуть-чуть короче, нарушая последо-
вательность выполнения. После goto
надо читать не следующую строчку,
а ту, на которую задан переход.
Однако в участках, куда совершает-
ся переход, может таиться опасность.
Именно там чаще всего происходят
ошибки. Причина очевидна: в одно
и то же место программы можно по-
пасть из различных мест с разной пре-
дысторией. Уследить за соблюдением
всех необходимых условий становит-
ся очень трудно, отсюда и сложности.
• Не надо прерывать циклы.
Ещё один способ нарушения по-
следовательности выполнения — до-

234
Программисты и программирование

срочное прекращение цикла. В неко-


торых языках есть даже специальные
средства для этого: break — в С, вы-
ход — в КуМире. Создатели языка
Turbo Pascal разработали процедуру
«break», аналогичную одноимённому
оператору в языке С.
Цикл — самая сложная для понима-
ния алгоритмическая структура. Обыч-
но предполагается, что заголовок цик-
ла полностью описывает условия его
продолжения и завершения. Досроч-
ное прекращение нарушает это прави-
ло, поэтому им лучше не пользоваться.
• Программа должна заканчивать-
ся естественно. Не надо вставлять в се-
редину программы команды, ведущие
к прекращению работы. Особенно
опасно включать такие команды в про- а логическая величина, условие, кото-
цедуры. Завершение должно быть ес- рое может быть истинным или лож-
тественным — процедура обязана вер- ным.
нуть управление в точку вызова.
***
Единственное исключение из это-
го правила — обнаружение фатальной Конечно, здесь представлены далеко
ошибки, которая делает дальнейшую не все тонкости стиля, на которые сле-
работу программы бессмысленной. дует обращать внимание. Но если про-
Использование логических ве- граммист будет строго следовать хо-
личин. тя бы только этим правилам, то очень
В некоторых языках есть специ- скоро на его программы станет при-
альные обозначения для логических ятно смотреть, их будет легче читать
величин (boolean — в Pascal, лог — и понимать. А ещё через некоторое
в КуМире). В С логические значения время он начнёт сам придумывать
представляются с помощью число- правила, формировать свой собствен-
вых величин, но с ними также выпол- ный стиль.
няются все необходимые операции.
Начинающие программисты час-
то не понимают сути логических ве-
личин и создают громоздкие выраже-
ния там, где можно написать коротко
и ясно.
Например, в программах на языке
Pascal встречается такое сравнение:
if a =true then... Более простой вари-
ант: if a then... Логическая величи-
на — это условие, не нуждающееся ни
в каком дополнительном сравнении.
Ещё пример: выражение if a = true
then a:= false else a:= true преобразу-
ем в a:= not a. Как говорится, почувст-
вуйте разницу!
А вот пример неудачного исполь-
зования логической величины в
языке С: if (a > b) return 1; return 0.
Лучше оформить этот фрагмент так:
return (a > b).
Последняя запись подчёркивает,
что результат функции — не число,

235
ХРАНЕНИЕ ИНФОРМАЦИИ
КОМПЬЮТЕР И КНИГОПЕЧАТАНИЕ

Рубикон между двумя эпохами миро- Иоганн Гутенберг разработал рецеп-


вой культуры и научно-технического ты типографского сплава и типограф-
прогресса перейдён. Человечество ской краски. Своими изобретениями
вступило в эпоху глобальных компью- он проложил дорогу стандартизации
терных технологий. шрифтов и удешевил процесс произ-
Первый опыт в книгопечатании водства книг.
был предпринят ещё в 1041—1048 гг. Однако Гутенберг полиграфиче-
в Китае Би Шэном. Тем не менее тра- ским способом изготовлял лишь
диционно изобретателем книгопеча- текст. Отпечатанные рисунки и ор-
тания считают Иоганна Гутенберга наменты впервые появились у немец-
(около 1394—1468), придумавшего кого печатника Петера Шёффера в
первый печатный станок в Европе. Пе- 1457 г. на страницах «Псалтыри». Гра-
чатный набор, предложенный им, поз- вированные на металле иллюстрации
волил делать любое число идентичных и текст с наборной формы впервые
отпечатков текста, составленного из отпечатал на одном листе флорен-
элементов — литер. Их можно было тийский типограф Николо ди Лорен-
заменять на другие — для печати но- цо в 1477 г.
вой страницы. Гутенберг также скон- В 1564 г. Иван Фёдоров (около
струировал прибор для изготовления 1510—1583) в Москве издал первую
литер. В полый металлический стер- русскую печатную книгу «Апостол».
жень со съёмной нижней крышкой из В последующие годы модернизация
мягкого металла, на котором предва- печатного станка сводилась к меха-
рительно выбивался рисунок буквы, низации отдельных процессов, пер-
заливался специальный сплав. Застыв- воначально выполнявшихся вручную,
Первопечатник ший сплав — готовая литера на торце а также к последовательной замене
Иван Фёдоров имела зеркальный рисунок буквы. деревянных частей металлическими.

238
Хранение информации

Распространение технологии кни-


гопечатания — технологии тиражи-
рования информации позволило не
только издавать в большом количест-
ве дешёвые книги, но и организовать
выпуск периодических изданий —
журналов и газет.
Последовали и другие открытия, в
корне изменившие технологии хране-
ния и передачи информации в обще-
стве: фотография, кино, телеграфия,
телефония, радио и телевидение.
Достоинства книгопечатания оче-
видны: операции тиражирования и
копирования автоматизированы и
могут идти без участия человека. Но
обработку информации, за редкими
исключениями, производит человек,
и она почти не автоматизирована.
На исходе второго тысячелетия
стало ясно, что в информационном
обеспечении жизни общества начи-
наются кризисные явления.
• Накопленную информацию труд-
но перерабатывать. В эпоху книгопе-
чатания объём циркулирующей в
обществе информации растёт лавино-
образно. При этом обработка инфор-
мации по-прежнему остаётся «ручной
работой» и осуществляется исключи-
тельно человеком. Миллионы людей
заняты только систематизацией и по-
иском нужной информации. Поиск
становится всё более и более дорогим,
долгим и ненадёжным. чатанных текстов, фотоматериалов, Печатный станок
Необходимую технологию или аудиозаписей вносят небольшие ис- Ивана Фёдорова.
устройство, изобретённые ранее, ока- кажения, но после нескольких копи-
зывается дешевле изобрести заново, рований эти искажения становятся
чем найти в море имеющейся инфор- значительными. Как ни совершенст-
мации. вуй записывающую и воспроизводя-
• Накопленная информация разно- щую аппаратуру, при аналоговом её
родна. Разные виды информации — представлении искажения информа-
тексты, изображения, фильмы, звук — ции избежать нельзя.
представлены в разном виде, требуют Естественным выходом является
совершенно разных устройств для решение трёх поставленных проблем.
записи, воспроизведения и копиро- Использование компьютера как уни-
вания, разных условий хранения и ме- версального инструмента обработки
тодик обработки человеком. информации позволяет автоматизи-
• Накопленную информацию труд- ровать этот процесс и во многих обла-
но сохранять. Не отвечают новым стях осуществлять его без участия че-
потребностям и старые технологии ловека. А перевод информации при
хранения информации. хранении и передаче из аналогового
Носители информации — книги, в цифровую форму даёт возможность
журналы, фотографии, киноленты, не только решить проблему долго-
магнитные ленты — со временем ста- срочного хранения, но и сделать
реют или изнашиваются при эксплу- более удобным поиск нужной инфор-
атаци. Операции копирования напе- мации.

239
Хранение и обработка информации

БУМАГА
рус, в изобилии произраставший в до-
лине Нила и даже возделывавшийся
как культурное растение. Из него из-
готовляли верёвки, циновки, обувь,
лодки и паруса к ним. Из его стеблей
египтяне вырезали длинные полосы,
смазывали их клеем, клали под пресс
и высушивали на солнце. Получались
удобные для письма тонкие, гибкие и
прочные листы, которые склеивали и
сворачивали в длинные свитки. Так что
не случайно слово «бумага» в европей-
ских языках напоминает нам о папи-
русе: papier — во французском и не-
мецком, paper — в английском.
Из Египта приблизительно в VII в.
до н. э. папирусные свитки проникли
в Грецию, а уже оттуда — в Рим. Папи-
рус был достаточно редок, поэтому
в других странах находили иной ма-
териал для письма. В Китае это был
Старинный способ Свои первые тексты человек выводил шёлк, на Руси в быту употребляли бе-
изготовления бумаги. прутом на песке и углем на стене пе- рёсту — на ней писали письма, дело-
щеры, выцарапывал на табличках из вые документы: расписки, завещания
сырой глины и высекал на каменных и т. д. (знаменитые новгородские бе-
плитах... Но все они были либо недол- рестяные грамоты донесли до наших
говечны, либо хрупки, либо слишком дней многие подробности повседнев-
неудобны в пользовании (говорят, что ной жизни предков). В Пергамском
в Древнем Китае для перевозки неко- царстве стали использовать особым
Знаменитый норвеж- торых сочинений требовалось неско- образом выделанные телячьи и бара-
ский учёный и путе-
шественник лько телег, ведь написаны они были ньи шкуры — пергамен. К сожалению,
Тур Хейердал (1914— на бамбуковых дощечках). Подходя- он был слишком дорог и, кроме того,
2002) совершил щий для письма материал первыми об- весьма подвержен действию влаги.
плавание через
Атлантику на папирус- наружили жители Древнего Египта. А в повседневной жизни с античных
ной лодке «Ра». Это был похожий на нашу осоку папи- времён применяли маленькие вощё-
ные дощечки, на которых острым
стержнем писали какие-либо замет-
ки или расчёты (другой конец стерж-
ня делался в виде плоской лопаточки,
чтобы разравнивать воск).
Во II в. н. э. в Китае изобрели спо-
соб производства бумаги из расти-
тельного сырья: бамбука, тростника,
древесной коры. Позднее секрет её из-
готовления узнали арабы (применяв-
шие пеньковое и льняное тряпьё), а
приблизительно в X столетии — и ев-
ропейцы. Качество бумаги было столь
высоким, что рукописи того времени
дошли до наших дней в прекрасном
состоянии: она осталась такой же бе-
лоснежной, сохранила свою гибкость.
Она оказалась гораздо дешевле пер-
гамена и благодаря этому быстро вы-

240
Хранение информации

теснила его. Однако ещё долго счита-


лась предметом роскоши — пользо-
вались ею лишь в самых важных слу- БИБЛИОТЕКА ДЛЯ УЧЁНЫХ
чаях. Только спустя несколько веков
бумага стала действительно массовым Не раз в прошлом тысячелетии учёные обращались к способам
продуктом, и это способствовало бур- хранения и поиска нужной информации в книгах и журналах.
ному росту книгопечатания, разви- Так, Чарлз Дарвин, будучи состоятельным человеком и живо
тию газетного дела и т. п. интересуясь новыми научными открытиями, имел весьма свое-
В течение тысячи лет бумага верой образную библиотеку. Всю литературу он приобретал в двух
и правдой служила человеку. Совер- экземплярах. Из полученных книг и журналов вырезал страни-
шенствовались только технологии цы лишь по интересовавшим его вопросам, а остальное унич-
производства да способы нанесения тожал. Нужные листки он систематизировал и хранил.
текста на бумагу: гусиное, а потом Такой подход требует непрерывного балансирования, ведь
стальное перо, обмакиваемые в чер- существует опасность выбросить показавшийся ненужным фраг-
нила, авторучка, шариковая ручка, мент, который впоследствии будет востребован. Кроме того,
фломастер... Параллельно развивались подобный метод организации личной библиотеки не слишком
технические средства — печатный помогает при поиске нужной книги или статьи.
станок, пишущая машинка, а в послед- В XX в. неоднократно пытались систематизировать инфор-
ние десятилетия подключённые к ком- мацию для удобства пользования. Поиск информации в биб-
пьютеру печатающие устройства — лиотеке подчас занимал не только несколько часов или дней,
принтеры. но месяцы и даже годы. Наиболее удобно искать в энциклопе-
С появлением компьютеров впер- диях, где статьи упорядочены по алфавиту. Однако даже Боль-
вые заговорили о необходимости вне- шая советская энциклопедия, насчитывающая более 70 увеси-
дрения безбумажных технологий. стых томов, не содержит и сотой доли специализированной
Ведь писать, исправлять и хранить информации. Реферативные журналы являлись хорошим под-
тексты, обмениваться ими можно и спорьем для учёных в поиске научной информации. Полноцен-
без переноса на бумагу. И хотя сов- ный же поиск был немыслим без перевода текстов в цифровое
сем без неё по-прежнему обойтись представление.
нельзя, оказалось, что человечество Академик Иван Васильевич Обреимов в брошюре «О циф-
очень быстро утрачивает навыки ровом кодировании информации» предлагал создать цитатную
письма! Так что профессия графоло- машину, которая позволит научному работнику создать биб-
га, определяющего характер челове- лиотеку, систематизируя и переводя в цифровое представле-
ка по его почерку, судя по всему, ско- ние (на специальные карточки) часть информации, хранящей-
ро уйдёт в прошлое. Люди почти ся в библиотеке. Скорость поиска с помощью такой частично
перестали писать друг другу письма механической машины могла достигать 225 карточек (цитат) в
на бумаге, журналисты пересылают в час. Очевидно, что подобные скорость и удобство несравни-
редакцию репортажи по электрон- мы с современными компьютерными библиотеками и энцикло-
ной почте, а поэты и писатели забы- педиями, когда вся Большая советская энциклопедия помеща-
ли, что такое рукопись. Свои труды ется на трёх CD ROMах.
они хранят теперь на дискетах в ви-
де файлов формата doc. Нетрудно
представить, насколько беднее были
бы мы сегодня, не имея возможности
увидеть рукописи Пушкина и Льва
Толстого, если бы от десятилетней ра-
боты Михаила Булгакова над рукопи-
сью «Мастера и Маргариты» осталась
лишь последняя версия файла...
О том, что когда-то в школах су-
ществовали уроки чистописания, уже
давно никто не вспоминает. Для совре-
менного ребёнка становится пробле-
мой разборчиво написать несколько
фраз. Не случайно многие учёные бьют
тревогу: доказано, что человеческий
мозг развивается особенно интенсив-
но именно во время письма!

241
Хранение и обработка информации

а получаемая информация пересыла-


ется в память мобильного телефона
или компьютера. Одновременно с по-
явлением на бумаге рукописный текст
воспроизводится и на экране мони-
тора, а при необходимости его мож-
но преобразовать в печатный.
Писать такой ручкой надо на осо-
бой бумаге. Впрочем, внешне «цифро-
вая бумага» отличается от обычной
лишь своим оттенком, он называется
«белая ночь». На каждый лист с исполь-
зованием специальной технологии
наносится множество микроскопи-
ческих точек, отстоящих друг от дру-
га на 0,3 мм. Когда перо авторучки
движется по листу бумаги, чернила за-
крашивают эти точки. Обрабатываю-
щий снимки процессор однозначно
Подготовка Однако бороться с прогрессом определяет их координаты (точки
материала при бессмысленно, да и не надо. Гораздо расположены на листе так, что для
изготовлении бумаги.
правильнее использовать его дости- этого достаточно их минимального
жения — так решили шведские учё- количества) и таким образом форми-
ные и инженеры, объявившие о созда- рует цифровое изображение.
нии уникального набора для письма, Использование этой технологии
состоящего из особенных бумаги и позволяет посылать на дисплей мо-
авторучки. бильного телефона или по электрон-
Внешне цифровая авторучка ни- ной почте не только печатные сооб-
чем не отличается от обычной. Но щения, но и рукописные тексты. Её
кроме баллончика с чернилами вну- можно применять, например, для пе-
три неё находятся встроенная мини- ресылки заполненных от руки анкет,
атюрная цифровая камера, микро- заявлений, рецептов врача (может
процессор, память и передающее быть, скоро слово «подпись» снова
устройство. При этом весит авторуч- обретёт свой первоначальный смысл,
ка менее 50 г! Чтобы начать работу, утраченный в словосочетании «эле-
не надо нажимать никаких кнопок, до- ктронная подпись»?). Несомненно,
статочно просто снять колпачок. При будет предложено и множество дру-
движении пера по бумаге камера де- гих применений. Так что, вполне
лает в секунду около 100 снимков, ко- вероятно, эпоха рукописей продлит-
торые обрабатываются процессором, ся и в информационном веке.

лПДЙТПЧЛЙ ФЕЛУФБ

Если при выводе (на экран или на пе- СТАНДАРТНЫЕ


чать) хранимого в компьютере текс- КОДИРОВКИ ТЕКСТА
Название этой ста- та использовать разные кодировки,
тьи — не заклинание, то и результат вывода будет разным.
а всего лишь слова Число возможных кодировок очень Самой первой стандартной кодиров-
«кодировки текста», велико. Чтобы текст был читаем на кой стала кодировка ASCII (American
написанные в другой нескольких компьютерах, должна су- Standard Code for Information Inter-
его кодировке. ществовать кодировка, поддержива- change). Её начали создавать в конце
емая на каждом из этих компьютеров. 50-х гг. ХХ в., а в 1968 г. она была
Так возникает задача выбора стан- утверждена Национальным институ-
дартных кодировок. том стандартизации США (ANSI).

242
Хранение информации

ASCII использует для кодирования


символов числа от 0 до 127. В табли-
Кодом символа называют число, преобразующееся при выводе
це приведены коды текстовых симво-
в этот символ. Таблицу соответствия символов языка и набора
лов ASCII от 32 до 126. Остальные чис-
чисел называют таблицей кодировки текста или просто коди-
ла (0—31 и 127) служат для кодировки
ровкой.
управляющих (нетекстовых) симво-
лов (например, символ звукового сиг-
нала или символ конца строки, пере-
водящий вывод следующих за ним
символов в новую строку наподобие Например, символы русского, гре-
клавиши «возврат каретки» у пишу- ческого или какого-либо другого ал-
щих машинок). фавита, математические символы
(знаки корня, интеграла, суммы и др.),
символы псевдографики (вертикаль-
Код Символ ная, горизонтальная и другие линии,
используемые для изображения таб-
32—47 !"#$%&'()*+,-./ лиц) и т. д.
48—63 0123456789:;<=>? Во вновь создаваемых 8-битных
кодировках текста бралась за основу
64—79 @ABCDEFGHIJKL кодировка ASCII, а для кодирования
MNO дополнительных символов использо-
80—95 PQRSTUVWXYZ вались числа от 128 до 255, а иногда
[\]^_ также от 0 до 31 (вместо кодов управ-
ляющих символов ASCII).
96—111 `abcdefghijklmno
112—126 p q r s t u v w x y z { | } ~
РУССКИЕ КОДИРОВКИ
Двоичное представление чисел от В России наибольшее распростране-
0 до 127 содержит не более 7 цифр. ние получили три русскоязычные ко-
Это значит, что в ASCII код симво- дировки: КОИ-8, альтернативная (ко-
ла занимает 7 бит компьютерной па- торую часто называют кодировкой
мяти. (Наименьшая адресуемая еди- DOS), а также Windows.
ница информации в компьютере — КОИ-8 (кодировка для обмена ин-
байт содержит 8 бит.) формацией 8 бит) является стандарт-
Было признано удобным выделить ной русской кодовой таблицей на
под размещение кода символа 1 байт компьютерах, работающих под управ-
памяти. Легко подсчитать, что в од- лением операционной системы UNIX.
ном байте можно разместить 256 чи- Кроме того, КОИ-8 фактически стала
сел (0—255). Это значит что в одном
байте кроме символов ASCII
можно закодировать
ещё 128 символов.

243
Хранение и обработка информации

стандартом для представления рус- Некоторые программы умеют сами


скоязычных текстов в глобальной се- вычислять кодировку текста по часто-
ти Интернет. те вхождения некоторых букв в началь-
Альтернативная кодировка широ- ной части текста. Однако этот метод
ко применялась в операционной се- может не сработать для нестандарт-
ти MS DOS. Её название произошло ных текстов (например, если началь-
из описания Государственным стан- ная часть текста написана с использо-
дартом (ГОСТ) в 80-х гг. двух кодиро- ванием только латинских букв, как это
вок — «основной» и «альтернатив- часто бывает с текстами программ).
ной». «Основная» кодировка вышла Тогда пользователю приходится пере-
из употребления из-за своего неудоб- бирать всевозможные кодировки, т. е.
ства. подбирать кодировку вручную.
Кодировка Windows используется В случае если неизвестен язык, на
в операционной системе MS Windows. котором написан текст, задача опре-
От КОИ-8 и альтернативной кодиров- деления использованной при вводе
ки она отличается не только кодиров- текста кодировки оказывается доста-
кой символов, но и набором кодиру- точно сложной при огромном коли-
емых символов. Например, в этом честве 8-битных национальных ко-
наборе могут отсутствовать символы дировок.
псевдографики, зато много разнооб- Решение этой проблемы в послед-
разных символов кавычек. нее время возлагается на стандартную
международную кодировку, включа-
ющую в себя коды всех национальных
ПРОБЛЕМЫ символов.
8-БИТНЫХ КОДИРОВОК
МЕЖДУНАРОДНЫЕ
Программа, работающая с текстом,
даже если она поддерживает все три
КОДИРОВКИ
русскоязычные кодировки, способна
правильно изобразить текст на экра- Для создания международной коди-
не или на принтере, только если зна- ровки текста был создан UCS (Universal
ет, в какой именно кодировке был вве- Character Set — универсальный набор
дён этот текст. символов), куда вошли символы всех

244
Хранение информации

языков мира, а также некоторые дру- личие состоит только в практическом


гие знаки, например фонетический применении. Так, Unicode включает в
алфавит IPA, используемый для запи- себя множество алгоритмов и специ-
си произношения слов. фикаций для переноса текстов между
В настоящее время существует программными приложениями и опе-
две международные кодировки для рационными системами.
набора символов UCS: Unicode и Будущее — за международными ко-
ISO/IEC 10646. В них для представле- дировками. Unicode всё шире исполь-
ния в компьютерном виде одного сим- зуется в таких популярных операци-
вола используется 2 байт памяти. Это онных системах, как Windows и UNIX.
позволяет закодировать 65 536 сим- Причём конкурентоспособность этих
волов, что больше объёма UCS. операционных систем сильно зависит
Кодировки Unicode и ISO/IEC 10646 от степени использования данной ко-
полностью идентичны и в наборе ко- дировки, поскольку это заметно упро-
дируемых символов, и в их кодах. От- щает процесс обмена информацией.

ТЕКСТОВЫЕ РЕДАКТОРЫ

КОМПЬЮТЕРЫ дённого текста используются специ-


альные компьютерные программы,
В КНИГОПЕЧАТАНИИ называемые редакторами.
Первые редакторы были командны-
Появление возможности ввода тек- ми: компьютеру отдавались команды,
стов в компьютер произвело такую что надо сделать с текстом. Человек мог
же революцию в письменности, как видеть текст на мониторе компьюте-
и изобретение книгопечатания. Хо- ра и после выполнения команды выве-
тя ввод текстов в ЭВМ схож с набо- сти текст на печать.
ром книги в типографии — набрав Например, типичный сеанс работы
один раз, можно напечатать сколько с текстом в редакторе TECO, разрабо-
угодно копий, — он имеет ряд пре- танном в 1975 г., выглядел примерно так:
имуществ. При обнаружении ошиб-
ки не надо коверкать изображение ! DISPLAY CURRENT LINE'S ASCII CODE Габриэль Гарсиа
текста — раздвигать символы для , 20 PER DISPLAY-LINE.! Маркес.
вставки недостающих или, наоборот, ! D F KOENIG, 1989-11-24. !
растягивать их на всю строку после @^U.L[^[^A Line length = ^A^[
удаления лишних. Перемещения бу-
дут сделаны в памяти компьютера и MN0U.0^[QN<Q.0A:=^[^A
на печати не отразятся. ^A^[((%.0/10)*10)
Известный колумбийский писатель, Q.0"E^[((Q.0/20)*20)-Q.0"E^[^A
лауреат Нобелевской премии по лите- ^A^[ ^[|^[^A ^A^[ ^['^['^[>^[^A
ратуре, автор незабываемого романа ^A^[[
«Сто лет одиночества» Габриэль Гарсиа
Маркес ещё в далёких 80-х гг. XX в. был Каждый символ в приведённом
в числе первых, кто создавал свои про- фрагменте обозначает вызов какой-ли-
изведения на компьютере. Сейчас на- бо команды редактора, например встав-
бор текстов является, пожалуй, одной ки некоторого символа в определён-
из самых широко используемых воз- ную позицию заданной строки текста.
можностей компьютера.

У программистов существовала игра: записать свою фамилию в


ЭВОЛЮЦИЯ РЕДАКТОРОВ
качестве команд редактору и точно угадать, что будет с редак-
тируемым текстом, если к нему применить этот набор команд.
Для ввода текста в память компьюте-
ра и изменения (редактирования) вве-

245
Хранение и обработка информации

тексту вверх, вниз, вправо и влево. Кур-


сор бывает в виде тонкой вертикаль-
ной/горизонтальной чёрточки, нахо-
дящейся слева/внизу от текущего
символа, либо в виде прямоугольни-
ка, расположенного поверх символа,
так что изображение самого символа
становится негативным.

РЕДАКТОРЫ — СИСТЕМЫ
ДЛЯ ВИЗУАЛИЗАЦИИ
И ИЗМЕНЕНИЯ ТЕКСТА
Все современные редакторы при вво-
де и изменении текста поддерживают
Фото с экрана Запись последовательности команд его изображение на экране монито-
программы имеет устрашающий вид бессмыслен- ра. Основная работа редактора — по-
редактора текста
«МикроМир» ного набора символов. Командные ре- казать введённый текст; при нажатии
для DOS. дакторы, такие, как TECO, называются пользователем какой-либо клавиши
также строчными (англ. line editors). определить, как это должно изменить
Их главное неудобство заключается текст; откорректировать изображе-
в том, что при редактировании необ- ние текста на экране.
ходимо знать и указать в команде но- Кроме того, современные редак-
мер строки и номер символа, которые торы выполняют много других
надо изменить. функций: проверяют набираемый
Следующее поколение редакто- текст, форматируют его, выводят на
ров — экранные редакторы (screen edi- печать, отправляют по электронной
tors), или WYSIWYG-редакторы (от почте и др.
англ. what you see is what you get — «что
видите, то и имеете»). При их исполь-
зовании текст выводится на экран в ЗАЧЕМ НУЖНЫ МЕНЮ
таком виде, какой он будет иметь на
печати. Место изменения текста ука- Каждую команду редактора можно вы-
зывается специальным значком — кур- звать нажатием какой-либо определён-
сором, который можно «гонять» по ной клавиши. Чем больше в редакторе
разнообразных функций (команд), тем
больше различных клавиш требуется
для их вызова.
На запоминание комбинации кла-
виш придётся потратить немало сил
и времени, поэтому для удобства ис-
пользуют меню. Меню в последнее
время становятся всё более стандарт-
ными. В верхней строке экрана ре-
дактора располагаются несколько
ключевых слов: «Файл» (папка), «Прав-
ка», «Вид», «Формат» и некоторые дру-
гие. Каждому слову соответствует своё
меню, которое скрыто от пользова-
теля. Оно высвечивается только при
вызове: если стрелку-указатель «мы-
ши» подвести к подходящему слову и
нажать кнопку «мыши». В меню пере-
числены команды, связанные с клю-
чевым словом.

246
Хранение информации

РАБОТА С ФАЙЛАМИ СОВМЕСТИМОСТЬ


Слово «файл» происходит от англий-
РЕДАКТОРОВ
ского file, что в информатике пони-
мается как «папка». Папка-файл мо- Освоение пользователем редактора —
жет хранить в себе текст, картинку, длительный, трудоёмкий процесс.
компьютерную программу или что- При смене редактора приходится за-
либо ещё. ново осваивать новые понятия, новые
Работа с текстом начинается с команды, новые функции клавиш, но-
команды «Открыть». После того как вые пункты меню. Такая перспектива
папка открыта, можно увидеть текст, может даже привести к отказу от ново-
который в ней содержится, и редак- го редактора. Подобная сложность при- Фото с экрана редак-
тировать его. Сохранять изменённый менения невыгодна производителю, тора Microsoft Word.
текст разрешается как в исходном
файле в исходном формате записи на
диск (команда «Сохранить»), так
и в другом файле и/или формате
(команда «Сохранить как...»). Это де-
лается для того, чтобы внесённые из-
менения не пропали при неожидан-
ном отключении напряжения в сети
или сбое в компьютере, поскольку из-
менения текста во время сеанса редак-
тирования не вносятся сразу в файл
с текстом, а хранятся в промежуточ-
ной памяти.
При выходе из редактируемого
текста редактор обычно спрашива-
ет, сохранить ли изменения в файле.
Можно закрыть файл без сохранения
изменений, если текст испорчен и
хочется вернуть его в первоначаль-
ный вид.

247
Хранение и обработка информации

поэтому пользовательский интерфейс


стандартизируют.
Например, появилось понятие:
«программа совместима с Microsoft
Office». Оно означает, что программа
специально разработана так, чтобы
выглядеть похожей на приложения из
комплекта Microsoft Office, которые
уже знакомы многим пользователям.
Все редакторы текстов предназна-
чены для одной и той же работы —
создания текста. Поэтому набор
команд и функций у них схож. Отли-
чаются же они друг от друга специ-
альными возможностями (например,
проверкой орфографии или наличи-
ем встроенных электронных таблиц).
Так что выбор редактора определя-
ется задачами пользователя и его лич-
ными вкусами.

Фото с экрана
офисной системы
X-Windows Linux.
МАКЕТИРОВАНИЕ

Огромное количество книг, журна- был сложен и трудоёмок. Изображе-


лов, газет привычно для современно- ние, которое нужно было напечата-
Неотъемлемыми ко- го человека, но только в XVI в., когда ть, вытравливалось (с поверхности
мандами текстовых люди придумали машину, способную убирался верхний слой в тех местах,
редакторов являют- печатать тексты на бумаге, появилась где рисунка не будет), а каждая лите-
ся ввод и удаление реальная возможность изготовлять ра (буква в зеркальном изображении,
символа. Кроме это- много экземпляров одной и той же буква-«наоборот») помещалась стро-
го, в редакторах есть книги. Процесс подготовки к печати го на своё место, чтобы получился
команды, облегча- стройный ряд слов, знаков препина-
ющие набор (убыст- ния. Из этого строя и состояли стро-
ряющие перемеще- ки будущей книги. В таком тексте
ния по тексту, поз- очень трудно было находить ошиб-
воляющие копиро- ки набора — опечатки, ведь текст на-
вать фрагменты тек- бирался как отражение будущей стра-
ста). ницы. Следующая операция состояла
в нанесении на выпуклые части со-
бранного текста специальной типо-
графской краски. Затем, пока краска
ещё не высохла, пластину с текстом
плотно прижимали к чистому листу
бумаги. Получался оттиск — рожда-
лась страница будущей книги. С по-
явлением компьютеров в процессе
печати, и особенно подготовки кни-
ги к печати — макетировании, про-
изошли революционные изменения.
С чего начинается макетирование
книги? С выбора формата. Формат бы-
вает разный, достаточно зайти в книж-
Набор в типографии ный магазин, чтобы убедиться, что
начала XX в. книги отличаются не только размера-

248
Хранение информации

ми, но и формами. Например, книга о


чае может иметь очертания завароч-
ного чайника — современные техно- РЕДАКТОР ТЕКСТОВ
логии это позволяют.
В зависимости от формата книги При вызове редактора на экране появляется окно для его работы.
художник придумывает макет, т. е. вы- В окне редактора, как правило, имеется:
бирает размеры полей, взаимное рас- • Заголовок с названием редактора и именем редактируемого тек-
положение текста, иллюстраций, со- ста.
четание шрифтов, цветовые решения, • Меню — полоса под заголовком со списком ключевых слов.
разрабатывает обложку и большие ил- • Приборная панель — полоса с кнопками, соответствующими не-
люстрации на разворот книги — которым командам редактора. Кнопка «нажимается» щелчком «мыши»
шмуцтитулы, придумывает различ- по ней, при этом вызывается нужная команда.
ные элементы дизайна, например ука- • Панель форматов — полоса, на которой расположены окошко с
зывающие на повторяющиеся элемен- именами шрифтов, окошко с размерами шрифтов и несколько кнопок
ты текста или требующие особого с параметрами шрифта и формата. Справа у этих окошек имеется кноп-
внимания читателя. Так, иногда квад- ка, при её «нажатии» окошко раскрывается, появляется список шриф-
ратики в тексте обращают внимание тов или размеров шрифтов, и пользователь щелчком «мыши» на нуж-
читателя на примечание, или цитату, ной строке может выбрать подходящий.
или занимательный материал, кото- • Линейка.
рые иллюстрируют мысль основного • Окно редактирования текста — белый прямоугольник с мига-
текста, помогают его понять. Чем гар- ющим курсором, где изображается текст. Если текст полностью не по-
моничнее макет, тем проще и прият- мещается в окне редактирования, то появляются полосы прокрутки:
нее читать саму книгу. справа — полоса вертикальной прокрутки, перемещающая текст
Сейчас достаточно редко можно вверх/вниз; внизу — полоса горизонтальной прокрутки, перемеща-
встретить макет, разработанный вруч- ющая текст вправо/влево.
ную, без применения графических ре- • Статусная панель, содержащая много полезной информации, на-
дакторов и других специальных про- пример подсказку о работе редактора, а также информацию
грамм. Но даже если художник делал о местоположении курсора в тексте: номер строки и номер символа.
его без использования компьютера,
созданный макет всё равно перено-
сится в компьютер в виде специаль-
ных мастер-страниц, шаблонов, по
образу и подобию которых в вер-
стальной программе будут собраны
все страницы книги.
Текст книги должен легко читать-
ся. Для этого художниками придумано
много различных шрифтов. Есть, на-
пример, специальные шрифты для за-
головков или для рекламы. Такой текст
должен сразу бросаться в глаза, кри-
чать: «Прочти меня!». В популярных
журналах не так много внимания уде-
ляется тексту, как общему оформле-
нию, дизайну. Глянцевые страницы
модных журналов порой требуют
сильного напряжения зрения читате-
ля. Создатели подобных изданий и
не ставят перед собой задачу привлечь
читателя содержательным текстом —
пусть человек просто разглядывает
красивые картинки. Напротив, текст,
напечатанный «книжным» шрифтом,
можно читать долго, не уставая. Осо- ет книгу трудноусваиваемой, но и вре- Фото с экрана про-
бое внимание уделяется шрифту для ден. Такой шрифт способен привес- граммы макетирова-
ния текста с подготов-
школьной учебной литературы. Пло- ти к ухудшению зрения, повышению ленными страницами
хо выбранный шрифт не только дела- утомляемости школьника. этой книги.

249
Хранение и обработка информации

Книги редко бывают совсем без книги. Здесь вступает в дело версталь-
иллюстраций. Порой просто невоз- щик. Он и собирает из отдельных ку-
можно что-то объяснить, не проил- сочков целое — книгу в том виде, в ко-
люстрировав написанное. Способов тором видит её читатель. Следуя
создания книжных иллюстраций мно- задумке дизайнера (а иногда сочетая
жество. две специальности — дизайнера и
Можно рисовать красками, каран- верстальщика), он «заливает» текст,
дашами или чем-то иным на бумаге располагает картинки, подписи, ком-
либо любой другой поверхности или ментарии на страницах будущей кни-
делать рисунки в компьютерных про- ги так, чтобы, с одной стороны, было
граммах, с помощью которых можно красиво, а с другой — понятно. Это не
создавать специальный файл с изоб- всегда просто, процесс творческий...
ражением. Компьютер верстальщика — его
Ещё один способ — использовать основной инструмент. И достаточно
фотографии, сканируя их в компью- часто это не привычный IBM РС, а
тер с отпечатка, с другой книги или Macintosh. В США такие компьютеры
прямо с негатива, применяя слайд-ска- широко распространены, особенно
неры. Или без сканера — фотографи- в образовании и полиграфии. В Рос-
руя на цифровую камеру, создающую, сии считается, что этот компьютер
в отличие от обычного фотоаппара- создан специально для издательской
та, изображение не на плёнке, а на ци- деятельности и художников. Вероят-
фровом носителе в виде компьютер- но, здесь сказывается надёжность ма-
ного файла. шин и удобство интерфейса, ведь
Можно делать коллажи, т. е. совме- творческому человеку трудно пере-
щать разные изображения в одном, делывать несколько раз одно и то же
например взять изображение с фото- из-за «зависания» программы.
графии, «вырезав» на компьютере Так на замечательной машине вер-
только одного человека, и поместить стальщик создаёт виртуальную книгу,
его на новый фон — побережье океа- существующую сначала только как
на с живописными пальмами или компьютерный файл. Потом этот
у входа в отель. файл попадает в типографию (в со-
Когда собран основной материал — временных типографиях ручного на-
тексты и иллюстрации, разработан бора уже не бывает), и там другие «вол-
макет, пора браться за изготовление шебники» печатают книгу.

ЭЛЕКТРОННЫЕ ТАБЛИЦЫ

«В понедельник 6 уроков и 2 часа са-


мостоятельных занятий, во вторник
5 уроков и 3 часа самостоятельных за-
нятий, в среду 5 уроков и 3 часа само-
стоятельных занятий, в четверг 6 уро-
ков и 2 часа самостоятельных занятий,
в пятницу 5 уроков и 2 часа самостоя-
тельных занятий».
Речь идёт о расписании занятий
школьника. Если нужно отыскать в
этой записке количество уроков в
четверг, то придётся просмотреть
практически весь текст. Но это край-
не неудобно, вот почему расписание
занятий обычно пишут в виде табли-
цы (от лат. tabula — «запись сведе-
ний по графам»).

250
Хранение информации

И тогда решить эту задачу уже Программы, считывающие данные


не составляет большого труда. Нужно из таблиц и заполняющие таблицы
только найти клетку таблицы на пе- новыми вычисленными данными, на-
ресечении строки «Четверг» и графы зывают программами обработки таб-
«Количество уроков». лиц. Трудно даже представить, сколь-

День недели Количество Часы День недели Количество Часы Общее


уроков самост. уроков самостоят. количество
занятий занятий часов
Понедельник 6 2 Понедельник 6 2 8
Вторник 5 3 Вторник 5 3 8
Среда 5 3 Среда 5 3 8
Четверг 6 2 Четверг 6 2 8
Пятница 5 2 Пятница 5 2 7
Всего 27 12 39

Числа, содержащиеся в клетках ко времени позволяет сэкономить


таблицы, могут быть связаны друг программа для обработки таблиц раз-
с другом. Например, в правой табли- мером, скажем, в 1 млн клеток, содер-
це содержимое четвёртой колонки жащих 20-значные числа (что-нибудь
является суммой данных второй и вроде 45 987 801 734 897 235 947 или
третьей колонок, а содержимое стро- 0,06 237 891 209 875 611), особенно
ки «Всего» — суммой данных всех если формулы вычисления громозд-
предыдущих строк. ки и их много! И скольких ошибок
Пока таблица существует на бума- ввода и вычислений можно избежать
ге, трудно использовать связь чисел благодаря такой программе!
друг с другом. Когда таблица находит- Конечно, создание программы об-
ся в компьютере, можно поручить ма- работки таблиц требует некоторого
шине заполнение некоторых клеток. количества времени и труда, но, од-
Так, для второй таблицы компьютер нажды написанная, она ускоряет ра-
мог бы сам заполнить клетки послед- боту при каждом заполнении табли-
ней строки «Всего», сложив данные в цы (а заполняют таблицу иногда по
столбцах и последней колонки «Об- тысяче или миллиону раз).
щее количество часов», просуммиро-
вав цифры в двух строках.
Каков же выигрыш от автомати-
ческого заполнения таблицы? Во-
первых, существенная экономия
времени, затрачиваемого на запол-
нение таблицы. (Пусть заполнение
таблицы занимает 4 мин: вычисле-
ния — 1 мин, ввод 18 чисел — 3 мин.
Тогда при автоматическом заполне-
нии время будет затрачено только на
ввод 10 чисел, а это менее 2 мин.)
Во-вторых, уменьшается количест-
во ошибок.
В случае второй таблицы, напри-
мер, возможностей ошибиться при
вводе 10 чисел меньше, чем при вво-
де 18 чисел. В вычислениях компью-
тер, в отличие от человека, вообще не
ошибается (конечно, если не будет
сбоя в питании или сильных элект-
ромагнитных помех).

251
Хранение и обработка информации

ЭЛЕКТРОННЫЕ ТАБЛИЦЫ При изменении формата таблицы


(например, появление дополнитель-
Как проходит процесс разработки ной колонки) или изменении алгорит-
программы заполнения таблиц? Поль- ма заполнения таблицы (изменение
зователь сообщает программисту ал- формулы) программу обработки таб-
горитм заполнения таблицы, т. е. фор- лицы приходится менять, а значит,
мулы нахождения тех чисел, которые пользователь опять должен прибегать
Фото с экрана про-
граммы электронных нужно записать в клетки. Программист к помощи программиста.
таблиц Excel. переводит эти формулы на язык про- Процесс требовал упрощения. При-
думанные электронные таблицы долж-
ны были исключить участие в работе
программиста, давая пользователю воз-
можность самому запрограммировать
алгоритм обработки его таблицы, а при
изменениях алгоритма — самому его
перепрограммировать.
Электронная таблица (англ. spread-
sheet — «табличный процессор») —
это программа или программная си-
стема, используемая для автоматиче-
ской обработки данных, хранящихся
в таблице, по формулам, задаваемым
пользователем.
Каждой клетке, строке или колон-
ке таблицы человек может назначить
формулу для вычисления содержи-
мого по данным, находящимся в оп-
ределённых клетках, строках или
колонках. При любом изменении
содержимого какой-либо клетки всё
граммирования, а также реализует содержимое таблицы автоматически
ввод в программу исходных данных пересчитывается.
(чисел, вводимых пользователем) и Первая электронная таблица по-
вывод из программы результатов вы- явилась в 1979 г. Её назвали очень
Фото с экрана про-
граммы электронных числений (т. е. запись полученных чи- удачно — «VisiCalc» (от лат. visio —
таблиц МикроКальк. сел в таблицу). «зрение», «ви′дение» и calculo — «счи-
тать», «подсчитывать»). Легко догадать-
ся, что VisiCalc производит видимые,
наглядные вычисления.
Вскоре после VisiCalc стали по-
являться и другие электронные табли-
цы. Уже в феврале 1981 г. была разра-
ботана популярная в нашей стране
электронная таблица SuperCalc. А в
начале 1983 г. появилась электронная
таблица «1—2—3» фирмы Lotus, кото-
рая до сих пор входит в тройку самых
конкурентоспособных электронных
таблиц (наряду с Excel компании
Microsoft и Quattro фирмы Borland).
В начале 90-х гг. электронные таб-
лицы разрабатывались и в России. Од-
ну из них — «МикроКальк», встроенную
в текстовый редактор «МикроМир»,
разработали на механико-математи-
ческом факультете МГУ. «МикроКальк»
была очень проста в использовании и

252
Хранение информации

N a b c x1 x2 Ч. к.
1 1 2 1 –1.00 –1,00 1
2 1 –2 1 1.00 1,00 1
3 1 –1 3 ###.## ###.## 0
4 2 4 1 –1,71 –0,29 2
5 2 8 1 –3,87 –0,13 2
6 2 12 1 –5,92 –0,08 2
7 2 16 1 –7,94 –0,06 2
8 2 20 1 –9,95 –0,05 2

d = b*b - 4*a*c
x1 = (–b – SQRT(D)) / (2*a)
x2 = (–b + SQRT(D)) / (2*a)
Ч. к. =
при D > 0 : 2
при D = 0 : 1
иначе: 0

нетребовательна к ресурсам компью-


тера, это делало программу популяр- –0,29n
ной не только в деловых расчётах, но –0,13nnnnnnnnnnnnnnnnnnnnnnnnnnn
и в «бытовых» вычислениях (напри- –0,08nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
мер, при расчёте квартплаты или ра- –0,06nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
циона питания домашних животных). –0,05nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

ПРОГРАММИРОВАНИЕ представления информации. Компью-


теру можно поручить и построение
ЭЛЕКТРОННЫХ ТАБЛИЦ графических изображений.
В период использования алфавит-
Ниже в таблице запрограммировано но-цифровых дисплеев рисовать на
вычисление корней квадратного экране графики и гистограммы (гра- Построение графи-
ков в программе
уравнения ax2+bx+c=0 по его коэф- фики из столбиков) можно было толь- электронных таблиц
фициентам (колонки «a», «b» и «c»). ко с помощью символов, например Excel.
Таблица находит не только корни
(колонки «x1» и «x2»), но и их
количество (колонка «Ч. к.»).
У третьего уравнения корней нет,
так как дискриминант (временная пе-
ременная D в формулах) отрицателен.
Поэтому вместо чисел в клетках «x1»
и «x2» третьей строки — значки «#»,
что означает в данном случае ошиб-
ку в вычислениях: функция «квадрат-
ный корень» (в формулах обозначе-
на как SQRT) не определена для
отрицательного числа.

ГРАФИЧЕСКИЕ
ВОЗМОЖНОСТИ

Автоматизация вычислений не един-


ственное преимущество электронного

253
Хранение и обработка информации

бую клетку. Причём данные для вы-


числения содержимого клетки могут
браться как из клеток данной табли-
цы, так и из клеток других таблиц, в
том числе и расположенных на уда-
лённых компьютерах.
Описанные рабочие группы могут
находиться на удалении друг от дру-
га, например в разных зданиях или да-
же в разных городах.
Электронные таблицы позволя-
ют заполнять одновременно один и
тот же экземпляр таблицы. Заполне-
ние по сети выполняется двумя спо-
собами.
Во-первых, можно предоставить
группам доступ к таблице. Тогда и про-
граммисты, и тестеры смогут заходить
в данную таблицу со своих компью-
теров и заполнять клетки отведённой
им колонки.
Во-вторых, можно запрограмми-
ровать клетки таблицы так, чтобы эле-
ктронная таблица сама считывала
числа для заполнения клеток из ука-
занного места.
Это означает, что каждая рабочая
квадратиков. На рисунке показана го- группа будет хранить значения пока-
ризонтальная гистограмма, постро- зателей работы в каком-то опреде-
енная в электронной таблице. Данные лённом виде (например, файл или
для её построения взяты из колонки таблица) на своих компьютерах, а
значений корня «x2» уравнений 4—8. электронная таблица, открывая свод-
По величине горизонтальных стол- ную таблицу, будет заходить на ука-
биков этой гистограммы можно уви- занные ей компьютеры и считывать
деть, что при изменении в четвёртом данные для заполнения клеток из ука-
уравнении коэффициента b с 4 до 20 занного ей места.
с шагом 4 корень x2 сначала увеличи- Возможности при редактировании
вается больше, а потом всё меньше. текстов в современных электронных
С появлением графических дис- таблицах практически полностью
плеев стало возможным выделять на приближены к возможностям совер-
экране отдельные точки и строить шенного текстового процессора.
графики. На рисунке два графика за- В современных электронных таб-
программированы таким образом, лицах допустимо не только произ-
что каждый из них отображает дан- водить вычисления, но и красиво раз-
ные в одной из двух колонок табли- мещать текст. Например, во многих
цы. Ввод новых данных в таблицу фирмах в них помещают прайс-лис-
приводит к мгновенному изменению ты, счета, анкеты и прочие подобные
графиков. документы.
Практически во все электронные
таблицы встроен достаточно про-
СЕТЕВАЯ ПОДДЕРЖКА стой язык программирования. Ис-
пользуя его при написании соответст-
ТАБЛИЦ вующих программ, из электронных
таблиц удаётся получить практиче-
В современных электронных табли- ски любой офисный программный
цах удаётся запрограммировать не продукт, вплоть до элементарной ба-
только колонку или строку, но и лю- зы данных.

254
Хранение информации

СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ

Часто встречаются люди, проявляющие


невнимание к своим родным и друзь-
ям: забывают поздравить с праздни- ОБ АЛГОРИТМЕ «ВЕСЫ» (И/ИЛИ)
ком, не помнят дней рождения... Таким
следует завести записную книжку, ку- Алгоритм позволяет эффективно выполнить операцию «объедине-
да помимо фамилии, имени и телефо- ние» над двумя упорядоченными множествами.
на вносились бы и годовщины, дни 1. Сравниваем очередной элемент одного множества с очередным
именин и прочие важные даты. Хотя и элементом второго (начиная с первых элементов).
это не поможет в решении проблемы. 2. Элементы не равны — переписываем меньший элемент в результи-
Как правило, в записных книжках рующее множество; выбираем для сравнения следующий элемент в мно-
28 страничек с прорезями, в которых жестве, из которого переписан элемент (в другом множестве элемент
видны «имена», состоящие из одной не меняется).
буквы русского алфавита. Их после- Иначе (т. е. равны) — переписываем элемент из одного множест-
довательность — это «оглавление» за- ва в результирующее множество и выбираем из обоих множеств оче-
писной книжки. На страницу «В», на- редные элементы.
пример, запишем: 3. Если оба множества ещё не просмотрены до конца, то перехо-
дим к шагу 1.
Вертов Д. 865-55-44 Аналогичный алгоритм позволяет выполнить операцию «пересече-
Витя (стрижка собак) 833-44-66 ние» над двумя упорядоченными множествами.
Вилкин Толя (9 октября) 823-12-34
Веломагазин (мастер Коля) 831-67-67
и т. д.

Для того чтобы найти друга с фа-


милией на букву В, просмотрим всю
страничку. А вот мастера Колю отыс-
кать нелегко: он был записан рядом с
телефоном веломагазина, когда толь-
ко состоялось знакомство. По истече-
нии некоторого времени Колю хочет-
ся найти на странице «К». В какой-то
момент это вызовет такое раздраже-
ние, что вы сделаете копию записи со
страницы «В» на странице «К»: Коля
(мастер из веломагазина) 831-67-67.
А если Коля сменит номер телефо- людей, на соответствующую дню
на, то придётся внести исправление на рождения страницу. И тогда: «Толя,
двух страницах. Самое трудное — удер- поздравляю с днём рождения всех за-
жать в памяти, что информация про мечательных людей: тебя, Сен-Санса,
мастера из веломагазина записана в
двух местах.
Вилкина Толю с днём рождения
можно опять забыть поздравить.
У большинства людей нет привычки
просматривать перед сном всю за-
писную книжку, чтобы выяснить, нет
ли у кого-нибудь из друзей-знакомых
завтра дня рождения.
Как же решить эту проблему?
Можно взять ежедневник (книжка с
366 страницами, по одной на каж-
дый день года, с «оглавлением»: 1 ян-
варя, 2 января и т. д.) и переписать
всех, по желанию включая и великих

255
Хранение и обработка информации

речисленные операции.В широком


смысле база данных — это объединён-
ное название файлов и программ.
Чаще всего в базе данных есть фай-
лы данных и файлы индексов, в кото-
рых хранится информация, необхо-
димая для быстрого поиска.
В каждом файле данных информа-
ция хранится неразрывными порци-
ями, которые называют записями. За-
пись, в свою очередь, состоит из полей.
Они бывают числовые, состоящие
только из цифр; символьные, состоя-
щие из любых знаков: букв, цифр, зна-
ков препинания; специальные, имею-
Муравьёва-Апостола и Джона Ленно- щие определённый формат: дата,
на». (Всё равно, кто будет в этом ряду, деньги, номер телефона и т. д. Набор
главное, чтобы родились в один день.) полей во всех записях одной базы дан-
Однако вручную делать это трудо- ных одинаковый, и определяется он
ёмко, лучше воспользоваться компью- до её создания (это входит в сложный
тером. процесс — проектирование).
Какие же проблемы возникают при При проектировании базы данных
разработке компьютерной записной для личного телефонного справочни-
книжки? ка в запись надо включить фамилию,
Прежде всего утомительный по- имя, телефон, число и месяц рожде-
следовательный просмотр страницы ния. Если через год окажется, что не-
при поиске человека по первой букве обходимы отчество, место работы и
фамилии или имени. Если разбить на год рождения, то можно ввести допол-
страницы по 2—3 начальным буквам нительные поля, которые в уже суще-
фамилии, то поиск убыстрится. А ес- ствующих записях будут иметь пус-
ли на каждого человека выделить по тые значения.
страничке — совсем быстро. Каждая запись получает уникаль-
Кроме того, нельзя найти любую су- ный номер, чаще всего зависящий от
ществующую, хранящуюся информа- положения в файле. Это позволяет хра-
цию без полного просмотра всех све- нить записи в произвольном порядке,
дений, так как мгновенно находится удалять их и вносить новые на освобо-
лишь то, для чего создано «оглавление». дившееся место. Номер является доста-
Например, «веломагазин» — на букву В, точной информацией, чтобы прочи-
и совсем не очевидно, что и «мастер Ко- тать запись из файла данных. Однако
ля» находится на этой же странице. найти необходимую запись можно,
Ещё одна проблема — появление только выполняя последовательный
опасного дублирования (в одной за- просмотр всех записей.
писной книжке или при создании вто- Быстрый поиск возможен, когда
рой, третьей с другими «оглавления- созданы «оглавления» — индексы. Ну-
ми»), которое может привести к ряду жен индекс для поля или нет, опреде-
ошибок: в одном месте исправили, а ляется во время проектирования базы
в других местах забыли. данных. Например, если не предпола-
Для решения этих задач и были гается искать знакомых по имени, то
придуманы базы данных. В узком нет смысла создавать индекс для поля
смысле это специальным образом ор- «Имя».
ганизованное хранилище информа- Можно считать, что индекс состо-
ции (файлы базы данных), где можно ит из пар: значение поля, уникальный
не только быстро искать нужные све- номер записи. Первая часть в паре на-
дения, но и добавлять, исправлять и зывается ключом, вторая — ссылкой.
удалять их. Система управления ба- Для того чтобы отыскать человека
зой данных (СУБД) — это набор про- с фамилией Страхов, достаточно про-
грамм, позволяющий выполнять пе- смотреть перечень ключей индекса «Фа-

256
Хранение информации

ну значений, больше или меньше ука-


Фамилия занного значения.
Страхов Ключ 172 Пусть индекс «День рождения», по-
Староверов 021 лученный из полей «Число» и «Месяц»
Богданова Ссылка 015 (в ключе сначала указывается месяц,
Староверов 127 потом число), выглядит так:
Страхова 044
Богданов 201
Страхов 135 День рождения
Стойнова 413 21 ....
Староверов 093 марта 0228 244
0321 056 084 142
милия», найти уникальные номера за- 0329 135
19 0331 044 179
писей в файле данных (172 и 135) и по апреля
ним прочитать записи про двух человек. 0402 127 278 299 305 432
Если в базе данных хранится инфор- 0419 021 093
мация про 4 тыс. человек, то при каж- 0423 112
дом поиске может потребоваться «про-
бежать» в индексе по всем ключам, т. е. Для ответа на вопрос «У кого день
по 4 тыс. записей. Это гораздо быстрее, рождения с 25 марта по 5 апреля?»
чем просматривать такое же количест- нужно найти все ключи с 0325 по
во записей в файле данных. 0405 в индексе «День рождения». Пря-
Для ускорения поиска в индексе мым поиском СУБД найдёт 0329
(файле индексов) нужно хранить пары (ближайший больший ключ от на-
ключ — ссылка в порядке возрастания чального значения), а затем, после-
ключей и повторяющиеся ключи за- довательно читая ключи, будет соби-
менить на пару ключ — список ссы- рать ссылки, выполняя операцию
лок. При этом список ссылок тоже рас- «объединение» над списками ссы-
положить по возрастающей: лок, чтобы исключить дублирование,
пока не дойдёт до ключа 0419 (бли-
жайший больший ключ от конеч-
Фамилия ного значения). В результате полу-
......
чится следующий список ссылок:
Богданов 201
044 127 135 179 278 299 305 432, с по-
Богданова 015
мощью которого можно прочитать
.......
требуемые записи из файла данных.
.......
Другой вариант поиска — по не-
Староверов 021 093 127
скольким индексам находят записи,
Стойнова 413
удовлетворяющие нескольким вопро-
Страхов 135 172
сам одновременно. Например, запрос
Страхова 044
«Страховы, родившиеся в марте». Для
......
этого в индексе «Фамилия» обнару-
живают ключи, начинающиеся на
Даже если не применять никаких «Стра», а в индексе «День рождения»
специальных алгоритмов поиска, вре- ключи от 0301 до 0331.
мя его всё равно сократится в среднем
в два раза.
Но если воспользоваться извест-
ным алгоритмом «деление пополам»
(бинарный поиск), то нужно будет
прочитать не более 12 ключей, что-
бы найти искомый среди 4 тыс.
(11<log24000<12), т. е. ускорение про-
изойдёт в 340 раз!
Хранение ключей, упорядоченных
по возрастанию, в индексе позволяет
легко реализовать поиск по диапазо-

257
Хранение и обработка информации

А если ключ уже был в индексе, то к


нему добавляется только ссылка в спи-
сок ссылок.
Так же как при добавлении, при
удалении пары ключ — ссылка удаля-
ются из соответствующих индексов.
Если при ключе имеется лишь одна
ссылка, тогда исключается вся пара,
в противном случае — только ссылка
из списка ссылок. Например, запись
021 — «Староверов», дата рождения
19 апреля:

Фамилия
Тогда СУБД по первому индексу Здесь была
...... ссылка на
найдёт следующий список ссылок:
Богданов 201 запись 021
044 135 172, по второму индексу
Богданова 015
получит такой список ссылок:
.......
044 056 084 135 142 179; затем, вы-
.......
полнив операцию «пересечение» меж-
Староверов 093 127
ду списками, получит в итоге ответ:
Стойнова 413
044 135.
Стаханов 516
Добавление/удаление записи из
Страхов 135 172
файла базы данных сопровождается
Страхова 044
изменением индексов. Если в файл
данных под номером, например, ......
516 вносят запись «Стаханов, родив-
шийся 4 мая», то по всем полям, име- День И здесь была
ющим индексы, создаются пары рождения ссылка на
ключ — ссылка, сохраняя порядок: .... запись 021
0228 244
Фамилия 0321 056 084 142
...... 0329 135
Богданов 201 0331 044 179
Богданова 015 0402 127 278 299 305 432
....... 0419 093
....... 0423 112
Староверов 021 093 127 0405 516
Стойнова 413 ....
Стаханов 516
Страхов 135 172
Страхова 044 И лишь после этого удаляется запись
...... из файла данных.
Процесс изменения файла ин-
дексов обычно продолжительнее,
День
чем добавление записи в файл дан-
рождения
ных.
....
Давайте продемонстрируем это на
0228 244
таком примере — ошибочно введён-
0321 056 084 142
ной фамилии Староверов вместо
0329 135
правильной — Старовер. Если СУБД
0331 044 179
каждый индекс записывает в отдель-
0402 127 278 299 305 432
ный файл, то изменение одного поля
0419 021 093
в файле данных (замена фамилии
0423 112
Староверов на Старовер) приведёт к
0405 516
изменениям в файле индексов «Фа-
....
милия»:

258
Хранение информации

подобных показателей при добавле-


Фамилия
нии/удалении пар из файла индексов,
...... так как требует сохранять порядок, на
Старовер 093 что затрачиваются существенные вре-
Староверов 127 менные ресурсы компьютера. Целе-
Стойнова 413 сообразнее использовать нелинейное
Стуханов 516 хранение индексов в виде В-дерева.
...... В-дерево имеет вид перевёрнутого
дерева, листья которого находятся вни-
зу, а единственный корень — вверху.
Понадобится добавить новую пару Промежутки с ответвлениями — меж-
и произвести изменения в существу- ду корнем и листьями — называют уз-
ющей паре. Объём файла индексов лами дерева. Листья — узлы нижнего
может быть гораздо больше объёма уровня. Корень — узел верхнего уров-
файла данных. ня. В узлах В-дерева располагаются
Есть иной способ поиска в упоря- ключи, например «Фамилии».
доченном файле, основанный на со- В данном примере В-дерево полу-
здании групп смежных записей. Пер- чилось двухуровневым. Верхний уро-
вая запись в такой группе хранится в вень содержит ключи, которые явля-
таблице, которая является указателем ются точками раздела. Каждый ключ
к отдельным частям файла, как бы в этом узле указывает на узел одним
привычным «оглавлением». Чтобы уровнем ниже. Ключ «Авдеев» являет-
найти запись «Староверов» (поиск по ся ссылкой на файл данных и, кроме
букве «С»), можно попасть на нужную того, указывает, что ключи от «Авде-
часть индексного файла, а дальше ев» до «Индыгина» находятся на сле-
осуществить бинарный поиск: дующем уровне. При поиске записи
«Староверов» в корне дерева сначала
Фамилия будет обнаружено, что ключ «Путни-
Группа
...... ков» указывает на следующий уровень
«С»
В-дерева, в узлах которого и надо ис-
Путников 912
кать ключ «Староверов» (так как «Ста-
Самарин 012
роверов» находится по алфавиту меж-
...... 127 ду «Путников» и «Сытников»), а затем
Староверов 127 на следующем узле и будет обнару-
...... жен ключ «Староверов», являющийся
Сытников 991 ссылкой на запись в файле данных.
...... Добавлять или удалять элементы
из В-дерева может оказаться как про-
Как бы ни была хороша скорость стой, так и сложной задачей. Напри-
бинарного поиска, она всё-таки не даёт мер, новый ключ «Жучкин» добавить

259
Хранение и обработка информации

Авдеев Индыгина Путников Сытников поиск потребует в некоторых случа-


ях больше времени.
В изображённом дереве хочется
«взяться» за «новый корень» (выделен-
............................. ............................. ный узел на рисунке) и «потянуть»,

..................
Антипин Володин Жмуров
..................

..................

Самарин Староверов Стройнова Стуханов Новый


..................
корень
легко, так как место рядом с ключом ..................
«Жмуров» свободно. Однако при до-
бавлении ключа «Старовер» потребу-
ется создать ещё один уровень узлов, тогда оно слегка изменится в левой
так как на этом узле больше нет мес- части:
та. Узел
..................

Самарин Староверов Стройнова Стуханов


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

260
Хранение информации

ХЕШИРОВАНИЕ

Так же как и в хеш-реализации структуры данных множе- алг цел хеш_функция (целтаб
ства, при поиске в файле данных удобно использовать хе- фамилия[1:20], цел длина, N)
ширование. Каждой записи ставится в соответствие не- дано
которое число, которое эффективно вычисляется с надо
помощью какой-нибудь простой процедуры. Для постро- нач цел K
ения индексов фамилий достаточно пронумеровать все | знач:=0
буквы алфавита, чтобы любой букве соответствовало чис- | нц для Кот 1 до длина
ло от 1 до 33: | | знач := mod (знач + фамилия [K],N)
А—1; Б—2; В—3 ... Я—33. | кц
И дальше фамилия рассматривается как последователь- кон
ность кодов букв (от 1 до 33). Например, фамилия Бабен-
ко в таблице запишется так: (Функция mod(x,y) возвращает остаток от деления нацело
x на y, её ещё называют модулем, а записывают выраже-
2 1 2 6 15 12 16 ние так: y mod y.). Чтобы различные ключи давали сов-
падения не слишком часто (ведь это псевдоуникальные,
А «длина» будет равна 7, по числу букв. а не уникальные числа), необходимо оставлять около чет-
верти хеш-таблицы пустой. Если всё-таки возникли сов-
алг цел индекс (целтаб падения — коллизии, то можно подобрать временно сво-
фамилия[1:20], цел длина) бодное место в той же таблице, последовательно перебирая
дано места. Для большей эффективности удобно провести вто-
надо ричное хеширование, выбрав вторичную хеш-функцию
нач цел K аналогично первой:
| знач:=0
| нц для Кот 1 до длина алг цел вторичная хеш_функция
| | знач := знач * 33 + фамилия [K] (целтаб фамилия[1:20], цел длина,
| кц N, M, шаг)
кон дано
надо
Полученное значение — уникальное число, которое и нач цел K
можно считать ссылкой на запись. Однако такое число | знач:=0
будет огромным. Для приведённой в примере фамилии | нц для Кот 1 до длина
Бабенко индекс составит порядка 1010! Данный подход | | знач := mod (знач + фамилия [K],M)
требует невероятно больших объёмов памяти, что неэф- | кц
фективно, так как не все комбинации букв составляют фа- | знач := mod (знач * шаг + хеш_функция
милии. Обычно для решения этой проблемы использует- | (фамилия, длина, N), N)
ся алгоритм вычисления псевдоуникального числа, который кон
и называют хеш-функцией. Удобно считать сумму кодов
букв в фамилии, вычисленной по модулю размера табли- Число M выбирают взаимно простым с N, обычно M=
цы N, которая отведена под фамилии (хеш-таблицы): = N–2. Если при хешировании возникла коллизия, то
вычисляют значение вторичной хеш-функции с «шагом»,
равным 1. Если снова появляется коллизия, то «шаг» уста-
навливают 2 и т. д. Идея состоит в том, чтобы избегать
коллизий «по модулю», беря в качестве последователь-
ных индексов хеш+вторичная хеш, хеш+2 вторичная
хеш, хеш+3 вторичная хеш ...
При хешировании близко расположенные по алфави-
ту фамилии могут быть произвольно разбросаны по таб-
лице, вообще говоря, они не обязаны быть упорядочены
по алфавиту. В результате поиска записи «Староверов»
невозможно получить ответ на запросы о близких фами-
лиях типа Старовер или Стройнова.

261
Хранение и обработка информации

РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ

Три основных типа организации дан- «Молочные продукты», можно перей-


ных определяют характер связей меж- ти к таблице следующего, второго,
Небольшие группы ду записями, элементами и ключами. уровня.
связанных данных Фактически с появлением компьюте- Второй уровень включает табли-
обычно называют за- ров в базах данных использовалась цы, перечисляющие названия продук-
писью, например, в иерархическая модель. Её можно про- тов по отделам, без детализации. Так,
файле данных «Про- иллюстрировать на примере продук- «Молоко» относится к отделу №1 —
дукт-цена» группу, со- тового магазина. «Молочные продукты», но конкретное
стоящую из наиме- Первый уровень включает табли- наименование и цена хранятся в таб-
нования продукта, цу отделов, где в качестве главного эле- лицах следующего уровня иерархии.
образует запись. Эле- мента выступает категория продуктов. Подобная структура базы данных
мент записи называ- Выбрав нужную категорию, например, удобна продавцу, но не подходит для
ют полем.

Отдел Категория продуктов Мясные продукты Мясо


Полуфабрикаты
1 Молочные продукты Птица
2 Мясные продукты …
3 Бакалея
4 Рыбные продукты
5 Хлебобулочные изделия

Молочные продукты Молоко Продукт Цена


Сметана
Творог «Домик в деревне» 0,5% 13 р.
Сыр «Домик в деревне» 1,5% 15 р.
Кефир …
Масло «Весёлый молочник» 3,2% 19 р.15 к.
Фото с экрана … … …
базы данных.

покупателя, которого в первую оче-


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

262
Хранение информации

ЧТО ТАКОЕ ОДИН ГИГАБАЙТ

В одном гигабайте 230 байт, или, как пишут в современных • протокол операций с банковским счётом крупной
книгах (считая, что 1кбайт = 1000 байт, а не 1024), около фирмы более чем за 5 тыс. лет.
миллиарда байтов памяти. В такой памяти можно хранить: Стоимость устройства, способного хранить около
• 500 тыс. страниц текста, т. е. около 1 тысячи рома- 1Гбайт информации (для сравнения: на трёх CD ROM со-
нов, — целая библиотека; держится 2Гбайт информации), в настоящее время
• около 1 тысячи цветных слайдов высочайшего каче- не превышает 1 доллара США. А стоимость аренды про-
ства; странства для хранения 1Гбайт в компьютерных сетях со-
• до 5 тыс. цветных цифровых фотографий растра ставляет всего несколько долларов США в год. Можно
1280 × 1024 в формате JPEG; ожидать, что через 10—15 лет всё сказанное останется
• аудиозапись более чем 100-часовой речи (при этом верным , если место гигабайта займёт терабайт (1Тбайт =
запись равноценна по качеству телефонному разговору); = 240 байт).
• более чем 10 ч музыкальной записи, использующей
алгоритмы сжатия MP 3. Она неотличима на слух от за-
писи на компакт-диске (эта технология используется в
FM-радиовещании);
• музыкальную запись в том же формате MP 3, но про-
должительностью более 20 ч. Правда, за счёт увеличения
объёма качество ухудшается и соответствует качеству за-
писи хорошего кассетного магнитофона;
• без малого 2-часовой музыкальный фрагмент CD-ка-
чества;
• почти 15-секундный цветной фильм высочайшего
качества записи без использования алгоритмов сжатия;
• более чем 2-часовую видеозапись с использовани-
ем алгоритмов сжатия изображения и звука MPEG (ка-
чество записи лишь немного уступает телевизионному);

Сетевая модель отличается от тов, при поиске информации в базе


иерархической большей гибкостью. данных всякий элемент используется
В ней допустимы множественные в качестве ключа. Под записью пони-
связи между файлами, позволяющие мается уже не совокупность отдель-
сразу получить доступ к нужному ных элементов (один из которых счи-
файлу. В нашем примере про мага- тается главным), а строка таблицы.
зин можно построить ссылки между В нашем примере таблица уже
первым и третьим уровнями. Одна- выглядит так:
ко для этого требуется использование
целого набора специальных про- Продукт Отд. Категор. продуктов Цена Единица
граммистских приёмов (маленьких
«Домик в деревне» 0,5% 1 Молоч. продукты 13 р. Пакет 1л
хитростей, существенно усложня-
«Домик в деревне» 1,5% 1 Молоч. продукты 15 р. Пакет 1л
ющих базу данных), так как при
«Весёлый молочник» 3,2% 1 Молоч. продукты 19 р. Пакет 1л
разработке надо в деталях представ-
лять всю усложнившуюся (с межуров- Камбала 4 Рыбные продукты 97 р. 1 кг
невыми связями) структуру базы. Кальмары 4 Рыбные продукты 68 р. Уп. 0,5 кг
Меткая характеристика «Сетевая ба-
за — это самый верный способ по- Запись «“Домик в деревне” 0,5% Мо-
терять данные» очень точно харак- лочные продукты 13 р. Пакет 1л» мож-
теризует сетевую базу данных как но понимать как отношение между
весьма сложную структуру. элементами «Продукт», «Отдел», «Ка-
Считается, что структура реляци- тегория продуктов», «Цена» и «Едини-
онной базы данных в отношении за- ца». Это отношение в дальнейшем мо-
просов обладает большей гибкостью. жет пополняться такими элементами,
Здесь отсутствует иерархия элемен- как, например, «Имя поставщика»,

263
Хранение и обработка информации

в примере с продуктовым магазином)


для представления данных достаточ-
Представление о реляционной базе данных как о наборе таблиц но одной таблицы, в более сложных
неточно (в нём не учитываются так называемые вторичные ин- (в электронном депозитарии — хра-
дексы). В реальных базах данных записи достаточно велики и их нилище информации об акционерах
много, поэтому всю таблицу не удаётся распечатать на одном ли- различных предприятий) может по-
сте. Работа с базами данных на компьютере отличается от рабо- требоваться несколько таблиц, связан-
ты с таблицами на бумаге и больше напоминает работу с карто- ных между собой с помощью ссылок.
текой: записи, как и бумажные карточки, легко переставлять, Реляционные базы данных, наи-
добавлять и удалять. более широко использующиеся в
персональных компьютерах, были
впервые предложены сотрудником
«Срок хранения», «Объём по складу» фирмы IBM Э. Ф. Коддом в 1970 г.
и т. п. Математик разработал принципы
Из полного набора отношений в этой модели, основываясь на теории
таблице можно легко построить множеств.
новую, упрощённую таблицу отно- Вот как в общих чертах они выгля-
шений, например о продуктах в молоч- дят:
ном отделе: • Данные представляют собой упо-
рядоченный набор в виде строк, на-
зываемых отношениями.
«Домик в деревне» 0,5% 13 р.
• Cтроки обязательно отличаются
«Домик в деревне» 1,5% 15 р.
друг от друга хотя бы значением од-
«Весёлый молочник» 3,2% 19 р.
ного поля.
Или дать сведения о стоимости • Операции выполняются целиком
продукта: над всем отношением, результат так-
Эдгар Фрэнк Кодд же является отношением. Этот прин-
Камбала 97 р. 1 кг
цип называется замыканием.
Разработчики информационно-по-
исковых систем обычно уделяют
Реляционный принцип органи- большое внимание тому, как храни-
зации баз данных наиболее удобен в мые данные будут показаны на экране
том случае, когда нельзя заранее ска- при поиске, добавлении или измене-
зать о характере запросов. нии информации. Формат представ-
Фото с экрана В простейших случаях (при реали- ления данных на экране компьютера
базы данных зации телефонного справочника или называют экранной формой. Как пра-
вило, требуется несколько экранных
форм. Например, при внесении запи-
си в базу данных продуктового мага-
зина изменений удобно видеть лишь
одну строку, но в развёрнутом виде, а
при просмотре списка продуктов от-
дела — несколько строк с краткой ин-
формацией о каждом товаре.
Экранную форму можно предста-
вить себе как окно, через которое че-
ловек увидит какую-то часть базы дан-
ных. В него могут быть вставлены
«цветные стёкла»: некоторые поля
изображаются на экране в немного
изменённом виде (не так, как они
хранятся в базе данных, а как их
удобнее видеть человеку).
Система управления базами дан-
ных, показывающая записи только в
том порядке, в каком они вводились,
практически бесполезна. Поэтому все

264
Хранение информации

СУБД позволяют задавать порядок для


просмотра записей. Числовые поля,
как и текстовые, можно сравнивать. В реляционной модели данные представлены отношениями, но
В телефонной книге вполне естест- нигде не фиксируется, как данные физически располагаются в
венно расположить записи по алфави- памяти. Отделение концептуального уровня от логического (пред-
ту: из двух слов раньше идёт слово, у ставления данных) было революционным переворотом в програм-
которого первая буква «меньше» (т. е. мировании баз данных, так как ранее программирование своди-
стоит в алфавите раньше). Сравнивать лось к управлению устройствами (дисками), предназначенными
даты совсем просто — одна дата счи- для хранения данных.
тается «меньше» другой, если относит-
ся к более раннему времени.
В реляционных базах данных для требуется найти все продукты с
задания порядка следования записей названием «Сметана». Для поиска
применяются ключевые поля (как «сметаны» в отделе «Молоко» добавим,
правило, первое поле или несколько что её цена не превышает 15 р.
первых полей записи). С точки зрения При составлении отчётов часто
пользователя, записи располагаются употребляется специальный язык
в таком порядке, что содержимое запросов. Запрос о «сметане» может
ключевых полей возрастает от начала выглядеть примерно так:
базы к её концу.
Если ключевых полей несколько, ВЫБРАТЬ ВСЕ ЗАПИСИ ИЗ ТАБЛИЦЫ
то при определении порядка записей продуктовый магазин ПРИ ЗНАЧЕНИИ ПОЛЯ
используется тот же метод, что и при продукт= «сметана» и ЗНАЧЕНИИ ПОЛЯ
лексикографическом сравнении текс- цена<15.
тов. Вначале записи упорядочиваются
по содержимому первого ключевого Таблица Камбала 97 р. 1 кг
поля; записи с одинаковым содер-
жимым этого поля расставляются по будет результатом такого запроса:
второму ключевому полю и т. д.
Возможность быстро найти нуж- ВЫБРАТЬ ПОЛЯ продукт, цена, единица
ную информацию и посмотреть её на ИЗ ТАБЛИЦЫ продуктовый магазин ПРИ
экране — это основное достоинство ЗНАЧЕНИИ ПОЛЯ продукт= «камбала».
баз данных, но для работы бывает не-
обходимо напечатать отчёт о состо- Если бы оказалось, что в базе дан-
янии базы данных. Размеры экрана ных не одна запись «камбала», то и в
ограниченны, и, глядя на него, труд- запросе получилось бы несколько На практике в отчёты
но получить представление обо всей строк. В языке запроса важно указать обычно требуется
базе данных. Если в экранную форму то, что надо получить, а не то, как это включать более слож-
включается информация об одной сделать. ную статистику, не-
или нескольких записях, то в отчёт ча- Конечно, в реальных базах данных жели просто сумма
ще всего входят данные о большой гораздо сложнее и процесс проекти- данных в каком-то
группе записей (или даже обо всех) в рования базы данных, и получение поле. Поэтому в си-
базе данных. Сюда также обычно до- отчётов, и сами формы и запросы. стемах для каждого
бавляются некоторые автоматически Чтобы создать настоящую информа- типа отчёта может
подсчитанные данные. ционно-поисковую систему, нужно потребоваться напи-
Все информационные системы по- ещё многое выполнить, ведь от того, сать свою программу
зволяют при поиске и составлении от- как данные распределены по табли- его генерации, в боль-
чётов использовать достаточно слож- цам, зависит эффективность работы шинстве случаев дос-
ные условия. Очень часто запись всей системы. В простейших случаях таточно простую.
должна удовлетворять сразу несколь- современные средства проектирова-
ким простым условиям. Точно так же, ния позволяют создать небольшие си-
как с использованием арифметиче- стемы, основываясь только на общих
ских операций составляются ариф- принципах построения реляцион-
метические выражения, с помощью ных баз данных. Например, чтобы со-
логических операций («и», «или», «не») ставить личный каталог аудиокассет,
можно составлять логические выра- не надо уметь программировать и
жения (составные условия). Пусть знать сложные языки запросов.

265
ОПЕРАЦИОННАЯ СИСТЕМА
КОМПЬЮТЕРА
ВОЗНИКНОВЕНИЕ ОПЕРАЦИОННЫХ СИСТЕМ

Первые ЭВМ использовались для ре-


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

266
Операционная система компьютера

полняла операции ввода-вывода, дру- щаются алгоритмы, управляющие за-


гая занимала процессор ЭВМ вычис- щитой, должна быть сама защищена
лениями, и наоборот. Выполняющу- от программ, иначе сбой в исполне-
юся в ЭВМ программу и данные, нии программы может повредить
с которыми программа работала, на- и её. Возникла потребность в специ-
звали заданием, а одновременный альной программе, которая управля-
прогон нескольких программ — оче- ла бы механизмами защиты памяти.
редью заданий. Так появился резидентный мони-
В первое время алгоритмы пере- тор — к монитору добавили подпро-
ключения заданий на процессоре граммы управления защитой памяти
включались прямо в сами программы и оформили всё в виде отдельной
в виде подпрограмм. Набор таких под- программы.
программ назывался монитором или
супервизором. Кроме того, в него вхо-
дили библиотеки ввода-вывода, под-
программы распределения оператив- ЧТО ТАКОЕ ОПЕРАЦИОННАЯ
ной памяти — в общем, все алгоритмы, СИСТЕМА
не имеющие прямого отношения к за-
дачам вычислений. Представление о том, что такое опера-
Ещё одна проблема заключалась ционная система, эволюционировало во
в том, что программы, выполняющие- времени. Вот определение, взятое из книги
ся в ЭВМ, часто содержат ошибки, в ре- Г. Катцана «Операционные системы. Прагматиче-
зультате которых программа может ский подход» (1973 г.): «Операционная система — это
постоянно занимать процессор («за- организованный набор программ и данных, разработанный специаль-
висать») или ошибочно записывать но для управления ресурсами вычислительной системы, облегчения
в оперативную память, где размеща- создания программ для ЭВМ и также для управления последними».
ются другие программы, результаты Определение Г. Катцана — взгляд на операционную систему с точ-
своей работы. Пока программа одна, ки зрения аппаратуры: есть аппаратура ЭВМ, и на ней нужно выпол-
это ещё терпимо, однако если про- нять программы, а для облегчения этой задачи существует операци-
грамм несколько, сбой в одной из них онная система. Современный взгляд на операционную систему
приводит к сбою всего набора про- включает также точку зрения пользователя как потребителя ресур-
грамм. Следует помнить, что развитие сов ЭВМ.
вычислительной техники шло по пу- «Операционная система — это программа, выступающая посредни-
ти от ЭВМ для конкретной задачи до ком между пользователем и аппаратурой ЭВМ. Назначение операци-
универсальной ЭВМ для многих задач, онной системы — обеспечить пользователю среду для удобного и эф-
поэтому возникшая проблема требо- фективного выполнения программ» (А. Зильбершатц, П. Б. Гэлвин.
вала неотложного решения. «Принципы операционных систем». 1998 г.).
Выход был найден в создании спе- «Операционная система — это программа, управляющая выполне-
циальных аппаратных механизмов, нием прикладных программ и выступающая в качестве интерфейса
защищающих память программ от между пользователем и аппаратурой ЭВМ. Можно считать, что к опе-
случайного доступа со стороны дру- рационной системе предъявляются три требования: удобство, эффек-
гих программ. Управление этими тивность и возможность развития» (У. Сталлингс. «Операционные си-
механизмами уже нельзя включать стемы». 1995 г.).
в сами программы: память, где разме- Наконец, у Эндрю Таненбаума в книге «Современные операцион-
ные системы» (1992 г.) даны два определения операционной системы:
одно с точки зрения аппаратуры, другое с точки зрения пользовате-
ля.
«Операционная система как расширенная ЭВМ. Функция опера-
ционной системы — предоставить пользователю эквивалент расши-
ренной ЭВМ, или виртуальной ЭВМ, которую удобнее программиро-
вать, чем основную ЭВМ...
Операционная система как администратор ресурсов. Цель опера-
ционной системы — отслеживать, кто использует данный ресурс, удов-
летворять запросы к ресурсам и протоколировать их использование,
а также разрешать конфликты при доступе к ресурсам различных за-
дач и пользователей».

267
Хранение и обработка информации

Служебные программы: Компиляторы, Прикладные программы:


• загрузчик интерпретаторы: • обработка текстов
• отладчик • Ассемблер • электронные таблицы
• прочие • Basic • игры
•C • СУБД
• Pascal • графические программы
• Ada • прочие
• прочие

Программа управления файлами и планирования заданий

Программа
Программа управления вводом-выводом управления
памятью

Программа Программа Программа Программа Программа


драйвер драйвер драйвер драйвер драйвер

Клавиатура Дисплей Принтер Модем Дисковый Основная


накопитель память

Резидентный монитор — это уже интерфейсом. Впервые стало воз-


зачатки операционной системы в том можно говорить о переносимости
виде, в котором её воспринимают се- прикладных программ с одной ЭВМ
годня. Теперь прикладные програм- на другую. С возникновения про-
мы стали содержать только реали- граммного интерфейса начался про-
зацию своего алгоритма, обращаясь цесс отделения правил работы с ЭВМ
за вспомогательными алгоритмами от аппаратуры, а ЭВМ стали «прибли-
к монитору, используя при этом фик- жаться» к человеку.
сированный набор правил, называ- Программный интерфейс позво-
ющийся прикладным программным лил создавать абстрактные понятия,
совершенно невыразимые в аппара-
туре. Например, появилось понятие
файла и соответственно файловой
Резидентный монитор всегда находится в оперативной памяти
системы — набора интерфейсов
ЭВМ (потому его и назвали резидентным), поскольку его подпро-
и структур данных для организации
граммы нужны для выполнения всех остальных программ, для ко-
хранения информации. Возникло
торых стали применять термины «прикладные программы» или
понятие процесса (или задачи) как
«пользовательские программы».
потребителя ресурсов и единицы ра-
боты ЭВМ.

268
Операционная система компьютера

Конечно, понятия «файл» и «про-


цесс» существовали задолго до по-
К процессу относят аппаратные регистры компьютера, включая
явления резидентного монитора.
счётчик программ; описание адресного пространства процесса —
Однако возникновение его как от-
участков памяти ЭВМ, которые процесс может читать, писать
дельной специальной программы
или выполнять; описание файлов, с которыми процесс работа-
позволило зафиксировать правила
ет, и всю другую информацию, необходимую для выполнения
работы прикладных программ со слу-
программы.
жебными подпрограммами. Действи-
тельно, пока программы содержали
монитор внутри себя, всегда сущест-
вовала возможность заменить в мо- программ с языка программирова-
мент разработки программы одну ния в машинный код и др. Всё вмес-
подпрограмму работы с файлами на те назвали операционной системой,
другую (например, более эффектив- а набор вспомогательных программ —
ную), тем самым, явно или неявно, редакторы, компиляторы, програм-
переопределив понятие файла. Рези- мы работы с файлами — системны-
дентный монитор, зафиксировав пра- ми утилитами. При этом грань,
вила работы с файлами и процессами, разделяющая системные утилиты
заодно и определил, что в точности и прикладные программы, оказалась
эти понятия обозначают. довольно условной. Термин «рези-
Следующий виток развития опе- дентный монитор» трансформиро-
рационных систем характеризуется вался в ядро операционной системы,
увеличением набора правил работы причём в ядре стали выделять не-
и как следствие усложнением самих сколько важных частей:
операционных систем. К резидент- — планировщик процессов,
ному монитору были добавлены — подсистема управления памятью,
вспомогательные программы, облег- — файловая система,
чающие выполнение частых опе- — подсистема управления вводом-
раций: копирование файлов, ре- выводом,
дактирование текстов, компиляция — программный интерфейс.

ПЛАНИРОВЩИК ПРОЦЕССОВ

Сердцем подсистемы управления про-


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

269
Хранение и обработка информации

ют, какой из них будет выполняться


следующим. Кооперативная многоза-
дачность использовалась, например,
в мониторах первых ЭВМ, а также
в операционных системах персональ-
ных компьютеров — MS DOS и Win-
dows версий 3.1.
Другая стратегия — вытесняющая
многозадачность — состоит в том,
чтобы каждому процессу гарантиро-
Шахматисты тоже
делят время матча ванно обеспечить выполнение на
между собой. процессоре, не обделяя никого. Пла-
нировщик может прервать выполне-
ние процесса и вытеснить его другим
процессом. При этом он выделяет
Понятие кванта предполагает неделимость. Квант выполнения
фиксированный промежуток време-
неделим в том смысле, что, пока процесс, выполняющийся на
ни, называемый квантом выполне-
процессоре, не использовал отведённый ему планировщиком
ния, в течение которого процесс не-
срок, тот не отдаст процессор другому процессу.
прерывно выполняется на процессоре.
Обычно квант выполнения подбира-
ется так, чтобы процесс не слишком
долго занимал процессор, но мог за
Стратегия работы планировщика, отведённое время сделать что-нибудь
например, может заключаться в том, полезное.
что процесс явно (вызовом специаль- Для современных процессоров ти-
ной подпрограммы) или неявно (при пичное значение кванта выполнения
выполнении операции ввода-выво- составляет 10 мс. Только для очень бы-
да, при завершении программы) об- стрых процессоров, например для
ращается к операционной системе процессора Alpha фирмы DEC, квант
с указанием, что процессор свободен равен 1 мс.
и его можно использовать для вы- После истечения кванта планиров-
полнения других процессов. В этом щик выполняет алгоритм перепла-
случае говорят, что операционная нирования, выясняя, какой процесс
система реализует кооперативную будет выполняться на процессоре сле-
многозадачность, т. е. процессы, воз- дующим.
можно, «голосованием», сообща реша- В операционных системах разде-
ления времени все процессы счита-
ются равноправными и по очереди
получают свой квант. Для пользова-
теля это выглядит так, будто процес-
сор выполняет все процессы однов-
ременно. Такой алгоритм называется
алгоритмом перепланирования по
круговой системе (англ. round robin
scheduling).
Достижение равноправности про-
цессов в алгоритме перепланирова-
ния не такая простая задача, как мо-
жет показаться на первый взгляд.
Пусть один процесс — это текстовый
редактор, а другой — программа вы-
числения значения π с точностью до
миллионного знака после запятой.
С точки зрения операционной сис-
темы алгоритм работы текстового
Компьютер Alpha редактора и алгоритм вычисления
фирмы DEC. устроены примерно так:

270
Операционная система компьютера

алг Текстовый редактор


нач
| нц пока не нажата клавиша выхода
| | ждать ввода символа с клавиатуры
| | обработать символ
| | изобразить символ на экране
| кц
кон

алг Вычисление π
нач
| нц пока не определили число π
| | вычислять
| кц Для достижения такой справедли-
кон вости в операционную систему вво-
дится понятие приоритета процес-
Таким образом, один процесс, са. Этот приоритет выражается целым
выполняющий вычисления, всё вре- числом, показывающим, как долго
мя занимает процессор или, учиты- процесс не выполнялся на процес-
вая наличие другого процесса, хочет соре.
его занять (постоянно борется за ре- Планировщик после истечения
сурс процессора). Другой процесс — очередного кванта уменьшает при-
текстовый редактор — в основном оритет выполнявшегося процесса, по-
выполняет операцию ввода и конку- сле чего запускает алгоритм перепла-
рирует за процессор от случая к слу- нирования, который выбирает среди
чаю. Действительно, даже профес- конкурирующих процессов процесс
сиональная машинистка набирает с наибольшим приоритетом.
текст со скоростью 600 символов В примере, после того как пройдёт
в минуту, или 1 символ в 100 мс. Ес- десять квантов, в течение которых
ли квант выполнения составляет процесс-редактор ждёт ввода симво-
10 мс, то текстовый редактор, ожидая ла и выполняется вычислительный
ввода очередного символа, факти- процесс, приоритет вычислительно-
чески не конкурирует за процессор го процесса окажется равен 0, а прио-
в течение 10 квантов. Когда процес- ритет процесса-редактора — 10. По-
сы равноправны, планировщик от- этому на протяжении следующих
даст один квант выполнения редак- десяти квантов приоритет процесса-
тору, после чего отдаст следующий редактора будет выше и планировщик
квант процессу, вычисляющему π . отдаст предпочтение ему. Затем при-
Установлено, что человек считает, оритеты процессов станут одинако-
будто символ появляется на экране выми, и планировщик выберет оче-
мгновенно, если задержка между вво- редной процесс случайным образом.
дом и изображением символа не пре- Описанный алгоритм называют ал-
вышает 20 мс (или два кванта выпол- горитмом планирования по круговой
нения). Если редактор не успеет
обработать символ за один квант, ему
придётся ждать времени на процес-
соре ещё один квант. В результате че-
ловек ощутит задержки при вводе
символов.
Чтобы это исправить, следует от-
дать процессу-редактору более одно-
го кванта (справедливо отдать де-
сять — ровно столько времени он
не выполнялся на процессоре). По-
лучается, что для обеспечения равно-
правности надо сделать процессы не-
равноправными!

271
Хранение и обработка информации

системе с обратной связью. При та-


ком алгоритме работы планировщи-
ФОРМУЛА ВЫЧИСЛЕНИЯ ПРИОРИТЕТОВ ка интерактивные задачи, т. е. задачи,
обрабатывающие ввод информации,
Иногда необходимо явно указать, что данный процесс при- имеют преимущество над неинтерак-
оритетнее остальных. Для этого вводят фиксированный при- тивными задачами, например вы-
оритет процесса, на основе которого рассчитывается динами- числительными алгоритмами. Этот
ческий приоритет. Для операционной системы UNIX BSD 4.4 алгоритм планирования применён
формула выглядит так: в операционных системах Windows
и UNIX.
Т
Pдин = P0 + [ 4
] + 2 × Pфикс , Алгоритмами совершенно иного
типа являются алгоритмы переплани-
рования систем реального времени.
где Pдин — динамический приоритет процесса; P0 — базовый Операционные системы реального
системный приоритет пользовательских процессов; Pфикс — времени применяются для решения
фиксированный приоритет процесса; T — время выполнения задач обработки информации, где
процесса, вычисляемое, в свою очередь, по следующим ре- скорость самой обработки должна
куррентным формулам: быть соизмерима со скоростью по-
ступления информации. Хорошим
2 × Tcp примером может служить автоматизи-
T= Т + Pфикс ,
2 × Тср +1 рованная система управления жизне-
обеспечением пациентов в больнице,
если процесс занимал процессор; где подчас требуется быстрая (по че-
ловеческим меркам) реакция на из-
2 × Tcp Тожид менение состояния людей, или авто-
Т= [ 2 × Тср +1
] × T, матизированная система управления
роботами на промышленном произ-
водстве, мгновенно изменяющая дви-
если процесс находился в состоянии ожидания, Тср — усред- жение манипулятора.
нённая загрузка процессора; Тожид — время, прошедшее, пока Системы реального времени, в ко-
процесс находился в состоянии ожидания. торых неуспех при обработке собы-
тия в заданное время приведёт к
фатальной ошибке, называют систе-
мами жёсткого реального времени.
Упомянутые системы жизнеобеспе-
чения больных и управления произ-
водством относятся именно к тако-
му классу операционных систем.
Иногда жёсткие требования гаран-
тированной доставки события в задан-
ный интервал времени не так важны
или, по крайней мере, их нарушение
не приводит к фатальным последст-
виям. Например, задача проигрывания
звукового файла на компьютере — это
задача мягкого реального времени. Ал-
горитм проигрывания выглядит сле-
дующим образом:

алг Проигрывание
нач
| нц пока не конец файла
| | прочитать очередную порцию данных
| | записать прочитанную порцию
| | в регистры звуковой карты
| кц
кон

272
Операционная система компьютера

тия. Тем самым гарантируется, что


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

РАЗМЕРЫ ОПЕРАЦИОННЫХ СИСТЕМ

По мере того как в операционные системы (ОС) включались всё новые


функции, они стали расти в объёме: операционная система разделе-
ния времени Compatible Time Sharing System, внедрённая в Массачу-
сетсском технологическом институте в 1963 г., состояла из 32 тыс. слов
памяти (по 36 бит каждое). OS/360 фирмы IBM в 1964 г. содержала
уже более миллиона команд кода. Монстр Multics, разработанный в том
же Массачусетсском техноло-
гическом институте в 1975 г.
совместно с Bell Laboratories,
имел более 20 млн команд.
Операционные системы для
Здесь тоже важно успеть за некото- персональных ЭВМ, напротив,
рый интервал времени записать в ре- были компактны: ранние вер-
гистры звуковой карты очередную пор- сии MS DOS не превышали
цию данных, иначе звуковой карте 50 тыс. команд, а UNIX 7.5 Bell
нечего будет играть. Для проигрыва- Laboratories середины 80-х гг.
ния звука с приемлемым качеством (ча- состоял примерно из 100 тыс.
стота оцифровки — 44 кГц, стерео, машинных команд. Со време-
16-битная звуковая карта, т. е. 4 байт с нем UNIX для персональных
частотой 44 кГц) нужно успевать счи- ЭВМ остался достаточно ком-
тывать с диска и записывать данные со пактным, чего нельзя сказать
скоростью 200 кбайт/с. Порцию дан- про серию Windows-95, 98,
ных в алгоритме можно считать равной 2000.
8 кбайт. То есть надо успеть выполнить
один полный шаг цикла за 8/200 =
= 1/25 с. Если не уложиться в отведён-
ное время, это приведёт к потере зву-
ка на 1/25 с. Ситуация неприятная,
но не фатальная. Большинство людей
просто не заметят потерю звука. Со-
ответственно операционная система
мягкого реального времени должна по
возможности обеспечивать доставку
события прикладному процессу за
фиксированный интервал времени.
Механизм работы планировщика
может быть устроен следующим обра-
зом. Все процессы в системе получают
никогда не изменяемый приоритет
выполнения. В алгоритме переплани-
рования всегда выбирается процесс
с наибольшим приоритетом. В систе-
мах жёсткого реального времени надо
выполнять алгоритм перепланирова- Машинный зал компьютера IBM 360.
ния при наступлении любого собы-

273
Хранение и обработка информации

Кабина Boeing 707. и алгоритм перепланирования запу- дуется впустую, на постоянное выпол-
скается по истечении кванта. Если нение алгоритма перепланирования.
событие наступит в неудачный мо- Операционная система — вспомога-
мент (например, в начале очередно- тельная программа, и там, где этого
го кванта выполнения), скорее всего, не требуется, занимать ресурс процес-
не будет возможности его обработать, сора выполнением алгоритмов самой
но и процессорное время не израсхо- операционной системы не стоит.

ПОДСИСТЕМА УПРАВЛЕНИЯ ПАМЯТЬЮ

На другую важную часть операцион- ти называют физическим адресным


ной системы — подсистему управ- пространством. Для решения задач
ления памятью — возложены две управления памятью используются
взаимосвязанные задачи: защита вы- аппаратные средства, именуемые вир-
полняющихся в ЭВМ процессов друг туальной памятью. Её функция со-
от друга и распределение памяти ЭВМ стоит в том, чтобы обеспечить допол-
между процессами. нительное адресное пространство
Процессор общается с памятью и механизмы преобразования адре-
в терминах адресов: у каждого байта сов из одного пространства в другое.
памяти есть номер, или физический Это дополнительное адресное прост-
адрес, который однозначно опреде- ранство называют виртуальным ад-
ляет данный байт (первый байт памя- ресным пространством, а адреса в
ти имеет адрес 0, второй — 1 и т. д.). нём — виртуальными адресами. В от-
Набор из адресов всех байтов памя- личие от физического виртуальное

274
Операционная система компьютера

адресное пространство просто набор


ничему не соответствующих адресов.
Термины «виртуальная память», «виртуальный адрес» — калька
Однако внести смысл в его существо-
с английских терминов virtual memory и virtual address. Однако
вание можно, присваивая по некото-
значения прилагательного «виртуальный» в русском и англий-
рому правилу адресам виртуального
ском языках прямо противоположны. Английское virtual означа-
пространства физические адреса. Тог-
ет «фактический», «действительный». В русском же прилагатель-
да виртуальный адрес станет номером
ное «виртуальный» — синоним не существующего, но возможного.
реального байта памяти.
Например, виртуальная реальность. Можно сказать, что англий-
Первая задача — защитить процес-
ский термин virtual memory — это набор адресов и правила их
сы друг от друга, т. е. защитить память
преобразования в адреса физической памяти, тогда как в рус-
одного процесса от случайных пося-
ском варианте «виртуальная память» — скорее просто абстракт-
гательств на неё другого процесса.
ная память, ничему не соответствующая.
Каждому процессу ставится в соот-
ветствие своё виртуальное прост-
ранство — набор адресов от 0 до
максимального номера, допустимого устройство — диспетчер управления
процессором, и уникальное для каж- памятью, — осуществляющее преоб-
дого процесса правило преобразова- разование пары номер процесса и вир-
ния виртуальных адресов в физичес- туальный адрес в физический адрес
кие. Для обозначения виртуального в памяти. Для современных процессо-
пространства процесса применяется ров диспетчер управления памятью —
термин «адресное пространство про- это отдельный блок в составе процес-
цесса». Работая в терминах своего ад- сора, хотя ещё в начале 90-х гг. XX в.
ресного пространства, процесс не диспетчер часто был отдельной мик-
в состоянии записать что-либо в про- росхемой в составе ЭВМ.
странство другого процесса. Дейст- Обычно правила преобразования
вительно, любой адрес, распознава- записываются в виде таблицы, в ко-
емый процессором, принадлежит торой хранятся соответствия между
адресному пространству процесса, диапазонами физических и вирту-
других адресов нет. альных адресов. Адреса группируют
Для того чтобы использовать ме- в наборы по нескольку тысяч после-
ханизм виртуальной памяти, необхо- довательных адресов в каждом. На-
димо включить в ЭВМ специальное пример, в наборы по 4096 адресов,

275
Хранение и обработка информации

простой процессора, поступают сле-


дующим образом. В процессоре орга-
низуют память небольшого объёма —
буфер преобразования адреса, в ко-
тором хранят некоторые соответст-
вия между виртуальными и физиче-
скими страницами, т. е., по сути, копию
отдельных элементов таблицы стра-
ниц. При преобразовании виртуаль-
ного адреса в физический процессор
ищет соответствие в буфере преобра-
зования адреса и, только если не на-
ходит его там, обращается уже к таб-
лице страниц в памяти. На практике
с помощью такого нехитрого приёма
что соответствует 4 кбайт памяти или удаётся заметно снизить количество
4 кбайт виртуального адресного про- обращений к памяти.
странства. Такой набор называется Механизмы защиты процессов
страницей. Если это страница фи- друг от друга используются и для
зических адресов, то её именуют фи- распределения физической памяти
зической страницей или страницей между процессами. Задача форму-
памяти. Соответственно страницу лируется так: разместить в ограничен-
виртуальных адресов называют вир- ном объёме физической памяти как
туальной страницей. Если пронуме- можно больше адресных пространств
ровать страницы, подобно тому как процессов.
нумеруются байты памяти, получит- Адресное пространство каждого
ся адрес страницы. В таблице для дис- процесса заполнено неодинаково,
петчера управления памятью, назы- в нём есть заведомо неиспользуемые
ваемой таблицей страниц, хранятся места — «дырки», под которые не на-
адреса физических страниц, а дис- до отводить физическую память. Так-
петчер вычисляет по адресу вирту- же некоторая часть адресного прост-
альной страницы место в таблице, ранства почти наверняка не будет
где находится адрес соответству- использоваться часто. Например, код
ющей физической страницы. и данные, задействованные в начале
Использование механизма вирту- работы программы (нужно проини-
альной памяти требует небольших из- циализировать рабочие переменные)
менений в планировщике, а именно, и в конце работы (нужно освободить
в алгоритм переключения (контекс- память, вывести результат и т. п.).
та) процесса нужно добавить пере- Соответственно для участков адрес-
ключение таблицы страниц. То есть ного пространства, используемых
при замене одного процесса на дру- лишь при завершении работы, физи-
гой надо указать диспетчеру адрес ческую память можно не отводить до
в памяти, где размещается таблица тех пор, пока это не потребуется, а па-
страниц нового процесса. Точный мять, используемую только в начале
формат таблицы страниц определя- работы программы, можно забрать
ется архитектурой диспетчера (в со- после применения.
временных процессорах — архитек- Итак, в каждый промежуток вре-
турой процессора). мени процесс использует для рабо-
Размещение таблицы страниц в па- ты часть объёма своего адресного
мяти приводит к тому, что диспетчер пространства. Используемые за про-
вынужден обращаться к памяти за ин- межуток времени виртуальные стра-
формацией при каждом переводе вир- ницы памяти называют рабочим
туального адреса в физический. Ско- множеством процесса. Понятно, что
рость работы процессора намного рабочее множество зависит от дли-
выше скорости обращения в память, тельности временного промежутка
поэтому при трансляции адресов про- времени (чем он больше, тем боль-
цессор простаивает. Чтобы уменьшить ше рабочее множество процесса).

276
Операционная система компьютера

А если за промежуток выбрать всё вре- нужно отличать виртуальные страни-


мя работы программы, рабочее мно- цы, для которых соответствия в таб-
жество будет равно используемому лице трансляции ещё не построено,
адресному пространству. от «дырок» в адресном пространстве,
Чтобы сэкономить физическую па- для которых такого соответствия
мять, можно отводить её только для не должно существовать в принципе.
виртуальных страниц из рабочего Если процессор при обращении
множества выполняемых процессов. по виртуальному адресу не найдёт
При определении рабочего множест- соответствия для виртуальной стра-
ва удобно выбрать интервал времени, ницы, возникнет исключительная
равный кванту выполнения. Наилуч- ситуация — прерывание. При возник-
ший алгоритм распределения памя- новении прерывания процессор начи-
ти формулируется так: при выделении нает выполнять специальную подпро-
процессу очередного кванта выпол- грамму — обработчик прерывания.
нения разместим в физической памя-
ти все страницы рабочего множества
процесса за этот квант.
Однако, хотя алгоритм действи- ИСПОЛЬЗОВАНИЕ ВИРТУАЛЬНОЙ ПАМЯТИ
тельно является наилучшим, его, к ДЛЯ ЗАЩИТЫ ВНУТРИ ПРОЦЕССА
сожалению, нельзя применить. Узнать,
какие страницы входят в рабочее Механизм виртуальной памяти используют также для защиты про-
множество, можно лишь по истече- цесса от самого себя. Например, защищают сегмент кода програм-
нии кванта, а в алгоритме требуется мы от случайных записей. Для защиты процессов друг от друга до-
знать это вначале. статочно просто занять все возможные адреса, устранив, таким
Трудно предсказать будущее, но образом, возможность обращения к чужой памяти. Для защиты вну-
стоит воспользоваться уже имеющим- три процесса эта техника не работает, так как постоянно требуется
ся опытом. На практике почти всегда доступ к коду и данным программы. Однако каждый сегмент специ-
оказывается, что рабочее множество фичен: сегмент кода достаточно лишь читать и выполнять, к сегмен-
не сильно меняется в течение не- ту данных нужен доступ только на чтение и запись (но не на выпол-
скольких квантов выполнения. Соот- нение!).
ветственно в начале работы процес- Для разграничения доступа к сегментам в специальном байте
са его рабочее множество можно управляющей информации сегмента хранят биты — признаки досту-
считать пустым и выделять физиче- па: чтение, запись и выполнение. Естественно, процессор должен рас-
скую память под виртуальные страни- познавать эти биты и проверять доступ. Так, для страниц сегмента
цы по мере необходимости, а также кода можно установить биты доступа «чтение» и «выполнение», а для
принудительно забирать физическую страниц сегмента данных и стека — биты доступа «чтение» и «запись».
память для тех страниц, доступа к ко- При этом программа не сможет случайно записать данные в код и слу-
торым не было на протяжении како- чайно выполнить данные вместо кода, посчитав, что тут содержит-
го-нибудь интервала времени. Более ся программа.
того, если за интервал взять беско-
нечность, то принудительно забирать
физическую память мы будем, толь-
ко когда свободной физической па-
мяти для работы не останется. В этот
момент забирается память у самой
«старой» виртуальной страницы, т. е.
у той, к которой дольше всего не бы-
ло доступа.
Механизм защиты страниц позво-
ляет определить, когда виртуальной
странице понадобится отвести стра-
ницу физической памяти. В момент
старта процесса можно подготовить
незаполненную таблицу соответст-
вия между виртуальными и физиче-
скими страницами. Дополнительно
придётся ещё хранить информацию:

277
Хранение и обработка информации

ПРИМЕР РАБОТЫ МЕХАНИЗМА ВИРТУАЛЬНОЙ ПАМЯТИ

Пусть для простоты примера в компьютере имеется чер это правило должен где-то хранить. Если на каждый
16 Мбайт памяти. Тогда последний байт памяти имеет фи- виртуальный адрес хранить в таблице его физический,
зический адрес 16777215 (16х1024х1024 — 1) в десятич- то потребуется 48 Мбайт памяти = 16 Мбайт памяти ×
ной системе исчисления или 0хFFFFFF в шестнадцатерич- × 3 байт (размер адреса); это в три (!) раза превышает
ной системе исчисления (буква «х» обозначает, что число объём памяти.
записано в шестнадцатеричной системе), в которой при- Поэтому используют разбиение памяти на страницы раз-
нято записывать адреса. В этом случае физическое ад- мером 4 кбайт, пронумеровав их, начиная с 0. Зная адрес,
ресное пространство выглядит так: 0x000000 — 0xFFFFFF легко вычислить номер страницы: нужно отбросить послед-
(т. е. набор адресов от 0 до 0xFFFFFF). ние три цифры в шестнадцатеричной системе исчисления.
Виртуальное адресное пространство пронумеровано Например, адрес 0x35367 находится в странице 0x3516 или
также от 0x000000 по 0xFFFFFF (объём — 16 Мбайт). Тог- 5310 в десятичной системе исчисления.
да виртуальным адресам ставятся в соответствие физиче- Теперь правила соответствия памяти в терминах стра-
ские по следующему правилу: ниц выглядят следующим образом:

• виртуальные страницы 0x000 — 0x00F соответству-


ют физическим 0x010 — 0x01F;
• виртуальные страницы 0x010 — 0x030 соответству-
• виртуальные адреса с 0x000000 по 0x00FFFF будут со- ют физическим 0x020 — 0x040;
ответствовать физическим адресам 0x010000 — 0x01FFFF со • виртуальная страница 0xFFF соответствует физиче-
сдвигом (т. е. виртуальный адрес 0 соответствует физиче- ской 0x041;
скому 0x10000, виртуальный адрес 1 соответствует физиче- • виртуальные страницы 0x031 — 0xFFE никаким фи-
скому 0x10001 и т. д., наконец, виртуальный адрес 0xFFFF зическим страницам не соответствуют.
соответствует физическому 0x1FFFF); Тогда для хранения соответствия страниц достаточно
• виртуальные адреса 0x010000 — 0x030FFF будут со- одномерной таблицы (массива) в памяти.
ответствовать физическим 0x020000 — 0x040FFF; Пусть таблица размещается в начале физической па-
• виртуальные адреса 0xFFF000 — 0xFFFFFF будут со- мяти ЭВМ. Для вычисления адреса физической страницы
ответствовать физическим 0x041000 — 0x041FFF; для данной виртуальной нужно умножить номер виртуаль-
• виртуальные адреса 0x031000 — 0xFFEFFF ничему ной страницы на два, так как номер страницы кодируется
соответствовать не будут. 2 байтами. Например, процессор должен прочитать байт
Теперь процессор может, например, прочитать байт по по виртуальному адресу 0x113А5, номер виртуальной стра-
виртуальному адресу 0x025367. Этому виртуальному ад- ницы получается отбрасыванием трёх младших знаков, т. е.
ресу по правилам соответствует физический адрес 0x35367 0x11. Умножив 0x11 на два и получив 0x22, можно про-
и соответственно 217961-й байт памяти (3536716=21796110). читать значение по этому адресу из таблицы, получится
А сейчас надо записать правило для диспетчера управ- номер физической страницы — 0x21. Далее, снова доба-
ления памятью, который, собственно говоря, и должен вы- вив три младшие цифры виртуального адреса, получим
числять физический адрес по виртуальному. Причём физический, по которому и надо прочитать байт —
записать как можно более компактно, поскольку диспет- 0x213А5.

278
Операционная система компьютера

• виртуальные адреса с 0x000000 по 0x00FFFF будут


соответствовать физическим адресам 0x042000 —
0x051FFF;
• виртуальные адреса 0x010000 — 0x030FFF будут со-
ответствовать физическим 0x52000 — 0x072FFF;
• виртуальные адреса 0xFFF000 — 0xFFFFFF будут со-
ответствовать физическим 0x073000 — 0x073FFF;
• виртуальные адреса 0x031000 — 0xFFEFFF ничему
соответствовать не будут.
Для размещения таблицы страниц процесса B опять
требуется 8 кбайт памяти.
Использование трёх наборов адресов (их ещё называ-
ют сегментами) виртуальной памяти процесса не случай-
но. Дело в том, что, как правило, память каждого процес-
са-программы распределена следующим образом:
• память для команд, выполняемых процессором, —
сегмент кода;
• память переменных — сегмент данных;
• память для стека, в котором хранятся временные пе-
ременные подпрограмм, адреса возврата из подпрограмм, —
Таблица в памяти занимает всего 8 кбайт, или всего сегмент стека.
0,5 % 16 Мбайт памяти. Соответственно виртуальное пространство процесса
Теперь представим два процесса A и B. У каждого в примере состоит из трёх сегментов:
из них собственное виртуальное адресное пространст- 0x000000 — 0x00FFFF — сегмент кодов;
во 0x000000 — 0xFFFFFF. Остаётся только назначить фи- 0x010000 — 0x030FFF — сегмент данных;
зическую память для адресных пространств обоих про- 0x031000 — 0xFFEFFF — «дырка» в пространстве, не ис-
цессов. Пусть адресное пространство процесса A пользуется;
использует уже знакомую таблицу. Распределяя память 0xFFF000 — 0xFFFFFF — сегмент стека процесса.
для процесса B, надо обратить внимание, что есть две Сегмент данных может меняться в процессе выполне-
области свободной физической памяти: память с адре- ния программы, так как требуется память под новые дан-
сами 0x000000 — 0x00FFFF и 0x042000 — 0xFFFFFF со- ные. Сегмент данных удобно размещать сразу после сег-
ответственно. Первая область памяти использована для мента кодов (который не изменяется), а сегмент стека —
размещения таблицы страниц процесса A. Во второй в самом конце пространства.
разместится процесс B:
***

На практике таблица страниц выглядит сложнее. В насто-


ящее время большинство процессоров 32-разрядные, это
означает, что адрес состоит из 32 разрядов, или 4 байт
(в байте 8 разрядов). Соответственно виртуальное адрес-
ное пространство, с которым может работать 32-разряд-
ный процессор, имеет размер 232 байт, или 4 Гбайт. Одна-
ко объём физической памяти должен быть ещё больше.
Например, у 32-разрядного процессора Intel Pentium III раз-
мер физического адреса — 36 разрядов. У 64-битных про-
цессоров аппетиты ещё больше, размер виртуального ад-
ресного пространства — 264 байт, или 16 Пбайт. Поскольку
человечество ещё не решило, что делать с таким количе-
ством физической памяти, реальная разрядность физиче-
ского адреса меньше. У 64-разрядного процессора Alpha
физический адрес занимает 48 разрядов.

279
Хранение и обработка информации

В данном случае это будет прерыва- са можно встретить пришедший из


ние по нарушению защиты страниц. английского языка термин «свопинг»
Обработчику предстоит вначале вы- (англ. swapping — «перекачка»).
яснить, не произошла ли ошибка, При использовании подкачки
должно ли быть установлено соответ- страниц алгоритм распределения па-
ствие между виртуальной страницей мяти немного усложняется. Перед
и какой-либо физической. Если долж- тем как выделить физическую стра-
но, обработчик выделяет физическую ницу в обработчике прерывания, на-
страницу и изменяет таблицу, запи- до выяснить, не было ли содержимое
сывая новое отображение. страницы ранее сохранено в облас-
Чтобы определить самую старую ти подкачки, и, если было, «подка-
страницу, лучше всего если процес- чать» содержимое обратно в память,
сор при обращении к виртуальной т. е. прочитать обратно в память дан-
странице будет записывать куда-ни- ные с диска.
будь текущее время, измеряемое, на- Размер области подкачки зависит
пример, в числе инструкций, выпол- от загруженности ЭВМ и объёма опе-
ненных с момента включения ЭВМ. ративной памяти. Раньше широко ис-
Операционная система через некото- пользовалась формула: размер обла-
рый интервал времени просматрива- сти подкачки в два раза больше объёма
ет таблицы страниц всех процессов физической памяти. Сейчас физиче-
и освобождает физическую страницу. ская память даже у персональных ЭВМ
На практике хранить полное время до- достигает нескольких гигабайт, по-
ступа к странице достаточно дорого, этому размер области подкачки дела-
и операционная система использует ют равным объёму памяти или даже
менее эффективные алгоритмы. ещё меньше.
В результате работы алгоритма А как быть, если в области подкач-
распределения памяти освобождают- ки нет свободного места? Есть два
ся физические страницы. Данные, ко- способа решить эту проблему. Один,
торые в них содержатся, могут ещё по- консервативный, состоит в том, что-
требоваться, и информацию надо бы при выделении очередной пор-
сохранить. Как правило, у ЭВМ есть ции памяти зарезервировать место
диск, на котором можно выделить в области подкачки, а если его нет,
место для хранения содержимого ос- то память не выделять. Это означает,
вобождённых физических страниц. что, если в области подкачки сво-
Это место на диске называют облас- бодного места нет, в операционной
тью подкачки. Хранение содержимо- системе нельзя будет запустить но-
го освобождённых страниц именуют вый процесс, а уже работающие про-
подкачкой страниц. Иногда в литера- цессы не получат дополнительной
туре для обозначения этого процес- памяти. Однако на практике это при-

280
Операционная система компьютера

водит к тому, что область подкачки тельно освободить место, что означа-
используется неэффективно: свобод- ет просто аварийно уничтожить ка-
ное место в области подкачки есть, кой-либо процесс.
но использовать его нельзя, оно за- Можно разработать и другие алго-
резервировано. ритмы, которые пытаются предска-
Другой способ состоит в том, что зать будущее на основе прошлого
операционная система берёт на себя опыта. Например, вместо того чтобы
«повышенные обязательства» и выде- забирать память у самой «старой»
ляет виртуальную память, пока есть страницы, забирать память у наименее
свободное место в физической памя- используемой страницы. (Это не то
ти и в области подкачки (по-англий- же самое!)
ски эта стратегия называется over- В области алгоритмов распределе-
commitment). Если в области подкачки ния памяти постоянно ведутся иссле-
свободного места нет, придётся совер- дования, здесь всегда есть место для
шать неприятные действия: принуди- улучшений.

ФАЙЛОВАЯ СИСТЕМА

Ещё одна важнейшая часть операци- лов на запоминающих устройствах.


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

281
Хранение и обработка информации

ны хватит, чтобы работать с дисками


объёмом до 232 . 512 = 2 Тбайт.
В современных файловых систе-
мах вводят понятие логического бло-
ка, размер которого делают кратным
размеру физического блока. Напри-
мер, сейчас наиболее распростра-
нённый размер логического блока —
1 кбайт, встречаются также размеры
4 и 8 кбайт. Необходимость введения
логического блока объясняется спе-
цификой диска: прочитать с диска
несколько подряд идущих блоков бы-
стрее, чем прочитать те же блоки под-
ряд по одному.
Для каждого файла нужно хранить
его атрибуты:
• имя файла (в файловой системе
UNIX это просто число);
• тип файла: обычный файл или
каталог;
Файловая система адресоваться к каждому байту диска • кто владелец файла и к какой
Windows. напрямую: доступны только адреса группе пользователей он относится
Файловая система блоков. Адрес блока можно считать (два числа — идентификатор или но-
UNIX. 32-битным числом, адреса такой дли- мер владельца и идентификатор
группы);
• права доступа к файлу — чтение,
запись, выполнение — для трёх кате-
горий пользователей: владельца фай-
ла, пользователя из той же группы, что
и владелец, и остальных (9 бит: по
3 бита с информацией о защите для
трёх категорий пользователей);
• информацию о работе с фай-
лом — время создания файла, его по-
следнего изменения и время послед-
него доступа к нему (три больших
числа, интерпретируемые как коли-
чество секунд, прошедших с 1 января
1970 г., или, как иногда говорят, с на-
чала Эпохи, — эта дата считается днём
возникновения UNIX; в 32-битном
числе можно закодировать даты
с 1970 по 2038 г.);
• число ссылок на файл, или, по-
другому, количество символьных
имён у файла;
• номера блоков, в которых разме-
щается файл, — список блоков файла;
• размер файла в байтах, посколь-
ку списка блоков недостаточно; по
размеру файл может быть не кратен
блоку.
Все атрибуты, за исключением спи-
ска блоков, занимают небольшой объ-
ём — 32 байт. Поэтому можно отвес-
ти на диске область фиксированного

282
Операционная система компьютера

объёма, где следует хранить инфор-


мацию обо всех файлах сразу. Такая
область называется массивом индек- ИМЕНА
сов. Соответственно индекс файла —
набор его атрибутов. При этом имя В некоторых файловых системах, например в FAT MS DOS или
файла есть индекс в этом массиве. Windows, имя файла может быть обычным символьным именем, на-
Число файлов на диске будет ограни- пример «МойФайл». В файловых системах ОС UNIX имя файла —
чено, и его надо знать заранее при со- просто число, т. е. все файлы пронумерованы. При этом существу-
здании на диске файловой системы. ют и символьные имена, которые являются ссылкой на это имя фай-
Можно просто выбрать большое чис- ла, и таких ссылок может быть сколько угодно. Иными словами, сим-
ло и надеяться, что его хватит. вольные имена «МойФайл» и «ТвойФайл» могут ссылаться на один
Поиск файла по имени — триви- и тот же файл. В файловых системах RSX и VMS файл полностью оп-
альная операция, поскольку имя фай- ределялся символьным именем, расширением и версией. Имеются в
ла — это номер индекса файла в мас- виду файлы вида «МойФайл.txt;1», «МойФайл.txt;2». Здесь «Мой-
сиве индексов. Однако пользователь Файл» — это имя, txt — расширение, 1 или 2 — версия. Сейчас подоб-
работает с символьными именами ные имена с расширением и версией можно встретить в файловой
файлов, и надо хранить соответствие системе ISO9660, используемой для хранения файлов на CD ROM.
между символьным именем и номе- Современные файловые системы имеют иерархическую структу-
ром индекса. Самое простое — разме- ру. Файлы хранятся в каталогах или папках. Поэтому для доступа
стить эту информацию в каталоге. к файлу информации о его имени недостаточно: нужно знать марш-
Собственно в каталоге только эта ин- рутное имя, включающее список всех каталогов, которые необходи-
формация и будет храниться. То есть мо пройти, чтобы добраться до файла. Например, в FAT MS DOS
каталог — это файл, состоящий из за- маршрутное имя файла выглядит так:
писей в виде символьного имени и но-
мера индекса. Осталось выделить спе- D:\Моидокументы\Разное\МойФайл.txt
циальный каталог — главу иерархии,
поскольку файловая система имеет Здесь D — диск, на нём размещается файл с именем «МойФайл.txt»;
иерархическую структуру. Главой ие- Мои документы — имя папки, где находится папка с именем Разное
рархии называют корень файловой (в ней содержится нужный файл); символ \ — разделитель.
системы. Для него можно выделить В файловой системе ОС UNIX это же маршрутное имя будет за-
специальный индекс, например пер- писываться так:
вый, и специальное имя. Традици-
онно имя корня файловой системы /mnt/disk/Моидокументы/Разное/МойФайл.txt
ОС UNIX — «/». Теперь любой файл
в файловой системе доступен по сим- Здесь /mnt/disk — каталог, с которого начинается файловая систе-
вольному имени. ма диска; символ / — разделитель элементов маршрутного имени.
Например, для того чтобы найти Наконец, в файловой системе VMS маршрутное имя записывает-
файл с именем «/Мои документы/Раз- ся в виде
ное/МойФайл.txt», надо
1) прочитать первый индекс, най- DISK$D:[МОИДОКУМЕНТЫ.РАЗНОЕ]МОЙФАЙЛ.TXT;1
дя блоки корня файловой системы;
2) читать блоки корня, пока не най- Здесь «DISK$D» — имя диска, на котором размещается файл; сим-
дена запись, в которой находится сим- волы «[» и «]» ограничивают поле каталогов в пути к файлу; символ «.»
вольное имя «Мои документы». Пусть является разделителем каталогов.
этому имени соответствует индекс но-
мер 17;
3) прочитать индекс с номером 17,
найдя блоки этого каталога;
4) читать блоки файла 17, пока не
найдена запись, в которой находится
символьное имя «Разное». Пусть этому
имени соответствует индекс номер 103;
5) прочитать индекс с номером
103, найдя блоки этого каталога;
6) читать блоки файла 103, пока
не найдена запись, в которой находит-
ся символьное имя «МойФайл.txt».

283
Хранение и обработка информации

ФАЙЛЫ В OC UNIX

Подход заключается в том, чтобы посмотреть на ти- 13-м блоком в индексе. В третьем блоке косвеннос-
пичную длину файла в файловой системе и создать ти могут храниться до 256 вторых блоков косвенно-
требуемое число индексов в зависимости от объёма сти. Всего, 10 + 256 + 2562 + 2563 = 16 843 018 бло-
диска. Например, в современных ОС UNIX типичная ков, т. е. максимальный размер файла может
длина файла 10 кбайт. Значит, нужно на каждые десять составлять 16 Гбайт. Третьего блока заведомо хва-
логических блоков файловой системы отводить один тит для хранения файла объёмом 2 Гбайт. Структу-
индекс, если логический блок имеет размер 1 кбайт. ра списка блоков в индексе получилась следующей.
Со списком блоков дело обстоит сложнее. Надо Номера первых десяти блоков файла.
уметь адресовать каждый байт файла. Адресация Первый блок косвенности. f Номера следующих
в файле традиционно устроена как смещение отно- 256 блоков файла.
сительно текущей позиции указателя чтения/записи; Второй блок косвенности. f Номера 256 первых
смещаться можно как вперёд, так и назад, поэтому блоков косвенности. f Номера следующих 2562 бло-
адрес будет 32-разрядным числом со знаком. И мак- ков файла.
симальный объём файла 2 Гбайт, ровно столько мож- Третий блок косвенности. f Номера 256 вторых
но адресовать 32-разрядным числом со знаком. блоков косвенности. f Номера 2562 первых блоков
В списке блоков может присутствовать до 2 млн косвенности. f Номера следующих 256 3 блоков
элементов (число элементов в списке блоков = объём файла.
файла/размер блока = 2 Гбайт/1 кбайт=2.220), а для Для хранения номеров блоков понадобится за-
хранения списка понадобится 8 Мбайт (2.220 . 4 байт резервировать 52 байт в индексе (13 номеров бло-
в 32-разрядном адресе блока=8 Мбайт). ков × 32 бит = 52 байт). Общий размер — 84 байта.
Номера нескольких первых блоков хранятся пря- Однако при работе с большими файлами за ком-
мо в индексе файла. Поскольку считается, что типич- пактный индекс придётся заплатить производитель-
ный файл занимает десять блоков, на него отводит- ностью. Действительно, чтобы считать 11-й килобайт
ся в индексе место для десяти блоков. Далее вводится файла, надо прочитать два блока — первый блок ко-
понятие (аналогичное директории страниц) «блок ко- свенности, чтобы узнать номер блока, и сам блок.
свенности». В нём хранятся не записи файла, а номе- Для чтения каждого блока из первого мегабайта по-
ра блоков в списке. Блок косвенности будет 11-м бло- требуется прочитать три блока — второй блок кос-
ком в индексе файла. Так как размер блока принят венности, первый блок косвенности и сам блок. На-
равным 1 кбайт, размер адреса — 32 бит; в блоке ко- конец, для чтения блока из сотого мегабайта
свенности можно хранить номера 256 блоков. Всего потребуется прочитать четыре блока — третий блок
266 блоков, или первые 266 кбайт файла. косвенности, второй блок косвенности, первый блок
Вообще в одном блоке косвенности может хра- косвенности и сам блок.
ниться информация о 256 кбайт файла. Для хране- Объём современных дисков составляет десятки
ния файла размером 2 Гбайт нам нужно 8 тыс. бло- гигабайт; если выделять один индекс на каждые
ков косвенности (2.220 блоков в списке/256 блоков 10 кбайт, нам понадобится 1 млн индексов, соответ-
в блоке косвенности = 8.210 блоков косвенности), ственно размер массива индексов составит 84 Мбайт,
что потребует 32 кбайт в индексе. Это меньше, чем или менее 1 % объёма диска, что немного.
8 Мбайт в случае хранения просто номеров блоков,
но всё ещё много, чтобы хранить все блоки косвен-
ности в каждом индексе.
Второй блок косвенности содержит номера пер-
вых блоков косвенности (которые уже содержат но-
мера блоков файла) и является 12-м блоком в индек-
се файла. Во втором блоке косвенности можно
хранить номера 256 первых блоков косвенности. Ито-
го, 10 + 256 + 2562 = 65 802 блока, или чуть боль-
ше 64 Мбайт файла. Для хранения 2 Гбайт нам по-
надобится 32 вторых блока косвенности (2.220 блоков
в списке/2562 блоков во втором блоке косвенности =
= 32 вторых блока косвенности), что потребует
128 байт в индексе. Третий блок косвенности содер-
жит номера вторых блоков косвенности. Он будет

284
Операционная система компьютера

Пусть этому имени соответствует Магнитный диск.


индекс номер 356;
7) прочитать индекс с номером
356, найдя блоки этого файла;
8) прочитать блоки требуемого
файла.
Если внимательно посмотреть на
этот алгоритм, можно заметить, что
для любого файла в файловой систе-
ме придётся читать с диска одни и те
же данные. Действительно, шаг перво-
го алгоритма придётся выполнять для
каждого файла. Файлы пользователя,
как правило, находятся только в при- ще не кэшируют операции записи,
надлежащем ему каталоге, например предпочитая работать пусть медленно,
«Мои документы», поэтому часто при- но зато надёжно. ОС UNIX традицион-
дётся выполнять шаг 2. Чтение с дис- но кэширует блоки при записи, одна-
ка достаточно медленная операция, ко через равные промежутки времени
поэтому закономерно возникает по- (как правило, через 30 с) принудитель-
требность ускорить поиск и чтение но записывает все блоки на диск. Более
часто используемых файлов. чем 30-летняя практика использования
Можно воспользоваться идеей кэ- данного алгоритма показала, что это
ширования данных и применить её приемлемо для большинства поль-
к файлам. В памяти отводят место под зователей.
часто используемые блоки файлов —
буферный кэш. Алгоритм работы с бу-
ферным кэшем (алгоритм вытеснения
блоков) очень похож на алгоритм рас- А ЕСЛИ ИХ МНОГО?
пределения памяти. Если алгоритм, ко-
торый уничтожает самую «старую» В современных ОС существует потребность работать с несколькими
страницу, применить к буферному кэ- файловыми системами одновременно. Например, на диске размеща-
шу, то будет выбрасываться самый ста- ют файловую систему UNIX или NTFS в случае ОС Windows, посколь-
рый блок. Более эффективное реше- ку эти системы специально созданы для эффективной работы с фай-
ние — выбрасывать из кэша блок, лами на дисках, или, как говорят, оптимизированы по быстродействию.
редко используемый. Буферизовать Для работы с CD ROM используют файловую систему ISO9660, поз-
блоки можно также и при их записи на воляющую наиболее рационально хранить файлы, т. е. она оптимизи-
диск. Операция записи медленнее, чем рована по пространству хранения. Дискеты, как правило, содержат
операция чтения. Это связано с особен- файловую систему FAT, которая использовалась в ОС MS DOS,
ностями оборудования. Во-первых, со- поскольку все попросту привыкли, что дискета содержит FAT. Кроме
временные диски сами кэшируют бло- того, существует файловая система NFS, разрешающая работать с дис-
ки, и чтение может происходить из ками других ЭВМ, подключёнными к локальной сети или доступными
кэша диска. Во-вторых, при чтении через Интернет.
с диска данные записываются в память, Файловые системы имеют различные соглашения о том, как име-
а при записи на диск — читаются из па- новать файлы, или, как говорят, различные пространства имён. У поль-
мяти, как ни странно, операция чтения зователя, естественно, есть желание работать с единым пространст-
памяти более медленная, чем операция вом имён, т. е. именовать файлы так, как он привык, не думая о типе
записи. Можно кэшировать и записи используемой файловой системы. Конечно, операционная система бе-
на диск. Однако здесь надо действовать рёт на себя работу по преобразованию имён и сведению их к едино-
осторожно: при кэшировании блоков, му виду. За выполнение преобразования имён отвечает специальная
записываемых на диск, велик риск их часть ОС — виртуальная файловая система. По существу, виртуаль-
потерять в случае сбоя ЭВМ. Они могут ная файловая система — это прослойка между ОС и алгоритмами, ра-
остаться в кэше и не записаться на диск. ботающими со структурой конкретной файловой системы. То есть вир-
Проблема заключается в том, что поль- туальная файловая система получает запросы от ОС для работы
зователь может резонно полагать, что с файлами (например, прочитать данные из файла или удалить файл),
его данные уже сохранены на диске, определяет, в какой файловой системе находится данный файл, и транс-
и очень удивится, когда их там не об- лирует запрос в операции этой файловой системы.
наружит. Поэтому некоторые ОС вооб-

285
Хранение и обработка информации

ПОДСИСТЕМА УПРАВЛЕНИЯ ВВОДОМ-ВЫВОДОМ


И ДРАЙВЕРЫ УСТРОЙСТВ

помимо эффективной работы с ними


требуются единые правила доступа
к ним, без специальных знаний об
особенностях каждого конкретного
устройства. Действительно, с точки
зрения пользователя, все типы клави-
атур ничем не отличаются друг от дру-
га. Вернее, он скорее скажет, что они
имеют различный дизайн корпуса
и различное число кнопок, а не раз-
личные типы подключения к ЭВМ
и различные правила общения с ними.
Например, клавиатура может подклю-
чаться к последовательному порту
ЭВМ, или к порту PS/2, или через шину
USB. Каждое из перечисленных типов
подключений имеет специфические
Основная задача подсистемы управ- для них правила взаимодействия, или,
ления вводом-выводом как части опе- как говорят, интерфейс с устройст-
рационной системы — обеспечение вом.
доступа к периферийным устройст- Для того чтобы сделать взаимодей-
вам, таким, как диски, клавиатура, ви- ствие с устройствами одинаковым,
деокарта, сетевая плата. Название «пе- в ОС определяют единые правила
риферийные устройства» возникло взаимодействия, а для каждого типа
из представления об ЭВМ как наборе устройства создают набор алгорит-
основных устройств: процессора, опе- мов, переводящих единые правила
ративной памяти и вспомогательных в специфические правила общения
устройств, выполняющих ввод или вы- с этим типом устройств, по сути
вод информации. Прилагательное «пе- управляющих данным устройством.
риферийное» в названии этих уст- Такой набор алгоритмов называется
ройств происходит от английского драйвером устройства, a правила ра-
peripheral — «второстепенный». Дру- боты с этими алгоритмами — интер-
гие общеупотребительные названия фейсом с драйвером.
периферийных устройств — «внеш- Понятно, что единый и одновре-
Обычные часы ние устройства» и «устройства ввода- менно эффективный интерфейс
с флэш-памятью вывода». со всеми драйверами для абсолютно
подключаются
к компьютеру Устройств ввода-вывода великое всех типов устройств изобрести
через USB. множество, и операционной системе невозможно. Поэтому существует не-
сколько типов правил общения меж-
ду драйверами и остальными частями
ОС (несколько типов интерфейсов
с драйвером) и соответственно не-
сколько типов драйверов (разные ин-
терфейсы — разные алгоритмы).
Обычно выделяют следующие типы:
• драйвер символьного устрой-
ства, например драйвер клавиатуры.
Основные операции для работы с та-
ким устройством — чтение и запись
последовательности байтов;
• драйвер блочного устройства,
например драйвер диска. Основные

286
Операционная система компьютера

операции для работы с таким устрой- CDROM, подключа-


ством — чтение и запись блоков, т. е. емый к компьютеру
через универсальный
массивов байтов фиксированной разъём USB.
длины;
• драйвер сетевого устройства,
например адаптера для входа в Интер-
нет. Основные операции для работы
с таким устройством — приём и от-
правка пакетов, т. е. массивов байтов
определённой структуры.
Как выглядит интерфейс с драйве-
ром, например с драйвером символь-
ного устройства? Прежде всего опе-
рационной системе необходимо
определить, присутствует ли устрой-
ство в ЭВМ. Соответственно у драйве-
ра должна быть подпрограмма, кото-
рая проверяет конфигурацию ЭВМ
и выдаёт ответ «да» или «нет»: мой_драйвер_читать(буфер) возвращает
количество прочитанных байтов
мой_драйвер_опросить() возвращает
да/нет Подпрограмма записи записыва-
ет указанное количество байтов в
Если устройство найдено, его не- устройство, в случае клавиатуры этой
обходимо проинициализировать, т. е. подпрограммы не будет.
запрограммировать так, чтобы оно
находилось в состоянии «выключе- мой_драйвер_записать(байты) возвраща-
но». В момент вызова функции ини- ет успех/неуспех
циализации операционная система
ещё не готова работать с устройст- Подпрограмма управления устрой-
вом; например, для клавиатуры это ством выполняет все остальные опе-
означает, что по нажатии клавиши рации. Например, у клавиатуры есть
она не должна посылать код клавиши световые индикаторы, которые мож-
в ЭВМ. но зажигать или выключать.

мой_драйвер_инициализировать() мой_драйвер_управление(команда, пара-


метры_команды)
Следующая подпрограмма, которая
будет вызвана операционной систе- Наконец, в момент завершения ра-
мой, — подпрограмма начала работы боты с устройством будет вызвана под-
с устройством. Вызывая эту под- программа, которая его выключит.
программу, операционная система
сообщает, что она готова работать мой_драйвер_закрыть(устройство)
с устройством. Например, готова при-
нимать символы от клавиатуры. Соот- Ещё у драйвера есть подпрограмма
ветственно подпрограмма начала ра- обработки прерывания; она обычно и
боты должна включить устройство. выполняет основную работу при воз-
никновении прерывания от устрой-
мой_драйвер_открыть(устройство) ства. Если клавиатура по нажатии
клавиши возбудит прерывание, под-
Теперь могут вызываться подпро- программа обработки драйвера кла-
граммы чтения, записи и управления. виатуры перенесёт код клавиши во
Подпрограмма чтения возвращает внутренний буфер символов драйве-
байты, выданные устройством к мо- ра, содержимое которого будет ско-
менту вызова подпрограммы. Если пировано подпрограммой чтения.
устройство ещё ничего не выдало,
то будет возвращён 0. мой_драйвер_прерывание()

287
Хранение и обработка информации

ПРИКЛАДНОЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС

С помощью прикладного программ- через прикладной программный


ного интерфейса определяют прави- интерфейс. Это очень важная веха
ла работы программиста с операци- в развитии операционных систем.
онной системой. В эти правила входят Фиксированный программный ин-
перечень доступных программисту терфейс одной операционной сис-
подпрограмм — системных вызовов, темы можно воспроизводить на раз-
описание правил вызова этих подпро- ных операционных системах для
грамм, т. е. имя подпрограммы, коли- разных ЭВМ. Для прикладных про-
чество её входных параметров и воз- грамм это означает возможность без
вращаемых значений, описание того, изменений выполняться на разных
что данная подпрограмма делает. ЭВМ, т. е. можно говорить о перено-
Прикладной программный интер- симости прикладных программ с
фейс в виде фиксированного, неиз- одной ЭВМ на другую. Иными сло-
меняемого набора правил работы вами, появилась возможность созда-
программ с операционной системой вать программы, которые не зависят
впервые возник в резидентных мони- от аппаратуры и операционной си-
торах как набор вспомогательных стемы.
подпрограмм ввода-вывода и управ- Переносимость (или мобиль-
ления. Действительно, пока програм- ность) прикладных программ —
мы содержали монитор внутри себя, основа концепции открытых
всегда существовала возможность за- систем. Под термином «система»
менить в момент разработки програм- здесь понимается не только опера-
мы одну подпрограмму ввода-вывода ционная система, но и аппаратура,
на другую, например более эффектив- и программы, которые применяют-
ную, с иным интерфейсом. В случае ся для автоматизации какой-либо
резидентного монитора вспомога- прикладной задачи. Операционная
тельные подпрограммы находятся вне система является одной из компонен-
программы пользователя и заменить тов этой информационной системы.
подпрограмму невозможно. Другими компонентами могут быть
Начиная с этого момента приклад- система управления базами дан-
ные программы содержат только ных — СУБД, графическая оболочка,
реализацию основного алгоритма, сетевые средства — механизмы, не-
обращаясь за вспомогательными ал- обходимые для приложений, но мо-
горитмами к операционной системе гут, вообще говоря, не предоставлять-
ся операционной системой.
Открытая система — это способ
построения информационной си-
стемы, при котором компоненты
системы взаимодействуют друг с дру-
гом через стандартные интерфейсы.
С точки зрения пользователя, откры-
тая система обязана соответствовать
набору открытых стандартов, опре-
деляющих интерфейсы, поддержи-
ваемые форматы данных и т. п., обес-
печивающих возможность перехода
от системы к системе.
Открытый стандарт — стандарт,
не зависящий от технологии, специ-
фического аппаратного и программ-
ного обеспечения или от продуктов
конкретного производителя. Откры-
тый стандарт одинаково доступен
и пользователям систем, и програм-

288
Операционная система компьютера

мистам, которые разрабатывают си-


стемы, и производителям аппарату-
ры. Открытый стандарт находится под
контролем общественности, и поэто-
му все, кого он затрагивает, могут уча-
ствовать в его разработке.
Считается, что открытая система
обладает следующими свойствами:
• переносимость (мобильность) —
возможность переноса программ
и данных при замене аппаратуры
и возможность работы с ними поль-
зователей без их переподготовки при
изменениях в системе;
• расширяемость (масштабиру-
емость) — возможность добавления
новых функций в систему или изме-
нения некоторых уже имеющихся Standardization — ISO) и, таким обра-
при неизменных остальных частях зом, стал международным.
системы; Наиболее интересна первая часть
• интероперабельность — этот стандарта, определяющая приклад-
громоздкий термин означает способ- ной программный интерфейс опера-
ность к взаимодействию с другими си- ционной системы. В 1996 г. очеред-
стемами; ная редакция первой части стандарта
• дружественность к пользова- была выпущена одновременно Аме-
телю. риканским национальным институ-
Конечно, система, обладающая та- том стандартов (American National
кими свойствами, выглядит очень Standards Institute — ANSI) совместно
привлекательно как для пользовате- с IEEE и ISO совместно с Междуна-
лей, так и для программистов. Без- родной электротехнической комис-
условно, этими свойствами, взятыми сией (International Electrotechnical
по отдельности, обладали програм- Commission — IEC) под названия-
мы, эксплуатировавшиеся задолго до ми ANSI/IEEE Std 1003.1-1996 и
появления концепции открытых си- ISO/IEC 9945-1:1996 соответственно.
стем. Однако в открытой системе, во- Одна из «свежих» редакций стандар-
первых, эти свойства рассматривают- та была опубликована IEEE в 2001 г.
ся как взаимосвязанные, а, во-вторых, под названием IEEE Std 1003.1-2001.
их реализация гарантируется выбран- Стандарт POSIX определяет при-
ным набором открытых стандартов. кладной интерфейс, характерный для
Для операционной системы, как ОС UNIX. Даже сокращение POSIX
компонента информационной систе- отражает этот факт: разработчики
мы, общепризнанным международ- ОС UNIX в своё время требовали, что-
ным стандартом является POSIX. Пол- бы операционные системы, создан-
ное наименование — ISO/IEC 9945 ные на базе их исходных текстов, име-
Information Technology — Portable ли в названии окончание IX. Поэтому
Operating System Interface, но в лите- часто UNIX употребляют как синоним
ратуре часто используется сокращён- термина «открытая система». В дейст-
ное название POSIX. Разработка стан- вительности, во-первых, не все вер-
дарта началась в 1985 г. в Институте сии ОС UNIX удовлетворяют этому
инженеров по электротехнике и эле- стандарту, во-вторых, ряд операцион-
ктронике США (Institute of Electrical ных систем, никак не связанных с
and Electronics Engineers, IEEE), и стан- ОС UNIX, поддерживает прикладной
дарт был известен как IEEE Std 1003. интерфейс POSIX. Например, Win-
Позднее, в начале 90-х гг. XX в., стан- dows NT и её последующие модифи-
дарт был опубликован и Международ- кации Windows 2000 и Windows XP,
ной организацией по стандартиза- Open VMS, операционная система ре-
ции (International Organization for ального времени VxWorks содержат

289
Хранение и обработка информации

наряду со своим собственным приклад-


ным интерфейсом интерфейс POSIX.
Хотя POSIX и является междуна-
родным стандартом, выпущенным
авторитетными организациями, от-
ветственными за стандартизацию,
для построения полноценной откры-
той информационной системы его
недостаточно. Поэтому наряду c
POSIX получили распространение
и другие стандарты. Как правило, та-
кие стандарты включают в себя POSIX
и добавляют ряд собственных специ-
фикаций. Например, широко извест-
ный консорциум The Open Group,
объединяющий ведущие компании
рынка информационных техноло-
гий, создал спецификацию UNIX98,
в которую помимо POSIX входят
стандарты на графический интер-
фейс, сетевые средства, язык Java
и сервисы Интернета.

Стандартная оконная
система ОС Linux.
ОС UNIX

Сегодня UNIX по праву считается эта- будущее». Можно сказать, что удалось
лоном в мире операционных систем. выполнить лишь половину поставлен-
На протяжении 30 лет любое дости- ной цели: ОС Multics действительно
жение в области операционных си- была надёжной и безотказной систе-
стем, вычислительной техники и ин- мой, в компании Ford она проработа-
формационных технологий так или ла с 1974 по 1997 г.
иначе связано с ОС UNIX. В чём заклю- В апреле 1969 г., за несколько ме-
чается такой успех? Что позволяет сяцев до появления первой версии
UNIX не только оставаться на плаву, ОС Multics, руководство компании
но и быть лидером в ряду универсаль- AT&T решило выйти из проекта и, бо-
ных операционных систем? лее того, закрыло все исследования
Созданию ОС UNIX предшество- в области построения операционных
вал проект вычислительной системы систем. В Bell Telephone Laboratories
Multics (1964 г.), объединивший раз- эта новость вызвала разочарование,
работчиков из Массачусетсского тех- ведь разработчики нуждались в опе-
нологического института, компании рационной системе, которая позво-
General Electric и Bell Telephone ляла бы не только эффективно решать
Laboratories — научно-исследователь- многие задачи, но и была бы центром,
ского центра компании AT&T. Цель вокруг которого формируется сооб-
проекта — операционная система щество пользователей. Опыт эксплуа-
разделения времени, которая могла тации операционных систем разделе-
бы не только работать непрерывно ния времени показал, что совместная
и безотказно 7 дней в неделю, 24 ч работа нескольких пользователей —
в сутки, предоставляя максимальный это не просто интерактивная работа,
спектр возможностей, но и, по сло- а скорее питательная среда для обме-
вам разработчиков, «удовлетворить на идеями — основы научной деятель-
почти все требования, выдвигаемые ности человека.
к большой компьютерной системе Группа специалистов из Bell Tele-
на сегодняшний день и ближайшее phone Laboratories: Кен Томпсон,

290
Операционная система компьютера

Деннис Ритчи, Джо Оссанна, Руд Ке- шла первая версия операционной си-
недей и Дуг Мак-Илрой — продолжи- стемы на ЭВМ PDP-7. Чуть позже,
ла разработку отдельных частей в 1970 г., Брайан Керниган предло-
экспериментальной операционной жил имя для этой ОС — UNICX (англ.
системы, в том числе и файловую Uniplexed Information and Computing
систему. Service — «Простая информацион-
В течение 1969 г. Кен Томпсон при- новычислительная служба»), это ан-
думал игру «Космическое путешест- тоним Multics (англ. Multiplexed In-
вие», которая по существу представля- formation and Computing Service —
ла собой программную модель физики «Сложная информационно-вычис-
движения космических тел в Солнеч- лительная служба»). Вскоре название
ной системе. Играть в неё на лабо- редуцировалось до UNIX.
раторной ЭВМ было весьма расто- Ключевой момент в истории
чительно: расход вычислительных UNIX — изобретение Дугом Мак-Ил-
ресурсов, потребляемых игрой, состав- роем и Рудом Кенедеем в 1973 г. про- Кен Томпсон.
лял 75 долларов в час. К счастью, Томп- граммных каналов (связывающих
сон нашёл подходящую вычислитель- поток вывода одной программы с по-
ную аппаратуру — ЭВМ PDP-7 током ввода другой, чтобы получить
с графическим терминалом. PDP-7 вы- конвейер команд), после чего эта ОС
глядел карманным компьютером по и стала ОС UNIX в современном по-
сравнению с сервером. В ходе пере- нимании.
носа игры на PDP-7 была создана так Для иллюстрации работы про-
называемая кросс-технология, когда граммного канала можно рассмотреть
программы для одной ЭВМ пишутся следующий пример. Есть книга, кото-
с использованием другой ЭВМ. рая состоит из глав, каждая глава рас-
Для операционных систем кросс- положена в отдельном файле. Нужно
технология — необходимый шаг. В на- напечатать книгу с нумерацией стра-
чале разработки требуется создать ниц. В UNIX это может выглядеть так:
исполняемый файл операционной си-
стемы (образ ОС), которой ещё не су- cat глава1 глава 2 глава3 глава4
ществует. Это напоминает известный глава5 | mpage -H | lpr
вопрос: «Что появилось раньше: кури-
ца или яйцо?». Решение состоит в раз- Здесь cat — программа, которая чи-
работке инструментальных средств, тает файлы глава1 — глава5 и записы-
способных создавать исполняемые вает их в свой поток вывода; mpage —
файлы на другой ЭВМ. программа, которая форматирует Деннис Ритчи.
Для «Космического путешествия» текст, разбивает его на страницы и, до-
понадобилась специальная среда ис- бавляя номер страницы, записывает
полнения. Здесь и пригодилась фай- всё это в свой поток вывода; lpr — вы-
ловая система Bell Telephone Labo- вод на печать потока ввода. Знак
ratories. Дополненная простейшей « | » связывает поток вывода с потоком
подсистемой управления процессами, ввода через программный канал.
она сформировала простейшую опе- С появлением каналов ОС UNIX
рационную систему разделения вре- приобрела новое качество: из опера-
мени. Эта ОС была многопользова- ционной системы она превратилась
тельской (к PDP-7 подключались два в набор инструментальных средств
терминала!), но каждый пользователь программиста, значительно облегча-
мог одновременно запустить только ющий программирование приклад-
одну программу. Для системы были со- ных задач. UNIX предложила новый
зданы небольшой набор пользователь- подход в использовании вычисли-
ских утилит, расчитанных на работу тельной техники: комбинирование
с файлами (текстовый редактор, ути- универсальных программ вместо раз-
литы копирования, удаления, печати работки единой самодостаточной си-
файлов), и командный интерпрета- стемы специального назначения.
тор — программа, с помощью которой Изобретение программных кана-
пользователи запускали все остальные лов — такое же значимое событие,
программы. Именно в таком виде вы- как и изобретение первого спутника Дуг Мак-Илрой.

291
Хранение и обработка информации

связи, кнопочного телефонного аппа- В январе 1979 г. вышла очередная,


рата, мобильной связи, оптоволокон- 7-я редакция UNIX с лицензией, запре-
ных линий связи. Все эти изобретения щающей использование исходных
упоминаются на выставке достижений текстов в качестве учебного пособия.
в области телекоммуникаций, распо- Компьютерный мир вступал в эру ра-
ложенной в холле здания лаборато- бочих станций, вместо шкафа высо-
рий Белла (г. Мюррей-Хилл, штат Нью- той 2 м использовались недорогие
Джерси, США). ЭВМ с процессором в виде кристалла.
В 1973 г. ОС UNIX была переписа- Соответственно производителям тре-
на на язык программирования Си, бовалась мобильная операционная си-
изобретённый Керниганом и Ритчи стема, чтобы минимизировать затра-
специально для UNIX. Это был ещё ты на производство программного
один революционный шаг: языки та- обеспечения для новой аппаратуры.
кого высокого уровня при создании АТ&T продолжала выпускать новые
Билл Джой. операционных систем не использо- версии UNIX уже на коммерческой
вались. основе (самые популярные UNIX
В октябре 1973 г. Томпсон и Ритчи System III — 1981 г. и UNIX System III —
представили доклад на симпозиуме 1983 г.), но имя UNIX перестало ассо-
по принципам построения операци- циироваться с Bell Telephone Labora-
онных систем. Доклад в июле 1974 г. tories, авторами UNIX стали универ-
был опубликован в журнале «Commu- ситеты.
nications of the ACM». В это время ком- Наиболее широкую известность по-
пании AT&T запрещалось продавать лучила группа разработчиков из Ка-
программное обеспечение, так как лифорнийского университета г. Бер-
АТ&T являлась монополистом на кли, выпускавшая свой вариант UNIX,
рынке телефонных услуг, и по зако- известный как BSD (Berkeley Software
нам федерального правительства Distribution).
США компания не могла вести иную В 1976 г. выпускник Беркли Кен
коммерческую деятельность. Поэто- Томпсон провёл свой академический
му UNIX вместе с исходными текста- отпуск, работая преподавателем уни-
ми мог получить любой желающий. верситета. Он установил там Исследо-
Это и определило последующий вательский UNIX и написал компиля-
успех UNIX: при наличии исходных тор для языка Pascal. В 1977 г. студент
текстов программное обеспечение Билл Джой собрал коллекцию про-
легко настроить под те или иные по- граммного обеспечения и выпустил
требности, добавив при необходимо- первую версию BSD.
сти нужные компоненты или испра- Популярность BSD UNIX обуслов-
вив существующие ошибки. лена тремя факторами:
ОС UNIX заинтересовала универ- • демократичная лицензия: BSD
ситеты, где стали использовать её ис- UNIX мог получить любой желающий
ходные тексты в процессе обучения вместе с исходными текстами;
программированию. Возникло сооб- • возможность работы в сети
щество пользователей UNIX, о чём и («стандартная система Интернет» —
мечтали её разработчики. это немаловажная характеристика);
UNIX стала мобильной операци- • удачный выбор платформы:
онной системой в 1978 г. Тогда же VAX — «ЭВМ первой половины
в австралийском университете Вол- 80-х гг.». Помимо всего перечислен-
лонгонга программисты Джюрис ного, BSD UNIX — это хорошая сис-
Рейнфельдс и Ричард Миллер осу- тема, её файловая система и подсис-
ществили перенос UNIX на ЭВМ тема управления памятью долгое
Interdata 7/32. Чуть позже в Принстон- время оставались самыми быстрыми
ском университете Том Лайон закон- в мире UNIX.
чил перенос UNIX на ЭВМ IBM 360, В 1982 г. Билл Джой ушёл из Бер-
а Деннис Ритчи и Стив Джонсон вы- кли, основав компанию SUN Micro-
полнили перенос UNIX на ЭВМ systems. Эта компания до настоящего
Interdata 8/32, доработав для этого времени выпускает рабочие станции
язык Си. и серверы, первоначально предназ-

292
Операционная система компьютера

наченные для работы под управлени- версии 0.01 был выложен для свобод-
ем UNIX (в версии от SUN UNIX назы- ного копирования в Интернете.
валась SunOS, а потом была переиме- Стремительному развитию про-
нована в Solaris). Ориентация на UNIX екта Linux способствовали два фак-
позволила продукции SUN лидиро- тора. Во-первых, в начале 90-х гг. уже
вать во второй половине 80-х гг. До- не существовало проектов свободно-
стижение SUN в области UNIX — со- распространяемых операционных
здание сетевой файловой системы систем, которые находились бы в
NFS, которая разрешает работать начальной стадии развития. Следо-
с файловыми системами удалённых вательно, войти в группу разработ-
ЭВМ, объединённых сетью. чиков и принять участие в таких
Следующий этап развития UNIX проектах было довольно сложно: тре-
связан с Linux, который придумал бовалось обладать запасом знаний Линус Торвальдс.
студент второго курса отделения вы- о конкретных деталях той или иной
числительной техники факультета операционной системы. Linux же бы-
естественных наук Университета Хель- ла небольшой операционной систе-
синки Линус Торвальдс. Во время учё- мой и идеальным полигоном для ис-
бы он изучал курс по теории операци- пытаний новых идей. Во-вторых,
онных систем, в основе которого была новые версии ОС Linux выпускались
ОС Minix — UNIX-подобная ОС, со- очень быстро, изменения между вер-
зданная знаменитым специалистом сиями были небольшими, что позво-
в области операционных систем Эн- ляло легко находить и устранять
дрю Таненбаумом специально для ошибки в коде. Рекордной можно
учебных целей. Поначалу Торвальдс считать серию ядер Linux 2.1, в рам-
хотел, чтобы система была сделана не- ках которой было выпущено чуть ме-
множко лучше, чем Minix, и не претен- нее 150 версий.
довал на что-то серьёзное — это было Сейчас Linux — это система мил-
просто хобби. В сентябре 1991 г. Linux лионов пользователей. Эндрю Таненбаум.

293
МУЛЬТИМЕДИА
ПЕРЕХОД К ЦИФРОВОМУ ПРЕДСТАВЛЕНИЮ
ИНФОРМАЦИИ

Информационный кризис XX в. по- аудио, видео, текст и даже произведе-


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

294
Мультимедиа

ное решение. Чаще цифровое пред-


ставление иероглифических текстов
Иногда приходится слышать о механичности, бездушности циф-
основывается на фонетическом прин-
рового звука. В современных аудиоустройствах ламповые уси-
ципе.
лители сигнала с чисто аналоговыми характеристиками замене-
Ввод текста в компьютер посред-
ны на более дешёвые и экономичные, но и более «дискретные»
ством клавиатуры по скорости и
транзисторы. Вероятно, эта «правильность» и может обусловли-
удобству (текст сразу представлен в
вать подобное восприятие оцифрованного звука. Любители ка-
цифровой форме) часто превосхо-
чественного натурального (high-end) звука продолжают пользо-
дит обычное письмо. Однако столь
ваться дорогими ламповыми усилителями и виниловыми
современный метод ввода текста не-
пластинками.
приемлем, если текст существует в
напечатанном или рукописном ви-
де. Во-первых, неизбежны ошибки,
во-вторых, просто нецелесообразно Звуки представляют собой большое
так непроизводительно использовать число простейших синусоидальных
человеческий труд. Подобные текс- колебаний разной частоты. Человек в В 1992 г. фирма Sony
ты могут быть введены с помощью среднем воспринимает звук от 50 Гц представила новый
сканера, считывающего текст как гра- до 18 кГц. АудиоCD записываются с ча- носитель записи зву-
фическую информацию, картинку. стотой дискретизации 44,1 кГц 16 бит ка мини-диск (MD).
Специальная программа распозна- стерео. Это значит, что для каждого из
вания переводит графику в тексто- двух стереоканалов амплитуда сигна-
вый документ. Задача распознавания ла замеряется 44,1 тыс. раз в секунду,
образов ещё далека от совершенст- для хранения её цифрового представ-
ва, и плохой почерк до сих пор оста- ления используется 16 бит. При такой
ётся загадкой для компьютера. дискретизации гармонические коле-
Современные системы обработки бания с частотой, большей 22,05 кГц,
текстов помимо ввода и редактиро- отсекаются при записи, что вообще-
вания обладают такими возможнос- то не страшно, поскольку даже эта гра-
тями, о каких создатели первых тек- ница практически равна границе вос-
стовых редакторов лишь мечтали. приятия человека. Кодирование с
Перечислим некоторые из них: авто- использованием психоакустических
матическая проверка орфографии в особенностей восприятия звука поз-
процессе набора, интеллектуальная воляет ещё сильнее уплотнить звук на
вёрстка текста, создание абсолютно компакт-диске (примерно в 5—7 раз),
новых, не имеющих «бумажных» ана- сделав эти потери незаметными для
логов гипертекстовых и мультиме- человека.
дийных документов, содержащих не Цифровая обработка звука, так же
только текст, но также звуковое со- как и текста, применяется практиче-
провождение и анимацию. Всё это ски на каждом шагу. Большинство
стало осуществимо благодаря пере-
воду текстовой информации в циф-
ровую форму.

АУДИОИНФОРМАЦИЯ
Компакт-диск, или DVD-диск, может
хранить информацию о звуке, изоб-
ражении, письме в виде миллиардов
двоичных нулей и единиц. Долговеч-
ность лазерного диска (сотни лет) во
многом объясняется самими прин-
ципами цифровой технологии. В от-
личие от виниловой пластинки ла-
зерный диск не боится пыли, а мелкие
царапины не ухудшают качества вос-
произведения.

295
Хранение и обработка информации

ИЗОБРАЖЕНИЕ
Если вы не можете ра- Для ввода изображений с фотографий
зобрать собственный или гравюр можно использовать всё
почерк, но набираете те же сканеры, так как они позволяют
текст на компьютере вводить их с очень хорошим разреше-
со скоростью свыше нием. Уже нет смысла сначала делать
70 слов в минуту, то фотографии обычным фотоаппара-
вы, скорее всего, не том, а потом сканировать отпечатан-
гений, а просто со- ное изображение или слайд. Совре-
временный человек... менные цифровые фотоаппараты
не уступают по качеству снимков сво-
им аналоговым собратьям. То же от-
носится и к цифровому видео.
Сложной пока остаётся проблема
представления пространственных
объектов (однако подробные объём-
ные фотографии уже возможно со-
Томограф. здавать). Существует два основных
способа такого представления — за-
музыкальных центров имеют встро- дание сетки точек на поверхности
енный цифровой процессор, пред- рассматриваемого объекта и прибли-
ставляющий собой особую микросхе- жение объекта различными геомет-
му для обработки звуковых сигналов рическими фигурами, имеющими
в цифровой форме. Современные строгое математическое представле-
DVD-проигрыватели и видеомагни- ние. Первый способ применяется при
тофоны также имеют встроенные описании сложных объектов, таких,
процессоры для обработки звука, по как скульптура или сам человек. Вто-
качеству не уступающие Dolby АСЗ- рой способ широко используется в
системам, которые устанавливают в системах автоматического проекти-
кинотеатрах. На цифровую запись и рования (САПР), в станках с чис-
обработку звука перешли многие ра- ловым программным управлением
диостанции и телестудии. Даже дома (ЧПУ) для производства необходи-
записи на MD (мини-диски) часто мых деталей.
Оборудование для производят не старым, аналоговым, Медики на основе серии парал-
создания объёмной способом (с потерей качества при пе- лельных снимков, получаемых на спе-
фотографии посту- резаписи), а цифровым (точная ко- циальном приборе — томографе,
пило в продажу уже пия исходной записи). строят трёхмерное изображение ис-
в 2002 г. Ещё одним направлением посто- следуемых органов и частей тела че-
янных исследований является распо- ловека. Без компьютерной обработки
знавание голоса, чтобы использовать таких изображений нельзя проводить
для ввода текста ЭВМ. современные операции с использо-
ванием лазеров, например удаление
внутренних опухолей без разрезов
или повреждения соседних тканей.
Компьютер способен не только видо-
изменять уже существующую инфор-
мацию, но и создавать новую.
Обработка графики и видео значи-
тельно облегчается при использова-
нии цифровой информации. Профес-
сиональные графические редакторы,
такие, как Adobe Photoshop или Corel
Draw, предоставляют большой выбор
различных эффектов, цифровых филь-
тров, настроек в домашних условиях.
А ведь раньше для этого требовалась

296
Мультимедиа

целая фотолаборатория со сложным


и дорогим оборудованием.
Немалую роль играет цифровая
технология в кино. Речь здесь идёт да-
же не об удобстве цифрового нели-
нейного монтажа. Фильм «Звёздные
войны. Эпизод I» был частично снят
цифровой видеокамерой. Режиссёр
фильма Джордж Лукас справедливо ут-
верждал, что никто не сможет распоз-
нать этот цифровой кусок. А следую-
щий фильм — «Звёздные войны. Атака
клонов» — стал одним из первых филь- фектов упростился, и изображение,
мов с использованием только циф- сделанное с помощью компьютера,
ровых технологий. Процесс спецэф- ничем не отличается от реального.

ВЕКТОРНАЯ И РАСТРОВАЯ ГРАФИКА

Айвен Сазерленд, пионер в приме- сив»). Видеоадаптеры, платы осуще-


нении компьютера для построения ствляющие преобразование инфор-
изображений, как-то сказал: «Дисплей, мации в изображении на экране, стали Создание незатей-
подключённый к ЭВМ, представляет- использовать более высокое разреше- ливых рисунков на
ся мне окном в Алисину страну чудес... ние (640 × 480 точек) и бо′ льшую глу- обычных печатающих
С помощью дисплея я сажал самолёт бину представления цвета на монито- устройствах относит-
на палубу авианосца, следил за движе- ре компьютера (256 цветов вместо 16). ся ещё к первым го-
нием элементарной частицы в потен- Появилась возможность видеть на эк- дам появления ЭВМ.
циальной яме, летал на ракете с око- ране не только стилизованные кар- В 1950 г. в Массачу-
лосветовой скоростью и наблюдал за тинки низкого мультипликационно- сетсском технологиче-
таинствами внутренней жизни вычис- го качества, но и фотографии. Белая ском институте ком-
лительной машины». мышка на цветном экране выглядела пьютер Whirlwind был
В 80-х гг. рынок персональных ком- как живая. оборудован дисплея-
пьютеров был фактически захвачен Экран персонального компьютера ми на электронно-лу-
клонами компьютеров IBM PC. Вехой представлял собой растр точек, или чевых трубках, поз-
в развитии самих IBM PC явился раз- пикселей (от англ. picture element). воляющих выводить
работанный в 1987 г. стандарт VGA Стандарт VGA комплектовался па- изображения.
(англ. Video Graphics Array — дословно мятью 256 кбайт, где поэлементно
«видеографическая матрица» или «мас- хранились картинки, образованные

Растровый
и векторный цветок.

297
Хранение и обработка информации

в компьютер все движения руки. Тог-


да законченный рисунок можно за-
Разработанный в 70-х гг. в исследовательском центре фирмы
помнить (и потом нарисовать) не
Xerox многооконный интерфейс использовался как на компью-
только как набор точек (растр), но и
терах этой фирмы, так и на персональных ЭВМ Lisa фирмы Ap-
как последовательность движений ру-
ple Computer, Inc. Интерфейс требовал одновременного распо-
ки художника. Такой метод представ-
ложения на экране монитора графики и текста. Новые системы
ления графической информации на-
были построены по принципу WYSIWYG (англ. What You See Is
зывают векторным. Рисунок задаётся
What You Get — «Что вы видите, то и имеете»), в соответствии с
векторами, указывающими координа-
которым изображение на экране должно быть как можно более
ты начала отрезка и относительное
похожим на печатный вариант.
смещение. Если предположить, что
координаты отрезков двухбайтовые,
то для хранения треугольника в памя-
ти потребуется всего 2 × 2+2 × 3 × 2 =
= 16 байт (координаты начальной точ-
Луч в электронно-лучевой трубке попадает на экран, покрытый ки и трёх векторов).
люминофором. Он выделяет лучистую энергию (интенсивность
света зависит от кинетической энергии электронов). Поскольку
свет излучается люминофором лишь в течение нескольких мил- ВЕКТОРНЫЙ И РАСТРОВЫЙ
лисекунд, всё изображение необходимо регенерировать (возоб-
новлять) с частотой около 30 раз в секунду, а иногда и чаще. ДИСПЛЕЙ. СХЕМЫ

В векторном дисплее электронный


горизонтальными строками развёрт- луч способен непрерывно проходить
ки на дисплее (экране кинескопа). между любыми двумя точками, порож-
Для увеличения растра, например дая при этом чёткую прямую линию.
до 800 × 600 точек (800 точек по гори- Буквы в таких дисплеях состоят из ко-
зонтали и 600 — по вертикали), при ротких векторов. Дисплей также уме-
сохранении глубины цвета 8 бит на
точку (256 цветов) требовалось уве-
личить объём памяти в два раза
(800 × 600 = 480 000 точек, т. е. около
480 кбайт). При растрах 1024 × 768,
1280 × 1024, 1600 × 1200 памяти надо
ещё больше. 256 цветов недостаточно
для получения полноценной картин-
ки, поэтому глубина цвета была уве-
личена: 16 бит на точку — high color
(англ. «лучший цвет»), 24 бит на точ-
ку — true color (англ. «настоящий, ре-
альный цвет»). Последний назван так
потому, что изображение с исполь-
зованием подобной глубины цвета
(16,7 млн цветов) практически иде-
ально для глаза.
Легко подсчитать, что если на каж-
дую точку приходится по 24 бит (т. е.
3 байт), то для хранения картинки
800 × 600 точек потребуется около
1,4 Мбайт (800 × 600 × 3 = 1 440 000 байт).
Это неэкономно, если фигура неболь-
шая, например треугольник. Но суще-
ствуют и другие способы хранения
графической информации.
Пусть художник рисует каранда-
шом на бумаге и на запястье у него
специальное устройство, передающее

298
Мультимедиа

ет рисовать различные простейшие


фигуры, например дуги и линии, ко-
торые задаются двухмерными коор-
динатами. Запоминание позиций для
последующей перерисовки — дело са-
мого дисплея.
Векторная графика сначала чрез-
вычайно широко применялась в дис-
плеях, потому что требовала малых
объёмов памяти. Основной её недо-
статок — невозможность изобразить
сплошные области, поскольку объ-
екты (как плоские, так и трёхмерные)
представлены в виде «проволочных»
каркасов. Если на экране слишком
сложная векторная картинка, состо-
ящая из большого числа элементар-
ных фигур, то она не будет успевать
обновляться, и изображение начнёт ФОРМАТЫ Жорж Сёра. Воскре-
мерцать. сенье после полудня
В растровых дисплеях, в отличие
ГРАФИЧЕСКИХ ФАЙЛОВ на острове Гранд-Жатт.
1884—1886 гг.
от векторных, луч пробегает весь кадр Институт искусства.
(как в телевизоре), при этом управля- Для того чтобы экспортировать или Чикаго.
ют не отклонением, а только интен- сохранить изображение в файле, на
сивностью лучей в цветном дисплее. диске были придуманы форматы фай-
Одно из достоинств растровых дис- лов (методы, описывающие кодиро-
плеев заключается в том, что представ- вание изображений). Наиболее попу- Пуантилизм (от фр.
ление картинки не зависит от её слож- лярные из них — BMP, PCX, GIF, PNG, pointiller — «писать
ности (т. е. числа составляющих её TIFF и хорошо знакомый из цифровой точками») придуман
объектов), поэтому проблемы мерца- фотографии JPEG. в XIX в. французским
ния не существует. художником-неоим-
В то время как на векторном дис- BMP (англ. Bit MaP — «битовая кар- прессионистом Жор-
плее луч вычерчивается так же, как и та») — «родной» формат графических жем Сёра.
при работе с линейкой и рейсшиной, файлов для ОС Windows компании
работа растрового дисплея основана Microsoft, поскольку наиболее точно
на электронной аналогии пуантилиз- соответствует внутреннему формату
ма (манера живописи мазками в виде системы.
точек). Формат изображения так называ-
При этом методе не только могут емого растрового массива зависит от Появление Windows
оказаться заметными отдельные пик- количества битов, используемых для 95 и 98 привнесло в
сели, но и все не вертикальные или не кодирования цвета каждого пикселя формат РСХ некото-
горизонтальные линии имеют ступен- (1, 4, 8, 16 или 24 бит на пиксель). На- рые изменения: число
чатые края. Подобный эффект «зазу- пример, при изображении с 256 цве- битов на точку может
бренности» сводится к минимуму при тами под каждый пиксель отводится достигать 32, а размер
увеличении разрешающей способно- 1 байт (8 бит), который содержит но- изображения с 216 бит
сти, т. е. когда при том же размере эк- мер цвета в таблице цветов файла. вырос до 231 бит, т. е.
рана возрастает количество элемен- Таким образом, если в цветовой мо- до 2 Гбит. Размер
тов растра. Векторные картинки легко дели RGB в таблице цветов файла BMP можно задавать отри-
масштабируются, но этого нетрудно хранится R/G/B =255/0/0, то значе- цательным числом,
добиться и на растровом дисплее, при нию пикселя 0 (в растровом массиве) указывающим на «на-
использовании специального про- будет поставлен в соответствие ярко- правление» прорисов-
граммного обеспечения. красный цвет. ки изображения (с ле-
К 90-м гг. XX столетия растровые Таблица цветов, или палитра, вого верхнего угла, а
дисплеи (и персональные ЭВМ) прак- представляет собой массив, где индекс не с левого нижнего).
тически вытеснили с рынка вычисли- массива — это номер цвета палитры,
тельной техники векторных конку- а его содержимое — тройки чисел,
рентов. описывающие цвет по яркости трёх

299
Хранение и обработка информации

основных компонентов: R/G/B (крас-


ного, зелёного, синего).
Можно представить себе графический файл как поток грузо- Файлы BMP с глубиной представ-
виков, везущих бочки (байты) на склад (видеоплату). При по- ления цвета 16 и 24 бит на пиксель
ступлении на склад содержимое бочки делят на части и рас- не имеют таблицы цветов. В них зна-
ставляют на определённые полки. Уходит немало времени, ведь чения пикселей растрового массива
надо открыть каждую бочку, достать необходимую часть, пе- непосредственно задают значения
реложить на полку и т. д. А если заранее распределить её по цветов RGB. Пиксели в формате изоб-
бочкам так, чтобы содержимое одной бочки соответствовало ражения хранятся в порядке слева на-
отдельной полке, время на работу сократится. Это и есть аппа- право, начиная, как правило, с ниж-
ратная зависимость. ней строки изображения. Если число
байтов в строке развёртки нечётное,
то к такой строке добавляется ещё
один байт, чтобы «выровнять» дан-
ные растрового массива.
РАЗРЕШЕНИЕ
PCX — стандарт, разработанный фир-
Разрешение важно при печати, когда требуется сохранить реальный мой ZSoft, используемый для про-
размер оригинала. Когда сканируют фотографию, происходит пре- граммы PC Paintbrush в ОС MS DOS
образование изображения в дискретную (цифровую) форму. Изоб- компании Microsoft. Но PCX не стал
ражение получает определённый размер в пикселях, и, чтобы при так же популярен, как BMP. Тем не ме-
этом не потерялась информация о реальном исходном размере фо- нее PCХ распространён на PC-техни-
тографии, требуется хранить разрешение, указывающее, сколько то- ке. Специализированные графиче-
чек изображения помещалось в 1 см или в дюйме. ские редакторы — Corel Draw, Ulead
Разрешение (как горизонтальное, так и вертикальное) вычисля- PhotoExpress, Adobe PhotoShop — под-
ется делением получившегося размера в пикселях на соответству- держивают данный формат.
ющий размер исходного изображения. PCX — это аппаратно-зависимый
Если изображение имеет 800 точек по горизонтали, а длина ис- формат. Он предназначался для того,
ходной фотографии — 12 см, то при сканировании используется раз- чтобы информация в файле храни-
решение 800/12 = 67 точек в 1 см. лась, так же как и в видеоплате. Рань-
Чем выше разрешение, тем качественнее получится изображе- ше на IBM PC существовали 16-цвет-
ние при печати, но тем больше будет растровый массив и соответ- ные EGA-адаптеры, память которых
ственно файл займёт больше места. делилась на непрерывные куски-пло-
скости (планы). Составляющие цвета′
пикселя (как правило, 1 бит) находи-
лись в соответствующих местах пла-
на. Чтобы поставить точку определён-
ного цвета, требовалось в четырёх
местах исправить по 1 бит. Получа-
лось, что цветная картинка как бы
состояла из четырёх монохромных
(не путать с чёрно-белыми!) планов.
Для поддержания совместимости со
старыми программами современные
видеоадаптеры умеют работать в по-
добных EGA-режимах.
При true color в PCX всегда есть три
плана, а один план бывает только при
8-битном изображении (именно то-
гда в конце файла находится палитра).
Формат PCX допускает хранение в рас-
тровом массиве изображения больше-
го, чем картинка, видимая на экране.
Левая верхняя граница задаёт отступ
от верхнего угла изображения, а раз-
ница между границами указывает раз-
мер видимой части. Это было приду-

300
Мультимедиа

мано для использования данного фор-


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

GIF (англ. Graphics Interchange For-


mat — «формат для обмена графи-
кой») первоначально предназначал-
ся для сети СompuServe. Формат GIF
устроен иначе, чем PCX и BMP. В GIF
графическая информация состоит из Выделено четыре типа информа-
блоков, которые следуют один за дру- ционных блоков.
гим (нельзя сказать, где начинается • Управление графикой использу- Как BMP и PCX, GIF
17-й блок, пока не прочитан 16-й). ется для создания движущихся карти- использует специаль-
Поэтому говорят, что информация нок (англ. animated GIF). ный алгоритм сжатия
хранится в виде потока данных (при • Блок текста позволяет распола- данных, чтобы объём
чтении файла информация льётся не- гать текст поверх изображения. Это дисковой памяти при
прерывно, как вода). особенно удобно, когда нужно поме- хранении стал мень-
Формат GIF работает не более чем нять текст, оставив неизменным фо- ше. Изображения хра-
с 256 цветами. Зато каждый файл мо- новое изображение. нятся в виде потока
жет содержать не одно, а несколько • Комментарии пропускаются при блоков размером не
изображений. Существует две версии выводе изображения, но они полезны более 255 байт, каж-
формата GIF, различаемые по своим авторам, чтобы указать подробную дый блок состоит из
кодам, — GIF87а и GIF89а. GIF87а вы- информацию (дата создания, вариан- байта (длины блока) и
пущена в мае 1987 г. Каждый файл со- ты, эскизы). собственно данных.
стоит из заголовка, необязательной • В приложениях хранят специаль- Когда картинка за-
палитры и собственно информации ные данные, которые воспринимают- канчивается, следует
о картинке. Глобальная палитра ис- ся специальными программами. Дру- блок нулевой длины.
пользуется для всех изображений, на- гие программы просто пропускают
ходящихся в файле, если у какого-то этот блок.
изображения нет собственной пали- К недостаткам GIF-файлов можно
тры. Палитры картинок и глобальная отнести небольшую глубину цвета
палитра устроены совершенно оди- (256 цветов) и то, что данные рас-
наково (как в BMP): тройки байтов за- трового массива сжимаются с помо-
дают красную, зелёную и синюю со- щью закрытого алгоритма LZW, т. е.
ставляющие цвета′ точки. если создаваемая программистом
Файлы формата GIF при загрузке программа использует GIF-формат,
из сети появляются своеобразно: сна- то надо иметь платное лицензионное
чала нечётко, потом всё яснее. Если соглашение с фирмой CompuServe.
нет высокоскоростного подключения
к Интернету, то можно наблюдать
загрузку файла «вживую». Сначала бу-
дут переданы 0-, 8-, 16-я строки кар-
тинки (т. е. каждая восьмая строка), со
второй строки чередование пойдёт
через четыре строки: 2-, 6-, 10-я... И по-
следний проход — с первой строки
все нечётные: 1-, 3-, 5-я... Такое изоб-
ражение позволяет увидеть всю кар-
тинку, даже если получена лишь по-
ловина изображения.
Версия GIF89a создана в июле
1989 г. Она дополнена новыми ин-
формационными блоками, которые
названы управляющим расширением.

301
Хранение и обработка информации

Фрагмент фотогра-
фии, обработанной
при помощи алго-
ритма сжатия JPEG.

PNG (англ. Portable Network Graphic TIFF (англ. Tagged Image File Format —
Format — «формат для передачи гра- дословно «формат изображений,
фики по сети», а произносится как снабжённый “ярлыками” — тегами»),
«пинг») создан по инициативе группы разработанный Aldus Corporation в
программистов из США (23 человека), 1986 г., предназначался в качестве
возглавляемой Томасом Бутеллом. стандарта для хранения чёрно-белых
Большинство форматов графиче- изображений, введённых со сканеров.
ских файлов разрабатывались одним- Это наиболее широко поддержива-
двумя программистами, и как резуль- емый формат растровой графики, ко-
тат созданный формат было трудно торый применяется в настольных из-
модифицировать под новые требова- дательских системах. Версия TIFF 4.0
ния. PNG-формат разработан специ- позволяла хранить несжатые цветные
ально созданным комитетом, особое изображения. Очередная модифика-
внимание уделялось документирова- ция, появившаяся в августе 1988 г., уже
нию PNG, поэтому все его последующие использовала цветовую палитру и ал-
модификации не требуют доработки горитм сжатия LZW. В июне 1992 г.
уже работающих с ним графических версия TIFF 6.0 поддерживала не толь-
редакторов. ко RGB-изображения, но и кодиров-
PNG разрабатывался как альтерна- ку CMYK, YUV, а также алгоритм сжа-
тива GIF, причём PNG и GIF89а име- тия JPEG.
ют много общего, в частности, они ор- TIFF считают одним из самых слож-
ганизованы как поток данных, могут ных форматов графических файлов.
поэтапно выводить изображение и Файл состоит из списка так называемых
делать прозрачным основной цвет тегов, или полей, и растровых масси-
и т. д. Однако PNG позволяет хранить вов. Положение списка и массивов не
не только изображение true color фиксировано, вероятно, поэтому фор-
(24 бит), но и 48 бит на пиксель. PNG мат и считается сложным. Устройство
использует открытый алгоритм сжа- TIFF похоже на устройство файловой
тия LZ77 (он, в отличие от LZW, не тре- системы: список — это директория, каж-
бует лицензионных платежей), обес- дый элемент списка (тег) — имя файла,
печивающий сжатие без потерь. растровый массив — данные файла.

302
Мультимедиа

Фотография
без сжатия.

Как и в файловой системе, тег мо- TIFF имеет более 70 различных ти-
жет содержать ссылку (указатель) на пов тегов. Тег одного типа хранит,
растровые данные, а директория — например, информацию о ширине
указатель на следующую директорию. изображения в пикселях, другого —
информацию о высоте изображения,
Количество тегов следующего — таблицу цветов... Также
Тег ... можно определить собственные типы
Тег n
тегов или игнорировать непонятные.
Растровый
Указатель массив
JPEG назван так по начальным буквам
Количество тегов комитета Joint Photographic Experts
Тег ... Group (Объединённая группа экспер-
тов по фотографии; сформирована в
Тег n
1987 г., входит в Международную ор-
Указатель ганизацию по стандартизации — ISO).

Сравнительная таблица графических форматов

Формат BMP PCX TIFF GIF PNG JPEG


Число
бит/пиксель 24 24 24 8 48 24
Количество 16,7 млн 16,7 млн 16,7 млн 256 281,475 16,7 млн
цветов млрд
Размер 65 535 х 65 535 х 4,3 млрд 65 535 х 2 млрд х 65 535 х
изображения 65 535 65 535 65 535 2 млрд 65 535
Методы RLE RLE LZW, RLE LZW LZ77 JPEG
сжатия и др. с потерей
информации
Количество
изображений 1 1 1 и более 1 и более 1 1 и более

303
Хранение и обработка информации

Большинство ранее разработанных


методов сжатия практически непри-
ЧТО МОЖЕТ 3D-УСКОРИТЕЛЬ годны для сжатия изображений, со-
держащих сотни тысяч цветов. Фор-
Минимальный элемент, с которым имеют дело ускорители, — мат JPEG является методом сжатия
треугольник. Вся изображаемая картинка предварительно раз- с потерей информации. И хотя он
бита на треугольники. Одноцветные треугольники не могут со- не был определён в качестве стандарт-
здать эффект объёмной картинки, поэтому на многие из них в ного формата графического файла,
процессе прорисовки будут наложены текстуры (изображения, на его основе создано много новых
накладываемые на всю поверхность сразу, передающие внеш- форматов и улучшено немало старых.
ний вид материала, как, например, рисунок на ковре, песок на
пляже). Для изображения кирпичной стены здания потребова-
лась бы прорисовка множества граней для моделирования кир- ТРЁХМЕРНАЯ ГРАФИКА
пичей, однако текстура даёт больше реализма и использует
меньше вычислительных ресурсов. При наложении текстуры Обычные плоские рисунки моделиру-
на поверхность надо учитывать перспективу. Эта коррекция ются из отрезков, окружностей и мно-
необходима, чтобы объекты с текстурой имели различный вид гоугольников. В трёхмерной графике
в зависимости от того, насколько они близки к наблюдателю. к двум координатам добавляют коор-
Для ускорения процесса можно хранить несколько серий од- динату z и новые объекты: многогран-
нотипных текстур и при выборе текстуры ориентироваться на ники, пирамиды, сферы, цилиндры и
уже изображённые на экране детали. Соответственно если объ- трёхмерные поверхности. Сплошные
ект уменьшается, то и размер его текстурного покрытия умень- объекты можно также формировать
шается тоже. из простых. После задания объектов
Часто при наложении текстур заметны швы между двумя трёхмерной сцены встаёт проблема
ближайшими объектами. Для подавления этих эффектов при- их визуализации. Если изображение
меняют специальные методы фильтрации. Ступенчатые края нестатично (например, в игре или тре-
на прямых линиях — давний бич растровых дисплеев. Для по- нажёрах), надо не только пересчиты-
лучения чётких краёв изображения создают плавный переход вать 30 раз в секунду все положения
от цвета края к цвету фона. Цвет точки, лежащей на границе трёхмерной сцены, но и изображать
объектов, определяется как нечто среднее между цветами на экране последовательно сменяю-
двух граничных точек, при этом иногда побочным эффектом щие друг друга картинки.
является смазывание краёв. Даже для техники XXI в. это доста-
точно дорогой процесс, поэтому трёх-
мерная сцена представлена в виде со-
вокупности более простых объектов,
а специальный графический процес-
сор (так называемый 3D-ускоритель,
интегрированный в видеокарту) стро-
ит и изображает картинку на экране.
То есть современная видеокарта пер-
сонального компьютера (совместно с
монитором) превратилась из чисто
растрового дисплея в интеллектуаль-
ный графический дисплей со встро-
енным 3D-ускорителем.
Чего ожидать в будущем? Все идеи
компьютерной графики XX в. вопло-
тились в домашних персональных
компьютерах XXI в. Кажется, что пре-
дел достигнут.
Основная проблема при построе-
нии трёхмерной сцены — как опре-
делить, какие из объектов изображе-
ния видимы и как они освещены.
Необходимо иметь информацию и о
взаимном расположении объектов.
Обычно для решения этой задачи при-

304
Мультимедиа

меняют Z-буфер. В Z-буфере хранят-


ся значения удалённости всех види-
мых пикселей (координаты z), по од-
ному значению на каждый пиксель
растра. Когда подсчитан очередной
пиксель изображаемого объекта (с ко-
ординатами x, y), полученная коорди-
ната z сравнивается со значением ко-
ординаты z, хранящейся в Z-буфере.
Если новый пиксель имеет глубину
больше записанной в Z-буфере, зна-
чит, эта точка объекта закрыта каким-
либо другим объектом и не отобра-
жается на экране. Наоборот, если
пиксель оказывается на переднем пла-
не, то значение его координаты z за-
писывается в Z-буфер. Этот пиксель и
будет виден на экране, пока другой
объект его не закроет. После вычис-
ления трёхмерной картинки в изоб- значение от 0 до 1. При этом цвет вы-
ражении используются все пиксели, числяется по следующей формуле:
оставшиеся в Z-буфере.
Z-буферизация, встроенная в 3D- цвет пикселя =(alpha)(цвет пикселя пе-
ускоритель, сильно увеличивает ско- реднего плана) + (1 — alpha)(цвет пиксе-
рость просчёта картинки, несмотря на ля заднего плана).
то что Z-буфер занимает большие объ-
ёмы памяти (24-разрядный Z-буфер (Пиксель заднего плана — тот, что на-
при разрешении 640 × 480 требует око- ходится в Z-буфере.)
ло 900 кбайт). Эта память должна быть При формировании каждого сле-
внутренней памятью 3D-ускорителя. дующего кадра 3D-ускоритель прохо-
Разрядность Z-буфера (число битов на дит весь путь построения заново, по- 2D-ускорители уже с
координату z) — один из важнейших этому он должен обладать высоким 90-х гг. применяются
показателей; чем выше разрядность, быстродействием. Чтобы придать дви- в видеокартах персо-
тем выше дискретность координат z жению плавность, применяют двой- нальных компьютеров.
и точнее выполняется прорисовка уда- ную буферизацию: один буфер — для Они обеспечивают
лённых объектов. отображения картинки, другой же — прорисовку курсора
Ускорители обычно имеют воз- для построения новой картинки. По- мыши «поверх экра-
можность воспроизведения некото- ка на экране отображается содержимое на» и роллирование
рых эффектов, таких, например, как одного буфера, в другом идёт подгото- (сдвиг) изображения
затуманивание, когда гоночный ав- вительная работа. Когда очередной в прямоугольном ок-
томобиль поднял песчаную пыль. кадр построен, буферы меняются ме- не экрана.
Изображаемые пиксели смешивают- стами. Таким образом, на экране всё
ся с цветом тумана в зависимости от время наблюдается отличная картинка.
его глубины. С помощью этого же ал-
горитма объекты погружаются в дым-
ку, что позволяет создать иллюзию
расстояния.
Прозрачность ещё один эффект, ко-
торый обеспечивает 3D-ускоритель.
В окружающем мире наряду с непро-
зрачными объектами существуют про-
зрачные и полупрозрачные. Эффект
полупрозрачности создаётся путём
объединения цвета точки как комби-
нации цветов переднего (полупрозрач-
ного) и заднего планов. Обычно коэф-
фициент прозрачности (alpha) имеет

305
Хранение и обработка информации

ЦИФРОВАЯ ФОТОГРАФИЯ

Ни для кого не секрет, что обработ- причём оно может быть как без по-
ка изображений на компьютере се- терь, так и с потерями информации.
годня дело привычное, если не ска- Программы сжатия производят
зать повседневное. Графика для анализ исходного изображения и от-
сайтов, фотомонтаж, вёрстка журна- брасывают «ненужные» точки. Чем
лов и газет — всё это и многое другое грубее этот анализ, тем быстрее и
выполняется на ЭВМ. сильнее сжимается изображение; при
В настоящее время существует сильном сжатии искажение изобра-
немало форматов для хранения изоб- жения может стать заметным. Совре-
ражений на компьютере. Самыми рас- менные методы компрессии (сжатия)
пространёнными и общеупотреби- изображений позволяют достичь
тельными являются, пожалуй, JPEG. очень хороших результатов при ми-
Если картинка, находящаяся в та- нимальных потерях данных.
ком файле, имеет большой размер, на- Перевод изображения в цифро-
пример около тысячи точек по верти- вой формат осуществляется с помо-
кали и горизонтали, то информация, щью специальных устройств — ска-
описывающая такую картинку, будет неров. Основной частью сканера
занимать довольно много места на но- является светочувствительный эле-
Пример возможностей сителе данных. Для уменьшения раз- мент. Он улавливает световой поток,
цифрового фото. меров файлов применяют сжатие, отражающийся от исходного бумаж-
ного изображения, и генерирует
электрический сигнал, который пре-
образуется в поток данных, описы-
вающий исходную картинку. Такой
поток уже может быть обработан на
компьютере.
Поскольку обычного дневного све-
та, как правило, недостаточно для
светочувствительного элемента, ска-
нер дополнительно оснащается мощ-
ной лампой, освещающей сканиру-
емый участок.
Светочувствительный элемент —
вещь достаточно дорогая, поэтому он
делается небольшого размера и уста-
навливается на движущееся шасси, ко-
торое шаг за шагом перемещается
вдоль изображения, и на ЭВМ пере-
даются данные о частях картинки.
Управляющая программа на компью-
тере «склеивает» отдельные кусочки
картинки и позволяет наблюдать на
экране конечный результат.
Другим устройством создания циф-
ровых изображений является цифро-
вая фотокамера. Принцип её работы
очень напоминает принцип работы
обычной плёночной камеры, только
вместо плёнки используется свето-
чувствительная матрица, улавлива-
ющая световой поток. Чем больше то-
чек может обработать матрица, тем
лучше качество картинки. Цифровые
камеры оснащены собственными но-

306
Мультимедиа

сителями данных, на которые запи-


сываются файлы в каком-либо рас-
пространённом формате, готовые
к переносу и редактированию на ком-
пьютере. Носителями могут быть
дискеты, компакт-диски, жёсткие
диски и энергонезависимая память.
Около 35 фотографий размером
1280 × 1024 точки, что примерно соот-
ветствует стандартному фото 9 × 12,
занимают порядка 8 Мбайт флэш-
памяти. То есть примерно 3 тыс. по-
добных фотографий можно размес-
тить на одном компакт-диске.
В последнее время в рамках всё по-
вышающегося спроса на цифровую
фототехнику производители стара-
ются максимально увеличить размер
растра снимка, якобы повышая его
качество, но и увеличивая размер
хранимого файла до 5—6 мегапиксе-
лей и более в бытовых фотоаппаратах.
Но размер матрицы решает далеко не
все. Так, выпущенный в 1998 г. фото-
аппарат Olympus D620 (C1400L) имел плохой снимок, так как его можно Цифровая
матрицу 1,4 мегапикселя, однако кад- сразу увидеть и стереть, освободив макросъёмка.
ры, сделанные на нём, подчас превос- цифровую память для новых. Поэто-
ходят по качеству снимки совре- му всё больше родителей дарят сво-
менных фотоаппаратов с большими им детям цифровые фотоаппараты,
матрицами, не говоря уже о фото- чтобы те не разорили их, пока осва-
графиях, полученных на «мегапик- ивают новую технику.
сельных» фотокамерах, встроенных Для обработки цифровых изобра-
в мобильные телефоны. Качество оп- жений существует множество про-
тики и плотность расположения эле- грамм. Они открывают широкий про-
ментов в светочувствительной матри- стор для творчества — от простого
це цифровой техники сильно влияют изменения размера картинки до на-
на качество снимков. Успокаивает ложения на неё фантастических эф-
лишь то, что цифровые «мыльницы» фектов.
лучше плёночных собратьев. Другим достоинством цифровой
При использовании цифровых ка- фотографии является то, что сним-
мер не только исчезает процесс про- ки не портятся, не стареют, на них
явления фотографии, но и фотогра- не остаётся царапин; в считанные ми-
фирование становится всё более нуты фотографии можно отправить
экономичным процессом. Во-первых, в любую точку мира с помощью эле-
не надо тратить деньги на плёнку и ктронной почты и конечно же раз-
проявку; во-вторых, при цифровой местить на домашней странице в Ин-
фотографии не стоит бояться сделать тернете.

ЦИФРОВОЕ ВИДЕО

На компьютере можно не только причём порой с качеством, значи-


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

307
Хранение и обработка информации

ства, что не так уж мало даже для со-


временных носителей информации.
Чтобы хранить видео на цифровых
носителях, используют технологии
сжатия видеоизображений. Самым
распространённым форматом сжатия
является формат MPEG. Он разраба-
тывался группой учёных Motion Picture
Engineering Group в конце прошлого
века (работы над усовершенствовани-
ем данного формата ведутся и сего-
дня). Сейчас MPEG позволяет сжимать
изображение с коэффициентом от
Как известно, видеоизображение — 1:10 до 1:100 и более, в зависимости от
не что иное, как последовательность сложности картинки.
кадров. Каждая секунда фильма — это MPEG состоит из трёх частей: Audio,
набор из 24 отдельных кадров. Таким Video, System (последняя выполняет
образом, чтобы сохранить секунду ви- объединение и синхронизацию двух
део, нам необходимо сохранить все других). Существует несколько разно-
24 картинки. видностей стандарта MPEG. Наиболее
Пусть размер картинки составля- известные из них — MPEG-1, MPEG-2
ет 512 . 384 точки. Любая из точек мо- и MPEG-4. Они отличаются друг от дру-
жет быть окрашена в один из 16 млн га степенью сжатия, а также качеством
цветов, т. е. для её представления по- изображения на выходе.
надобится 3 байт памяти Из нескольких кадров в MPEG скла-
дывается один полноценный кадр,
512 . 384 . 3 = 589 824 байт. остальные же являются кадрами, сфор-
мированными искусственно на осно-
Итак, для хранения одного кадра ве алгоритма предсказания движения.
нужно около 600 кбайт памяти. А ес- Фактически, хранится только часть
ли потребуется сохранить ещё и звук, информации — за счёт высокой сте-
то размер кадра возрастёт. И тогда пени сжатия. Чем реже вставляется
для хранения, например, двухчасо- ключевой кадр, тем хуже качество
Фото с экрана работы вой видеозаписи с не очень большим изображения. Поэтому необходим
программы для видео-
монтажа. Выбор пара- разрешением может понадобиться компромисс между размером файла с
метров монтажа. более 10 Гбайт дискового простран- фильмом и его качеством.
Звук в MPEG-файле кодируется
следующим образом: убираются все
звуки, неразличимые для человече-
ского уха. За счёт такой обработки
звукового потока уменьшается раз-
мер звуковой дорожки к фильму. При
этом некоторые виды MPEG поддер-
живают несколько звуковых дорожек,
т. е., например, во время просмотра
можно переключаться с английской
версии фильма на русскую и наобо-
рот. Это очень активно используется
в современных устройствах DVD
(англ. Digital Versatile Disk — «цифро-
вой диск различного назначения»).

САМ СЕБЕ РЕЖИССЁР


Конечно, хорошо использовать ком-
пьютер для просмотра фильмов, но

308
Мультимедиа

ещё интереснее с его помощью созда-


вать собственное кино. Для решения
этой задачи потребуются некоторое
дополнительное оборудование и тер-
пение. Исходный материал (то, что
снято видеокамерой) необходимо пе-
ревести в цифровой вид и сохранить
на доступном носителе информации.
Перевод можно выполнить, исполь-
зуя специальную плату захвата видео-
изображения. Если же компьютер уже
имеет плату ТВ-тюнера (можно смо-
треть телепрограммы на экране мони-
тора), скорее всего, из «железа» ниче-
го больше не понадобится. После
подсоединения видеомагнитофона
или камеры к компьютеру запускает-
ся программа для записи видеопото-
ка на диск.
Размер изображения на экране те-
левизора составляет 576 строк. Но те-
левизионная картинка формируется Фото с экрана работы программы для видеомонтажа.
из двух частей по 288 строчек. В пер- Вверху — монтаж,
внизу — выбор спецэффектов.
вой части содержатся все нечётные
строки, а во второй — чётные. На те-
левизионном экране этого обычно не
видно, однако при обработке видео
на ЭВМ можно наблюдать эффект ре-
шётки, особенно в сценах с быстрой
сменой картинки. Для удаления ре-
шётки применяют специальные про-
граммы-фильтры, которые формиру-
ют цельную конечную картинку. Этот
процесс называется deinterlacing.
Что касается звука, то его можно
записывать вместе с видео, если ско-
рость компьютера позволяет обраба-
тывать одновременно и видео, и звук
(в большинстве случаев это именно
так), а можно и отдельно.
Редактирование фильма на ком-
пьютере не требует специального до-
рогого студийного оборудования, весь
процесс очень нагляден и соответст-
вует принципу WYSIWYG. Сколько
фильм будет занимать места на диске,
зависит от выбранной программы ко-
Frame (англ.) — кадр, неделимая часть видеопотока.
дирования. Придётся искать компро-
Frameskip (англ.) — выброс кадра, выпадение. Случается,
мисс между качеством и размером
когда компьютер не успевает обработать кадр, например, если
(чем лучше качество, тем больше мес-
не хватает быстродействия или кадр очень сложный (быстрая
та занимают файлы). Для хранения ви-
смена сцен).
део существует много разных форма-
Codec (англ.) — программа для кодирования и раскодирова-
тов, которые улучшают качество и
ния изображения. Небольшая программа, устанавливаемая на
уменьшают размер файлов. Скорее
компьютер, для того чтобы другие программы могли «читать и
всего, в недалёком будущем появится
писать» видео в определённом формате.
возможность смотреть видео идеаль-
ного качества через Интернет.

309
Хранение и обработка информации

АУДИОМОНТАЖ

С изобретением в конце XIX в. радио Передача «по просьбе радиослуша-


родилась и новая отрасль масс-ме- телей» могла неоднократно повто-
диа — радиовещание. Революцион- ряться. Но самое главное, её специ-
ным шагом здесь стало использова- ально «готовили» к эфиру, проводя
ние технологии магнитной записи монтаж. Из сплошной записи выре-
Традиционный при подготовке радиопрограмм. Пря- зали куски не столько по цензурным
монтажный пульт
конца ХХ в. в москов-
мой эфир предполагал обязательное соображениям, сколько из-за огово-
ском Доме радио присутствие гостей в студии во вре- рок, пауз, повторов одних и тех же
(вверху). мя передачи. Но гораздо удобнее бы- слов.
Современный
ло участников передачи записать в Технология cut and paste (англ.
монтажный пульт на студии на магнитофон заранее, а уже «вырежи и вклей») точно отражала
радиостанции (внизу). потом эту запись воспроизводить. положение дел при аудиомонтаже.
Аналоговый ленточный магнитофон,
клей и ножницы были основными
инструментами монтажной студии.
Процесс монтажа являлся поистине
«творческой» операцией.
На слух вылавливали оговорку,
точно работая ножницами, разреза-
ли ленту в начале и конце куска, вы-
брасывали ненужную часть, аккурат-
но склеивали. Главное условие —
не испортить, не помять, не растя-
нуть магнитную ленту. Порой мон-
таж 20-минутной передачи занимал
несколько часов.
По окончании монтажа подбира-
лась и заимствовалась отдельно фо-
новая музыка, и передача переписы-
валась с двух магнитофонов на третий
(речь и музыка). После этого она счи-
талась готовой к эфиру.
Магнитный материал стоил доро-
го, поэтому ленты освобождали от
старых записей, размагничивали и
повторно пускали в производствен-
ный процесс. Лента иногда не выдер-
живала постоянных склеек и могла
порваться прямо во время эфира или
давала слабозаметные щелчки при
следующих записях.
Готовый материал, который пла-
нировалось использовать не один раз,
как правило, переписывался на дру-
гую ленту и складывался в архив. Там
были созданы специальные условия
хранения: поддерживались опреде-
лённые температура и влажность, что-
бы ленты не пересыхали и не порти-
лись. За ними регулярно ухаживали,
их периодически перематывали, что-
бы снять напряжение и не допустить
слипания. Записи проверялись и да-
же переписывались, когда лента ста-

310
Мультимедиа

рела. Делалось всё, чтобы записи жи-


ли долго. К лентам, хранящимся в ар-
Мини-диск (MD) разработан фирмой Sony (Япония). Это цифро-
хиве, относились так же, как военные
вой магнитооптический носитель, вмещающий столько же ин-
к своему оружию на складе.
формации, сколько и обычный CD (74 мин). В отличие от CD на
Такой способ хранения очень
него можно неоднократно записывать и удалять с него произ-
дорог. Из-за любого сбоя в процессе
вольные куски записи. MD использует при записи сжатие звука
хранения записи погибали, так, из-
в 5 раз методами, при которых потеря качества незаметна.
за недостатка финансирования в
конце 90-х г. прошлого века (время
распада СССР) огромное количество
уникальных записей из архива радио Из самых простых эффектов, при-
было потеряно навсегда. меняемых при обработке передачи,
Но у аналогового метода записи су- можно назвать затухание и нараста- Клей впоследствии за-
ществует очень большой недостаток. ние уровня звука, эффект эха, различ- менили клеящей лен-
При перезаписи, даже на студийной ных залов и стадионов. той, очень похожей на
аппаратуре, накладывались посторон- Программы аудиомонтажа обла- скотч.
ние шумы от магнитофона, искажения дают поистине безграничными воз-
от усилителя, через которые прохо- можностями. Смонтированная пе-
дил аналоговый сигнал, шумела и маг- редача поступает на компьютер
нитная лента. То есть с каждой пере- звукорежиссёра, откуда потом и идёт
записью качество заметно ухудшалось. в эфир. Хранение записей также ста-
В конце XX в. с помощью компью- ло более удобным. Данные на мини-
теров научились хранить, записывать дисках и компьютерах не теряют
и воспроизводить звук не хуже, чем на качества со временем. Да и 30-минут-
профессиональных студийных маг- ная передача требует всего 50 Мбайт
нитофонах. Виниловые пластинки и дискового пространства, т. е. её веч- В радиовещании звук
магнитофонные кассеты уступили ное хранение практически ничего записывается со сжа-
место в студиях цифровым компакт- не стоит. тием в стандарте
и мини-дискам. Что же осталось от старой техно- MPEG-1 Layer-3 по-
Но самые революционные изме- логии? Творческий процесс, когда ин- током 256 кбит/с.
нения произошли в процессе монта- теллект человека при монтаже из со-
жа. Аналоговому магнитофону, бес- вершенно невзрачной записи делает
конечным лентам, клею и ножницам оригинальную, интересную, запоми-
пришёл на смену персональный ком- нающуюся передачу, как литератур-
пьютер. Технология cut and paste со- ный редактор сухой научный текст
хранилась, но стала цифровой. Зву- переводит на язык детской энцикло-
ковой ряд изображается на экране педии. Ведь недаром на радио ходит
монитора в виде графика амплитуды шутка: «Вы нам только алфавит наго-
звука по времени. Теперь оговорка ворите, а мы уж сами передачу смон- Студийные
была видна. Временная шкала легко тируем». магнитофоны.
масштабируется, фрагмент удаётся от-
метить с точностью до тысячных до-
лей секунды (для ленты это были бы
доли миллиметра). Запись сначала
прослушивают, как бы с удалённым
куском, и лишь потом принимают ре-
шение — вырезать или сдвинуть гра-
ницы. Можно не только семь раз от-
мерить, а потом отрезать, но и вернуть
всё назад, если кусок удалён ошибоч-
но. Нужный кусок легко переносится
в любое место фонограммы. Програм-
мы монтажа позволяют накладывать
фоновую музыку на передачу. В об-
щем, всё, на что прежде требовались
часы физического труда, занимает те-
перь минуты.

311
ВЫЧИСЛЕНИЯ
ВЫЧИСЛЕНИЯ НА КОМПЬЮТЕРЕ

Информация о температуре воздуха, лялся, т. е. погоду на лето предскажут


давлении, влажности, облачности, ко- следующей осенью.
личестве выпавших осадков, силе и на- Ключевой момент в решении этой
правлении ветра в достаточно боль- проблемы — повышение производи-
шом количестве точек Земли даёт тельности компьютеров, позволя-
возможность составить довольно точ- ющее увеличить точность и быстро-
ный прогноз погоды. Беда в том, что ту выполнения задач, а также дающее
готов он будет, когда уже пройдёт тот возможность решать новые классы
период, на который прогноз состав- задач.
Вычисления в компьютере про-
исходят в так называемом арифме-
тическом устройстве (АУ). АУ преоб-
разует информацию; в остальных
устройствах компьютера (запоми-
нающем, управляющем, входном, вы-
ходном) происходит лишь переме-
щение информации во времени и
пространстве. АУ бывает двух видов —
универсальное и специализирован-
ное. Универсальное АУ выполняет все
арифметические операции, предус-
мотренные системой команд ком-
пьютера, которая обычно включает
операции сложения, вычитания, срав-
нения, умножения, деления и иногда
вычисления квадратного корня.

312
Вычисления

АЛУ (арифметико-логическое
устройство) — это простейший вид
универсального арифметического
устройства. Оно обрабатывает целые
числа, выполняет операции сложения,
вычитания, сдвига и логические опе-
рации.
Специализированное АУ осуществ-
ляет группу близких по алгоритму
операций. Так, устройство сложения
выполняет операции сложения, вычи-
тания, сравнения; устройство умноже-
ния — операции умножения; устрой-
ство деления — деление и вычисление
квадратного корня.
Универсальное АУ cостоит из мень-
шего объёма оборудования (т. е. за-
нимает меньше места на полупро-
Ещё в 1965 г. Гордон Мур (один из основателей фирмы Intel)
водниковом кристалле, на котором
заметил, что через каждые несколько лет выпускается новый
изготовляется современный про-
кристалл полупроводниковой памяти, который имеет объём
цессор), чем несколько специализиро-
примерно в два раза больше, чем у предыдущего кристалла па-
ванных АУ, имеющихся в компьютере.
мяти. Подобные оценки справедливы и для количества транзи-
Наличие в машине специализирован-
сторов в кристалле микропроцессора, и для производительно-
ных АУ позволяет осуществлять не-
сти микропроцессора.
сколько арифметических операций
одновременно, что ускоряет и увели-
чивает производительность компью-
тера. числение квадратного корня) выпол-
Чем больше оборудования в крис- нялись с помощью специальных про-
талле, тем сложнее АУ и быстрее их ра- грамм, то сейчас это обычно делается
бота, повышающая производитель- в аппаратуре, что гораздо быстрее про-
ность микропроцессора. Кроме того, граммной реализации.
можно увеличивать количество ариф- В 90-х гг. появились мультимедий-
метических устройств в компьютере, ные арифметические устройства, их
распараллеливая тем самым процесс использование значительно расшири-
вычислений. Если раньше некоторые ло возможности обработки графиче-
операции (например, деление и вы- ской информации, возникли компью-
терная томография и виртуальная
реальность.

ПРЕДСТАВЛЕНИЕ ЧИСЕЛ
С ФИКСИРОВАННОЙ
ЗАПЯТОЙ
Числа, обрабатываемые в компьютере, Гордон Мур.
делятся на числа с фиксированной за-
пятой и числа с плавающей запятой.
Числа с фиксированной запятой —
это обычные целые числа, представ-
ленные в двоичном виде. Запятая,
отделяющая целую часть числа от
дробной, стоит в них на фиксирован-
ном, т. е. постоянном, месте. Обычно
это место справа от младшего разря-
да числа. В языках программирования Томограф.

313
Хранение и обработка информации

такие величины обозначаются как це- числа, имеющие большее количество


лые. Чаще всего целое число занима- разрядов. Для этого необходим вход
ет 32 или 64 двоичных разряда (бита), переноса Cin, который должен учиты-
при этом один разряд занимает знак вать перенос из соседнего младшего
числа, а остальные — само число. Ми- разряда.
нимальное число, которое можно Для полного одноразрядного сумма-
представить с помощью 64-разрядно- тора можно написать следующую таб-
го целого числа, — –263, а максималь- лицу истинности:
ное — +263 – 1.
Операции сложения, вычитания и A B Cin C S
умножения с целыми числами являют-
ся точными. Деление и вычисление 0 0 0 0 0
квадратного корня в результате округ- 0 1 0 0 1
ления могут дать приблизительный 1 0 0 0 1
(неточный) результат.
1 1 0 1 0
Допустим, надо сложить два одно-
разрядных числа A и B. Если сложить 0 0 1 0 1
1 + 1, то сумма, которая также хранит- 0 1 1 1 0
ся в двоичном разряде, станет равна 0 1 0 1 1 0
(хотя ожидаемый результат 2). Для то-
го чтобы не потерялся итог, исполь- 1 1 1 1 1
зуют не только результат, но и признак
переполнения в двоичном числе — пе- Первые четыре строки этой табли-
ренос. Перенос также двоичный раз- цы (Cin = 0) совпадают с предыдущей
ряд и равен 0, если переполнение таблицей истинности. Перенос C есть,
не возникало, или 1, если произошло если складываются две или три едини-
переполнение. Если обозначить сум- цы; сумма S = 1, если складывается не-
Одноразрядный му буквой S, а перенос буквой C, то чётное число единиц (одна или три).
сумматор. можно составить следующую таблицу Пусть A и B — это два 4-разрядных
истинности: двоичных числа, 0 — номер младшего
разряда, 3 — номер старшего разряда.
C S A B C S Здесь перенос С 0, рождающийся в
младшем разряде, подаётся на вход пе-
A B 0 0 0 0 реноса первого разряда; перенос С1 по-
0 1 0 1 ступает во второй разряд; перенос С2
1 0 0 1 подаётся в старший разряд, т. е. выхо-
Полный одноразряд- ды и входы переносов соединены по-
ный сумматор.
1 1 1 0 следовательно.
Сумматор с такой организацией
Из неё видно, что сумма S равна 1, цепи переносов называют последо-
C S если одно и только одно слагаемое вательным. Это самый простой тип
равно 1. Логический элемент, реали- сумматора, но и самый медленный.
A B Cin зующий таблицу, называется одно- В 64-разрядном сумматоре, построен-
разрядным сумматором. С помощью ном по такой схеме, старший разряд
этого элемента можно складывать два суммы получается через 64 цикла од-
Последовательный одноразрядных числа A и B, получить норазрядного сумматора!
сумматор. сумму и перенос, но нельзя складывать Сумматор является узлом, во мно-
гом определяющим быстродействие
компьютера, поэтому повышение бы-
S4 S3 C2 S2 C1 S1 C0 S0 стродействия сумматоров — это все-
гда актуальная задача. Сейчас созданы
сумматоры, которые в десятки раз бы-
C S C S C S C S стрее последовательного сумматора.
A B Cin A B Cin A B Cin A B Сумматоры используются не только
при сложении чисел, но и при умно-
жении, делении и даже вычислении
A3 B3 A2 B2 A1 B1 A0 B0 квадратного корня.

314
Вычисления

Для вычитания числа с фиксирован-


ной запятой вычитаемое преобразует-
ся в дополнительный код (число, в сум-
ме с исходным дающее 0), а затем
прибавляется к уменьшаемому.
Умножение можно выполнять, как
обычное умножение, в столбик. Пусть
E и T — множители, а P — произведе-
ние. Сначала первый множитель E
умножается на младший разряд мно-
жителя T0. Если T0 = 0, то E . T0 = 0, ина-
че E . T0 = E, т. е. произведение перво-
го множителя на разряд второго
множителя равно либо нулю, либо
первому множителю. Это произведе-
ние называют частичным произведе-
нием. Затем первый множитель сдви- ной запятой. В то время для решения
гается на один разряд влево и проблемы узкого диапазона програм-
умножается на разряд второго мно- мисты применяли масштабирование: «Есть по крайней ме-
жителя T 1 — получается следующее если числа, с которыми должна рабо- ре одна настоящая
частичное произведение. Такой про- тать программа, были очень малы, причина для изуче-
цесс идёт до старшего разряда второ- программист умножал их на одно и то ния умножения и де-
го множителя T63. Для получения про- же число, чтобы они попали в диапа- ления — существует
изведения надо сложить частичные зон чисел компьютера. Если же дан- бесконечное количе-
произведения, а это можно сделать с ные для программы, наоборот, были ство способов выпол-
помощью уже знакомых сумматоров. очень велики, то делили их на одно и нения этих операций,
Данный алгоритм умножения — са- то же число. и, следовательно, су-
мый простой и довольно медленный. Для масштабирования программист ществует бесконеч-
Существует огромное количество ал- анализировал данные, промежуточные ное количество дис-
горитмов, позволяющих ускорить результаты и конечный результат, что- сертаций, которые
процесс умножения. бы на всех этапах хватило диапазона можно защитить, ес-
Деление — это самая сложная и вычислений. Выход за границы диапа- ли изобрести новый
самая медленная арифметическая опе- зона приводил к грубой ошибке в вы- умножитель».
рация. Существуют алгоритмы деления, числениях. Например, если число в
Алан Клементс
в которых за один шаг определяется компьютере имеет 10 разрядов, а пе- (американский
сразу несколько цифр частного. ремножаются два 6-разрядных числа, учёный в области
Сейчас широко применяются ал- то произведение будет иметь 12 раз- вычислительной
горитмы, где деление заменяется рядов, т. е. 2 разряда произведения техники). «Принципы
компьютерного обо-
умножением на величину, обратную не попадают в разрядную сетку ком- рудования». 1986 г.
делителю. Часто обратная величина пьютера, результат при этом может
определяется с помощью таблицы. получиться бессмысленным.
В некоторых процессорах вообще нет Процесс масштабирования отни-
устройства деления, и эта операция вы- мал у программистов слишком много
полняется специальной программой. времени и сил.
Для научных вычислений характер-
но использование очень больших или
очень маленьких чисел. Например,
расстояния между космическими объ-
ектами и их массы очень велики, а рас-
стояния внутри атома и массы элемен-
тарных частиц очень малы. В этом
случае говорят о широком диапазоне
используемых чисел. Числа же с фик-
сированной запятой имеют узкий диа-
пазон.
Первые компьютеры использова- Алан Клементс с
ли представление чисел с фиксирован- женой.

315
Хранение и обработка информации

ПРЕДСТАВЛЕНИЕ ЧИСЕЛ ла с плавающей запятой обычно обо-


значаются как вещественные. Знак
С ПЛАВАЮЩЕЙ ЗАПЯТОЙ числа занимает один бит. Если Зн = 0,
то (–1)Зн = (–1)0 = + 1 и Ч имеет положи-
Числа с плавающей запятой в компью- тельный знак. Если Зн = 1, то (–1)Зн= –1
тере представляются так: и Ч имеет отрицательный знак.
На величину М накладывается огра-
Ч = (–1)Зн . М . 2П, ничение:

где Ч — величина числа, Зн — знак чис- 1 ≤ M ≤ 2.


ла, М — мантисса числа, П — порядок
числа. В языках программирования чис- Мантисса, удовлетворяющая этому не-
равенству, называется нормализован-
ной. П — это целое число со знаком.
Такое представление чисел похоже
ОШИБКА ОКРУГЛЕНИЯ на запись, которая используется учё-
ными и инженерами. Например, ин-
Надо заметить, что арифметика с плавающей запятой значительно женер вместо a = 350 000 000 000 на-
сложнее арифметики с фиксированной запятой. Например, для пишет a= 3,5 . 1011.
чисел с плавающей запятой результат зависит от порядка Использование чисел с плавающей
выполнения операций, т. е. запятой позволило значительно уве-
личить диапазон и точность чисел в
A + (B + C) ≠ (A + B) + C. компьютере и освободить программи-
ста от утомительного процесса мас-
Это связано с тем, что вычисления с плавающей запятой не штабирования.
точные, а приблизительные. При выполнении операций с пла- Так, числа с плавающей запятой
вающей запятой отбрасываются младшие разряды, которым формата 64 имеют 11 разрядов поряд-
не хватает места в разрядной сетке, и производится округле- ка, это позволяет представлять числа
ние. В ходе решения задачи ошибка округления накапливает- от –2 2047 до +2 2047. Если расстояние
ся и может привести к получению совершенно неправильного между двумя соседними числами с
результата. фиксированной запятой составляет 1
Обычный метод проверки численных алгоритмов — исполь- (ведь два соседних числа отличаются
зование повышенной точности. Так, вместо 32-разрядной точ- именно на единицу), то расстояние
ности применяют 80-разрядную, но это не всегда даёт нужный между двумя соседними числами с пла-
результат. Например, вычислим функцию двух переменных: вающей запятой, которые находятся
вблизи 0, равно 2–2100.
f(x, y) = 333,75y6 + x2(11x2y2 – y6 – 121y4 – 2) + Сложим два числа с плавающей за-
+ 5,5y8 + x /(2y) пятой:

при x = 77 617 и y = 33 096. Получаем следующие результаты Ч1 = (–1)Зн1 . М1 . 2П1,


с 32-, 64- и 80-разрядной точностью: Ч2 = (–1)Зн2 . М2 . 2П2.

32р f = 1,172 603… Чтобы сложить числа, представляю-


64р f = 1,172 603 940 053 1… щие собой степени, нужно уравнять
80р f = 1,172 603 940 053 178… показатели их степеней. Пусть П1>П2
и П1 – П2 = РП (разность порядков),
Все три результата совпадают по семи старшим десятичным тогда можно написать следующее:
цифрам. Может показаться, что увеличение разрядности дей-
ствительно повышает точность вычислений. На самом же деле Ч1 + Ч2 = (– 1)Зн1 . М1 . 2П1 +
правильный ответ имеет даже другой знак результата!
Интервальная арифметика — это раздел арифметики, помо- + (– 1)Зн2 . М2 . 2П2 =
гающий устранять такие особенности вычислений с числами с = (– 1)Зн1 . М1 . 2П1 +
плавающей запятой. Интервальный метод даёт в ответе не чис- + (–1)Зн2 . (М2 . 2-РП) . (2П2 . 2РП).
ло, а интервал между двумя числами, в котором заключён ре-
зультат. Если интервал очень большой, это говорит о том, что
выбранный алгоритм даёт недостаточную точность. Умножили и разделили Ч2 на 2РП,
величина Ч2 от этого не изменилась,

316
Вычисления

но изменились составляющие числа Видно, что для умножения чисел с


Ч2 — его мантисса и порядок. плавающей запятой надо умножить
Для умножения мантиссы на 2 РП мантиссы, а порядок произведения В англоязычных стра-
можно перенести запятую на РП раз- равняется сумме порядков сомножи- нах вместо плава-
рядов влево либо сдвинуть мантиссу телей. Знак произведения определя- ющей запятой гово-
вправо. При этом РП младших раз- ется знаками сомножителей: если зна- рят о плавающей
рядов мантиссы выйдут за границу ки одинаковые, то произведение точке.
разрядной сетки, они не смогут уча- положительно, если знаки разные, то
ствовать в вычислениях. Нахождение произведение отрицательно.
разности порядков РП можно сделать Пусть надо разделить Ч1 на Ч2:
с помощью небольшого сумматора,
сдвиг мантиссы вправо производит- Ч1/Ч2 =[(–1)Зн1 . М1 . 2П1] / [(–1)Зн2 . М2 ×
ся узлом процессора, который так и
называется — сдвигатель. × 2П2] = (–1)Зн1 – Зн2 . (М /М ) . 2П1 – П2.
1 2
С другой стороны, 2П2 .2РП = 2П2+РП =
П1
= 2 , т. е. порядок второго числа равен Для деления чисел с плавающей за-
порядку первого, и числа можно скла- пятой надо разделить мантиссы, а от
дывать. Теперь продолжим преобра- порядка делимого отнять порядок де-
зование: лителя. Знак частного положительный,
если знаки делимого и делителя сов-
Ч1 + Ч2 = [(–1)Зн1 . М1 + падают, и отрицательный – если зна-
ки делимого и делителя различны.
+ (– 1)Зн2 . (М2.2-РП)] . 2П1.

Осталось сложить М1 (с учётом зна- СТАНДАРТ ANSI/IEEE 754


ка) и сдвинутую вправо на РП разря-
дов мантиссу М2, у которой тоже учтён Стоимость разработки программно-
знак. А складывают мантиссы с помо- го обеспечения во много раз больше
щью сумматора. Результат будет иметь
порядок, равный большему из двух по- Группа экспертов IEEE.
рядков, — П1.
Пусть надо умножить два числа с
плавающей запятой:

Ч1 = (–1)Зн1 . М1 . 2П1,
Ч2 = (–1)Зн2 . М . 2П2,
2

Ч1. Ч2 = (–1)Зн1 . М1 . 2П1 . (–1)Зн1 ×


× М . 2П2 = (–1)Зн1 . (–1)Зн2 . М . М ×
2 1 2
× 2П1 . 2П2=(–1)Зн1+ Зн2 . М1.М2.2П1 . 2П2 .

317
Хранение и обработка информации

стоимости разработки аппаратуры


или, как говорят специалисты, «желе-
ЦЕНА ОШИБОК В ВЫЧИСЛЕНИЯХ за». Кроме того, написание программ-
ного обеспечения занимает огромное
В 1991 г. во время войны в Пер- количество времени. Поэтому новую
сидском заливе (США против аппаратуру стараются проектировать
Ирака) батарея американских под уже существующие программы.
зенитных ракет «Пэтриот» Программное обеспечение создаётся
не смогла перехватить запущен- на языках программирования высо-
ную иракцами ракету «Скад» кого уровня, чтобы его можно было с
советского производства. Ра- одинаковым результатом использо-
кета попала в казарму амери- вать для компьютеров разных типов
канских солдат, при этом по- (это называется переносимостью про-
гибло 28 человек. граммного обеспечения).
Причиной ошибки явилась Операции с числами с плавающей
погрешность в вычислениях запятой мешали достижению перено-
времени. При вычислении нуж- симости, так как в прошлом их реали-
Американская зенитная ракета «Пэтриот».
но было умножать время, зада- зация сильно изменялась от одного
ваемое тактовым генератором семейства компьютеров к другому. Ре-
компьютера (оно измерялось в десятых долях секунды), на 1/10, но ализации отличались по количеству
это десятичное число невозможно точно представить в двоичном ви- разрядов порядка и мантиссы, спосо-
де. Для хранения данной константы использовался 24-разрядный ре- бу их кодирования, основанию систе-
гистр. Разница между точным значением 1/10 и её неточным двоич- мы счисления, способу округления,
ным представлением составляет в двоичном виде следующую величину: прерываниям и т. д.
0,0 000 000 000 000 000 000 000 011 001 100... или около 0,000 000 095 Такое положение в области ариф-
в десятичном виде. Компьютер работал около 100 ч, за это время на- метики с плавающей запятой явилось
копилась ошибка в измерении времени, составившая 0,34 с. Скорость причиной того, что в 1977 г. при Ком-
ракеты «Скад» составляла примерно 1700 м/с, т. е. за данное время она пьютерном обществе Института ин-
прошла более 500 м. Этого хватило для того, чтобы зенитные ракеты женеров по электротехнике и радио-
не смогли её перехватить. электронике (IEEE Computer Society)
А вот пример другой ошибки, не столь трагической, но очень доро- США была создана группа по разработ-
гостоящей. В 1996 г. происходил первый пуск ракеты «Ариан-5» Европей- ке стандарта на двоичную арифмети-
ского космического агентства. Через 40 с после старта она отклонилась ку с плавающей запятой. Членами этой
от заданной траектории и взорвалась. Ракета создавалась в течение 10 группы стали представители фирм —
лет, её разработка обошлась в 7,5 млрд долларов. производителей микропроцессоров и
Это случилось из-за неточности в программном обеспечении инер- университетские учёные. Заседания
циальной системы отсчёта. Горизонтальная скорость ракеты относитель- группы проходили очень бурно, по-
но пусковой площадки выражалась 64-разрядным числом с плавающей этому одно время говорили, что в США
запятой. В программе оно преобразовалось в 16-разрядное число с фик- три достопримечательности, которые
сированной запятой. Оказалось, что это число превысило 32 768 (мак- надо обязательно посетить, — Лас-Ве-
симальное целое число со знаком, которое можно представить в 16 раз- гас, Большой каньон и заседания груп-
рядах), преобразование дало ошибку, и ракета взорвалась. пы по разработке стандарта на двоич-
ную арифметику с плавающей запятой.
Война в Персидском заливе. Беженцы. 1991 г. Хотя стандарт был принят в 1985 г.,
уже к 1984 г. его проект был реализо-
ван ведущими фирмами (Intel, AMD,
IBM и др.).
За историю своего существования
стандарт стал фактически международ-
ным, и теперь практически все разра-
ботчики аппаратуры и программного
обеспечения следуют его требованиям.
Тем не менее в 2001 г. началась работа
по пересмотру стандарта; это вызвано
тем, что компьютерная арифметика за
последние 20 лет добилась достижений,
которые не отражены в стандарте.

318
Вычисления

МЕТОДЫ ВЫЧИСЛЕНИЙ

Расчёты требуется проводить во мно-


гих областях, и одну из ключевых ро-
К счастью, нам никогда и не требуется абсолютно точное реше-
лей в этом играет вычислительная
ние. Допустимая погрешность, т. е. отклонение вычисленного
математика. Естественные науки,
значения искомой величины от её истинного значения, опреде-
изучая то или иное явление, обычно
ляется из практических нужд. Например, нам могут быть изве-
дают его описание, формулируют
стны размеры комнаты с точностью до сантиметра, но в обыч-
законы. Описание носит либо каче-
ной жизни нам вряд ли нужно знать её объём с точностью до
ственный, либо количественный
кубического сантиметра.
характер. Если требуется спрогнози-
ровать какое-то явление или процесс
в виде числа (например, предсказать
температуру воздуха, атмосферное лений. Но это ещё не всё. На практи-
давление и т. п.), то необходимо ко- ке решение физической задачи пред-
личественное описание, или мате- полагает задание каких-то исходных
матическая модель. данных или как минимум задание зна-
чений фундаментальных физических
констант. И те и другие получают с по-
ТОЧНО ИЛИ мощью измерений, т. е. приближённо.
ПРИБЛИЖЁННО...
ПРЕДСТАВЛЕНИЕ ЧИСЕЛ
Леопольд Кронекер однажды сказал:
«Целые числа создал Господь Бог, всё
В МАШИНЕ
остальное — дело рук человеческих».
С целыми числами работать просто Физические величины принимают
и приятно. Вычисления с ними тео- как очень большие, так и очень малень-
ретически можно осуществлять с аб- кие значения. Причём и те и другие
солютной точностью. Совсем другое могут встретиться в одной задаче. На-
дело — числа вещественные (мате- пример, скорость света в вакууме со-
матики предпочитают термин «дей- ставляет около 300 000 000 м/c, а гра-
ствительные»), более знакомые нам витационная постоянная примерно
как десятичные дроби. Последние бы- равна 0,000 000 000 066 7 Hм2/кг2. Для
вают как конечные, так и бесконеч- удобства работы с такими числами
ные — периодические и непериоди- физики давно используют так назы-
ческие. Например, из школьного курса ваемую экспоненциальную форму за-
математики известно, что число π писи. Вместо 300 000 000 пишут 3 .108,
не выражается конечной или беско- а вместо 0,000 000 000 066 7 —
нечной периодической десятичной 6,67 .10–11. Целое или дробное число,
дробью, т. е. является иррациональным. стоящее перед цифрой 10, называет-
Именно с действительными чис- ся мантиссой, а целое число, находя-
лами сталкиваются при решении фи- щееся после 10, — порядком или экс-
зических задач. Масса тела, величи- понентой. Вся запись означает, что
на заряда, скорость, ускорение, сила число равно мантиссе, умноженной на
тяжести — всё это примеры физиче- основание (в данном случае 10) в со-
ских величин. Некоторые из них, ответствующей степени.
такие, как масса или заряд, являются Тот же принцип применяется для
скалярами и характеризуются одним представления вещественных чисел
действительным числом. Другие же, в современных компьютерах, толь-
векторы, задаются тремя действи- ко вместо десятичной используется
тельными числами — координатами двоичная система счисления. Для
вектора. хранения мантиссы и порядка отве-
Даже теоретически действитель- дено определённое для данного про-
ные числа не допускают ни точной за- цессора количество разрядов. По-
писи, ни, уж подавно, точных вычис- зиция запятой, отделяющей целую Леопольд Кронекер.

319
Хранение и обработка информации

ставлять числа в диапазоне 2–128 — 2128


или примерно от 10–39 до 1039.
В числах длинного формата (64 раз-
ряда) для мантиссы отведём, скажем,
52 разряда, а для порядка — 11. Это
разрешило бы представлять числа
с точностью до 16 десятичных разря-
дов в диапазоне примерно от 10–308
до 10308.
Теперь понятно, что вещественные
числа, которые могут быть представ-
лены в машине, покрывают числовую
ось своеобразной сеткой, причём чем
часть мантиссы от дробной, счита- ближе к нулю, тем меньше становят-
ется зафиксированной раз и навсе- ся её ячейки. Это значит, что для каж-
гда (обычно перед первой двоичной дого машинного вещественного чис-
цифрой мантиссы). Как и раньше, вся ла а существуют его ближайшие
запись означает, что мантиссу нуж- соседи a0, a1 (a0 < a < a1), а между а и
но умножить на основание, возведён- его соседями никаких чисел нет.
ное в степень порядка. Только осно- Вообще представление вещест-
вание теперь равно 2. венных чисел в данной машине удоб-
Запись вещественного числа в экс- но характеризовать двумя констан-
поненциальной форме можно пони- тами. Первая — машинное ε — это
мать ещё и так: порядок задаёт коли- самое большое число, которое, буду-
чество разрядов, на которое нужно чи прибавлено к единице, не меняет
передвинуть запятую в записи ман- её. Такое число равно 1/2l, где l — ко-
тиссы, чтобы получить искомое чис- личество разрядов в мантиссе. Или
ло (влево или вправо, в зависимости 1/224≈10–7 для короткого формата и
от знака порядка). Поэтому такую 1/253 ≈ 10–16 — для длинного. Вторая
форму представления чисел называ- константа — самое маленькое нену-
ют форматом с плавающей запятой, левое число, представимое в маши-
а сами вещественные числа — числа- не, или машинное θ, равно соответ-
ми с плавающей запятой. ственно 1/2128 ≈ 10–39 и l/21024 ≈ 10–308.
Количество разрядов в мантиссе Зная эти константы, можно теорети-
определяет точность в представле- чески оценить погрешности при вы-
нии числа, а количество разрядов экс- числениях.
поненты — диапазон представления
чисел. Многие компьютеры поддер-
живают два формата чисел с плаваю- РОЛЬ ОШИБОК
щей запятой — короткий и длинный.
Например, короткий формат занима-
ОКРУГЛЕНИЯ
ет 32 разряда, из них 8 разрядов отво-
дится на порядок, 23 — на мантиссу и При вычислении по формулам может
1 разряд — на знак числа. Можно счи- катастрофически падать точность.
тать, что старший разряд мантиссы Поэтому часто приходится искать об-
всегда равен 1. Тогда его хранить не ходной путь для получения правиль-
надо, точность представления числа ной вычислительной схемы. В неко-
составит 24 двоичных разряда или торых простых случаях решение
примерно 7 десятичных. Порядок физической задачи сводится к вычис-
длиной 8 разрядов позволит пред- лению по формуле. Но даже здесь по-
рой таятся подводные камни.
Пусть при решении можно вос-
пользоваться разложением функции
Справедливости ради заметим, что существовали компьютеры с e x в ряд Тейлора в окрестности точ-
основанием в представлении действительных чисел, равным 8 и ки x = 0:
даже 16 — в любом случае степени двойки. ∞
e x =Σ x k/k!
k=0

320
Вычисления

Этот ряд довольно быстро схо-


дится, особенно при небольших x.
На практике процесс вычислений об- ИНТЕРВАЛЬНАЯ АРИФМЕТИКА
рывают, когда прибавление очеред-
ного слагаемого перестаёт изменять Один из подходов к оценке погрешности вычислений осно-
сумму. ван на использовании интервальной арифметики. Идея со-
При больших по абсолютной ве- стоит в том, что приближённое значение вещественного чис-
личине отрицательных x возникает ла заменяется парой чисел. Эта пара чисел задаёт интервал,
проблема: значения слагаемых сна- внутри которого заведомо находится точное значение числа.
чала очень быстро возрастают и Арифметические действия над числами заменяются на дей-
лишь потом начинают уменьшаться. ствия с интервалами. Это позволяет на конкретных данных
Некоторые члены ряда могут значи- увидеть, как растёт погрешность, и убедиться в необходимой
тельно превзойти ожидаемый ре- точности вычислений.
зультат. Поскольку в компьютере нет встроенных команд интер-
Поскольку погрешность при вы- вальной арифметики, для реализации метода приходится ис-
числении каждого слагаемого имеет пользовать специальные подпрограммы. Ясно, что это значи-
порядок самого слагаемого, умно- тельно увеличивает время счёта. Поэтому описанный подход
женного на машинное ε, суммарная не применяется при проведении серийных вычислений. Но он
ошибка оказывается слишком боль- бывает полезен при анализе роли погрешностей вычислений
шой. Чтобы обойти эту сложность, на отдельных примерах, а также при вычислении значений
лучше воспользоваться свойствами математических констант, когда точная оценка погрешности
функции e x: существенна для доказательства теорем.

e –x = 1/e x.

Для больших положительных x


сходимость ряда можно улучшить
(а тем самым ускорить вычисления),
применив тождество:

eN + x = eN . ex

или

e N . x = (e x)N,

где N — целое число.

Если известен отрезок, на концах


НАХОЖДЕНИЕ КОРНЕЙ которого функция f(x) принимает
разные знаки, и нас интересует один
УРАВНЕНИЯ корень, причём любой, то для реше-
ния воспользуемся методом деления
Многие задачи сводятся к решению отрезка пополам. В нашем случае, ес-
уравнения вида ли a >1, это отрезок от 0 до a. Корень
уравнения заведомо находится внут-
f(x) = 0, ри отрезка. Вычислим значение
функции f(x) в середине отрезка и
где f(x) — некая функция, значения ко- проверим знак. Выберем в качестве
торой можно вычислить. Школьный нового отрезка ту половину перво-
пример — нахождение значения √a, начального отрезка, на концах кото-
решая уравнение рой функция имеет разные знаки.
Новый отрезок стал в два раза короче
x2 – a = 0. старого. Будем продолжать данный
процесс до тех пор, пока длина от-
Здесь f (x) = x2 – a, где a — некоторое резка не станет меньше допустимой
действительное число. погрешности.

321
Хранение и обработка информации

ют по схеме хk+1 = G(xk). Если функция


G(x) и начальное приближение x0 вы-
браны правильно, то этот процесс схо-
дится, и мы в конце концов получим ре-
шение с желаемой точностью. Условие
сходимости формулируется следу-
ющим образом: искомое решение и на-
чальное приближение должны лежать
на отрезке, на котором для двух любых
точек x1, x2 справедливо неравенство

| G(x2) – G(x1) | < q | x2 – x1 | ,

где q — положительное число меньшее


единицы, а | x | — модуль вектора x.
Условие истинно, если G имеет
модуль производной меньше едини-
алг Вычисление корня цы на отрезке от начального прибли-
нач вещ A,B,e,C жения до корня. Здесь в общем слу-
| e:=0.01 чае x уже не одно число, а набор
| вывод нс, «Введите A=»; ввод A чисел, например вектор. Соответст-
| вывод нс, «Введите B=»; ввод B венно G(x) — это функция, преобра-
| нц пока B-A>2*e зующая вектор в вектор.
| | C:=(A+B)/2 Итерационным является также
| | если f(A)*f(C)<=0 широко известный метод Зейделя для
| | | то B:=C решения систем линейных уравне-
| | | иначе A:=C ний. В отличие от точных методов,
| | всё например метода Гаусса, метод Зей-
| кц деля является приближённым: реше-
| C:=(A+B)/2 ние задачи проводится путём повто-
| вывод нс, «Корень=», C, рения шагов до тех пор, пока не будет
| «точность=», e достигнута нужная точность.
кон Пусть дана система
алг вещ f(вещ X) n
нач
| знач:=X**2-2 Σ aij xj = bi , i = 1, 2, … , n.
j=1
кон
Задаётся начальное приближение
Если длина отрезка в начале про- xi0i (i = 1, 2, … , n). Далее проводятся ша-
цесса была L, а требуется получить от- ги k по уточнению решения. На каж-
вет с точностью ε, то надо будет сде- дом шаге вычисляются компоненты
лать log2(L/ε) шагов. нового приближения x ik. Формулы для
Метод деления пополам позволя- этих вычислений получаются так. Пе-
ет решить задачу отыскания корня репишем i-е уравнение в виде
одного уравнения, но он с трудом пе-
i−1 n
реносится на случай решения зада-
чи для системы уравнений. Этого не-
Σ aij x kj+aii xki +j=i+1
j=1
Σ aij xjk-1=bi .
достатка лишены итерационные
методы. Тогда получим формулу для вы-
Сначала задачу сводят к урав- числения нового (т. е. получаемого
нению на k-м шаге) значения хi :
i−1 n
G(x) = x. x ki =(bi –Σ aij x kj + Σ aij x k–1)/aii .
j=1 j=i+1
Затем каким-либо способом опре-
деляют начальное приближение к кор- Метод Зейделя сходится не всегда.
ню x0. Наконец, приближение уточня- Закономерен вопрос, зачем нужны ите-

322
Вычисления

рационные методы для решения зада- стемы. Если промежуток времени ∆t


чи, если для этого есть точные методы. мал, производные x'(t) и v'(t) можно
При решении задач часто встреча- приближённо вычислить по формулам
ются особые матрицы — разрежен-
ные или матрицы, ненулевые элемен- х'(t) ≈ (x(t+∆t)–x(t))/∆t,
ты которых легко вычислить. v'(t) ≈ (v(t+∆t)–v(t))/∆t.
При преобразовании матрицы ме-
тодом Гаусса число ненулевых эле- Разобьём интересующий нас вре-
ментов быстро растёт, и приходится менной интервал от t = 0 до t = T на не-
хранить всю матрицу. большие отрезки длиной ∆t: t0 = 0, t1 =
В методе Зейделя вычисляются = ∆t, … , ti = ti–1 + ∆t, … , tN = T. Теперь, за-
только суммы, поэтому в случае разре- дав координату x0 и скорость v0 тела в
женной матрицы можно значительно начальный момент времени t0 , можно
сэкономить память, если хранить не последовательно вычислить их значе-
всю матрицу, а лишь ненулевые эле- ния в моменты времени t1, … , tN, исполь-
менты и их индексы. зуя формулы Карл Фридрих Гаусс.

xi+1 = xi + vi ∆t,
РЕШЕНИЕ ДИФФЕРЕН- vi+1 = vi – (kx/m)∆t.
ЦИАЛЬНЫХ УРАВНЕНИЙ Таким образом задача отыскания
функции на отрезке, т. е. объекта, за-
Приближение элементарных функ- даваемого бесконечным количеством Разреженной являет-
ций, решение уравнений — всё это ти- чисел, свелась к нахождению табли- ся матрица, у которой
пично математические задачи, встре- цы значений функций х и v в отдель- большинство элемен-
чающиеся, впрочем, на каждом шагу. ных точках этого отрезка. Такой про- тов равно нулю.
Непосредственно же рассмотрение цесс сведения «бесконечной» задачи
физической задачи приводит, как пра- к «конечной» называется дискрети-
вило, к дифференциальному уравне- зацией. Вопросами же оценки точно-
нию той или иной степени сложно- сти полученного решения и её зави-
сти или к системе таких уравнений. симости от N занимается теория
Рассмотрим тело, подвешенное на приближений.
пружине. Расположим ось X вдоль ли-
нии натяжения пружин. Если откло- ***
нить тело вдоль оси X, то на него будет
действовать сила, стремящаяся вернуть Существует ещё одна проблема, акту-
тело в первоначальное состояние. По альная для любого численного мето-
закону Гука эта сила равна да, — проблема эффективности. Обыч-
но в докомпьютерные времена для
F = – k x. оценки сложности работы програм-
мы подсчитывали количество умно-
Воспользовавшись вторым зако- жений. Однако в реальности доля
ном Ньютона, получаем умножений в вычислениях отнюдь
не самая большая. Во-первых, в со-
mа = –k x. временных компьютерах умножение
и сложение вещественных чисел тре-
Вспомнив, что ускорение есть буют одинакового или почти одина-
производная скорости (а = v'), а ско- кового времени. Но главное — время
рость — производная координаты доступа к оперативной памяти во
(v = х'), получаем систему дифферен- много раз больше, чем время выпол-
циальных уравнений нения любой арифметической опе-
рации. Кроме того, на практике при
v' = – kx/m, выборе того или иного способа ре-
х' = v. шения задачи на компьютере важ-
ную роль играет возможность при-
Теперь можно построить простой способить алгоритм к особенностям
метод для решения предложенной си- аппаратуры.

323
Хранение и обработка информации

МЕТОД НЬЮТОНА

Общий случай Пример Ньютона

Пусть задана функция y = f(x) Ньютон выбирает функцию y = х3 – 2х – 5

Требуется решить приближённо уравнение Ньютон собирается решить приближённо уравнение


f(x) = 0 х3 – 2х – 5 = 0

Предположим, что нам известно значение Ньютону известно, что значение x = 2 мало
X0 , которое мало отличается от корня отличается от корня

Сделаем замену x = x0 + p Ньютон делает замену x = 2 + p

Подставим x0 + p вместо x в уравнение Ньютон получает новое уравнение


f(x) = 0 и получим новoe уравнение g(p) = 0 p3 + 6p2 + 10p – 1 = 0

Теперь отбросим в уравнении все члены, Ньютон отбрасывает в уравнении члены


степень которых выше первой, оставив p3 + 6p2 и оставляет уравнение 10p – 1 = 0
только свободный член и член первой
степени по p: Bp + A = 0

Найдём приближённое значение корня p0 Ньютон находит p = 0,1 из уравнения


из уравнения Bp + A = 0 10p – 1 = 0

Возьмём в качестве приближённого Ньютон откладывает этот шаг до конца вычисления


значения корня исходного уравнения
x1 = x0 + p0

Коэффициенты А и В в уравнении
для p можно легко вычислить, не де-
ТОЧНОСТЬ МЕТОДА НЬЮТОНА лая подстановку x = x0 + p и не выпи-
сывая уравнение для p. Поскольку
Если один шаг метода Ньютона не даёт требуемой точности, то мож- f(x0+ p) = g(p) = ... + Bp + A , то подста-
но сделать ещё один шаг: вив p = 0, убедимся, что A = f(x 0).
x2 = x1 – f(x1)/f '(x1) Аналoгично, продифференцировав
по переменной p обе части тождества
и т. д. Метод Ньютона замечателен тем, что если исходное прибли- f (x0 + p) = ... + Bp + A и подставив p = 0,
жённое значение корня достаточно близко к корню, то при каждом получим B = f '(x 0). Таким образом,
шаге Ньютона число верных десятичных знаков ответа будет как ми- вместо уравнения f(x0 + p) = 0 мы ре-
нимум удваиваться. Если попробовать решить методом Ньютона урав- шаем уравнение f '(x0)p + f(x0) = 0. Ко-
нение, в котором заранее известен точный корень: x2 – 1 = 0, то в ка- рень этого уравнения даётся форму-
честве приближённого значения корня берётся x0 = 1,1. Это лой p0 = – f(x0)/f '(x0), следовательно,
приближение имеет один верный знак. Можно предположить, что по- в качестве нового приближённого
сле одного шага Ньютона получится не меньше двух верных знаков, значения корня уравнения f(x) = 0
а после двух шагов — не меньше четырёх. Поскольку (x2 – 1)' = 2x, то: можно взять x1 = x0 – f(x0)/f '(x0).
Переход от приближённого значе-
x1 = x0 – f(x0)/f '(x0) = 1,1 – 0,21/2,2 . 1,1 – 0,095 = 1,005, ния корня x0 к более точному прибли-
жённому значению x1 называется ша-
x2 = x1 – f( x1)/f '( x1) = 1,005 – (1,0052 – 1)/2,010 × 1,005 –
гом метода Ньютона.
– 0,004985=1,00001. Метод Ньютона не работает, если в
уравнении f '(x0)p + f(x0) = 0 коэффи-
Результат превзошёл ожидания: после одного шага три верных циент f '(x0) равен нулю или близок к
знака, а после двух шагов — пять верных знаков. нулю. То же случается, когда рядом с
приближённым значением x0 два кор-

324
Вычисления

ня уравнения. В этом случае Ньютон Если в последней системе урав-


предлагает оставить в уравнении для p нений отбросить все члeны, кроме
не только свободный и линейный чле- уже выписанных, то поправки p и q
ны, но и квадратичный член:

f(x0 + p) = g(p) = ... + Cp2 + Bp + A


«...Уравнения высших степеней решаются совершенно так же ... до-
казательство метода явствует из самого способа действий, на
(можно доказать, что C = f ''(x 0)/2).
основании чего его легко в случае необходимости вспомнить».
Отбросив члены порядка 3 и вы-
ше, получим квадратное уравнение. Исаак Ньютон
Из него находятся две поправки к x0
и два новых приближённых значе-
ния корня, к каждому из которых
можно применить обычный метод
Ньютона.
Ньютон был одним из создателей ЧТО ПИШЕТ НЬЮТОН
дифференциального исчисления.
Основная идея исчисления состоит в В работе «Анализ с помощью уравнений с бесконечным числом чле-
том, что график любой функции, за- нов» (1664—1671 гг.) Ньютон излагает способ числового (приближён-
данной формулой или бесконечным ного) решения уравнения следующим образом.
рядом, при рассматривании в микро- «Пусть требуется решить уравнение х3 – 2х – 5 = 0 и 2 представля-
скоп будет почти неотличим от неко- ет то число, которое отличается от искомого корня меньше, чем на свою
торой прямой. Эта прямая называет- десятую часть (т. е. Ньютон каким-то образом нашёл число, мало отли-
ся касательной к графику функции, а чающееся от искомого корня. — Прим. ред.). Тогда я полагаю 2+ p = x
её угловой коэффициент — произ- и подставляю это выражение в уравнение, причём получается новое:
водной данной функции. Геометри-
ческий смысл метода Ньютона: для p3 + 6p2 + 10p – 1 = 0,
решения уравнения f (x) = 0 вблизи
приближённого корня x0 нужно гра- у которого следует определить корень p, чтобы прибавить к перво-
фик функции заменить касательной му результату (корень х исходного уравнения будет равен 2 + p, где
прямой к этому графику в точке x0 и p — корень нового уравнения. — Прим. ред.). Отсюда (пренебрегая
найти пересечение касательной с p3 + 6p2 по малости. — Прим. ред.) имеем приблизительно
осью X. Поэтому метод Ньютона ино-
гда называют методом касательных. 10p – 1 = 0 или p = 0,1.
Метод Ньютона может быть с успе-
хом применён не только к одному Поэтому я пишу в результате 0,1 и полагаю 0,1 + q = p; это вы-
уравнению, но и к системе несколь- ражение я подставляю, как и раньше, причём получается
ких уравнений с несколькими неиз-
вестными. q3 + 6,3q2 + 11,23q + 0,061 = 0,
Суть метода остаётся прежней. На-
пример, если для системы двух урав- а так как уравнение
нений с двумя незвестными 11,23q + 0,061 = 0

f(x, y) = 0, почти соответствует истине, то q почти равно –0,0054.


g(x, y) = 0 Полагая – 0,0054 + r = q, я это выражение подставляю, как рань-
ше, и продолжаю эти операции сколько
мы знаем приближённое решение x0 угодно раз... и получаю приблизительно
и y0, то более точное решение нужно r = – 0,00004853 и имею искомый резуль-
искать, сделав замену тат:

x = x0 + p, +2,000 000 00
y = y0 + q +0,100 000 00
– 0,005 400 00
и записав – 0,000 048 53
---------------
f(x0 + p, y0 + q) = ... + Аp + Bq + C = 0, +2,09455147 = x». Исаак Ньютон.
g(x0 + p, y0 + q) = ... + Dp + Eq + F = 0.

325
Хранение и обработка информации

можно будет найти, решив систему Геометрически этот метод состо-


двух линейных уравнений с двумя ит в замене графиков функций f и g
неизвестными. их касательными плоскостями.

КОМПЬЮТЕРНАЯ АЛГЕБРА

ЧТО ТАКОЕ ния выполняются с вещественными


КОМПЬЮТЕРНАЯ АЛГЕБРА или комплексными числами. В дейст-
вительности же всякая программа для
ЭВМ имеет дело только с конечным
набором рациональных чисел, по-
Компьютерная алгебра — область ма- скольку лишь такие числа представ-
тематики, лежащая на стыке алгебры ляются в компьютере. Для записи це-
и вычислительных методов. Поэтому лого числа отводится обычно 16 или
для неё трудно определить чёткие гра- 32 бит, для вещественного — 32 или
ницы. Часто к компьютерной алгеб- 64 бит. Это множество не замкнуто
ре относят вопросы либо слишком ал- относительно арифметических опе-
гебраические, чтобы содержаться в раций, что может выражаться в раз-
учебниках по вычислительной мате- личных переполнениях, например
матике, либо слишком вычислитель- при умножении достаточно больших
ные, чтобы содержаться в учебниках чисел или при делении на малень-
по алгебре. Ответ на вопрос о том, от- кое число. Ещё более существенной
носится ли конкретная задача к ком- особенностью вычислительной ма-
пьютерной алгебре, часто зависит от тематики является то, что арифме-
склонностей специалиста. тические операции над целыми и ве-
Термин «компьютерная алгебра» щественными числами, выполняемые
возник как синоним терминов «сим- компьютером, отличаются от точных
вольные вычисления», «аналитиче- арифметических операций с рацио-
ские вычисления», «аналитические нальными числами. Более того, для
преобразования» и т. д. Во француз- компьютерных операций не дейст-
ском языке он дословно означает вуют основные законы арифметиче-
«формальные вычисления». ских операций (законы ассоциатив-
Когда говорят о вычислительных ности, дистрибутивности).
методах, то считают, что все вычисле- Набор объектов в символьных вы-
числениях весьма разнообразен, в
частности, понятие числа в них зна-
чительно шире, чем в вычислитель-
ной математике. Оно включает в себя
целые числа, рациональные числа, ал-
гебраические числа, кольца вычетов,
конечные поля и др. Величина допу-
стимых целых чисел практически не-
ограничена: любая система компью-
терной алгебры умеет работать с
такими числами, как 1000! (фактори-
ал). Вещественные числа реже приме-
няются в компьютерной алгебре, они
задаются с произвольной точностью,
например тысяча десятичных знача-
щих цифр. Гораздо чаще употребля-
ется множество рациональных чисел,
которое всё равно остаётся конечным
(поскольку оперативная память ЭВМ
конечна), но пользователь никогда

326
Вычисления

не замечает этого ограничения. Он


может выполнять операции практи-
5
чески с любыми рациональными чис- 2 + 2√3 – 4√11
лами, если это приемлемо по време-
ни. Компьютерные операции над
рациональными числами совпадают
с соответствующими математически-
ми операциями. Таким образом, сни-
мается одна из основных проблем вы-
числительных методов — оценка
погрешности вычислений.
В настоящее время широкое при-
менение получили вычисления в коль-
цах вычетов. Кольцо вычетов по мо-
дулю натурального числа n можно
представлять себе как множество це-
лых чисел от 0 до n–1 с операциями
сложения, вычитания и умножения.
Результатом такой операции являет-
ся остаток от деления на n результата
соответствующей операции, выпол- На полиномиальной арифметике
няемой над целыми числами (если ре- основаны теоретические методы ана-
зультат вычитания отрицателен, то литической механики, реализованные
прибавляем n). В реальных крипто- во многих областях математики, фи-
графических системах используются зики и других наук. Кроме того, в ком-
вычеты по модулю n, где n — натураль- пьютерной алгебре рассматриваются
ное число, десятичная запись которо- дифференциальные поля (функцио-
го содержит несколько сотен цифр. нальные поля), допускающие показа-
Особенно важное значение имеют тельные, логарифмические, тригоно-
кольца вычетов, где n — простое чис- метрические функции, матричные
ло. В таких кольцах существует одно- кольца (элементы матрицы принад-
значно определённая операция деле- лежат кольцам достаточно общего ви-
ния на любое ненулевое число (они да) и др. Для записи промежуточных
называются конечными полями). результатов вычислений требуется
При решении нелинейных алгеб- значительный объём памяти ЭВМ, так
раических (в частности, квадратных) как количество информации непомер-
уравнений сталкиваются с алгебраи- но увеличивается.
ческими числами. Алгебраически-
ми чиселами могут быть простые ра-
дикальные выражения, например: АЛГОРИТМЫ
5
2 + 2√3 – 4√11,
КОМПЬЮТЕРНОЙ АЛГЕБРЫ

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


3 алгоритмами, которые существенно
√2 + 34√2.
4
отличаются от алгоритмов вычисли-
тельной математики. К алгоритмам
Уравнения степени 5 и выше в вычислительной математики предъ-
общем виде «неразрешимы в радика- являются следующие требования: они
лах», поэтому для задания корня тако- должны решать задачу с необходи-
го уравнения нужно задать минималь- мой точностью при заданных вычис-
ный многочлен, корнем которого лительных ресурсах. В компьютер-
является данное число, а иногда тре- ной алгебре вычисления обычно
буется также указать интервал на пря- производятся без округления, анали-
мой или область в комплексной пло- зу сходимости уделяется меньше вни-
скости, где содержится единственный мания, зато набор математических,
корень этого многочлена. в первую очередь алгебраических,

327
Хранение и обработка информации

(10a + b)(10c + d) =
=100ac + 10(ad + bc) + bd.
В научных исследованиях и технических расчётах специалистам
приходится гораздо больше заниматься преобразованиями фор-
Имеем четыре операции умноже-
мул, чем собственно численным счётом. Однако с появлением
ния однозначных чисел, три опера-
ЭВМ основное внимание уделялось автоматизации последнего,
ции сложения и две операции умно-
хотя более 40 лет назад ЭВМ применяли для решения таких за-
жения числа на степень 10. Будем
дач символьных вычислений, как символьное дифференцирова-
считать, что умножение на степень
ние. Активная разработка систем компьютерной алгебры нача-
10 выполняется очень быстро, сло-
лась в конце 60-х гг. С тех пор создано значительное количество
жение — медленнее, а умножение
систем, получивших различную степень распространения. Неко-
двух чисел — существенно медлен-
торые системы продолжают развиваться, другие отмирают, по-
нее (весьма естественное предполо-
стоянно появляются новые.
жение).
Можно ли уменьшить количество
умножений, увеличив, если необходи-
объектов сложной структуры значи- мо, количество сложений? Оказыва-
тельно шире. Поэтому ограничения ется, да. Впервые такой алгоритм, ис-
по времени счёта и по используемой пользующий только три умножения,
памяти в символьных вычислениях предложил в 1956 г. А. А. Карацуба.
существенно более обременительны, Перемножив a – b и d – c, получим
чем в вычислительных методах. ad + bc – bd – ac; два других умноже-
Использование компьютеров в ал- ния нужны, чтобы вычислить ac и bd.
гебраических исследованиях не толь- Комбинируя эти три значения, ис-
ко поставило перед специалистами пользуя лишь операции сложения и
ряд новых задач, но и заставило пе- сдвига (умножения на степень двой-
ресмотреть прежние задачи, в част- ки), легко получить искомую форму-
ности задачи, решённые «за конеч- лу, так как
ное число шагов». При этом методы
решения отличались большим разно- ad + bc = (a – b)(d – c) + ac + bd.
образием и универсальные методы
для конкретных вычислений практи- Задача допускает различные обоб-
чески не применялись. С увеличени- щения, например: перемножить два
ем размера задачи резко возрастали комплексных числа, используя только
время счёта и необходимая память три вещественных умножения; пере-
компьютера. множить две матрицы второго поряд-
В качестве примера рассмотрим ка, используя только семь скалярных
задачу перемножения двух двузнач- умножений.
ных чисел в некоторой позиционной Основой любой системы компью-
системе счисления, например в деся- терной алгебры являются вычисления
тичной: с многочленами. Вот две задачи, ак-
тивно исследуемые в последние де-
сятилетия. Первая из них — задача
факторизации, т. е. разложения мно-
гочлена на неприводимые множите-
ли. Пусть дан многочлен f (x) от одной
переменной с целыми коэффициен-
тами, требуется разложить его на не-
приводимые множители. С точки зре-
ния «чистой» математики эта задача
давно решена полностью и оконча-
тельно: есть алгоритм, позволяющий
находить требуемое разложение «за
конечное число шагов». Один из та-
ких алгоритмов получен в 1882 г. Лео-
польдом Кронекером, чьим именем
он и называется в настоящее время,
хотя ещё австрийский астроном Шу-

328
Вычисления

берт знал его за 100 лет до Кронеке- метическими операциями операции


ра. Алгоритм Кронекера основан на извлечения корня, тригонометриче-
следующих фактах: ские, логарифмические, показатель-
• если многочлен степени n разла- ные функции и ряд других. Основу
гается на множители нетривиальным дифференциального и интегрально-
образом, то степень хотя бы одного го исчислений составляют операции
из них не превосходит n/2; дифференцирования и интегриро-
• коэффициенты многочлена сте- вания.
пени m однозначно определяются его Операция дифференцирования
значениями в m + 1-точке; легко описывается алгебраически, её
• если g(x) делит f(x), то g(j) делит реализация не представляет труднос-
f(j) для любого целого числа j; тей. Гораздо сложнее обстоит дело с
• у любого ненулевого целого чис- обратной операцией — интегрирова-
ла имеется только конечное число де- нием. Вычислительная математика свя-
лителей. зана обычно с определёнными инте- Леопольд Кронекер.
К сожалению, этот метод требует гралами; результатом вычислений при
перебора очень большого числа вари- этом является некоторое число. Ком-
антов и не может применяться для ре- пьютерная алгебра вычисляет неопре-
шения реальных задач. делённые интегралы, являющиеся
Следующий шаг в исследовании ал- функциями. До недавнего времени
горитмов факторизации был сделан считалось, что алгоритмов нахожде-
лишь в 60-х гг. XX столетия, когда ния неопределённых интегралов для
нашли достаточно эффективный ал- достаточно широкого класса функций
горитм для разложения на множите- не существует. Активно такие алгорит-
ли многочленов с коэффициентами мы начали разрабатывать только в
из конечного поля. Этот метод в соче- конце XX в.
тании с некоторыми классическими Аналогичное различие наблюда-
и новыми результатами позволил раз- ется в подходе вычислительной ма-
лагать на множители многочлены со- тематики и компьютерной алгебры к
той степени (и даже выше). решению дифференциальных урав-
Другая задача связана с упрощени- нений. Вычислительная математика
ем систем алгебраических уравнений понимает решение как функцию, зна-
(т. е. многочленов) путём приведения чения которой вычислены в некото-
системы к некоторой стандартной рых точках. Компьютерная алгебра
форме. Если система зависит от мно- стремится найти решение в виде фор-
гих неизвестных, но является линей- мулы (что возможно далеко не все-
ной, то её можно привести к диагональ- гда). Существенным вкладом в эту об-
ному виду («решить»). Стандартная ласть является алгоритм решения
форма нелинейных систем, зависящих линейных дифференциальных урав-
от многих неизвестных, имеет более нений второго порядка, полученный
сложный вид (называемый базисом в 70-х гг.
Гребнера). Она применяется во мно- Компьютерная алгебра использу-
гих областях науки, поэтому эффек- ется также при нахождении решений
тивным методам её построения посвя- дифференциальных уравнений в виде
щено много работ. степенных рядов, при анализе устой-
Компьютерная алгебра, как прави- чивости решений, поиске периодиче-
ло, имеет дело не с численными зна- ских решений и в других задачах тео-
чениями функций, а с их представле- рии дифференциальных уравнений.
нием в виде формул достаточно Широко распространена компьютер-
общего вида. В частности, класс эле- ная алгебра при построении разност-
ментарных функций разрешает ис- ных схем для численного решения
пользовать в формулах наряду с ариф- дифференциальных уравнений.

329
АВТОМАТИЗАЦИЯ
ИНТЕЛЛЕКТУАЛЬНОЙ
ДЕЯТЕЛЬНОСТИ
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ

CAD функции системы, дописывая неболь-


шие программы на специальном язы-
С помощью ЭВМ легко рисовать пря- ке. Раньше надо было переделывать
моугольники, эллипсы, параллельные чертёж полностью иногда даже при
линии и фигуры различной сложно- небольших изменениях модели, в
сти — здесь не нужна твёрдая рука компьютер такая корректура вносит-
чертёжника. На экране компьютера ся быстро, и сразу можно получить
проще готовить и сам чертёж. В рас- результаты изменений на бумаге. Для
поряжении конструктора — заготов- решения таких задач и разработа-
ки часто использующихся элементов, ны системы CAD (Computer Aided De-
шрифты различных размеров и сти- sign), или, в русском варианте, САПР
лей. Можно взять фрагменты готовых (система автоматизированного про-
чертежей (даже ввести со сканера). ектирования).
Нарисованную фигуру можно повер- Первым применил компьютеры в
нуть на произвольный угол или сим- системах автоматизированного про-
метрично отобразить её, увеличить ектирования и производства Патрик
или уменьшить размер. ЭВМ позво- Хэнрети. В 1957 г. он разработал пер-
ляет однотипные действия записать вую коммерческую систему числового
в единую макрокоманду, создавать программного управления — PRONTO.
собственные команды, расширять Затем, в 1960 г., Айвен Сазерленд на

330
Автоматизация интеллектуальной деятельности

компьютере TX-2 в лаборатории Лин-


кольна Массачусетсcкого технологи-
ческого института создал пакет
SKETCHPAD, который считается пер-
вым шагом в индустрии CAD-систем.
В том же году была основана ком-
пания McAuto (McDonnell Douglas
Automation Company). Она сыграла
значительную роль в исследованиях
в области автоматизированного про-
ектирования. Первые CAD-програм-
мы использовали простейшие алго-
ритмы для прорисовки шаблонов,
состоящих из отрезков и линий, сна-
чала только в одной плоскости, а за-
тем и в 3D-пространстве. В течение
последующих лет CAD-системы не-
прерывно развивались. Уже в конце
70-х гг. типичная CAD-система ба-
зировалась на 16-битном мини-
компьютере с максимумом памяти
в 512 кбайт, объём дисковой памяти
для хранения информации достигал
300 Мбайт, и стоила такая система
около 125 тыс. долларов.
Инженеры сразу же оценили пре- лие не спроектировано на заказ и его
имущества автоматизации построе- собираются самостоятельно прода-
ния геометрических элементов: авто- вать (допустим, когда хотят выпускать
матическую штриховку и нанесение автомобиль). Прототип на экране час-
размеров, точность чертежа и т. п. то выглядит значительно естествен-
Обычный чертёж проектируемого нее, чем модель, изготовленная из лю-
объекта представляет собой тради- бого материала.
ционный способ плоского геометри- В CAD-системах обычно распро-
ческого моделирования. Его выпол- странены два типа плоского модели-
няет человек с помощью линейки, рования. В первом случае основными
циркуля и транспортира на листе бу- элементами являются отрезки, дуги,
маги, кальке и т. п. На этот лист шаг за линии, кривые, а в качестве базовых
шагом наносят всю заданную и вновь операций моделирования использу-
появляющуюся информацию. Нужно ют продление, обрезку и соединение
обеспечить определённую точность, элементов. К этому типу относится од-
сделать построения в максимально на из популярных САПР — система
возможном масштабе. Однако на чер- AutoCAD.
теже, созданном за кульманом, по- В другом случае элементы — замк-
грешность построений редко быва- нутые контуры, а операции — объ-
ет меньше десятых долей миллиметра. единение, дополнение, пересечение.
CAD-системы дают возможность не
только более точно выполнить по-
строения и автоматически провести
Компьютерное моделирование используют во многих специаль-
нужные вычисления, но и рассчитать
ностях; при этом применяют различные методы проектирования:
параметры проектируемого объекта
геометрические, технологические, эргономические и т. п. Это
(например, центр тяжести, моменты
привело к более глубокой специализации систем CAD/CAM/CAE
инерции, вес, различные нагрузки),
(Computer Aided Engineering). Инструменты проектирования так-
получить полный набор документов,
же различаются в зависимости от области применения. Например,
включая расчёты модели и чертежи.
в 1991 г. была создана система ArhiCAD — инструмент для ар-
Построенную на экране компьютера
хитекторов и дизайнеров.
3D-модель используют при изучении
потенциального спроса, если изде-

331
Хранение и обработка информации

Часто хочется, опираясь на мето-


ды математического моделирования,
Американская корпорация «Боинг» в 1978 г. начала одновремен-
создавать обобщённые модели изде-
ное проектирование новых (в то время) моделей самолётов
лий, например сконструировать об-
757 и 767. Несмотря на то что машины сильно отличались, у них
щую модель поршневого двигателя
было много унифицированных узлов. При разработке активно
внутреннего сгорания. (Все моторы
использовались CAD-системы. Это позволило сократить как вре-
этого вида основаны на одних и тех
мя разработки, так и затраченные средства.
же принципах и состоят из однотип-
ных деталей: цилиндров, поршней,
шатунов и т. п.) Сегодня существуют
Аналогично разделение и при объ- методики расчётов деталей двигате-
ёмном моделировании. Так, основные ля по таким исходным данным, как
Впервые этот пакет объекты здесь тела, ограниченные мощность и число оборотов. Одна-
САПР был продемон- различными поверхностями, а изоб- ко конструктор, создавая двигатель,
стрирован в Лас-Ве- ражение изделия получают при помо- учитывает массу критериев: проч-
гасе на выставке щи операций объединения, пересе- ность, технологичность, ремонто-
COMDEX в ноябре чения и т. д. Данный метод часто при- пригодность и т. д. Сложность фор-
1982 г. В 2002 г. вы- меняют в машиностроении. Объём- мализации подобных характеристик
пущена уже семнад- ное моделирование подчас удобнее ограничивает построение обобщён-
цатая версия пакета чертежей: например, в сборочном ных моделей, ведь, как правило, пол-
AutoCAD. Мировой чертеже болт может быть представлен ной преемственности в конструкции
лидер в разработке несколькими видами, а в объёмной не бывает.
боевых самолётов сборке — одним (моделью болта).
ОКБ Сухого также Однако далеко не всё можно по-
использует AutoCAD лучить путём геометрических пост- CAM
для подготовки доку- роений. А если необходимо создать
ментации. полную модель объекта, например Многие предприятия на этапе авто-
самолёта, с абсолютной точностью? матизации обнаруживают, что ускоре-
Для этого используют многоуровне- ние черчения за компьютером часто
вую декомпозицию объектов. Из- не приводит к сокращению общих сро-
делие представляется как система ков выпуска изделия, а возросшее ка-
агрегатов, которые, в свою очередь, чество чертежей в результате не силь-
состоят из узлов, а те — из деталей. но влияет на качество самого изделия.
Тот же метод применим и для объём- Иногда даже говорят о неэффективно-
ного моделирования. При этом в про- сти систем автоматизированного про-
цессе проектирования электромото- ектирования при решении производ-
ра нет необходимости иметь точную ственных задач.
модель роторного шарикоподшип- Но сложные станки с числовым
ника. Достаточно его габаритной мо- программным управлением (ЧПУ)
дели с указанием посадочных мест. практически нереально использовать
без предварительного геометрическо-
го моделирования. Так, крайне слож-
но не только вручную отфрезеровать
две одинаковые пресс-формы авто-
мобильного крыла, но и запрограм-
мировать его обработку на стойке
станка с ЧПУ: программа будет содер-
жать десятки тысяч команд.
Наиболее эффективно геомет-
рическое моделирование в случае,
когда система включает в себя и кон-
структорское, и технологическое мо-
делирование. Таким образом, есть
смысл говорить об интегрированных
CAD/CAM-системах, позволяющих и
создавать модели, и готовить програм-
мы для станков с ЧПУ.

332
Автоматизация интеллектуальной деятельности

Система CAM (Computer Aided


Manufacture) позволяет автомати-
зировать решение геометрических
задач в технологии. Часто она выпол-
няет расчёт траектории движения ре-
жущего инструмента. Результатом гео-
метрического моделирования будет
и набор чертежей (т. е. конструктор-
ская документация), и программа в
специальном формате для управле-
ния станком с ЧПУ. На этом этапе по-
лученную программу можно отредак-
тировать, а затем снова вернуть в CAD
для проверки внесённых изменений.
Первые станки с ЧПУ имели кон-
троллеры для управления инструмен-
том и моторами станков в процессе
работы. Программа в такие системы
вводилась с перфоленты, а само про-
граммирование сводилось к добав- гические процессы на всех станках. Станок с ЧПУ.
лению и удалению команд или из- CIM выгодны, когда нужно наладить
менению их параметров. У каждой производство изделий малыми сери-
подобной системы был собственный ями. Так, мини-фабрики по производ-
уникальный управляющий язык. Ко- ству интегральных схем используют
манды, представлявшие собой на- CIM из-за особых качеств: быстроты
бор букв и чисел, задавали режим ра- и удобства настройки, сквозного обес-
боты станка, перемещение инструмен- печения контроля качества.
та, глубину резки, скорость движения Уже в ближайшее время индустри-
и пр. В дальнейшем контроллер заме- альные технологии могут развиться
нили компьютером, оборудованным настолько, что отпадёт необходи-
дисплеем и клавиатурой, со специаль- мость в массовом производстве. Из-
ным программным обеспечением для готовление единичных товаров не бу-
управления станком. дет дороже серийного производства,
Внедрение CAD/CAM-систем поз- а автоматические мини-заводы будут
воляло не только автоматически сге- работать повсюду. Например, покупа-
нерировать программу по созданной тель сможет заказать многие параме-
3D-модели изделия, но и увидеть ре- тры сотового телефона: цвет, корпус,
зультаты работы на экране, смодели- функции. Поистине научно-техниче-
ровав выполнение программы на ская революция!
станке, обнаружить ошибки до про-
изводственного процесса. CAD/CAM-
системы имели модульное построе-
ние, таким образом можно было по
поставленной задаче спроектировать
элементы производственного процес-
са, «подобрав» станки с ЧПУ для вы-
полнения полного цикла производст-
ва. Дальнейшее расширение этой идеи
привело к созданию CIM (Computer
Integrated Manufacturing), гибких ав-
томатизированных производств (ГАП).
Результаты работы CAD используют и
для подготовки программ для станков
с ЧПУ, и для построения производст-
венного процесса. Такие системы со-
держат подробную базу данных для
настройки ГАП, включая все техноло-

333
Хранение и обработка информации

ПОСТРОЕНИЕ ИНФОРМАЦИОННЫХ СИСТЕМ

Управление современным предприятием, да-


же если оно не очень большое, требует не
только определённых навыков от руковод-
ства, но и полной и адекватной информации
о состоянии дел. Бухгалтерия издавна на-
капливала и предоставляла информацию о
движениях финансов. Иногда ошибочно по-
лагают, что бухгалтерский учёт нужен для
фискальных органов, т. е. для правильного
исчисления налогов. На самом деле на ос-
новании информации, которая поступает от
бухгалтерии, руководством фирмы прини-
маются управляющие решения. Даже про-
ведя элементарный анализ, можно сделать
выводы о состоянии дел в фирме: есть при-
быль или убытки, на какую сумму осталось
нереализованной продукции на складах и
многое другое. Однако из одного лишь баланса предприя- одинаковы практически для всех складов. Поступивший то-
тия многого не видно, например номенклатуры залежавших- вар должен быть учтён, в любой момент надо иметь воз-
ся товаров на складах. Более того, причины затоваривания можность получить сведения о состоянии склада, об объ-
складов тоже не лежат на поверхности. Для этого нужен ёмах произведённых отгрузок.
детальный анализ финансов, производственного процесса, Удобно использовать некоторые универсальные инфор-
состояния рынков сбыта. Причём на это потребуется зна- мационные системы для предприятий, которые можно на-
чительное время, а пока ищут ответы на поставленные во- строить на конкретный тип деятельности. Если предприя-
просы, могут быть допущены очередные ошибки в плани- тие состоит из двух специалистов и занимается, например,
ровании, производстве, финансах. консультациями с выездом к заказчику, то такой фирме,
Поэтому в компьютеризованный век не обойтись без вероятно, достаточно только вести финансовой учёт в ин-
информационных систем, которые не только учитывают фи- формационной системе. То есть иметь представление о те-
нансы, но и оперативно предоставляют руководителю не- кущем финансовом состоянии, получать информацию о те-
обходимую информацию для анализа и принятия решений кущих прибылях и убытках, сравнивать их с предыдущими
и даже являются в некотором смысле автоматизированными периодами, планировать прибыль и многое другое.
системами управления. С точки зрения руководителя, такая Однако для учёта своих клиентов удобно вести базу
система должна быть сильно интегрирована, попросту иметь по всем настоящим и, возможно, потенциальным заказчи-
одну кнопку, нажав на которую директор фирмы получит кам. В эту базу желательно включать не только сведения
исчерпывающую информацию и все возможные пути о клиентах, но и счета за работы, контролировать их свое-
развития. Однако столь идеальных систем пока не сущест- временную оплату, автоматически направлять запросы
вует. Поэтому информационные системы часто разрабаты- должникам. То есть такие функции должны реализовы-
вают по заказу предприятий «с нуля», взяв за основу одну ваться не самостоятельно, а на основе информации из фи-
из современных баз данных. Но база данных, как и бух- нансового блока, например, надо знать, что этот заказчик
галтерия, — это ещё не вся система, и индивидуальные раз- «хороший», потому что он оплатил счёт вовремя.
работки программного обеспечения оправданы по затратам Ту же информацию нужно хранить, если фирма непо-
и качеству скорее для очень специфичных задач учёта и средственно занимается сбытом товаров. Но при сбыте
управления, например учёт в реестре неких уникальных при- требуется ещё иметь модуль, контролирующий закупки от
родных ресурсов. Предприятий, осуществляющих розничную поставщиков, связанный с финансами и складом фирмы.
торговлю, т. е. попросту магазинов, или производящих гаран- Все проведённые предприятием работы также надо учи-
тийное обслуживание техники — тысячи, и процессы, тывать, особенно если они основываются на длительных до-
протекающие в них, хорошо изучены и описаны. Так, фи- говорах. Тут необходимо отслеживать прибыльность каж-
скальная часть финансового блока небольших коммерче- дой такой группы работ, учитывать и планировать ресурсы,
ских фирм одинакова практически у всех предприятий: все которые затрачены или будут затрачены. К ресурсам отно-
сдают в налоговую инспекцию одинаковые отчёты, в них сятся не только материалы (можно рассмотреть в качестве
совпадают планы счетов и т. п. Или, если фирма имеет склад, примера строительную фирму), но и работники (бригады
то учёт товаров, отгрузка и поставка, т. е. все процессы, строителей). Если при начале работы будут просчитаны её

334
Автоматизация интеллектуальной деятельности

Если вы получили
счёт в сумме 0 р. 00
к. за коммунальные
услуги, то поспешите
позвонить в ДЭЗ.
Возможно, за неопла-
ту этого счёта авто-
матическая инфор-
мационная система
отключит вам горя-
чую воду.

бюджет и планируемая прибыль, а в процессе осуществления настройкой не обойтись. Процессы, протекающие на пред-
руководитель сможет в любой момент посмотреть текущее приятии, часто необходимо подвести под некоторый стан-
состояние выполнения работы, затраты на неё и финансо- дарт, принятый в настраиваемой системе, а часто, наобо-
вое состояние, то это может оказаться решающим факто- рот, перестроить систему, чтобы не разрушать привычные
ром, например при отказе от контракта на работу (вероятно, и отлаженные производственные процессы. То есть тут
он будет просто невыгодным). Или планируемые ресурсы осуществляется движение навстречу друг другу: предпри-
могут быть уже заняты (на другом строительстве). На все ятия к системе, а системы к предприятию.
эти вопросы даст ответы проектируемая система. Эффективность внедрения системы зависит от само-
Для производственных фирм естественной потребно- го ответственного этапа, когда осуществляются доводка
стью являются система управления производством, кон- и обучение персонала и от опытной эксплуатации перехо-
троль качества, учёт, распределение и планирование про- дят к промышленной, ведь всего 60 из 100 внедрений
изводственных мощностей. Не надо забывать, что оказываются по-настоящему успешными. Важно, чтобы
производство не должно быть убыточным. Фирма, процесс проектирования информационных систем проис-
выполняющая ремонт, т. е. сервисное обслуживание, есте- ходил по заранее разработанной технологии, чтобы вне-
ственно, должна иметь блок, управляющий и учитывающий дрение было производственным процессом, а не отдава-
этот часто циклический процесс. Так, на автосервисе важ- ло программистским шаманством.
но регулярно приглашать клиентов на техобслуживание.
Одной из современных частей таких систем стали мар-
кетинговые модули, которые позволяют учитывать и оце-
нивать эффективность тех или иных контактов и презента-
ций. Подобные системы собираются из кирпичиков-модулей
и затем настраиваются на конкретное предприятие.
Процесс конструирования и внедрения таких систем
непростой, он проводится в несколько этапов. Как прави-
ло, в любом внедрении принимают участие аналитики,
специалисты, хорошо представляющие область работы фир-
мы-заказчика, и программисты, которые осуществляют до-
водку и настройку системы на эту фирму. При работе ана-
литики часто используют специальные методы построения
модели и процессов, происходящих на предприятии. Эти
технологии хорошо проработаны, и, в идеале, результатом
такого проектирования будет автоматическая настройка
системы на конечную фирму. Необходимо всё-таки заме-
тить, что чудес не бывает, и в каждом конкретном случае
проявляется своя специфика. Поэтому параметрической

335
Хранение и обработка информации

ЭКСПЕРТНЫЕ СИСТЕМЫ

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


боту, часто возникает необходимость копаемых по результатам геологиче-
посоветоваться с кем-нибудь, достиг- ской разведки, игра в шахматы и мно-
шим в этом деле высот мастерства. гое-многое другое). Понятно, что
Не зря поговорка гласит: «Ум хорошо, универсальная ЭС может оказаться
а два — лучше». В сложных случаях слишком сложной, да и целесообраз-
не помешала бы консультация и не- ность её построения сомнительна.
скольких знатоков. Однако многие Для успеха любому профессионалу
попадали и в такую ситуацию: заглох- совершенно необходимо обладать осо-
ший автомобиль стоит у обочины, бым набором знаний. В шахматах —
а проезжающие мимо дают «единст- не только научиться передвигать фи-
венно верный» совет по устранению гуры по доске, но и знать дебюты,
неисправности, причём все советы уметь адекватно оценивать позицию,
противоречат друг другу! Но это ещё помнить сотни партий, сыгранных
не худший вариант... Похожее поло- великими мастерами. В авторемон-
жение: врач в отдалённой сельской те — изучить устройство автомобиля
больнице или на судне в открытом мо- и основные неисправности, вовремя
ре, столкнувшийся с симптомами не- обнаруживать и устранять их. Врачу
знакомого ему заболевания. Действо- надо блестяще освоить анатомию и
вать надо срочно, ведь речь идёт о физиологию человека; ему должны
спасении жизни больного, а вот что быть известны наиболее распростра-
делать — неясно. нённые болезни, их симптомы, мето-
В этих и десятках других ситуаций ды лечения. Совокупность знаний
помочь могут так называемые экс- (надо чётко различать знания и дан-
пертные системы (ЭС) — класс ин- ные), обязательных и достаточных
теллектуальных программных си- для работы ЭС при решении задач ка-
стем, способных решать задачи, для кого-либо класса, называется пред-
которых отсутствуют алгоритмы или метной областью. Знания из одной
же недоступна вся информация, не- предметной области связаны между
обходимая, чтобы применить извест- собой; это могут быть описания раз-
ные алгоритмы и методы. Любая экс- личных объектов, процессов, явле-
пертная система предназначена для ний, а также отношений между ними.
решения задач в конкретном виде Все эти сведения хранят в базе дан-
профессиональной деятельности че- ных (БД). Структура данных обычно
ловека (лечение больных, анализ си- достаточно проста (чаще всего это
туации на биржевом рынке, опреде- таблица). В отличие от данных зна-
ния имеют более сложную структуру
и хранятся в специальном виде.
Знания можно разделить на проце-
дурные и декларативные. Процедур-
ные знания описывают последова-
тельность действий — это алгоритмы,
программы, служебные инструкции
на случай чрезвычайной ситуации
и т. д. Все остальные знания считают-
ся декларативными. К ним относят-
ся, например, и текст этой статьи,
и формулировка аксиом Евклида,
и итоговая таблица чемпионата ми-
ра по футболу...
При создании ЭС, работающей
в некоторой предметной области,
необходимо решить три основные
проблемы.

336
Автоматизация интеллектуальной деятельности

Прежде всего требуется формали- Матч = <Футбол> <Реал>


зовать знания о предметной области, <Барселона> <2:2>.
т. е. выбрать подходящую модель Слот — это часть
представления знаний. Существует Легко заметить, что при исключе- фрейма. Он содержит
несколько моделей. нии любого слота фрейм теряет пол- название и значение,
В сетевой модели предполагается, ноту, а иногда и смысл. им может быть другой
что знания можно представить как со- Фреймы используют также для фрейм. Фрейм, из
вокупность объектов (понятий) и свя- описания связей (отношений) меж- которого исключён
зей (отношений) между ними. Она до- ду вершинами сети. Крайне важно, любой слот, теряет
пускает наглядную графическую что значением слота, в свою очередь, свою полноту и смысл.
интерпретацию в виде семантиче- может являться другой фрейм. Это
ской сети (понятия и объекты — вер- позволяет строить сложно органи-
шины сети, а связи и отношения меж- зованные иерархические структуры
ду ними — соединяющие их линии). знаний.
Например, текст «В поле, засеянном В отличие от сетевой модели про-
рожью, растёт высокая сосна. Под ней дукционная модель представления
лежит покрытый мхом валун» будет знаний (её идея была предложена аме-
выглядеть так: риканским математиком Эмилем По-
стом в 1943 г.) основана, как следует
ПОЛЕ МОХ из названия, на системах продукций.
быть Самая простая продукция состоит из
засеянным
расти в быть имени и ядра:
покрытым
РОЖЬ <Имя продукции> : <Ядро>.
ВАЛУН

находиться Ядро в виде «Если A, то B» (часть A


ВЫСОКАЯ под
называют посылкой, а часть B — след-
СОСНА ствием) описывает связь явлений,
действий, фактов A и B («Если рубят
Недостатком сетевой модели явля- лес, то летят щепки», «Если опустил-
ется то, что знания могут быть пред- ся туман, то зажечь фары»). Иногда
ставлены в ней разными способами, ядру предшествует условие; тогда пра-
а связи чаще всего неоднородны. Это вая часть продукции принимает вид:
весьма затрудняет и усложняет ана- «При выполнении условия C: если A,
лиз знаний. то B». Иными словами, условие зада-
Стремление упростить строение ёт ситуацию, когда ядро продукции
сети, придать ей регулярный харак- может быть применено. (Находясь в
тер привело к появлению понятия квартире, зажечь фары невозможно,
фрейм, предложенного известным поэтому последний пример целесо-
американским специалистом в обла- образно дополнить условием: «Когда
сти искусственного интеллекта Мар- едешь в автомобиле, если опустился
вином Минским в 1975 г. Фрейм — это туман, то зажечь фары».) Продукция
минимальная структура, описыва- может содержать и некоторые другие
ющая объект, понятие, событие, про- элементы, при этом ядро — обязатель-
цесс и т. п. Он имеет имя и состоит из ная её часть наряду с именем.
последовательности слотов. Напри- Благодаря своим достоинствам про-
мер, фрейм с именем «Матч» можно дукционная модель получила широкое
определить так: распространение. Её универсаль-
ность — в возможности представле-
Матч = <Игра> <Команда 1> ния как декларативных, так и проце-
<Команда 2> <Счёт>. дурных знаний, простоте добавления
новых знаний, а также возможности
Такой фрейм называется прото- параллельной обработки системы
типом, в нём слоты имеют перемен- продукций. Основной недостаток за-
ные значения. Когда слоты получают ключается в том, что при добавлении
некоторое значение, образуется эк- новых знаний сложно проверить их
земпляр фрейма: согласованность.

337
Хранение и обработка информации

На основе различных моделей Именно они определяют основные


представления знаний строятся язы- знания, которыми будет обладать ЭС.
ки программирования, применяемые Вопрос общения с экспертом сам
в ЭС. Например, известный язык PRO- по себе непрост. Помимо проблем
LOG использует продукционную мо- психологического характера (как
дель, а язык FRL (Frame Represen- установить контакт, как правильно
tation Language) — фреймовую. сформулировать, что же надо узнать,
Другая важнейшая проблема, свя- наконец, как оценить достоверность
занная с разработкой ЭС, — создание сообщённых сведений) существует
базы знаний (БЗ), т. е. получение и от- ещё одна. Зачастую специалист сам не
бор знаний, необходимых и достаточ- в состоянии объяснить, почему он
ных для функционирования ЭС. Сис- принимает то или иное решение. На-
тема знаний в ЭС должна быть полной пример, гроссмейстер после выигран-
и непротиворечивой. Базы знаний ной партии долго разбирает позицию,
можно разделить на формализован- в которой он сделал победный ход.
ные и неформализованные. Первые Анализ убеждает в том, что ход дейст-
либо сведены в справочные руковод- вительно был лучшим. Очевидно и то,
ства, либо записаны в виде инструк- что во время партии такой анализ не-
ций, таблиц, формул, алгоритмов, ко- возможен — дорога каждая секунда.
торые легко вводятся в БЗ. Но этого Значит, гроссмейстер действовал ин-
слишком мало для успешной профес- туитивно, руководствуясь общим впе-
сиональной деятельности. Например, чатлением от позиции, сложившимся
чтобы хорошо играть в шахматы, со- на основании эрудиции и огромного
вершенно недостаточно просто знать опыта. Точно так же полководец, во
правила игры! время сражения бросивший свои по-
Второй вид знаний нельзя полу- следние резервы на левый фланг, вряд
чить в готовом виде — их описаний ли объяснит, почему он сделал имен-
нет в книгах, отсутствуют соответству- но это и именно тогда, а не часом рань-
ющие формулы и алгоритмы, но зато ше. Для внесения подобных знаний в
эти знания можно сформулировать в БЗ надо уметь формулировать осно-
виде набора некоторых правил, осно- вания для принятия таких решений.
ванных на практике, обобщающих С помощью базы данных можно
опыт, умение, интуицию специалис- получить информацию о конкретном
тов. ЭС ориентированы именно на ре- предмете, процессе или ситуации, при-
шение задач с использованием нефор- чём лишь ту, которая была ранее туда
мализованных знаний. помещена. При работе компьютерных
Важнейшим этапом в создании ЭС программ данные выступают в роли
является получение необходимой ин- объекта обработки, они пассивны.
формации от экспертов (специалисты, Программа находит их, изменяет и
обладающие глубокими познаниями снова записывает в определённое мес-
в какой-либо предметной области). то памяти. Базы знаний отличаются от
баз данных наличием встроенных ме-
ханизмов логического вывода. Благо-
даря этому знания во время работы ЭС
ведут себя активно: изменение тех или
иных знаний может вызвать обраще-
ние к программам их обработки.
Встроенные процедуры позволяют не
только делать иными имеющиеся зна-
ния, но и получать из них новые. Та-
ким образом, база знаний пополняет-
ся как знаниями, полученными от
экспертов, так и знаниями, вырабаты-
ваемыми самой экспертной системой
в процессе работы.
Очень важно, что в ЭС реализуют-
ся не одни механизмы логического

338
Автоматизация интеллектуальной деятельности

вывода, опирающиеся на классиче-


скую логику (дедуктивные). В них ис-
пользуются и так называемые прав-
доподобные рассуждения (нечёткий
вывод, основанный на нечёткой ло-
гике), и элементы рассуждений по
аналогии и по ассоциации, которые
человек обычно применяет при ре-
шении задач в условиях неопределён-
ности.
В совокупности средства, реша-
ющие эти и некоторые вспомогатель-
ные задачи, и образуют экспертную
систему. Её обычная схема представ-
лена на рисунке.
Блок логического вывода выраба-
тывает одно или несколько решений.
ЭС должна не навязывать их пользова-
телю, а предлагать возможные вари- мом решении, сколько в недостаточ-
анты решения в порядке их предпо- ной его обоснованности.
чтительности или вероятности. Работа В настоящее время существуют ЭС,
ведётся в режиме диалога (интерак- помогающие человеку в различных
тивный режим), поэтому желательно, областях — от составления прогноза
чтобы ЭС могла «объяснить» свои дей- погоды до синтеза новых органи-
ствия и выводы. Ведь иногда пользо- ческих веществ с заданными свойст-
ватель считает полученный вариант вами. Нет сомнения, что сфера их
неподходящим или не лучшим. При- применения будет постояннорас-
чина этого кроется не столько в са- ширяться, а возможности возрастут.

ПОЛЬЗОВАТЕЛЬ

Интеллектуальный Логический
Базы знаний
интерфейс вывод

Преображение Приобретение
и объяснение знаний
решений

ЭКСПЕРТ

РАСПОЗНАВАНИЕ ОБРАЗОВ

Под термином «распознавание обра- помощью средств вычислительной


зов» обычно подразумевается на- техники решают ряд задач, связан-
правление научно-исследователь- ных исключительно с интеллектуаль-
ских работ, относящихся к области ной деятельностью человека. Основ-
прикладной математики. Специали- ной метод состоит в построении
сты по распознаванию образов с математических моделей процесса

339
Хранение и обработка информации

распознавания, создаваемых путём


предположений-гипотез о том, как
«МЫСЛИТЕЛЬНАЯ МАШИНА» задачи подобного рода решаются
людьми. Примерами служат задачи
Потребность проверить собственные идентификации (распознавания) че-
умозаключения и выводы, установить их ловека по его фотографии, узнавания
правильность всегда была свойственна мелодии, диагностики болезни и т. п.
людям. Обычно объекты распознавания
Французский философ Рене Декарт (фотоизображение, мелодия, болезнь)
(1596—1650) полагал, что знания, кото- называют общим словом «образ». Про-
рые приобретает человек, могут быть цесс распознавания образа человеком
выведены столь же строго, как и теоре- обычно трактуется в теории распо-
мы в математике. Нельзя ли представить знавания образов (или просто теории
рассуждения в виде вычислений? Над распознавания) как отнесение объек-
этой проблемой размышлял Готфрид та к той или иной совокупности в чём-
Вильгельм Лейбниц. Правда, спустя ещё Рене Декарт. то близких объектов. Так, узнавание
полтора столетия, в середине XIX в., ко- человека по фотографии можно рас-
гда Чарлз Бэббидж предложил проект сматривать как отнесение объекта
своей аналитической машины, его по- (фотографии конкретного человека)
мощница леди Лавлейс сомневалась в к совокупности всевозможных фото-
возможности этого. Она писала, что ана- изображений этого человека. Узнава-
литическая машина не претендует на то, ние мелодии — как отнесение объекта
чтобы создавать что-то новое, и не мо- (мелодии) к совокупности всевозмож-
жет предугадать аналитические зависи- ных исполнений данной мелодии. Ди-
мости или истины. Впрочем, вполне ве- агностирование болезни — как отнесе-
роятно, что её мнение было основано на ние конкретного набора наблюдаемых
весьма ограниченных (на современный у больного симптомов к совокупности
взгляд) характеристиках аналитической всевозможных проявлений симпто-
машины. Уильям Стенли Джевонс. матики одной конкретной болезни.
Тем не менее ещё при жизни Бэбби- Группа объектов, обладающих об-
джа, в 1870 г., английский логик Уиль- щими признаками, называется клас-
ям Стенли Джевонс (1835—1882) создал сом. То есть теория распознавания за-
первую в мире машину, механизировав- нимается задачами определения
шую простейшие логические выводы истинности или ложности утвержде-
(фактически, она могла вычислять функ- ния о том, что какой-то объект при-
ции алгебры логики). Впоследствии её надлежит к некоторому классу объек-
воспроизвёл российский учёный, про- тов. В целом теория распознавания
фессор П. Д. Хрущёв (1849—1909), а про- образов изучает плохо формализу-
фессор А. Н. Щукарёв (1864—1936) усо- емые задачи, когда человек не в состо-
вершенствовал конструкцию. В 1914 г. в янии сформулировать однозначные
журнале «Вокруг света» А. Н. Соков пи- правила, позволяющие ему решать за-
сал: «Если мы имеем арифмометры, скла- дачи распознавания быстро и эффек-
дывающие, вычитающие, умножающие П. Д. Хрущёв. тивно.
миллионные цифры поворотом рычага, В теории распознавания предпо-
то, очевидно, время требует иметь ло- лагается, что любой объект обладает
гическую машину, способную делать конечным набором характеристик,
безошибочные выводы и умозаключе- значения которых его и определяют.
ния одним нажатием соответствующих Другими словами, эти характерис-
клавиш. Это сохранит массу времени, тики описывают объекты. Поэтому
оставив человеку область творчества, характеристики — это признаки, со-
гипотез, фантазии, вдохновения — ду- вокупность всех признаков — призна-
шу жизни». ковое пространство, а количество
Однако говорить о создании насто- признаков — размерность признако-
ящей «мыслительной машины» стало воз- вого пространства. Так, для фотоизоб-
можным только после изобретения та- ражений признаковым пространст-
кого устройства, как компьютер. А. Н. Щукарёв. вом считается совокупность строк
цифровой развёртки фотоизображе-

340
Автоматизация интеллектуальной деятельности

ния, где каждая строка является при- При обучении с учителем априор-
знаком. Для мелодии в качестве при- но задаётся совокупность объектов с
знакового пространства рассматри- известной принадлежностью к тому
вается совокупность коэффициентов или иному классу. Эта информация
разложения Фурье для акустических используется для разбиения призна-
колебаний, каждый из коэффициен- кового пространства на области, ас-
тов Фурье — признак. Очевидно, что социированные с соответствующим
размерность признаковых прост- классом. Качество обучения, т. е. ка-
ранств для приведённых выше при- чество распознавания, оценивается
меров может быть весьма велика, так по работе распознающей модели на
как в задачах не удаётся выделить не- контрольной совокупности объектов,
большое количество признаков, со- для которых известна принадлеж-
держащих исчерпывающую инфор- ность к конкретному классу, но эта
мацию для отнесения объектов к информация никак не используется
какому-либо классу. обученной моделью.
Основой всех моделей, использу- При втором способе также зада-
емых в теории распознавания, яв- ётся совокупность объектов, однако
ляется так называемая гипотеза их принадлежность к классам не
компактности. Согласно ей, предпо- определена. Вообще говоря, даже
лагается такое устройство признако- число классов может быть неизвест-
вого пространства, что в нём похожие но. В этом случае признаковое про-
объекты находятся близко, а непохо- странство разбивается на конечное
жие — далеко. Поскольку все дальней- число областей в соответствии с при-
шие построения математических мо- вносимым извне критерием, услов-
делей распознавания образов явно но отражающим гипотезу компакт-
или неявно опираются на данную ги- ности и специфику задачи.
потезу, успех решения конкретной за- Существующие методы решения
дачи идентификации определяется задач распознавания образов весьма
удачным выбором признакового про- сильно опираются на специфику ис-
странства. Классы объектов в призна- ходной информации. Поэтому к на-
ковом пространстве в соответствии с стоящему времени сформировались
гипотезой компактности расположе- широкие научные направления, спе-
ны так, что все объекты из одного и циализирующиеся на
того же класса близки друг к другу и распознавании визу-
далеки от объектов из чужих классов. альных, музыкальных
Человек, прежде чем решать лю- образов,
бую задачу распознавания, обязатель-
но проходит стадию обучения. Ему
показывают на примерах, какие объ-
екты к каким классам относятся, пе-
речисляют все классы, проверя-
ют, хорошо ли он усвоил
данные сведения. В мо-
делях применяется та-
кой же подход.
Другими слова-
ми, прежде чем
приступить к рас-
познаванию, мо-
дель необходи-
мо научить делать
разбиение призна-
кового пространст-
ва. В теории распозна-
вания образов существует
два способа обучения: обучение
с учителем и обучение без учителя.

341
Хранение и обработка информации

на медицинской диагностике и т. п. яркости в соответствующей точке ска-


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

342
Автоматизация интеллектуальной деятельности

теристик. Необходимо отметить, что


в силу погрешностей печати и ска-
нирования одним и тем же буквам со-
ответствуют разные точки в призна-
ковом пространстве.
Можно предположить, что каждой
букве алфавита соответствует своя об-
ласть в признаковом пространстве и
данные области не сильно перекры-
ваются. Значит, в признаковом про-
странстве существуют 33 (по числу
букв русского алфавита) различных
класса. Тогда задача автоматическо-
го ввода русского машинописного
текста может быть сформулирована
как задача отнесения каждой введён-
ной в ЭВМ буквы текста к одному из
33 классов. До начала автоматическо-
го распознавания букв (отнесения
к 33 классам) вводимого текста необ-
ходимо ввести в ЭВМ эталонные
изображения всех букв с точным ука-
занием классов, к которым они отно-
сятся. Такая подготовка позволит ЭВМ
построить 33 области в признаковом
пространстве, с каждой из которых
будет связана одна и только одна из
букв алфавита.
Процедура построения областей
и является обучением ЭВМ с помо-
щью учителя. Такое обучение прово-
дят различными методами. Вот при-
мер задачи, которую можно решить
путём разбиения признакового про-
странства на 33 непересекающиеся
области с минимальным количест-
вом гиперплоскостей. Качество вы-
бранного метода может быть всегда
оценено стандартным образом —
подсчётом доли ошибок при распо-
знавании контрольной последова-
тельности букв.
Итак, решение задач, сформули- со свойствами, позволяющими по- Распознавание текста:
рованных как задачи распознавания строить его разбиение так, чтобы в вверху — сканирован-
ный текст; внизу — ре-
образов, базируется на априорных контрольном примере электронно- зультат распознавания
(эвристических) предположениях о вычислительная машина допускала текста.
наличии признакового пространства минимальное колличество ошибок.

ДОМАШНИЙ ОФИС

В ряду персональных компьютеров но обладали самыми скромными воз-


80-х гг., предназначенных для раз- можностями и минимальным набо-
личных организаций и учреждений, ром программ. Однако именно таки-
для учёбы, для дома, последние обыч- ми машинами пользовались в малом

343
Хранение и обработка информации

бизнесе. Ведь систематическое обслу- удобны для малого бизнеса, поскольку


живание персональных компьюте- владелец может всю документацию
ров, которое предполагает не только носить с собой и даже продолжать
их установку и ремонт, но и консуль- работу в другом офисе, гостинице,
тации, облегчающие работу с програм- дома и т. д. Пусть ноутбук более до-
мным обеспечением, стоит дорого рогой, чем настольный персональ-
и доступно лишь крупным фирмам. ный компьютер, зато он незаменим
Частным лицам и мелким предприн- при частых переездах.
имателям, с трудом позволившим себе Для новых мощных машин требо-
покупку ЭВМ с набором программ, её валось и соответствующее программ-
профессиональное сопровождение ное обеспечение. Ни частных поль-
оказывалось не по карману. Поэтому зователей, ни бизнесменов не устраи-
изначально от компьютеров такие вал набор спецвыпусков программ
клиенты требовали высокой надёж- с сильно ограниченными возможно-
ности, а от программ — простоты стями. Однако покупать нужные
установки и использования. Стои- программы им по-прежнему было
мость набора программ, эксплуати- тяжело. С учётом этого некоторые
руемых в домашнем офисе, часто в фирмы-разработчики программ ста-
несколько раз превышает и так нема- ли предлагать так называемые «ли-
лую стоимость компьютера. Поэтому митед эдишн» (англ. limited edition —
суммарные затраты на полноценное здесь «ограниченные серии»), прак-
оборудование компьютеризованного тически вполне полноценные и
офиса часто велики как для дома, так ориентированные на работу дома и
и для малых фирм. на малом предприятии.
В 90-х гг. ситуация изменилась. В конце XX в. появился термин
Многие домашние машины уже не SOHO (англ. Small Office / Home Office —
уступали по своим данным компью- «Малый офис / домашний офис»),
терам, установленным в солидных обозначающий тип компьютера для
компаниях. Это стало возможным дома и малого бизнеса с соответст-
благодаря массовому производству вующей компоновкой и потребно-
персональных ЭВМ и снижению их стями в программах и оборудовании.
стоимости. Современный SOHO базируется на
В то же самое время в продажу по- оконной системе типа Microsoft Win-
ступили ноутбуки (от англ. notebook — dows; его офисный пакет состоит
«блокнот») — переносные компью- из развитого текстового редактора,
теры с плоскими жидкокристал- электронных таблиц, базы данных и
лическими экранами. Такие машины почтовой программы, совмещающей

344
Автоматизация интеллектуальной деятельности

функции простейшего планировщика,


записной книжки и календаря. (Ес-
тественно, что такой офисный пакет
фирмы Microsoft носит название Of-
fice и включает все перечисленные
компоненты: редактор Word, элек-
тронные таблицы Excel, базу данных
Access и пакет Outlook.)
Системы, подобные Microsoft Out-
look, фактически служат органай-
зером. Как правило, с их помощью
можно получать и отправлять почту
через Интернет, вести календарь и
предстоящие дела, создавать персо-
нальную записную книжку с коорди-
натами партнёров, составлять перечень
текущих задач и контролировать их
выполнение, заносить разнообразные
записи, делать заметки и т. д.
Пакет для подготовки презентаций
позволяет комбинировать текст, рисун-
ки и фотографии, а затем просмот-
реть полученные для демонстрации
перед аудиторией кадры и выстроить
их в желаемой последовательно- Если в фирме более двух сотрудни-
сти — как на экране компьютера, так ков, может потребоваться система
и на обычном экране при помощи управления с бо′ льшими возможно-
проектора, подключённого, напри- стями, чем предусмотренные стандарт-
мер, к ноутбуку. ным офисным пакетом. Такие систе-
Набор программ для дома и офи- мы нечасто используются дома. Кроме
са, как правило, включает и програм- того, нередко интересы предпринима-
му для подготовки собственных web- теля и особенности бизнеса определя-
страниц, где на всеобщее обозрение ют необходимость в дополнительном
можно представить свой бизнес или программном обеспечении или обору-
сообщить информацию о себе лично. довании, в том числе весьма дорогом.

345
ИГРЫ
КОМПЬЮТЕРНЫЕ ИГРЫ

Появление компьютерных игр мож- ки и коровы»... И конечно же такая


но отнести к моменту, когда компью- идея пришла в голову не только ему
теры из сферы экспериментальной одному... Вскоре программы для раз-
и почти секретной (ведь на них долж- влечения начали появляться всё чаще
ны были рассчитываться траектории и чаще и даже стали входить в состав
снарядов и ракет во время военных пакетов программ, поставляемых вме-
действий) начали переходить в мир сте с компьютерами.
научный и практический. Это произо- С созданием компьютерной графи-
шло в конце 60-х гг. XX в. ки и появлением настоящих домаш-
Компьютер стал обладать неким них компьютеров игровая индустрия
более или менее дружественным поль- стремительно выросла. Игры выпус-
зователю интерфейсом — вместо лам- кались тысячными тиражами, не счи-
почек и загадочных индикаторов тая пиратских копий. Примерно за
появились алфавитно-цифровые дис- десять лет для домашнего компьютера
плеи. Конечно, ни о какой графике ZX-Spectrum фирмы Sinclair Research
не могло идти и речи... Но за компью- было выпущено более 6 тыс. (!) наиме-
терами работают люди, и ничто чело- нований игр.
веческое им не чуждо. И вот в один Сейчас игровая индустрия являет-
прекрасный вечер после тяжёлого ся одной из точек опоры, на которых
трудового дня молодой программист стоит индустрия персональных ЭВМ,
(а кому ещё могла прийти в голову да и для чего нужен дома компьютер,
идея использовать компьютер не по как не для игр?
прямому назначению) решил напи- В каждой шутке есть доля правды,
сать небольшую программу, которая и мир, наверное, не увидел бы «ком-
играла бы с ним в какую-нибудь не пьютерной революции», если бы не
очень сложную игру, например «Бы- компьютерные игры.

346
Игры

ность приставок росла, сами игры


(программы) перекочевали в так на-
зываемые картриджи, а позже и на Вы родились слишком
компакт-диски. Сегодня игровые при- рано, если ваших лич-
ставки порой обгоняют по возможно- ных дисков с играми
стям самые «навороченные» домаш- значительно больше,
ние компьютеры. В них используются чем у ваших детей.
современные графические процессо-
ры, специально оптимизированные
для быстрой обработки графики. По-
мимо этого, приставки достаточно
дёшевы по сравнению с персональ-
ными компьютерами с аналогичны-
ми возможностями, и покупатель мо-
жет позволить себе купить новый
аппарат взамен вышедшего из моды.
• Домашние компьютеры. Игры на
приставках были очень популярны,
но пользователь хотел не только иг-
рать в игры, но и решать какие-то
простые задачи: писать программы,
вести каталог домашней литературы
и т. д. Домашние компьютеры под-
В игровой индустрии выделяют: ключались к обычному телевизору,
• Игры текстовые. К ним относят- обладали небольшим объёмом памя-
ся «Star Trek», «Adventure», «Rogue». За- ти, а в качестве внешнего устройства
дача игрока: выполнить некоторые хранения данных использовали кас-
действия, чтобы достигнуть цели (за- сетный магнитофон. Наиболее из-
воевать галактику, найти сокровище, вестные из них — ZX-Spectrum (Ве-
победить дракона и т. п.). Для таких ликобритания), Commodore 64 (США
игр достаточно лишь алфавитно-ци- и Западная Европа), MSX (Япония).
фрового дисплея. Управление осуще- Сейчас игры выпускаются в основ-
ствляется через ввод простых команд ном под платформу PC и Macintosh.
вроде «передвинуться на десять шагов С каждым годом в продаже появляется
вперёд». На это компьютер отвечает: всё больше новых игр на любой вкус.
«Вы оказались в тёмном подземелье, Все последние достижения в области
и рядом с вами стоит большое чудо- трёхмерной графики, звука, искусст-
вище с недобрыми намерениями. Ва- венного интеллекта нашли своё место
ши действия?». Чтобы игра продолжа- в этих новинках.
лась, игрок должен вводить новые
команды.
• Игровые приставки. В 1980 г.
кто-то из менеджеров фирмы ATARI
вдруг осознал, что обычными игруш-
ками никого не удивишь и пора осва-
ивать новые направления. Электро-
ника в те времена уже позволяла
делать многое. Так появились игро-
вые приставки — небольшие коробоч-
ки, подключаемые к обычному те-
левизору и позволяющие играть в
простенькие на современный взгляд
игры. Компьютерная графика была
новшеством, и схематичные изобра-
жения персонажей на телевизионном
экране просто поражали воображе-
ние покупателей. В дальнейшем мощ-

347
Информация и информатика

Компьютерные игры можно раз- какие-либо отличительные характе-


делить по жанрам. ристики (сила удара, сила магии, жиз-
• Аркадные игры. Уничтожить ненная сила и т. д.). От баланса этих
пришельцев, собрать все клады или показателей зависит роль игрока
убежать от каких-либо монстров — в группе. Так, например, маг облада-
вот цель в этих играх. Они отличают- ет наибольшим интеллектом, боец —
ся большим разнообразием графики, силой, а вор — ловкостью. Группа
звуковых эффектов. При этом, если должна выполнить некое задание: по-
игрок не слишком уравновешен, бедить дракона, найти сокровище или
не исключены последствия в виде раз- спасти принцессу. Каждое действие
битых клавиатур и сломанных джой- обыгрывается, ведёт игру «мастер под-
стиков — специальных устройств для земелий», отслеживающий каждое
управления движением. движение игроков и объявляющий
• Стратегия. Жанр не менее
азартный, чем предыдущий. Обычно
игрок — военачальник, под командо-
ванием которого находятся какие-ли-
бо войска. Тут, чтобы разгромить вра-
жескую армию, помимо быстроты
реакции необходимо проявить умст-
венные способности.
• Симуляторы. Здесь пользователь
может попробовать себя в роли пи-
лота или капитана космического ко-
рабля. Современные авиасимулято-
ры настолько сложны, что порой
не хватает клавиш на клавиатуре, что-
бы воспроизвести все детали управ-
ления летательным аппаратом.
• Логические игры. Игры-голово-
ломки, карточные игры, шахматы
и шашки. Здесь игроку есть над чем
подумать.
• Ролевые игры. Они обязаны сво-
им появлением настольной игре
«Подземелье и драконы», по прави-
лам которой каждый игрок имеет

348
Игры

ФЕНОМЕН «ТЕТРИСА»

Российский программист Алексей Пажитнов создал чудовище.


И имя этому монстру — «тетрис». Знаменитая игра покорила
все платформы, поселилась в карманных устройствах и сото-
вых телефонах. Правила её просты, как всё гениальное. Свер-
ху падают геометрические фигуры, которые можно вращать
и укладывать так, чтобы между ними не оставалось свободно-
го места. Мегаватты энергии были «съедены» компьютерами по
всему миру, врачи-окулисты получили сверхприбыли от при-
тока новых пациентов, а «тетрис» продолжает шествие по эк-
ранам наших мониторов. Пожалуй, это лучшая компьютерная
игра из всех созданных когда-либо.

и забывает про окружающий реаль-


ный мир. Бесспорно одно: зарождает-
ся интерес к компьютеру.
Игры очень важный способ обуче-
ния. Довольно непростую для воспри-
о новых событиях. В электронной ятия информацию можно передавать
версии «мастером», как правило, вы- в игровой форме, причём это акту-
ступает компьютер. По времени игра ально как для пятилетних детей (обу-
разделена на раунды. За каждый ра- чение счёту или письму), так и для
унд группа может произвести опреде- вполне взрослых людей (деловые иг-
лённое количество действий. Это ры или тесты в игровой форме).
очень похоже на настольные игры, Если говорить о компьютерной
где продвижение по игровой доске промышленности, то игры, пожалуй,
зависит от выпавших на кубике оч- один из сильнейших стимулов для
ков. С развитием Интернета ролевые выпуска нового «железа», разработок
игры обрели ещё большую популяр- в области трёхмерной графики и объ-
ность, так как теперь стало неважно, ёмного звука.
где находится партнёр по игре — Игры — часть истории компьюте-
в Китае или Норвегии. ра. История развивается по спирали.
Влияние игр на неокрепшее созна- И впереди новый бум приставок, раз-
ние детей и подростков неоднознач- деление компьютеров на домашние
но. Кто-то развивает логическое мыш- и «не очень», огромное количество но-
ление, кто-то, наоборот, слишком вых игр и связанных с ними техноло-
увлекается стрельбой по монстрам гий и аппаратных средств.

ТРЕНАЖЁРЫ

Компьютерные технологии настой- непосредственная. На компьютере


чиво проникают в повседневную можно не только рассчитать опти-
жизнь. Компьютеры применяются да- мальную диету для спортсмена или
же в тех областях, которые на первый выбрать наиболее выгодную комби-
взгляд не имеют ничего общего с элек- нацию обхода противника на фут-
троникой и информатикой. больном поле, но и смоделировать
Казалось бы, какая связь между со- движение по трассе для гонок «Фор-
временными компьютерами и спор- мула-1» в реальном времени.
том, где всё решают реакция, сила За последние десять лет использо-
и выносливость спортсменов? Самая вание компьютеров для тренировки

349
Информация и информатика

ной трассе, спуск с крутой вершины


на лыжах или движение на яхте по
морю.
Программа, которая отвечает за
прорисовывание ландшафта или до-
роги, должна максимально точно пе-
редавать реалии той или иной геогра-
фической точки, учитывая и такие
факторы, как скорость ветра, осве-
щённость, звуковые воздействия. Так-
же неплохо бы показать тренирующе-
муся две-три нештатные ситуации,
из тех, что случаются на соревнова-
ниях, чтобы оценить его реакцию
и впоследствии рекомендовать нуж-
ные модели поведения.
Конечно же только программой,
какой бы сложной и универсальной
она ни была, не обойтись. Для более
полной симуляции окружающего ми-
ра требуются технические средства,
относящиеся уже не к программно-
спортсменов стало привычным. На- му обеспечению, а к аппаратуре.
пример, Хуан Пабло Монтойа, гото- Попробуем определить, что нуж-
вясь к дебюту в «Формуле-1», знако- но для создания автотренажёра кро-
мился с трассой гонок по игре «Grand ме программы для симуляции автого-
Prix». нок. Ведь и в реальной жизни далеко
Такое распространение компьюте- не уедешь, если просто нажимать
ров в качестве тренажёров обусловле- кнопки.
но развитием технологии трёхмерной
графики, увеличением производитель-
ности компьютеров, снижением за- РУЛЬ
трат на создание программ за счёт по-
явления мощных средств разработки
С ОБРАТНОЙ СВЯЗЬЮ
программного обеспечения.
Главная задача тренажёра — симу- В 90-х гг. XX в. в залах игровых авто-
ляция, т. е. имитация ситуаций реаль- матов можно было вести машинку,
ной жизни, будь то движение по гоноч- движущуюся по гоночной трассе. В ка-
честве «устройства ввода» использо-
вался руль, похожий на настоящий,
но поворачивался он без каких-либо
усилий, поэтому особого эффекта от
такой «езды» не чувствовалось. Про-
шло несколько лет. Конструкторы, за-
нимающиеся разработками игровых
манипуляторов, придумали замеча-
тельное изделие — манипуляторы с об-
ратной связью. Руль, джойстик (руко-
ятка для управления игрой), GamePad
(специальное устройство для видео-
игр, которое держат двумя руками;
под пальцами одной находятся кноп-
ки «огня», под другой — маленькая ру-
коятка для управления движением) те-
перь вели себя в зависимости от
условий игры. Например, когда игрок
выходил из крутого виража, руль про-

350
Игры

ворачивался с заметным усилием.


То есть достигался совершенно потря-
сающий эффект присутствия.
Внутри устройства с обратной свя-
зью находятся довольно сложные
компоненты: сервомоторы, вибро-
приводы, электромагниты. Всем этим
управляют одна или несколько не-
больших микросхем-контроллеров,
принимающих сигналы от ЭВМ, где
работает основная программа. Кон-
троллер включает и выключает ком-
поненты, позволяющие ощутить тя-
жесть штурвала или испытать, как
ведёт себя машина на повороте.
Кроме руля в настоящей машине
есть ещё масса других устройств, ко-
торые можно симулировать для со-
здания тренажёра, например педали
газа и тормоза, рычаг переключения
передач.
В принципе такого оборудования
уже вполне достаточно (пожалуй, ещё
бы монитор побольше), чтобы почув- По сообщениям прессы, у 13-летнего мальчика врачи обнаружи-
ствовать себя настоящим пилотом го- ли признаки профессионального заболевания рабочих, имеющих
ночного болида. Многоканальный дело с отбойными молотками. Это объяснялось тем, что подро-
звук и эффекты визга тормозов и рё- сток много времени (по шесть-семь часов в день) уделял видео-
ва двигателя довершат картину. играм, в которых использовался джойстик с обратной связью.
Подобный тренажёр вполне мож-
но собрать и дома, а в профессио-
нальных тренажёрах обычно исполь- не фантастика. Действительно, суще-
зуется несколько мониторов для ствуют соревнования по гребле в за-
наблюдения за окружающим прост- ле, когда спортсмены гребут, сидя на
ранством впереди, по бокам и сзади. одном месте, перегоняя вёслами во-
Помимо этого, кресло «пилота» точ- ду из бассейна в бассейн, а зрители
но повторяет оригинальное, со все- и судьи наблюдают за результатами
ми неудобствами и нюансами. «гонок» на экранах мониторов. По-
Возможно, для проведения гонок верьте, от этого соревнования не ста-
«Формула-1» в будущем не понадо- ли менее зрелищными или напря-
бятся дорогостоящие трассы. И это жёнными.

ИСКУССТВЕННЫЕ РЕАЛЬНОСТИ

«...Только вчера, только вчера я открыл ким солнцем пустыне. Липкий пот но-
эту сумасшедшую планету, находящу- ровил попасть в глаза, я смахнул при-
юся в миллионе световых лет от дома. липшие ко лбу спутавшиеся волосы.
Я выбивался из последних сил, ругал Колени и руки разбиты в кровь. Ог-
себя, что пошёл обследовать планету, лушительный рёв, от которого кровь
не взяв с собой робота. По инструк- стыла в жилах и страх парализовы-
ции, действующей на всём звёздном вал тело, снова прервал мои мысли.
флоте Земли, я не имел права даже ша- Только нечеловеческим усилием во-
гу ступить без него на новой планете... ли мне удалось заставить ноги дви-
Стояла страшная жара, задыхаясь, я гаться. До моего корабля оставалась
бежал по пыльной, выжженной жар- пара сотен метров, там спасительное

351
Информация и информатика

Согласно сложившемуся стереоти-


пу, виртуальная реальность — что-то
связанное с компьютерными играми
и фантастическими фильмами. Отча-
сти это так, однако учёные посчита-
ли, что виртуальной реальности най-
дётся место и в настоящей жизни с
учётом её способности обрабатывать
очень большие объёмы данных и де-
лать «видимыми» результаты научных
исследований.
Смоделированный объект можно
помещать в различные среды, не толь-
ко имитировать и прослеживать его
перемещения в вымышленном прост-
ранстве, но и демонстрировать его
функционирование. Компьютерное
моделирование позволяет создать
и усовершенствовать сложное изде-
укрытие и оружие, способное сразить лие, оценить и опробовать его не на
любое чудовище. Но по тому, как всё реальном предприятии, а в виртуаль-
сильнее вибрировала земля, я всё от- ной среде. Это особенно актуально для
чётливее понимал: шансов у меня дорогостоящих, сложных, уникальных
нет... Я побежал. комплексов.
Меня пронзила дикая, всепоглоща- В настоящее время всё шире при-
ющая боль, спину жгло огнём и сво- меняются технологии виртуального
дило судорогой, ноги подкосились, и, моделирования, т. е. процесса созда-
теряя сознание, я понял, что на этот ния виртуальной модели объекта,
раз чудовищу опять удалось меня по- предназначенного для последующего
бедить... производства, его оценки на этапе вир-
...Это был не сон. Когда боль стала туального прототипа (свойств без-
отступать, продолжая тяжело дышать, опасности, функциональности и т. д.),
я увидел выросшую перед глазами над- оптимизации процессов его изготов-
пись: “Игра окончена”. Тяжело вздох- ления. Лишь после получения удов-
нув, сняв шлем, я с сожалением начал летворительных результатов при-
стягивать комбинезон. Тело продол- нимается решение об изготовлении
жало гудеть и болеть, дыхание всё ещё физического объекта. Это необходи-
было неровным, когда, открыв дверь, мо для того, чтобы на научные и ин-
я покинул кабину Виртуальной реаль- женерные разработки затрачивалось
ности...» меньше времени и средств. Тогда путь
Термин «виртуальность» исполь- от лаборатории до производственно-
зовался в разных науках и ранее, в ча- го цеха сократится, а все аспекты внеш-
стности в качестве обозначения мни- него вида будут определяться на ком-
мости некоторых объектов в физике; пьютерных, а не на готовых моделях.
он также применяется для трёхмер- Существует два основных типа вир-
ных макромоделей, реализованных туальной реальности — сценическая
с помощью компьютера. и экранная (англ. scenic и screen). Сце-
нический тип — человек находится
как бы внутри виртуального мира, яв-
ляется одним из его объектов. Экран-
Английское словосочетание virtual reality переводится как ный тип — человек отделён от вирту-
«фактическая действительность». Но в русском восприятии альной среды, наблюдает её извне
термин «виртуальная реальность» соотносится с реальностью, через неподвижное поле зрения (как,
искусственно созданной и очень похожей на настояющую например, сидящий за дисплеем ком-
(вопреки значению слова «виртуальный» — «возможный», которое пьютера).
пришло в русский язык из латыни). Экранные системы обеспечивают
частичное погружение в виртуальную

352
Игры

среду, т. е. часть среды моделируется • Картинку нужно подавать прямо


на компьютере, а часть имитируется на сетчатку, а для этого требуется от-
физически — в виде различных пуль- слеживать перемещение не только го-
тов, рабочих мест, кабин. ловы, но и зрачков (возможно, даже
Сценическая виртуальная реаль- фокусировку хрусталика). Такой ме-
ность позволяет достичь практиче- ханизм позволит создавать настоящее
ски полного погружения в виртуаль- объёмное изображение, а не простое
ную среду. Общение с окружающим стереоскопическое.
миром у человека происходит с по- • Изображение, которое надо по-
мощью пяти основных чувств: зре- строить, полусферическое, причём
ния, слуха, осязания, обоняния, вкуса. с переменным разрешением.
При подмене источников информа- • С помощью 24-битного цвета
ции для некоторых или всех органов нельзя смоделировать тусклый свет
чувств возникает иллюзия присутст- звёзд и ослепительное солнце.
вия в другом мире. Для формирова- • Для хранения и обработки 3D-
ния такого типа реальности необхо- моделей нужны процессор с высокой
димы особые технические средства: вычислительной мощностью и боль-
системы отображения различных шая оперативная память.
видов, шлемы и очки (обеспечивают Простой способ передачи картин-
неограниченное и подвижное поле ки виртуального мира — поочерёдно
зрения), разнообразные датчики формировать изображение на дис-
(контролируют положение тела в плее для правого и левого глаза. Для
пространстве и тактильную связь этого необходимо в тот момент, когда
с несуществующими объектами). Су- на экране появляется нужная картин-
щественными элементами являются ка, синхронизировать изображение
системы воспроизведения простран- с устройством, которое поочерёдно
ственного звука. Так, на поверхнос- заслоняет то один, то другой глаз. Что-
ти виртуального космического аппа- бы глаза не уставали, частота должна
рата человек будет слышать работу быть 85—100 Гц, для стереоизобра-
машин, звуки собственного дыхания, жения в два раза больше (150—300 Гц).
живую речь коллег и т. д.
Сложилось мнение, что шлем плюс
перчатки — это необходимые и до-
статочные атрибуты виртуальной ре-
альности, с помощью которых мож-
но «войти» в искусственные миры,
созданные с помощью компьютера.
На самом деле моделировать вирту-
альные миры чрезвычайно трудно.
Ещё сложнее осуществить «подмену»
информации для наших органов
чувств. Например, зрение. Мы видим
мир с помощью сетчатки глаз. Учё-
ные подсчитали, что разрешение сет-
чатки приблизительно 8000 × 8000 то-
чек. Чтобы получить такую картинку
на компьютере при глубине цвета
24 бит, нужно использовать как ми-
нимум 384 Мбайт видеопамяти, а про-
пускную способность шины иметь
11,5 Гбайт/с для 30 кадров в секунду.
И это только для изображения, а ещё
есть слух, осязание, «обман» которых
требует не меньших ресурсов. Кроме
перечисленного существует огром-
ное количество проблем в создании
виртуального зрения:

353
Информация и информатика

Другой способ более дорогой — не-


посредственное построение изобра-
жений для каждого глаза на цветных
матрицах или отдельном маленьком
мониторе, в шлемах или очках вирту-
альной реальности. В настоящее вре-
мя довольно успешно развивается ими-
тация осязания. Специальная мышь
позволяет почувствовать выпуклость
кнопки, проведя по ней курсором, ощу-
тить сопротивление, с которым изме-
няется размер окна, почувствовать
рельеф картинки в графическом ре-
дакторе. Джойстики, поддерживающие
технологию Force Feedback (силовая
обратная связь), заставят, например,
при игре в гоночный симулятор «тря-
стись» в соответствии с ухабами на до-
роге и испытывать трудности при по-
вороте на большой скорости. А играя
в «стрелялку», получать отдачу при соб-
ственных выстрелах или при попада-
нии пуль в вас. Если зрение, звук, ося-
зание уже неплохо имитируют, хотя
и здесь ещё далеко до совершенства,
то с другими чувствами намного слож-
нее. Пока нет ни «запаховых», ни «вку-
совых» карточек. Идеальной виртуаль-
ной реальности достигнут тогда, когда
будет возможно «подключиться» непо-
средственно к зрительным, обонятель-
ным, осязательным, слуховым оконча-
ниям, которые находятся в спинном
и головном мозге.
Тем не менее уже сейчас широко
используются достижения в области
виртуальной реальности: разработка
проектов новых сооружений, меди-
цинское исследование человеческо-
го организма, моделирование инте-
рьера квартир и другие области, где
необходимо визуальное представле-
ние связанных в систему трёхмерных
объектов. Не за горами и такое: хи-
рург, стоя посреди кабинета, делает
сложнейшую операцию, но не на че-
ловеке, а на его виртуальной модели.
Врач отлично чувствует тело и ткани.
А всю работу выполняет робот, управ-
ляемый компьютером с помощью
устройства с обратной связью, кото-
рым в свою очередь управляет врач.
Естественно, что для медицины по-
добные устройства должны обеспе-
чивать очень точные и реалистичные
ощущения. Хирург может увеличивать
изображение любой части тела, рас-

354
Игры

сматривать его в нужном ракурсе и ра-


ботать, не боясь, что случайно дрог-
нет рука со скальпелем. При участии
микророботов он способен провес-
ти операцию прямо внутри человека,
например на сердце. Кроме того, та-
кая операция может проводиться на
значительном удалении врача и па-
циента друг от друга, скажем через
Интернет: врач находится в России,
а пациент — где-нибудь в экспедиции
на Северном полюсе. Но для такой де-
ятельности, конечно, нужна очень на-
дёжная связь. Естественно, что дости-
жения в виртуальной реальности
используются не только в медицине,
но и в местах, где на человека дейст-
вуют вредные излучения, агрессив-
ная среда, космос и т. д. Эти техно-
логии уже успешно применяются
в тренажёрах-имитаторах (автомо-
билей, самолётов, кораблей, косми-
ческих аппаратов) и, конечно же,
в индустрии развлечений.
Виртуальная реальность — искус-
ственно созданный мир со своими за-
конами и объектами. Вымышленные
миры представляют собой плоды че-
ловеческого воображения и возника-
ют необязательно посредством ком-
пьютера. Пример тому — книги и
кинофильмы. Виртуальная реаль-
ность давно описана многими писа- «... Я с сожалением оглянулся на
телями-фантастами и учёными. Не- стоящие в ряд кабины, в одну из них
которые из их героев — творцы, заходил игрок... Я подошёл к автома-
создающие виртуальный мир, другие ту, стоящему неподалёку, проверить
с помощью виртуальной реальности свою кредитную карту. Автомат
приобретают паранормальные спо- проглотил мою кредитку, помигал
собности, третьи живут в виртуаль- глазами, погудел, вывел на дисплее
ном пространстве. остаток на моём счёте и выплюнул
В фильме «Газонокосильщик» глав-
ный герой, отстающий от сверстников
в развитии, с помощью виртуальной
реальности приобретает интеллект ге-
ния и вместе с тем жестокость манья-
ка. Фильм «Матрица» рассказывает о
том, как компьютеры моделируют мир
виртуальной реальности, так что зри-
тель начинает путаться, где мир ре-
альный, а где виртуальный. В фильме
«Странный Тома» главный герой прос-
то живёт в виртуальном мире. В силу
специфики своей болезни он совсем
не выходит из дому, и всё общение
с внешним миром происходит толь-
ко через Интернет. Не является ли это
моделью мира будущего?

355
Информация и информатика

карточку обратно. Я задумался, при- дам, я ещё раз посмотрел на манящие


кидывая в уме, на сколько мне хватит к себе кабины. Глубоко вздохнув, мах-
денег и когда я смогу вновь попол- нув рукой на свои невесёлые мысли,
нить счёт... Играть хотелось до дрожи я решительно шагнул в сторону каби-
в коленях... Закончив свои подсчёты ны Виртуальной реальности... на мо-
и придя к малоутешительным выво- ём лице сияла блаженная улыбка...»

ОТ ИГР — К ЗНАНИЯМ

Компьютерные игры, увлекая всё На одном из компьютерных вече-


большее число людей, превращают- ров, проводившихся журналом «Ми-
ся в своеобразную манию. Играют не кропроцессорные средства и систе-
только дети, но, что самое печальное, мы» в Москве в начале 90-х гг. XX в.,
играют и взрослые. И играют, как прозвучал лозунг: «Учись, играя!». Учё-
правило, в рабочее время. С появле- ные пришли к выводу, что тренажё-
нием компьютерных игр компьютер- ры, компьютерные учебники, практи-
ные учёные мужи стали тратить на кумы для школьников по различным
них массу времени. Случайно запер- дисциплинам, если их делать с эле-
тый после работы в одном НИИ на- ментами игры, существенно улучшат
учный сотрудник, отец двоих детей, восприятие и запоминание материа-
провёл выходные, непрерывно играя, ла учащимися.
при этом ночами не смыкал глаз. Но компьютеры тех лет были ещё
Очевидцы рассказывают, что, когда недостаточно оснащены, чтобы во-
в понедельник открыли дверь, их кол- плотить подобные замыслы в жизнь.
лега выглядел уставшим и был покрыт Для этого требовались значительные
трёхдневной щетиной, но глаза его усовершенствования. Должно было
светились от счастья. произойти, по крайней мере, два ре-
Запретить игры, конечно, нельзя. волюционных изменения в компью-
Сейчас персональные компьютеры терах.
распространены повсеместно, и, на- Первый революционный шаг —по-
верное, нет ребёнка, который не хо- явление мультимедиа (Multimedia):
тел бы играть в компьютерные игры. к нам пришли, звук, музыка, качество
изображения на мониторе стало не
хуже телевизионного.
Второй — создание компьютер-
ных CD (Compact Disk), компактных,
недорогих носителей с большим объ-
ёмом информации. Один такой диск
вмещает порядка 300 тыс. страниц
текста (а на десяти CD умещается ре-
зультат работы всех математиков ми-
ра за год!), около 80 мин цифрового
звука, тысячи высококачественных
снимков, фильмы телевизионного ка-
чества и т. д.
Обычные информационные CD,
по сути не явились новацией, ведь на
школьных уроках и прежде исполь-
зовалось телевидение, а учебники со-
держали цветные фотографии.
Зато гипертекстовые энциклопе-
дии сродни играм-квестам, увлека-
тельным приключениям. Они не толь-
ко содержат подробный справочник

356
Игры

по изучаемому материалу и инфор-


мацию в виде красочных фотографий
и фрагментов фильмов, но и дают
возможность объёмного восприятия
изображения с помощью специаль-
ных 3D-очков. Благодаря этому уче-
ник вовлекается в игру, во время ко-
торой гуляет по зоопарку или музею,
спасается от разъярённого тираноза-
вра, путешествует во времени.
Контрольные вопросы предлага-
ются также в игровой форме: это
может быть поиск конкретных пред-
метов или определение животных по
голосам.
Тем не менее энциклопедия оста-
ётся энциклопедией: аналог библио-
течного зала с каталогом позволяет
непосредственно искать по названию
предмета, например всю информа-
цию о буйволах. Каталог фотографий,
статей и фрагментов фильмов также происходит процесс обучения. Опре-
удобен в процессе поиска интересу- дели по часам время, узнай, какой му-
ющего материала. Если потребуется зыкальный инструмент как звучит, по-
найти какой-либо дополнительный говори вежливо с кроликом и т. д.
материал для изучения темы, школь- Существуют живые книги и по клас-
ник ещё не раз обратится именно к сическим детским литературным про-
энциклопедии. изведениям, например «Винни Пух
Для самых маленьких создаются и все-все-все». И конечно, в рассказ
живые книги, которые переносят де- включены игры и с самым забавным
тей в увлекательную игровую среду. медвежонком, и с Кроликом, и со все-
Занимательно путешествие по зага- ми друзьями Пуха.
дочной стране, где ребёнок с помо- Компьютер предоставил возмож-
щью мышки всё потрогает на экране. ность осуществить мощный прорыв
При этом предметы оживают, кролик в образовании. Уникальная подача ма-
разговаривает, телевизор легко вклю- териала и обилие самостоятельных
чить или переключить программу игровых занятий для детей позволят
с помощью пульта, по телефону мож- ещё глубже и многограннее понять
но позвонить, доска для рисования предмет. Важно только, чтобы в игре
предлагает порисовать вволю или рас- Геракл не участвовал во Второй ми-
красить животных, часы скажут, ко- ровой войне, как это порой бывает
торый час... В ненавязчивой форме в телесериалах.

357
ИСТОРИЯ
ДОКОМПЬЮТЕРНОЙ ЭПОХИ
НА ПУТИ К СЧЁТНОЙ МАШИНЕ

На простой вопрос, какой компьютер век, он производил вычисления, дви-


был первым, можно получить доста- гая костяшки. Поразрядное сложение,
точно странный ответ: «IBM PC XT», как сложение в столбик, на счётах вы-
однако история компьютеров значи- полнять удобнее, чем в уме, поэтому
тельно богаче, и первый компьютер, они не утратили своей вычислитель-
созданный человеческим гением, ко- ной «мощи» и по сей день.
нечно же, не IBM PC XT, это всего В XX столетии были найдены за-
лишь первый персональный компью- писки великого учёного, блестящего
тер, выпущенный фирмой IBM. изобретателя и живописца Леонар-
Первоначально компьютер (от до да Винчи (1452—1519), где гово-
англ. comрuter — «вычислитель», «рас- рится о механической счётной ма-
чётчик») предназначался для выпол- шине. Принцип её работы напоминал
нения сложных однообразных вы- устройство одометра (прибор в ав-
числений. История современной томобиле для подсчёта пройденно-
вычислительной техники насчиты- го пути), в котором если покрутить
вает чуть более полувека, но первым колёсико километров в сторону уве-
механическим компьютером счита- личения, то после 9 будет 0, зато ко-
ют абак (который иногда ассоции- лёсико десятков повернётся на 1, т. е.
руется с обычными счётами); упоми- счётчик покажет 10. Столь «сложный»
нание о нём встречается ещё до новой прибор имеет много общего с пер-
эры. Этот «компьютер» имел память — выми арифмометрами, где число ко-
костяшки на счётах, а для сложения дировалось положением (поворо-
Леонардо да Винчи. и вычитания «использовался» чело- том) диска с десятью зубцами.

360
История докомпьютерной эпохи

Механизм
калькулятора
Леонардо да Винчи.

С помощью таких связанных дис- Однако механический сумматор


ков можно построить суммирующее мог только складывать, для вычита-
устройство. ний использовалась техника «вычи-
В 1642—1643 гг. выдающийся тания через дополнение». Например,
французский философ и математик чтобы из 4125 вычесть 737 на пяти-
Блез Паскаль (1623—1662) изобрёл значной машине Паскаля, надо к 4125
и сконструировал первое механиче- прибавить дополнение 737 до 100 000,
ское счётное устройство, позволяю- что, как ни странно, легко подсчитать
щее складывать в десятичной систе- (все цифры, кроме самого младшего
ме счисления. разряда, получаются дополнением
Механический сумматор осуще- до 9). Оно равно 99 263:
ствлял сложение чисел на специаль-
ных дисках-колёсиках. В машине 4125 – 737 = 3388,
Паскаля десятичные цифры пяти-
значного числа задавались поворо- 4125 + 99 263 = 103 388.
тами дисков, на которых были нане-
сены цифровые деления. Результат А так как шестого разряда в пятираз-
читался в окошечках. Диски имели рядной машине нет, то результат не
один удлинённый зуб, чтобы при сло- 103 388, а 3388.
жении можно было учесть перенос Ещё одна машина была сконструи-
единицы в следующий десятичный рована немецким философом, мате-
разряд. Диски были механически свя- матиком и физиком Готфридом Виль-
заны через промежуточные шестер- гельмом Лейбницем (1646—1716).
ни: диски сотен, десятков и единиц
вращались в одну сторону — в сторо- Одометр автомобиля
ну увеличения. Отклонение специ- «фольксваген».
ального рычага на определённый
угол через храповой механизм поз-
воляло «вводить» однозначное число
и суммировать его с числом, храня-
щимся в калькуляторе. Такой привод
был у каждого диска, что позволяло
суммировать многозначные числа.
В первом калькуляторе Паскаля было
пять цифр, затем он увеличил их ко-
личество до восьми.
Если счёты — запоминающие
устройства, лишь хранящие инфор-
мацию, тогда как все действия про-
изводит человек, то суммирующая
машина Паскаля — механический вы-
числитель, который автоматически
выполняет переносы единиц в сле-
дующий десятичный разряд.

361
Компьютер

ны (ступенчатые валики)— цилиндры


Счётная машина
Паскаля. с девятью зубцами разной длины (дли-
на зубца увеличивалась по возрастаю-
щей). Когда барабан поворачивался,
связанное с ним передаточное коле-
со с десятью зубцами поворачивалось
от 0 до 9 в зависимости от его пози-
ции по отношению к барабану (коле-
со могло перемещаться по оси вдоль
шагового барабана). Так Лейбниц ис-
пользовал операцию «сдвига» для по-
разрядного умножения чисел. Данный
метод лёг в основу всех механических
калькуляторов последующих веков.
Конечно, по сегодняшним меркам
Счётная машина эти машины нельзя назвать насто-
Лейбница. ящими компьютерами (и даже каль-
куляторами). История механических
компьютеров — это история цифро-
вого колеса и привода.

В 1673 г. Лейбниц изобрёл «ком-


пьютер», который не только склады-
вал, но и умножал. Машина Лейбни-
ца выполняла сложение практически
Шаговый барабан тем же способом, что и суммирующая
счётной машины
Лейбница. машина Паскаля, но в её конструк-
цию были включены движущаяся
часть (подвижная каретка) и ручка,
с помощью которой крутились спе-
циальное колесо или (в более позд-
них вариантах) барабаны, располо-
женные внутри аппарата.
В машине каждый разряд имел соб-
ственный механизмам, связанный с
механизмами соседних разрядов. Лейб-
ниц использовал шаговые бараба-

АБАК И СЧЁТЫ

Абак — первое счётное приспособ- ского слова означает «пыль») выпол-


ление, которое стал применять чело- няла покрытая пылью или песком до-
век. Идея его устройства заключается ска, на которой можно было чертить
в наличии специального вычисли- линии и перекладывать камешки.
тельного поля, где по определённым Абак был известен ещё в Древнем
правилам перемещают счётные эле- Египте и, возможно, в Вавилонии,
менты, сгруппированные по разря- а финикийские купцы завезли его
дам. Именно эта идея объединяет в Грецию.
столь разные на первый взгляд при- Древнегреческий историк Геро-
боры, как греческий и римский абак, дот (между 490 и 480 — около 425
китайские и русские счёты, а также до н. э.) свидетельствует, что «элли-
счёт на линиях. ны пишут свои буквы и считают слева
Скорее всего, сначала роль абака направо, а египтяне — справа нале-
(полагают, что корень этого грече- во». Это первое письменное упоми-

362
История докомпьютерной эпохи

нание об абаке (несомненно, речь четыре, а в верхнем — по одной). Ко-


здесь идёт именно о нём, поскольку сточка верхнего ряда «стоила» в пять
других способов счёта тогда просто раз больше, чем расположенные под
не существовало). А вот самое ран- ней (например, число 80 представля-
нее изображение абака можно уви- лось одной косточкой верхнего и тре-
деть на вазе, изготовленной гречес- мя косточками нижнего ряда колон-
кими мастерами в III в. до н. э. На ней ки десятков: 50 + 3 . 10). Несколько
рядом с персидским царём Дари- рядов прорезей служили для представ-
ем I находится казначей, занятый ления дробей, кратных 1/12, 1/24, 1/48
подсчётами на абаке. О том, что из- и 1/72. В работе римский абак был зна-
начально данное устройство служи- чительно удобнее греческого.
ло именно для выполнения денеж- Только в X в., после нескольких
ных расчётов, свидетельствует и столетий упадка науки и культуры, на-
единственный сохранившийся до на- ступивших вслед за падением Рим-
ших дней древнегреческий абак — ской империи, абак снова распрост-
так называемая саламинская плита, раняется в Европе. Его возрождение Греческий абак.
найденная при раскопках в 1846 г. связано с именем одного из самых яр-
Это действительно большая (разме- ких и образованных людей раннего
ром 105 × 75 см) мраморная плита, на Средневековья Герберта из Орийака
которой прорезаны параллельные ли- (около 940—1003), ставшего в 999 г.
нии, образующие несколько колонок. Папой Римским Сильвестром II.
В левой колонке подсчитывали круп- Вспомним, как на первых страницах
ные денежные единицы — драхмы романа М. А. Булгакова «Мастер и
и таланты (так что вычисления на гре- Маргарита», в сцене на Патриарших
ческом абаке велись над именован- прудах, Воланд говорит: «Тут в госу-
ными числами). Здесь использовалась дарственной библиотеке обнаруже-
двоично-пятеричная система счис- ны подлинные рукописи чернокниж-
ления: значениями разрядов были 1, ника Герберта Аврилакского, десятого
5, 10, 50, 100, 500, 1000, 5000 драхм, века. Так вот требуется, чтобы я их ра-
1 и 5 талантов. В правой части счита- зобрал. Я единственный в мире спе-
ли «мелочь» — халки и оболы, при- циалист». Вполне возможно, что он
чём значение каждого следующего имел в виду именно рукописи мате-
разряда удваивалось: 1, 2, 4 и 8 хал- матического содержания, ведь самое
ков (что равно 1 оболу). «Стоимость» известное сочинение Герберта назы-
разрядов обозначена высеченными вается «О правилах абака».
рядом с ними греческими буквами. Абак Герберта содержал 27 ко-
Не случайно Полибий (II в. до н. э.), лонок, объединённых по три, и
автор «Истории», уподобляет при- три дополнительные колонки для Римский абак.
дворных камешкам на счётной дос-
ке, цена которых — один халк или це-
лый талант — полностью в руках
счётчика. На такой доске легко скла-
дывать и вычитать, добавляя или уби-
рая камешки и перенося их из разря-
да в разряд.
Хотя в Древнем Риме абак и назы-
вали calculi — «камешки» (отсюда про-
изошел латинский глагол calculare —
«вычислять», а от него — русское сло-
во «калькулятоp»), камешки уже не
использовали. Абак изменился, пре-
вратившись в настоящий счётный
прибор. Изготовляли его римляне из
бронзы, цветного стекла или слоно-
вой кости в виде доски с двумя ряда-
ми прорезей, по которым передвига-
лись косточки (в нижнем ряду по

363
Компьютер

Абак Герберта. гой вычислительной машины — Лейб-


ниц предпочитал жетоны вычислени-
ям на бумаге. В Западной Европе учи-
телей арифметики даже в XVII в.
продолжали именовать магистрами
абака, как, например, известного ма-
тематика Никколо Тарталью (около
1499—1557).
Правда, в XII—XIII вв. абак принял
форму так называемого счёта на ли-
ниях. В нём использовались специаль-
ные разлинованные таблицы и же-
тоны, которые можно было помещать
как на линиях, так и между ними.
До конца XVIII в. счёт на линиях сохра-
нял свои позиции в некоторых ев-
ропейских странах и лишь затем
окончательно уступил место вычис-
лениям на бумаге.
С IV в. до н. э. абак известен в Ки-
тае — в то время использовались счёт-
представления дробей. Вместо камеш- ные палочки, которые выкладывали
ков использовались специальные же- на специальной доске. Постепенно
тоны с нанесёнными на них цифра- их сменили разноцветные фишки, до-
ми от 1 до 9 (первоначально это ещё ска приобрела иную форму, а в X в.
не были арабские цифры). Герберт не появились китайские счёты — суан-
только усовершенствовал прибор, пан. В них место доски заняла рама
но и создал целую систему правил, с нанизанными на прутья косточка-
с помощью которых производились ми (по семь на каждом). Она разделе-
весьма сложные вычисления. на на две неравные части: в одной —
Абаком пользовались все: и купцы, по пять косточек (единицы), а во вто-
и менялы, и ремесленники. К абацис- рой — по две (пятёрки). Из Китая су-
там (в честь Герберта из Орийака их ан-пан в XVI в. пришёл в Японию —
ещё называли гербекистами) принад- здесь он получил название «соробан».
лежали многие видные учёные. Даже Рама соробана тоже состоит из двух
спустя шесть столетий изобретение частей, но они содержат по одной
Герберта оставалось важнейшим инст- и по четыре косточки.
рументом для практических вычисле- Почти одновременно счёты появи-
ний, не случайно Блез Паскаль писал, лись в Японии и в России, поэтому бы-
что использование его арифметиче- тует мнение, что и к нам их завезли из
ской машины позволит отказаться от Китая. Однако это не так. Русские счё-
Старинные утомительных расчётов «с помощью ты очень сильно отличались от китай-
китайские счёты. пера и жетонов». А вот создатель дру- ских, и сейчас большинство исследо-
вателей полагают, что в России они
были изобретены самостоятельно.
Тем более что возникло это изобрете-
ние не на пустом месте.
В России с древних времён был
распространён «счёт костьми», близ-
кий европейскому счёту на линиях.
Вместо жетонов обычно применялись
плодовые косточки (посетивший Рос-
сию в 1634—1636 гг. немецкий учё-
ный и путешественник Адам Олеарий
отмечал, что писцы для этой цели
имеют при себе мешочки с косточка-
ми сливы). В XVI в. возник так назы-

364
История докомпьютерной эпохи

ваемый дощаной счёт, первый вари- ском музее в Москве самые старые из
ант русских счётов (спустя 100 лет по- дошедших до нас счётов. Они пред-
явилось и само слово «счёты»). Их уст- ставляют собой две соединённые ра-
ройство было достаточно сложным: мы, точнее, ящика, каждый из кото-
целых четыре счётных поля для рядов рых разделён на три счётных поля.
по десять косточек. К середине XVII в. В ящиках имеется по одному полю,
относятся хранящиеся в Историче- содержащему полные ряды по десять

КТО БЫЛ ПЕРВЫМ?

Более трёх столетий приоритет в изобретении счётной трудно понять, зачем бы Шиккард стал вводить Кеплера в
машины безоговорочно признавался за Паскалем. заблуждение (тогда требования научной этики соблюдались
Историкам, конечно, было известно письмо от 20 сентября весьма строго!), а во-вторых, в его пользу убедительно
1623 г., адресованное знаменитому математику и астроному говорят найденные позднее эскизы других чертежей
Иоганну Кеплеру, в котором профессор Тюбингенского вычислителя и письменные инструкции для механика. Более
университета (в настоящее время эта земля принадлежит того, в 60-х гг. XX столетия учёным Тюбингенского универ-
Германии) Вильгельм Шиккард сообщал, что сконструировал ситета по этим чертежам и описанию удалось построить
машину для автоматического производства вычислений. действующую модель машины своего великого земляка.
Однако других тому подтверждений не имелось, и долгие После этого казалось, что историки смело могут увенчать
годы к этим сведениям относились с недоверием. вновь обретённого основоположника лаврами. Однако в
В своё время рукописи Кеплера были куплены императ- 1967 г. были обнаружены неизвестные записные книжки
рицей Екатериной II и сохранись в архиве Российской ака- (или дневники) Леонардо да Винчи, где имелся эскизный
демии наук. Уже после Второй мировой войны, в 1957 г., набросок 13-разрядного суммирующего устройства,
изучая фотокопии этих документов, директор Кеплеровского построенного на основе десятизубцовых колёс. Таким
научного центра, расположенного в Штутгарте, Франц образом, великий Леонардо обдумывал идею создания
Гаммер обнаружил набросок чертежа некоего механизма, вычислительной машины как минимум за 100 лет до
похожего на счётное устройство. Кропотливый и целе- Шиккарда! Точно датировать запись не удалось, хотя
направленный поиск позволил исследователю найти в письме известно, что дневник был начат ещё до открытия Америки
Шиккарда Кеплеру, написанном 25 февраля 1624 г., под- в 1492 г.
робное описание внешнего вида созданной им вычисли- История раннего периода развития вычислительной
тельной машины. техники до сих пор не написана до конца. Никто не знает,
Из описания можно сделать вывод, что шестиразряд- какие ещё интереснейшие открытия сделают учёные —
ный десятичный вычислитель состоял из десятизубцовых историки и архивисты.
и однозубцовых колёс и был рассчитан на выполнение
сложения, вычитания, а также табличного умножения и
деления. Шиккарду удалось решить проблему переноса
между разрядами: машина накапливала и переносила влево
десятки или сотни. При этом механизм передачи десятков
был реверсивным, так что вычитание выполнялось
вращением установочных колёс в обратном направлении.
В том же письме Шиккард извещал своего корреспон-
дента, что вместе с механиком Вильгельмом Пфистером
построил два экземпляра машины (он называет её часами
для счёта), которые, к сожалению, сгорели во время
большого пожара. Профессор писал о том, как тяжело он
переживает эту потерю, и жаловался на отсутствие времени
для постройки новой машины (кстати, одно из сгоревших
устройств предназначалось в подарок Кеплеру). Но, судя
по всему, к работе над вычислителем Шиккард так и не
вернулся, хотя он умер в 1635 г. (во время эпидемии
холеры).
Научному сообществу той поры не пришлось увидеть
счётную машину Шиккарда в действии, но сомнения в её
существовании, скорее всего, следует отклонить. Во-первых,

365
Компьютер

косточек, а также по два поля с ряда- мощным инструментом для вычисле-


ми, содержащими от одной до четы- ний (например, соединить их с раз-
рёх косточек. Уже к началу XVIII в. рус- ными числовыми таблицами) — по-
ские счёты приобрели современный следняя из них относится к 1921 г.
вид. Дальнейшие усовершенствова- Почти 300 лет счёты имели в Рос-
ния: изменение размеров, изгиба про- сии широчайшее распространение.
волоки, формы рамы — проводились Смертельный удар нанесло им толь-
для удобства использования. Но бы- ко появление дешёвых карманных
ли и попытки сделать счёты более электронных калькуляторов.

БЛЕЗ ПАСКАЛЬ

В математике издавна известна «улит- боту «Трактат о звуке». Через два года
ка Паскаля» — одна из замечательных мальчик самостоятельно (отец счи-
кривых четвёртого порядка. В этом тал, что сыну пока рано заниматься
названии увековечено имя Этьена Па- математикой, и прятал от него учеб-
скаля (1588—1651), в семье которо- ники) доказал теорему о сумме углов
го 19 июня 1623 г. родился сын, на- треугольника, а спустя ещё год его как
званный Блезом. Этьен Паскаль, равного приняли в кружок крупней-
принадлежавший к судейскому сосло- ших парижских математиков.
вию, человек богатый и образован- В 1640 г. Этьен Паскаль получил
ный, был неплохим математиком назначение «интендантом полиции,
и даже переписывался со знамени- юстиции и финансов» в Руан. Эта
тым французским учёным Пьером должность подразумевала и контроль
Ферма). После смерти жены он посвя- за сбором налогов по всей провин-
тил жизнь воспитанию детей. Блез ции. Считается, что мысль об ариф-
с самого раннего возраста проявлял метической машине возникла у юно-
признаки несомненной гениально- го Блеза из-за желания помочь отцу
сти. Он обладал феноменальной па- в сложных расчётах, которые тот про-
мятью, в четыре года умел читать и пи- изводил на бумаге и на счётной дос-
сать, а в десять лет, пытаясь понять, ке «с помощью пера и жетонов». Впол-
почему при ударе звенит фаянсовая не возможно, что первый толчок
тарелка, написал первую научную ра- к размышлениям дала ему мысль ве-
ликого философа Рене Декарта о том,
что некоторые умственные процес-
сы по сути своей не отличаются от
механических. Позднее и сам Паскаль
писал: «Действия арифметической ма-
шины больше похожи на действия
мыслящего существа, нежели живот-
ного, но у машины нет собственной
воли, а у животных есть». Судя по все-
му, он первым поставил вопрос о со-
отношении искусственного и чело-
веческого разума!
Так или иначе, к концу того же го-
да у Блеза сформировалась главная
идея конструкции будущей машины —
автоматический перенос разряда.
«...Каждое колесо... некоторого разря-
да, совершая движение на десять ариф-
метических цифр, заставляет двигать-
ся следующее только на одну цифру» —
Блез Паскаль. именно так будет звучать формула изо-

366
История докомпьютерной эпохи

бретения в полученной позднее, 22 мая


1649 г., королевской привилегии (про-
образ современного патента) на ариф-
метическую машину. Она утверждала
приоритет Блеза Паскаля в изобрете-
нии и закрепляла за ним право произ-
водить и продавать машины.
Первая модель была готова уже че-
рез несколько месяцев, но... не работа-
ла. Паскаль приступил к разработке
второй модели, над которой трудился
с перерывами до 1642 г. Именно этот
год считается датой изобретения, хо-
тя первый экземпляр машины закон-
чили лишь спустя ещё три года. нако создателю она обошлась вчет- Восьмиразрядная
Позднее Блез Паскаль писал, что веро дороже (а себестоимость других машина Паскаля.
он «не экономил ни времени, ни тру- экземпляров доходила до 600 ливров).
да, ни средств». Изобретатель руково- Да и покупали их не для работы, а ско-
дил мастерами, часто сам вытачивал рее как интересную игрушку. Паскаль
детали на токарном станке, подбирал некоторое время продолжал совер-
наиболее подходящие материалы для шенствовать машину, пытался также
машины: эбеновое дерево, медь, сло- создать устройство для извлечения
новую кость. Паскаль пробовал раз- квадратного корня, но после 1653 г.
ные конструкции, его машины разли- больше к этому не возвращался.
чались не только размерами, но даже Возможно, он счёл поставленную
разрядностью. перед собой задачу решённой, а воз-
Автор рассчитывал на коммерче- можно, просто не видел для неё даль-
ский успех своего детища. Он развер- нейших перспектив. Общество ещё не
нул настоящую рекламную кампанию: было готово к использованию его изо-
опубликовал объявление, приглашая бретения. Кроме того, 15 ноября
всех желающих воспользоваться 1654 г. произошло событие, резко из-
арифметической машиной (фактиче- менившее дальнейшую жизнь учёно-
ски квартира его друга, математика го. В этот день Паскаль чудом избежал
Роберваля, где в установленные часы гибели: его карета едва не свалилась
был открыт приём посетителей, ста- с моста в Сену. Пережив сильнейший
ла первым в истории вычислитель- душевный кризис, Паскаль увидел
ным центром). Интересно, что в этом в случившемся перст Божий, напоми-
объявлении Паскаль особенно под- нание о своём долге перед Творцом.
чёркивал прочность изделия. Он под- С 1655 г. он отказался от светской жиз-
верг машину суровому испытанию, ни и вёл полумонашеское существо-
провезя её в карете более 1100 км вание в обители Пор-Руаяль. Иногда
(идея тестирования компьютеров по- он ещё возвращается к занятиям ма-
явилась очень давно!). тематикой, но в основном его дни
Паскаль показывал свою машину проходят в написании философских
в салонах самых знатных людей ко- и богословских сочинений и в оказа-
ролевства, а для всеобщего обозре- нии помощи бедным. Блез Паскаль
ния выставил её в Люксембургском скончался 19 августа 1662 г. в Пари-
дворце. Один экземпляр в 1652 г. он же. Ему было всего 39 лет.
даже послал в подарок шведской ко- В историю человечества Блез Па-
ролеве Христине. Но настоящего про- скаль вошёл как один из величайших
изводства наладить так и не удалось. гениев. Он стоял у истоков мате-
Всего с 1645 по 1653 г. было изготов- матического анализа и теории веро-
лено около 50 арифметических ма- ятностей. Выдающийся физик, созда-
шин (из них восемь сохранились до тель классической гидростатики,
наших дней). Несколько из них Пас- Паскаль также был прекрасным ме-
каль сумел продать, в частности од- хаником и изобретателем, стремив-
ну — принцу Конде за 100 ливров. Од- шимся воплотить свои открытия

367
Компьютер

в жизнь. Ему принадлежит идея гид- вышедшая из-под его пера, — это дра-
равлического пресса. Он же первым гоценный камень», — сказал один из
в истории предложил организовать его соотечественников.) «Мысли»,
движение городского транспорта: главное сочинение Паскаля, восхи-
большие кареты (омнибусы) должны щали своей глубиной Стендаля и Льва
были перевозить по установленным Толстого, Бодлера и Тургенева...
маршрутам пассажиров, причём весь- Через века прошли названия: «тео-
ма дёшево. Всем известная обычная рема Паскаля» — в проективной гео-
тачка тоже была придумана им! А его метрии, «треугольник Паскаля» —
роль как создателя первой арифме- вматематике, «закон Паскаля» — в гид-
тической машины отмечал «отец ки- ростатике. Уже в наши дни имя учё-
бернетики» Норберт Винер. ного получили единица давления
Язык прозы Паскаля-писателя при- и один из самых популярных языков
знан образцовым. («Каждая строка, программирования.

ГОТФРИД ВИЛЬГЕЛЬМ ЛЕЙБНИЦ

О Лейбниц, о мудрец, создатель вещих книг!


Ты выше мира был, как древние пророки.
Твой век, дивясь тебе, пророчеств не постиг
И с лестью смешивал безумные упрёки.

В. Брюсов

Готфрид Вильгельм Лейбниц родил- а дед — профессором права Лейпциг-


ся 1 июля 1646 г. в городе Лейпциге. ского университета. Мальчику не ис-
Его отец был профессором этики, полнилось и семи, когда он потерял
отца. Готфрид с детства много зани-
мался: в восемь лет он самостоятель-
но изучил греческий язык и латынь,
а в пятнадцать — окончил гимназию.
В 1661 г. Лейбниц стал студентом
факультета права Лейпцигского уни-
верситета. Кроме юриспруденции он
изучал философию и математику
в университетах Лейпцига, Йены и
Альтдорфа. В 1666 г. 20-летний сту-
дент защитил сразу две диссертации:
«Об искусстве комбинаторики» (Лейп-
цигский университет) и «О запутан-
ных делах» (Альтдорфский универ-
ситет).
В 1668 г. Лейбниц поступил на
службу к курфюрсту Майнца. С 1672
по 1676 г. он находился в Париже
с дипломатической миссией, что
не помешало ему продолжать зани-
маться математикой и естествозна-
нием. Здесь Лейбниц познакомился
со многими учёными. Одним из них
был известный голландский изобре-
Готфрид Вильгельм татель и физик Христиан Гюйгенс
Лейбниц. (1629—1695). Видя, сколько вычис-

368
История докомпьютерной эпохи

лений приходится тому делать и как желая поразить техническими дости-


много времени уходит на это, моло- жениями Европы.
дой человек решил облегчить его труд В 1676 г. Лейбниц вернулся в Гер-
с помощью механического устройст- манию и поступил на службу к ганно-
ва для расчётов. верским герцогам. Выполняя их раз-
Сначала он хотел лишь улучшить нообразные поручения, он работал
машину великого Паскаля. Первое сначала придворным библиотекарем,
описание подобного «арифметиче- а потом герцогским историографом
ского инструмента» Лейбниц сделал и тайным советником юстиции.
ещё в 1670 г. Через два года он пред- Однако деятельность Лейбница
ложил новое описание, по которому выходила далеко за пределы офици-
был изготовлен экземпляр, проде- альных обязанностей. Он находил
монстрированный в феврале 1673 г. время для проведения химических
на заседании Лондонского королев- опытов, для медицинских исследо-
ского общества. По словам самого ваний, изобретал различные устрой-
учёного, он придумал арифмометр, ства (в частности, сконструировал
чтобы надёжно и быстро механиче- ветряной двигатель для насосов,
ски выполнять все арифметические выкачивающих воду из шахт), внёс
действия, особенно умножение. Од- существенный вклад в геологию,
нако признавал, что инструмент не- психологию, лингвистику и особенно
совершенен, и обещал его улучшить. в философию, физику, механику и ма-
В 1676 г. Лейбниц привёз в Лондон тематику.
новый вариант счётной машины, Примечательным фактом является
но и эта модель оказалась малопри- и то, что по просьбе Петра I учёный
годной для практических вычисле- разработал проекты развития образо-
ний. Лейбниц неоднократно воз- вания и государственного управления
вращался к своему арифмометру. в России. «Я не принадлежу к числу
Усовершенствованная машина появи- тех, — писал Лейбниц русскому ца-
лась лишь в 1694 г. в Ганновере. рю, — которые питают страсть к свое-
Лейбниц гордился своим изобре- му отечеству или к какой-либо другой
тением. Вот что он писал: «Мне посча- нации, мои помыслы направлены на
стливилось построить такую арифме- благо всего человеческого рода... и мне
тическую машину, которая бесконечно приятнее сделать много добра у рус-
отличается от машины Паскаля, так ских, чем мало у немцев...»
как моя машина даёт возможность со-
вершать и умножение, и деление над Петр I.
огромными числами мгновенно, при-
том не прибегая к последовательно-
му сложению и вычитанию». Работа
над машиной обошлась ему в 24 тыс.
талеров. Для сравнения можно ска-
зать, что годовая зарплата министра
равнялась 2 тыс. талеров. Несмотря на
прогрессивность изобретения, счёт-
ная машина не получила широкого
распространения, потому что в кон-
це XVII — начале XVIII в. отсутствовал
спрос на такую сложную и дорогую
технику.
Один из экземпляров конструкции
1694 г. Лейбниц собирался подарить
Петру I, но машина оказалась неис-
правной, а механик учёного не смог
её починить в короткий срок. Суще-
ствует и другая легенда: арифмометр
всё-таки попал в руки Петра I, и тот
подарил его китайскому императору,

369
Компьютер

Исаак Ньютон. дифференциального и интегрально-


го исчисления. Ньютон и Лейбниц»
в томе «Математика» «Энциклопедии
для детей»).
Современников Лейбница пора-
жали его фантастическая эрудиция,
почти сверхъестественная память
и удивительная работоспособность,
его широкий кругозор и диапазон де-
ятельности, умение в любой пробле-
ме увидеть и выделить сущность, ос-
нову. Лейбниц, как никто другой из
современников, обладал предельной
лаконичностью и точностью стиля,
творческой энергией и способно-
стью к обобщению.
Потребность обобщения застав-
ляла его искать универсальный ме-
тод научного познания. По мнению
Лейбница, мир создан разумом Твор-
ца как «наилучший из всех возмож-
ных миров» и живёт по законам, ко-
торые не в силах преступить даже их
Создатель. Лейбниц считал, что мир
может быть познан разумом челове-
ка, и тогда воцарится всеобщая «пред-
На протяжении всей жизни Лейб- установленная гармония», для чего
ниц вёл активную переписку. После обязателен и единый метод позна-
себя он оставил более 15 тыс. писем ния мира.
к тысяче адресатов на французском, Лейбниц указал путь для перевода
немецком и латинском языках. Лейб- логики из словесного царства, пол-
ниц вступал в переписку и с Ньюто- ного неопределённостей, в царство
ном, но она продолжалась только год математики, где отношения между
и не привела к сотрудничеству вели- объектами или высказываниями оп-
ких учёных (см. статью «Создание ределяются совершенно точно. Он
предложил употреблять в логике ма-
тематическую символику и впервые
высказал мысль о возможности при-
менения в логике двоичной системы
счисления, что позднее стало исполь-
зоваться в автоматических вычисли-
тельных машинах.
Заслуга Готфрида Вильгельма Лейб-
ница ещё и в том, что он ввёл много
математических терминов, прочно
утвердившихся в научной практике:
«функция», «дифференциал», «диффе-
ренциальное исчисление», «диффе-
ренциальное уравнение», «алгоритм»,
«абсцисса», «ордината», «координата»,
а также знаки дифференциала, инте-
грала, логическую символику.
Умер Готфрид Вильгельм Лейбниц
14 ноября 1716 г. в нищете, как часто
случается в мире науки, — заслуги ве-
ликого учёного не принесли ему
богатства.

370
История докомпьютерной эпохи

ЧАРЛЗ БЭББИДЖ

«Я отдаю себе отчёт, что мои утверж- оказалось плодотворным, поэтому


дения могут рассматриваться как не- долгие годы после смерти Бэббиджа
что сверхутопическое и что они вызо- его имя связывалось именно с фор-
вут в памяти философов Лапуты...» — с мированием новой математической
грустью признавался выдающийся анг- школы в Англии.
лийский учёный Чарлз Бэббидж. В 1813 г. в «Записках Аналитиче-
(Лапута — летающий остров, ского общества» Бэббидж опублико-
придуманный Джонатаном Свиф- вал первую научную статью «О беско-
том. Там жили мудрецы, примеча- нечных произведениях». В том же году
тельные своей оторванностью от Чарлз перешёл из Тринити-колледжа
реальной жизни и пространными в колледж Святого Петра. И в 1814 г.,
псевдонаучными рассуждениями.) окончив университет, получил сте-
Чарлз Бэббидж родился 26 декаб- пень бакалавра. Вторая его работа
ря 1791 г. на юго-западе Англии, «Очерк функционального исчисле-
в маленьком городе Тотнес графства ния» посвящалась изучению функ-
Девоншир, в семье совладельца бан- циональных уравнений общего вида.
кирской фирмы «Прэд, Макворт и Бэб- Она была зачитана на двух заседа- Чарлз Бэббидж.
бидж» Бенджамина Бэббиджа, оста- ниях Лондонского королевского об-
вившего после смерти сыну большое щества (15 июня 1815 г. и 14 марта
состояние. С детства Бэббидж увле- 1816 г.), и в 1816 г. Бэббиджа избра-
кался всевозможными механизмами. ли его членом.
Получая новую игрушку, он обязатель- После окончания университета
но спрашивал: «А что там внутри?». в 1814 г. Чарлз Бэббидж ведёт жизнь Среди близких дру-
Если ответ не удовлетворял его, иг- свободного джентльмена-философа: зей Ч. Бэббиджа был
рушка разбиралась на части. Из-за он вхож в высшее общество Британ- известный писатель
слабого здоровья Чарлз до 11 лет ской империи. В 1815 г. Бэббидж Чарлз Диккенс
учился дома, с ним занималась мать, женился на Джорджии Витмур из ро- (1812—1870).
урождённая Елизавета Тип. Потом да Шропширов. За годы супружеской
мальчика отдали в одну из лучших ча- жизни у них родилось восемь детей,
стных школ Англии, где Чарлза сразу к сожалению, пять из них умерли
покорила богатая библиотека. Среди в детстве.
прочих там были прекрасные книги
по математике...
Чарлз Бэббидж проявил серьёзные
математические способности в пери-
од учёбы в Тринити-колледже Кемб-
риджского университета, куда он по-
ступил в 1810 г. Здесь обнаружилось,
что Бэббидж знает математику лучше
сверстников. Очень быстро Чарлз пе-
регнал по знаниям и своих препода-
вателей, придя к неутешительному
выводу: Британия заметно отстала от
континентальных стран по уровню
математической подготовки. Для пре-
одоления разрыва в 1812 г. Чарлз и его
ближайшие друзья Джон Гершель
и Джордж Пикок вместе с другими мо-
лодыми математиками основали Ана-
литическое общество, которое своей
активностью фактически иницииро-
вало реформу математического об-
разования в Кембридже, а затем
и в других университетах. Начинание

371
Компьютер

В 1817—1820 гг. он напечатал ещё не- что вышеупомянутое количество по-


сколько математических работ, пре- стоянно увеличивается. Поэтому я вы-
имущественно в области функцио- нужден посоветовать, чтобы в следу-
нального анализа. А в 60-х гг. XX в. ющем издании Вашей прекрасной
в Британском музее было най- поэмы ошибочный расчёт, о котором
дено неопубликованное сочи- я говорю, был уточнён следующим об-
нение Бэббиджа «Философия разом:
анализа», написанное в 1821 г. Каждое мгновение умирает
Впоследствии Бэббидж человек,
меньше занимался математи- А один и шестнадцать сотых
кой, и, как правило, его рабо- рождается.
ты были связаны с приклад- Я могу добавить, что точной циф-
ными задачами. рой будет 1,167, но для законов риф-
В 1818 г. в Плимуте Бэббидж мы возможны приближения».
участвовал в погружении под во- Бэббидж неоднократно посещал
ду в «воздушном колоколе». Поз- Францию, где познакомился с извест-
же, в 1826 г., в своей статье «Подвод- ным астрономом и физиком Пьером
ный колокол» он привёл чертёж Лапласом, физиком и математиком
небольшого подводного судна. Жаном Батистом Фурье. Но наиболь-
Однажды, слушая оперу «Дон Жу- шее влияние на Бэббиджа оказал ме-
ан», он заскучал и через несколько ми- нее именитый французский учёный-
нут ушёл из зала — посмотреть, как уст- математик Г. Прони. Его печальная
роен механизм управления сценой... история началась в конце XIX в., ког-
Интересен и другой случай. Фраг- да в стране было задумано проведение
мент из стихотворной поэмы Альф- радикальных общественных реформ.
реда Теннисона «Видение греха»: Прони было поручено (он руководил
Каждую минуту умирает человек, в это время Бюро переписи) создание
Но каждую минуту человек новых логарифмических и тригоно-
рождается — метрических таблиц для перехода на
заставил Бэббиджа написать поэту метрическую систему мер.
письмо: «...Я должен заметить Вам, что Прони перенёс идею разделения
в этом расчёте принимается во вни- труда на вычислительный процесс,
мание суммарное население мира распределив исполнителей по трём
в состоянии постоянного равновесия. квалификационным уровням. Заслу-
В то же время хорошо известен факт, га Прони в том, что он нашёл алго-
ритмический подход для сведения
сложных вычислений к простым, ру-
тинным операциям, не требующим
от исполнителей творческого подхо-
да. (Но к тому времени, когда работы
завершились, во Франции не на-
шлось денег, чтобы напечатать гран-
диозные таблицы, занимающие 17
огромных рукописных томов; колос-
сальный труд так и остался невостре-
бованным.) Бэббидж застал дела Про-
ни в плачевном состоянии, но это не
помешало ему уловить главное: воз-
можность упрощения процедуры
сложных вычислений путём механи-
ческого выполнения однообразных
рутинных действий. Идеи учёного на-
вели его на мысль о замене малооб-
разованных исполнителей механи-
ческим устройством и вдохновили
на создание первой дифференциаль-
ной машины.

372
История докомпьютерной эпохи

В 1822 г. Бэббидж закончил опи- машины потрясли самого автора.


сание разностной машины, которая В мае 1835 г. учёный писал: «Шесть
смогла бы производить вычисления месяцев я составлял проект машины
с точностью до 18-го знака. Чертёж более совершенной, чем первая. Я сам
лёг на стол премьер-министра. поражён той вычислительной мощ-
В 1823 г. была выплачена первая ностью, которой она будет обладать,
субсидия на её постройку. Строитель- ещё год назад я не смог бы в это по-
ство продолжалось десять лет, конст- верить».
рукция машины всё более усложня- В 1840 г. Бэббидж едет с визитом
лась, творческие успехи перемежались в Турин (Италия), куда был пригла-
ожесточёнными схватками между шён с лекциями о своей машине. Лек-
Бэббиджем и Джозефом Клементом ции имели огромный успех, и один
(талантливый инженер и государст- из слушателей, молодой инженер Лу- Барон де Прони.
венный чиновник, назначенный ру- иджи Менабреа, издал во Франции их
ководить работами). Сейчас трудно конспект.
указать причину, почему первая вер- Несмотря на то что Бэббидж напи-
сия разностной машины не была до- сал более 80 научных трудов, подроб-
ведена до конца. Заслуженные анг- ное изложение принципов работы
лийские учёные выступили против разностной и аналитической машин
Бэббиджа, опровергая саму возмож- принадлежат не его перу — он был
ность построения машины. В 1833 г. слишком занят созданием машин, что-
финансирование было прекращено, бы ещё заниматься и их описанием.
а недостроенная машина перешла Разностная машина описана Лардне-
в государственную собственность ром, а аналитическая — Луиджи Ме-
и после была заброшена. Возможно, набреа.
причиной неудач послужила излиш- Однако аналитическая машина так
няя разносторонность и разбросан- и не была построена. В 1851 г. Бэб-
ность Бэббиджа: он то увлекался бидж скажет: «Все разработки, свя-
железными дорогами (сделал не- занные с аналитической машиной,
сколько важных изобретений, в том выполнены за мой счёт. Я провёл це-
числе спидометр для паровоза), то за- лый ряд экспериментов и дошёл до
нимался технологией массового про- черты, за которой моих возможно-
изводства компонентов для своей ма- стей не хватает. В связи с этим я вы-
шины, требующей сотен одинаковых нужден отказаться от дальнейшей
элементов. работы».
Так или иначе, с первой разност- Он готов был пойти на любые
ной машиной было покончено, но авантюры, чтобы добыть средства на
самому автору она послужила осно- постройку аналитической машины.
вой для новых открытий. Сначала был первый проект вместе
Позже Бэббидж предпринял новую с леди Адой Лавлейс, которую Бэб-
попытку построить разностную ма- бидж заразил идеей создания вычис-
шину-2, но организационные пробле- лительной машины. Бэббидж рассчи-
мы опять помешали сбыться мечте. тывал заработать деньги, написав
В 1834 г. у него возникла мысль со- роман в трёх томах, но вскоре за-
здать универсальную вычислитель- бросил эту затею. Потом загорелся
ную машину, которую он назвал ана- новым проектом — автоматом для иг-
литической. В этом проекте Бэббидж ры в крестики-нолики. Однако и этой
впервые пришёл к идее программно- идее не суждено было сбыться.
го управления вычислительным про- Бэббидж работал над своей анали-
цессом. Он задумал сделать механи- тической машиной до последних дней
ческое устройство, способное не жизни. Учёный скончался 18 октября
просто считать, но и управлять ходом 1871 г., не дожив всего двух месяцев
собственной работы в зависимости до 80-летия.
от заложенной программы и резуль- Чарлз Бэббидж был не только ма-
татов промежуточных вычислений. тематиком, но и философом, эконо-
Это изобретение опередило свою мистом и даже политэкономом. Ещё
эпоху на 100 лет! Возможности такой в 1832 г. Бэббидж написал книгу Ада Августа Лавлейс.

373
Компьютер

«Экономика машин и производств». сколько лет изучению имеющегося


(Он объездил всю Европу в поисках наследия и в 1880 г. начал строить по
подходящих для своей цели научных чертежам отца центральный узел
и технических решений.) аналитической машины. В 1888 г. он
В 1872 г. специальный комитет вычислил произведения числа π на
Британской ассоциации содействия числа натурального ряда от 1 до 32
развитию науки отметил: «Мы пола- с точностью до 29 знаков!
гаем, что существование подобных Генри Бэббидж с переменным
устройств помимо экономии труда успехом продолжал работу над ма-
при выполнении обычных (арифме- шиной отца до 1896 г. После десяти-
тических) операций сделает осуще- летнего перерыва она была возоб-
ствимым то многое, что, будучи прак- новлена, и появился действующий
тически осуществимым, находится образец аналитической машины,
слишком близко к пределам челове- способный печатать результаты вы-
ческих возможностей». числений.
Сын изобретателя генерал Генри Машина Бэббиджа оказалась рабо-
Генри Провост Провост Бэббидж (1824—1918), вый- тоспособной, но изобретатель этого
Бэббидж. дя в 1874 г. в отставку, посвятил не- уже не увидел.

МАШИНЫ БЭББИДЖА

РАЗНОСТНАЯ МАШИНА Для этого строится таблица из пя-


ти колонок. В первой колонке на-
В начале XIX в. французские учёные ходится значение аргумента, во
предложили любопытный метод вы- второй — значение многочлена, в ос-
числений. Задача разбивалась на ма- тальных — значения конечных раз-
лые части, состоящие лишь из простых ностей:
операций, которые поручались боль-
шому числу людей, знающих в мате- ∆x1 = Yx – Yx –1 (первые разности),
матике только арифметические дей-
∆x2 = ∆x1 – ∆x1 –1 (вторые разности),
ствия и выполняющих их почти
механически. Чарлз Бэббидж, декан ∆x3 = ∆x2– ∆x2 –1 (третьи разности).
кафедры математики Кембриджского
университета (её когда-то возглавлял
Исаак Ньютон), заметил, что эти мо- X Y ∆1 ∆2 ∆3
нотонные математические расчёты, 0 –4 4 2 0
особенно проводимые для построения 1 0 6 2 0
различных таблиц, состоят из набора 2 6 8 2 0
повторяющихся действий. И решил, 3 14 10 2 0
что во избежание вычислительных 4 24 12 2
ошибок и опечаток в таблицах для та- 5 34 14
ких операций можно приспособить
6 50
машины. Он начал проектировать
автоматическую механическую вы- 7 66
числительную машину. В основу её ра-
боты учёный положил свойство мно- Первые разности получают, вычи-
гочленов степени n – 1: конечные тая из значения функции её предыду-
разности n-го порядка равны нулю. щее значение. Так, в первой строке
Данное свойство конечных разностей
можно проиллюстрировать следу- ∆11 = Y1 – Y0 = 0 – (–4) = 4.
ющим примером. Пусть надо вычис-
лить многочлен второй степени: Для второй строки

y = x2 + 3x – 4. ∆21 = Y2 – Y1 = 6 – 0 = 6.

374
История докомпьютерной эпохи

Вторые разности получают, вы- 18 зубчатых колёс. Для вычисления


читая из первой разности её преды- полинома n-й степени необходимо
дущее значение. Тогда для первой было иметь n + 1 регистр (1 — для
строки хранения предыдущего значения
функции и n — для хранения разно-
∆12 = ∆11 – ∆10 = 6 – 4 = 2. стей). Машина предназначалась для
вычисления многочленов шестой
По тому же принципу строят и тре- степени, поэтому в ней предусматри-
тьи разности. Как видно из таблицы, валось наличие семи 18-разрядных
третьи разности равны нулю, а вто- регистров.
рые — постоянны. Если суммировать Поскольку основная операция в ма-
значения разностей и предыдущее шине — операция суммирования, то,
значение функции, то можно полу- естественно, имелось и суммирующее
чить следующее значение многочле- устройство, точнее, устройства, совме-
на. При x = 7 щённые с каждым из регистров. Кон-
структивно машина состояла из трёх
Y7 = Y6 + ∆51 + ∆24 + ∆33. рядов зубчатых колёс: первый ряд —
зубчатые колёса регистров, второй
Или, так как все ∆3= 0, ряд — зубчатые счётные колёса на осях
для выполнения операции суммиро-
Y7 = Y6 + ∆51 + ∆24 = 50 + 14 + 2 = 66. вания и третий ряд — оси с так назы-
ваемыми установочными пальцами
То есть можно получить новое зна- для подготовки очередной операции
чение функции путём суммирования суммирования. Бэббидж разделил вы-
ранее вычисленных значений. полнение операции переноса десят-
Машину для автоматизации про- ков на две части. Впоследствии это ис-
цесса составления таблиц Бэббидж пользовалось практически во всех
назвал разностной. Он с юмором за- механических калькуляторах. Разме-
мечал, что на вопрос о принципах ра- ры механического блока машины со-
боты задуманной машины лучше от- ставляли: длина — 3 м, ширина — 1,5 м;
ветить шестью знаками: ∆n U x = 0, диаметр зубчатого счётного колеса
но такой ответ мало кому был поня- около 13 см.
тен. (Это выражение означает, что для В машине предполагалось исполь-
многочлена n–1 степени Ux n-е раз- зование устройства, выводящего ре-
ности равны нулю.) Основное назна- зультаты на печать параллельно с про-
чение разностной машины Бэббидж ведением вычислений.
видел в составлении таблиц, однако
она могла и проверять уже существу-
ющие таблицы. Для этого операции
должны были проводиться в обрат-
ном порядке — от значения полино-
ма (многочлена) к конечным разно-
стям. Если при вычислении значений
многочлена допускалась ошибка,
то вместо постоянных разностей
старшего порядка получались разные
числа. Однако подчас проще пересчи-
тать заново всю страницу и сверить
результаты, чем выполнить обратные
вычисления, на что указывал Бэббидж
в своих комментариях.
Наиболее важным элементом ма-
шины Бэббиджа являлся регистр —
устройство для хранения десятичных
чисел. Поскольку предполагалось об-
рабатывать 18-разрядные числа, Разностная машина
то регистр одного числа состоял из Чарлза Бэббиджа.

375
Компьютер

няла действия с запланированной


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

АНАЛИТИЧЕСКАЯ МАШИНА
Разностная машина Бэббиджа, в от- После испытаний 1833 г. Бэббидж за-
личие от всех предыдущих разрабо- думал создать принципиально новую
ток, могла наряду с одним заранее за- машину, способную выполнять раз-
данным действием (вычисление личные действия в соответствии
полиномов по методу конечных раз- с предварительно составленным пла-
ностей) вычислять значения некото- ном работ — программой. Первые
рых функций с помощью специаль- чертежи появились в 1834 г., машину
но подобранных формул. назвали аналитической.
Постройка разностной машины Бэббидж решил слегка изменить
представляла большую проблему: тре- конструкцию разностной машины:
бовалось разрабатывать не только но- расположить оси по окружности так,
вые конструкции и узлы, но и неред- чтобы колонка результата располага-
ко инструменты для их изготовления; лась рядом с колонкой последней раз-
точность обработки металла была ности и легко связывалась с ней. Это
очень приближённой, да и рабочих позволило бы управлять процессом
нужной квалификации не хватало. вычислений, воздействуя на порядок
В 1822 г. Бэббидж опубликовал расчёта. Вскоре учёный сформулиро-
статью «Заметки о применении вал идею независимого устройства
машин в вычислениях астрономиче- управления вычислениями, с помо-
ских и математических таблиц» щью которого можно было произво-
с описанием машины для вычисле- дить все арифметические действия.
ния и печати таблиц математических Аналитическая машина задумыва-
функций и в том же году продемон- лась как чисто механическое устрой-
стрировал работающую модель. Она ство, однако учёный хотел выполнять
содержала три пятиразрядных реги- расчёты не вручную, а с применени-
стра, т. е. предназначалась для вычис- ем внешнего источника энергии, в ча-
ления полиномов второй степени. стности парового двигателя.
На этой машине Бэббидж рассчитал
таблицу квадратов. Автор был полон
Аналитическая энтузиазма: Лондонское королевское
машина Чарлза
Бэббиджа. общество высоко оценило его изо-
бретение.
В 1823 г. Бэббидж, получив финан-
совую поддержку британского пра-
вительства, начал постройку насто-
ящей разностной машины. Он
считал, что на её создание уйдёт три
года. Но машину не удалось постро-
ить и через десять лет. Бюджет был
превышен в пять раз.
В 1833 г. испытания построенной
части машины убедили автора в пра-
вильности расчётов: машина выпол-

376
История докомпьютерной эпохи

Период с 1842 по 1848 г. был пол- Приблизительная


ностью посвящён созданию новой ма- схема механизма
аналитической
шины. Автор продолжал работу без машины.
какой-либо финансовой поддержки
от правительства. В 1849 г. Бэббидж
представил схему аналитической ма-
шины. Машина состояла из трёх ос-
новных блоков.
• Склад (Store) — память для хране-
ния чисел на регистрах, состоящих из
механических колёс. Предполагалось,
что память должна хранить тысячу
50-разрядных десятичных чисел. Если
в дальнейших вычислениях содержи-
мое регистра не требовалось, число
можно было напечатать и использо-
вать регистр для других вычислений.
Если памяти не хватало, чтобы вмес-
тить все числа, необходимые для вы- очищается, т. е. устанавливается в ну-
числения, то они записывались на пер- левую позицию;
форированные карты (разновидность • «удерживающая карта» произво-
жаккардовых карт), при этом число та- дит то же действие, что и «нулевая кар-
ких карт (см. статью «Автоматизация та», только содержимое регистра со-
и перфокарты») ничем не ограничи- храняется;
валось. • «доставляющая карта» передаёт
• Фабрика (Mill) — блок для выпол- результат из арифметического устрой-
нения арифметических операций. ства обратно в память.
Бэббидж так оценивал производитель- Карты, применяемые для ввода чи-
ность своей машины: умножение двух сел в память, назывались цифровыми.
50-разрядных чисел и деление Вот как Бэббидж описывал механизм
100-разрядного числа на 50-разряд- чтения с перфокарт: «Два больших
ное вычисляются со скоростью одна ящика, один из которых пустой, а дру-
операция в минуту, а сложение (и вы- гой — наполненный перфорирован-
читание) 50-разрядных чисел — од- ными картами, располагаются спере-
на операция в секунду. ди и сзади многогранной призмы. Эта
• Устройство, оставленное авто- призма прерывисто вращается и каж-
ром без названия, для управления дый раз продвигается вперёд на ко-
процессом вычисления, осуществле- роткое расстояние, после чего немед-
ния выборки чисел из памяти, выпол- ленно возвращается. Карта проходит
нения вычислений и вывода резуль- над призмой только перед каждым хо-
татов. дом механизма, такого же, как и чел-
Перфокарты, используемые в ма- нок (в станке Жаккарда. — Прим. ред.).
шине, разделялись на две группы:
операционные — для выполнения
арифметических операций и управ-
ляющие — для осуществления загруз-
ки чисел из регистров в арифметиче-
ское устройство и выгрузки обратно
в память, а также ввода-вывода.
Соратница Бэббиджа Ада Августа
Лавлейс предложила назвать перфо-
карты, управляющие передачей чисел
в машине, переменными:
• «нулевая карта» загружает числа
из регистра в арифметическое устрой-
ство, при этом содержимое регистра

377
Компьютер

Число занимает один регистр па-


мяти (колонка из десятичных циф-
ровых колёс). По окружности колёс
нанесены цифры от 0 до 9. Каждое ко-
лесо вращается независимо от дру-
гих. Управляющие карты поднимают
колёса выбранных колонок так, что-
бы ввести их в зацепление с зубчаты-
ми рейками. При этом каждое коле-
со передвигается на число зубьев,
соответствующее разряду числа. В ре-
зультате число, нанесённое на перфо-
карту, записывается в память. Для хра-
нения знака используется самое
верхнее колесо в колонке. За один
оборот главного вала можно сохра-
нить число в колонке или передать из
памяти к Складу.
При сложении чисел в арифмети-
ческом устройстве число уменьшает-
ся до нуля в одной колонке, заставляя
поворачиваться на эту величину дру-
гую колонку. При прибавлении 4
к 8 результатом будет 2, при поворо-
те колеса последовательно «промель-
кнут» цифры 9, 0 и 1. Когда 9 перей-
дёт в 0, будет сдвинут рычаг переноса,
который осуществится позднее.
Кодирование Карты, которые прошли, падают вниз, Несомненная заслуга Бэббиджа —
арифметических пока не достигнут пустого ящика для введение программного управления
операций на
перфокартах. сбора карт, в котором они располага- ходом вычислений. Если необходимо
ются одна над другой...». выбрать из двух чисел большее (опе-
Сын изобретателя Генри Бэббидж рация сравнения), то надо вычесть из
приводил такой пример вычислений одного числа другое. В результате, ког-
на аналитической машине: «Если да уменьшаемое меньше вычитаемо-
взять формулу (ab + c)d в качестве ил- го, должен возникнуть перенос. При
люстрации, то потребуются карты этом рычаг перемещается в самое
всех видов. Будет использован следу- верхнее положение, что означает от-
ющий порядок их загрузки: четыре рицательный результат. Такое поло-
карты исходных данных — a, b, c жение рычага позволяет ввести в ра-
и d — собраны вместе и уложены на боту предварительно подготовленный
ролик (или призму). Эти числа будут набор перфокарт.
помещены на колонки (зубчатого ме- Леди Лавлейс предложила способ
ханизма. — Прим. ред.), предназна- возврата одной или нескольких «от-
ченные для них в части машины, на- работанных» перфокарт из ящика-
зываемой «Склад». Каждое полученное приёмника обратно в источник для
число запоминается и готово к ис- последующего считывания и выпол-
пользованию... Применяются три опе- нения действий. Таким образом, ста-
рационные карты и четырнадцать уп- ло возможно многократно повторять
равляющих карт, каждый набор карт, целые участки программ, т. е. органи-
собранный вместе, укладывается на зовывать программные циклы.
свой ролик (или призму)...». К сожалению, как разностная, так
Приведённая таблица показывает и аналитическая машины при жизни
последовательность операций в ана- автора не были построены. Одной из
литической машине для вычисления причин считают то, что мыслитель
Бэббидж намного опередил своё вре-
y = (ab + c)d. мя: при существующей технике и про-

378
История докомпьютерной эпохи

Управляющие Операционные Операция


карты карты

1 — Установить a в колонке 1 Склада


2 — Установить b в колонке 2 Склада
3 — Установить c в колонке 3 Склада
4 — Установить d в колонке 4 Склада
5 — Прислать a из Склада на Фабрику (арифметичес-
кое устройство)
6 — Прислать b из Склада на Фабрику
— 1 Умножить a на b, ab=p
7 — Положить p в колонку 5 Склада и сохранить
для последующего использования
8 — Прислать p на Фабрику
9 — Прислать c на Фабрику
— 2 Сложить p и c, p+c=q
10 — Взять q в колонке 6 Склада
11 — Прислать d на Фабрику
12 — Прислать q на Фабрику
— 3 Умножить d на q, dq=p2
13 — Взять p2 в колонке 7 Склада
14 — Напечатать p2

изводстве нельзя было детально и точ- практически соответствует архитек-


но воспроизвести чертежи. туре современных ЭВМ, а команды,
В аналитической машине преду- которые выполняла аналитическая
сматривались все основные элемен- машина, в основном включают все ко-
ты, присущие современным компью- манды современных процессоров,
терам: Склад — память, Фабрика — в том числе и изменение порядка
арифметическое устройство про- выполнения программы, условный
цессора, устройство для управле- переход, цикл. Поэтому машину Бэб-
ния — управляющее устройство биджа хочется назвать первым насто-
процессора. Архитектура машины ящим компьютером.

ГЕРМАН ХОЛЛЕРИТ

29 февраля 1860 г. в американском го- пить в Горную школу при Колумбий-


роде Буффало в семье немецких им- ском университете. На способного
мигрантов Холлеритов родился сын юношу обратил внимание один из пре-
Герман. Когда мальчик пошёл в школу, подавателей, профессор У. Траубридж,
выяснилось, что он страдает весьма не- и пригласил после окончания школы
приятным заболеванием — дисграфи- в 1879 г. на работу в возглавляемое им
ей и с трудом пишет (в то же время ри- Национальное бюро по переписи
совал он весьма неплохо). И хотя населения. Это стало решающим мо-
математика и естественные науки да- ментом в судьбе Германа Холлерита.
вались Герману гораздо легче, мучения Бюро занималось сбором и стати-
на уроках грамматики в конце концов стической обработкой информации
вынудили его в возрасте 14 лет оста- при проведении переписей населе-
вить школу. Усиленные домашние за- ния. Переписи в США имели давнюю
нятия позволили ему год спустя посту- традицию. Первая из них состоялась Герман Холлерит.

379
Компьютер

ПЕРВАЯ ПЕРЕПИСЬ НАСЕЛЕНИЯ В РОССИИ

5 июня 1895 г. император Николай II утвердил Поло- Перепись состоялась в назначенный срок. Её про-
жение о первой всеобщей переписи населения, в водили сотни тысяч счётчиков: переписные листы
котором говорилось, что перепись «есть дело для России заполняли местные чиновники, служащие, интелли-
совершенно новое, никогда в ней до сих пор небывалое. генция. Например, участком по проведению переписи
Перепись эта будет состоять в том, что будут пере- в Мелихове заведовал А. П. Чехов. Он в шутку называл
считаны поодиночке все жители государства для того, себя «ротным командиром» и «боцманом» местных
чтобы Правительство могло знать верные числа и счёт счётчиков.
населения как во всём государстве, так и в каждом уезде, «Выдали счётчикам отвратительные чернильницы,
в каждой волости, селении и усадьбе». отвратительные аляповатые знаки, похожие на ярлыки
Перепись была назначена на 9 февраля 1897 г. Пла- пивного завода, и портфели, в которые не лезут
нировалось собрать сведения о каждом жителе страны переписные листы, — и впечатление такое, будто сабля
по следующим признакам: имя, семейное положение, не лезет в ножны. Срам. С утра хожу по избам, с
отношение к главе хозяйства, пол, возраст, сословие, непривычки стукаюсь головой о притолоки, и, как
вероисповедание, место рождения, место жительства, нарочно, голова трещит адски…» — писал Антон
родной язык, грамотность, занятие, физические изъяны. Павлович 11 января. «Замучила перепись», — жалуется
В августе 1895 г. на сессии он 30 января. А 8 февраля с
Международного статистиче- облегчением подводит итог:
ского института в Берне (Швейца- «Перепись кончилась. Это дело
рия) директор Центрального ста- изрядно надоело мне, так как
тистического комитета (ЦСК) приходилось и считать, и писать
Н. А. Тройницкий познакомился до боли в пальцах, и читать лекции
с американским инженером Гер- 15 счётчикам. Счётчики работали
маном Холлеритом, чей доклад превосходно, педантично до
был посвящён использованию смешного. Зато земские на-
счётных машин при проведении чальники, которым вверена была
переписи. Заинтересованность в перепись в уездах, вели себя
сотрудничестве оказалась обоюд- отвратительно. Они ничего не
ной. Холлерит надеялся на рас- делали, мало понимали и в самые
ширение рынка сбыта своих ма- тяжёлые минуты сказывались
шин, а Тройницкий прекрасно больными».
понимал, что вручную обработать Но для ЦСК тяжёлые времена
данные переписи невозможно. были ещё впереди. Заполненные
В начале ноября 1896 г. Хол- переписные листы свозили для
лерит получил от российского обработки в столицу. Работа была
правительства приглашение участ- поставлена из рук вон плохо,
вовать в переписи и уже 15 де- многие сотрудники просто не зна-
кабря прибыл в Санкт-Петербург. ли, что и как они должны делать…
Договориться об условиях кон- Работа двигалась настолько мед-
тракта удалось очень быстро. ленно, что летом 1897 г. Холлерита
Согласно ему, фирма Холлерита вновь вызвали в Россию. И хотя
предоставляла России в аренду 35 его консультации несколько
старых машин, уже использовавшихся в других странах. поправили положение, в январе 1902 г. план обработки
Машины необходимо было вернуть к апрелю 1900 г., всё же пришлось значительно сократить. Подсчёты
до начала очередной переписи в США. Кроме того, продолжались почти восемь лет — общий свод
Россия закупала 70 новых табуляторов в комплекте с результатов переписи по империи был опубликован
сортировочными машинами, а также 500 перфораторов. лишь в конце 1905 г.
Сборку техники под руководством самого Холлерита В истории первая всероссийская перепись на-
решили производить в Петербурге. Здесь же в целях селения осталась примером того, как не надо ор-
экономии по его чертежам изготовляли отдельные узлы ганизовывать дело. А последний свидетель тех
и детали. Гонорар Германа Холлерита составил событий, единственный сохранившийся табулятор
67 571 доллар, из них 59 500 долларов причиталось за Германа Холлерита, с 1952 г. находится в собрании
новые машины. Политехнического музея в Москве.

380
История докомпьютерной эпохи

ещё при Джордже Вашингтоне, рых участках работы — десяти-


в 1790 г. В XIX в. переписи проводи- кратным! Правительство заключило
лись каждые десять лет. Население по- с Холлеритом контракт на поставку
стоянно росло, а бурно развивавшая- оборудования, и уже в июне 1890 г.
ся американская экономика остро началась первая в истории перепись
нуждалась в большом количестве раз- населения с применением машин. Об-
нообразных данных о его составе. На- работка её результатов, занесённых
пример, в 1880 г. численность населе- на 62 млн карточек, заняла менее двух
ния составила 50 млн человек, и на лет, а экономия составила 5 млн дол-
каждого требовалось завести и запол- ларов — огромнаю сумма, ведь госу-
нить карточку, содержавшую 210 ру- дарственный бюджет США не превы-
брик! Подсчёты и обработка резуль- шал тогда 100 млн долларов. Система
татов переписи затянулись на семь Холлерита не только обеспечивала Джон Биллингс.
с половиной лет, почти до следующей высокую скорость, но и позволяла
переписи. Это был тупик. Срочно тре- сравнивать статистические данные по
бовались новые методы организации самым разным параметрам. Холлерит
работы. совершенствовал свою машину. Он
На мысль механизировать труд разработал удобный клавишный пер-
счётчиков Холлерита навёл доктор форатор, автоматизировал процеду-
Джон Биллингс, возглавлявший в бю- ры подачи и сортировки перфокарт.
ро департамент, в котором составля- В общей сложности изобретатель по-
ли сводные данные. Он же предложил лучил более 30 патентов.
использовать для записи информа- Заслуги Холлерита признаны во
ции перфокарты. Правда, сначала Хол- всём мире. Институт Франклина в Фи-
лерит хотел использовать бумажную ладельфии наградил его медалью, ему
ленту, намотанную на барабан вручили золотую медаль на Париж-
и скользившую по металлическому ской выставке 1893 г. Альма-матер
столу. Сверху её прижимала металли- изобретателя Горная школа прису-
ческая полоса с рядом слабо закреп- дила Холлериту, не имевшему высше-
лённых тупых гвоздей. При попада- го образования, учёную степень док-
нии гвоздя в отверстие на ленте тора философии, а научные общества
электрический контакт замыкался, Европы и Америки избрали своим
приводя в движение счётный меха- почётным членом. Табулятор Холле-
низм. Скоро выяснилось, что бумага рита использовался на переписях
часто рвётся, информация не успева-
ет считываться, да и перематывать Машина Холлерита.
ленту в поисках нужных данных слиш-
ком долго. Так что от лент пришлось
отказаться в пользу перфокарт. Позд-
нее Холлерит писал, что окончатель-
ное решение он принял, наблюдая за
работой кондуктора в поезде. Тот ком-
постером пробивал на билете дырки
в условных местах, отмечая таким об-
разом пол, цвет волос и глаз пассажи-
ра. В результате получалось что-то
вроде перфокарты, содержащей опи-
сание внешности владельца билета.
Первый табулятор был опробо-
ван в 1887 г. в статистическом бюро
Балтимора. Результаты оказались
весьма обнадёживающими, и через
два года состоялось ещё одно испы-
тание — частичная перепись насе-
ления в Сент-Луисе. Выигрыш во
времени по сравнению с ручным под-
счётом был двукратным, а на некото-

381
Компьютер

задач. В 1900 г. Госдепартамент США


вновь выбрал систему Холлерита для
переписи. Однако вскоре государст-
венные чиновники решили отка-
заться от системы Холлерита. Новые
машины создал инженер Джеймс Па-
уэрс, сотрудник Национального бю-
ро по переписи населения. Они бы-
ли чисто механическими и имели
весьма сложную конструкцию. Хол-
лерит, потеряв государственные за-
казы, в том же году отошёл от пред-
принимательской деятельности. Он
продал фирму, оставшись консуль-
тантом в поглотившей её компании
Computer Tabulating Recording
Company (CTRC). Когда в 1921 г. кон-
Офис IBM. 1948 г. сультант CTRC Герман Холлерит ухо-
дил в отставку, фирма уже уверенно
смотрела в будущее. А ещё три года
в Австро-Венгрии, Канаде, Норвегии, спустя директор Томас Уотсон пере-
Англии и других странах. именовал фирму в IBM (International
В 1896 г. Холлерит основал ком- Business Machines).
панию Tabulating Machine Company Герман Холлерит скончался 17 но-
(TMC). Его машины применялись ября 1929 г. в Вашингтоне. И хотя офи-
повсюду: на железных дорогах и про- циально основателем могуществен-
мышленных предприятиях, в круп- ной империи IBM считается Томас
ных торговых фирмах и страховых Уотсон, многочисленные награды
компаниях. С их помощью начисля- и патенты Холлерита занимают в му-
ли заработную плату и вели склад- зее компании одно из самых почёт-
ской учёт, решали множество других ных мест.

Томас Уотсон.

АВТОМАТИЗАЦИЯ И ПЕРФОКАРТЫ

Одна из простейших «машин», кото-


рой можно программно управлять, —
обычная электрическая лампочка.
С помощью выключателя можно за-
жечь или погасить её. Если разобрать
выключатель, то обнаружатся кон-
такты, замыкание которых приводит
к включению, а размыкание — к вы-
ключению лампочки.
То же действие легко продемон-
стрировать, вставляя между замкну-
тыми контактами кусок картона. Он
разомкнёт цепь, и лампочка погас-
нет. Если в картоне проделать отвер-
стие (например, дыроколом), то лам-
почка будет гореть. Можно составить
программу для лампочки и записать
её на куске картона: есть дырка — го-
Подготовка
перфокарт для рит лампочка, нет — не горит. Подоб-
станка Жаккарда. ная идея использована в перфокар-

382
История докомпьютерной эпохи

Перфокарта
70-х гг. XX в.
(написанный от руки
номер помогал не
перепутать карту в
колоде).

тах — картонных карточках с отвер- ный станок для узорчатого ткачест-


стиями. ва, известный по сей день. Но с этим
В XVIII в. во Франции конструкто- изобретением связана и печальная
ры ткацких станков пытались при ис- история. Восстание лионских ткачей
пользовании перфокарт сделать так, в 1803 г. было спровоцировано уста-
чтобы челнок (главная деталь стан- новкой станка в мастерской Жакка-
ка) работал автоматически, по про- ра в Лионе. Рост производства тканей,
грамме. Преуспел в этом сын лион- а следовательно, их дешевизна и до-
ского ткача Жозеф Мари Жаккар. ступность вызвали социальный взрыв.
В 1801 г. он создал автоматический Перфокарты произвели переворот
ткацкий станок, управляемый пер- не только в ткацком деле, но и в ста-
фокартами. тистике. Статистика постоянно стал-
Наличие или отсутствие отверстий кивается с проблемами обработки ог-
в карте заставляло нить подниматься ромного количества информации.
и опускаться при каждом ходе челно- Герман Холлерит, служащий амери-
ка. Таким образом, поперечная нить канского Национального бюро по пе- Жозеф Мари
могла обходить каждую продольную реписи населения, впервые применил Жаккар.
с той или иной стороны в зависимо- «компьютер» для решения практиче-
сти от программы на перфокарте. Сот- ских задач.
ни таких нитей использовались для Машина Холлерита включала:
создания затейливых узоров. Имя Жо- • клавишный перфоратор, позво-
зефа Мари Жаккара получил не толь- ляющий пробивать (перфорировать) Машина Холлерита.
ко станок, но и плетение «жаккард»,
которое по праву относят к наиболее
сложным и запутанным плетениям,
исполняемым на ткацком станке.
Этот станок был первым массовым
промышленным устройством, авто-
матически работающим по заданной
программе. Его считают одной из са-
мых совершенных машин, когда-ли-
бо созданных человеком. Модель
станка для крупноузорчатых тканей
отмечена медалью Парижской вы-
ставки 1801 г., а сам Жаккар был при-
глашён на работу в парижский музей
(Консерватория искусств и ремёсел),
и вскоре в одной лишь Франции ра-
ботало более 10 тыс. таких станков.
В 1808 г. он создаёт более совершен-

383
Компьютер

около ста отверстий в минуту одно- • машину для сортировки, которая


временно на нескольких картах; представляла собой набор ящиков
с крышками (карты продвигались по
своеобразному конвейеру; с одной
стороны карты находились считыва-
ющие штыри на пружинах, с другой —
резервуар со ртутью; когда штырь по-
падал в отверстие на перфокарте,
то благодаря пружине слегка касался
ртути, находившейся на другой сторо-
не, и замыкал электрическую цепь, от-
крывая крышку соответствующего
ящика; туда и попадала перфокарта);
• табулятор, который работал ана-
логичным образом, только замыкание
электрической цепи приводило к уве-
личению показаний соответствующе-
го счётчика на единицу.
Перфокарты были размером с дол-
ларовую купюру, они имели 240 по-
зиций для перфорации (12 рядов по
20 позиций). Сейчас бы сказали, что
в машине Холлерита использовалось
кодирование информации с помо-
щью перфокарт.

Схема станка Жаккарда

1 — ножи;
2 — рамная доска;
3 — рамные шнуры;
4 — аркатные шнуры;
5 — делительная доска;
6 — лицы;
7 — грузики;
8 — иглы;
9 — перфорированная призма;
10 — пружина;
11 — доска;
12 — крючки

«НАУЧНЫЕ» КАЛЬКУЛЯТОРЫ

В 1820 г. во Франции Карл Ксавье Арифмометр имел настоящий ком-


Томас де Колмер (1785—1870), ис- мерческий успех. Более полутора ты-
пользуя идеи машины Лейбница, по- сяч машин было изготовлено в тече-
строил первый механический ком- ние последующих 90 лет. В Германии
пьютер-калькулятор — арифмометр. в 1878 г. Артур Бургхард наладил про-
Машина могла не только складывать изводство подобных машин.
и вычитать, но и производила деле- В России над созданием арифмо-
ние и умножение в ручном режиме. метра с 1874 г. работал швед Вильгод
Томас де Колмер 18 ноября 1820 г. по- Однер, а в 1890 г. механические на-
лучил во Франции патент №1420 на стольные счётные машины стали про-
Томас де Колмер. своё детище. изводить на заводе. (Их модифика-

384 С. С.! Вильгельм/Вильгодт????


История докомпьютерной эпохи

ция «Феликс» выпускалась в России


вплоть до 80-х гг. XX столетия. Основ-
ная деталь — зубчатое колесо носит
имя Однера.) В начале XX в. арифмо-
метры Однера выпускались во всём
мире, только в России к 1914 г. их ра-
ботало более 20 тыс.
В Швеции с 1913 г. производится
MADAS (от англ. multiplication, auto-
matic division, addition and Subtraction —
«умножение», «деление», «сложение»
и «вычитание»). Полностью автомати-
ческое умножение и деление арифмо-
метры стали производить в 1927 г.
Термин «арифмометр» подразу-
мевает механическое устройство, ко-
торое способно выполнять четыре
арифметических действия. С усовер-
шенствованием механических каль-
куляторов был добавлен ряд функ-
ций: запоминание промежуточных В 1896 г. компания General Electric Арифмометр
результатов, последующие операции разработала новый стандарт в элек- Колмера.
над ними, печать результатов и т. п. тричестве: использование перемен-
Это явилось следствием расширя- ного тока для питания электрических
ющегося коммерческого спроса на приборов. Калькуляторы оснащают-
настольные счётные машины, а не ся электрическими моторами для про-
результатом научных исследований. ведения вычислений и печати на бу-
Научный результат состоит в том, что маге. В компьютерах всё большее
и в современных компьютерах есть применение находят компоненты, ра-
арифметическое устройство (или ус- ботающие на электрическом токе.
тройства), которое умеет произво- В 1904 г. английский физик Джон
дить простые (в некоторых машинах Амброз Флеминг (1849—1945) на ос-
сложные) арифметические действия. нове открытия Эдисона создал диод —
Максимальное количество разрядов электронное устройство, пропуска-
числа, с которым может оперировать ющее ток в одну сторону и не пропус-
арифметическое устройство, назы- кающее в другую. Через два года аме-
вается размером машинного слова. риканский инженер Ли де Форест
В конце XIX в. прогресс требовал (1873—1961) изобрёл триоды.
развития математической физики. XIX век и вся предыдущая история
В проектировании железных дорог показали необходимость создания
и строительстве пароходов, текстиль- автоматического вычислительного
ных фабрик и мостов нужны были устройства, работающего автоном-
машины, способные эффективно но, без участия человека, по заранее
производить многократно повторя- подготовленной программе. Однако
ющиеся вычисления. Но до таких ма- первые компьютеры можно считать
шин было ещё далеко. механическими, так как в качестве за-
В 1880 г. американский изобрета- поминающего устройства (памяти)
тель Томас Алва Эдисон (1847—1931) использовались механические при-
начал выпуск безопасных электри- способления.
ческих лампочек. В 1883 г. он ввёл Английский математик Джордж
в вакуумный баллон платиновый эле- Буль (1815—1864) ещё в 1848 г. опи-
ктрод, подал напряжение и обнару- сал постулаты (правила) логики, опе-
жил, что между электродом и уголь- рирующей алгебраическими элемен-
ной нитью протекает ток. Явление, тами, которые могут принимать только
известное как термоэлектронная два возможных состояния («да» или
эмиссия, получило название «эффект «нет», 0 или 1), названной впоследст-
Эдисона». вии булевой алгеброй. Фактически Вильгельм Однер.

С. С.! Вильгельм/Вильгодт???? 385


Компьютер

Таким образом, в ХХ в. в компью-


терах стало применяться двоичное
кодирование информации, где ми-
нимальный объём памяти — 1 бит —
представлял собой переключатель
с двумя состояниями — 0 и 1, кото-
рый легко «реализовался» инженера-
ми. Однако встал вопрос об электрон-
ной «версии» переключателя.
Русский учёный Михаил Александ-
рович Бонч-Бруевич в 1918 г. и анг-
лийские учёные В. Икклз и Ф. Джор-
дан чуть позже, в 1919 г., независимо
друг от друга создали электронное ре-
ле, которое могло находиться в одном
из двух состояний (0 или 1). Реле, сей-
час известное как триггер, стало ос-
Арифмометр благодаря его алгебре стало возмож- новой памяти ЭВМ.
«Феликс». но конструирование логической схе- К XX столетию всё было подготов-
мы компьютера. лено для рождения ЭВМ.

КОНРАД ЦУЗЕ

Конрад Цузе родился 22 июня 1910 г. спустя несколько лет). Только в одном
в Берлине. В 1935 г. получил диплом отношении идеи Цузе уступали иде-
инженера-строителя, специалиста по ям его гениального предшественника:
прочности в Техническом универси- он не предусмотрел команды услов-
тете в Берлине. Работу над созданием ного перехода.
вычислительных устройств Цузе на- Цузе понял также, что вычисле-
чал ещё будучи студентом, в 1934 г. Так ние — универсальное понятие, что
что его без преувеличения можно на- это просто преобразование данных,
звать пионером современной вычис- которые можно представить в виде
лительной техники на европейском комбинации двоичных разрядов
континенте. (сейчас мы называем их битами, а
Цузе отличался аналитическим, на- сам Цузе использовал выражение
учным складом мышления. Для про- «состояние да/нет»). Теории нужда-
ведения сложных инженерных рас- лись в проверке практикой, и Цузе
чётов он хотел создать более мощный, начал с создания устройства памяти.
чем существующие, вычислитель. Об- Со времён Паскаля числа в вычи-
думывая проблему вычислений, Цузе слителях представлялись набором
вскоре пришёл к нескольким выво- дисков с нанесёнными на обод
дам. Во-первых, вычислитель должен десятью цифрами. Выбор двоичной
управляться с помощью программ, системы позволял использовать
причём предпочтительно использо- другие элементы, например реле,
вать двоичную систему счисления принимающие только два положе-
и арифметику с плавающей запятой. ния: «открыто» и «закрыто». Однако
Во-вторых, необходимо иметь полно- сначала Цузе всё-таки остановился
стью автоматическое арифметичес- на механическом решении. Скон-
кое устройство, память большого объ- струированная им память состояла
ёма и элементы с двумя устойчивыми из набора металлических пластин,
состояниями. Таким образом, Цузе способных перемещаться в опреде-
фактически воспроизвёл основные лённом направлении. Значения обра-
идеи аналитической машины Чарлза батываемых величин и выполняемая
Лампа Эдисона. Бэббиджа (о которой он узнает лишь операция задавались смещением пла-

386
История докомпьютерной эпохи

стин. Оно вызывало смещение других Конрад Цузе.


пластин, соответствующее выраба-
тываемому результату. Этот резуль-
тат сохранялся в наборе битов памя-
ти и, в свою очередь, мог быть
использован в дальнейших вычисле-
ниях. В 1936 г. устройство памяти
было запатентовано, причём в заявке
подчёркивалось, что хранить в ней
можно наряду с числами произволь-
ную информацию, в том числе и са-
ми программы, записанные в двоич-
ном виде.
Память оказалась достаточно ком-
пактной и могла быть расширена до
1 тыс. слов (релейная память такого
объёма потребовала бы 40 тыс. реле,
заняв целую комнату).
Первая полностью механическая
машина Z1 была построена в 1936—
1938 гг. Управление ею осуществля-
лось от перфоленты, на которую за-
писывались трёхадресные команды
программы. Память имела объём
16 чисел по 24 бит. Надёжностью
машина не отличалась, поэтому Цузе в память), они вводились с перфолен-
решил перейти на новую элементную ты (её роль выполняла киноплёнка).
базу, заменив все механические эле- Исходные данные задавались с кла-
менты на электромеханические реле. виатуры, а результаты вычислений
Но сначала он построил небольшую высвечивались на специальном таб-
машину Z2, оперировавшую 16-раз- ло. Операции над числами с пла-
рядными двоичными числами с фик- вающей точкой реализовывались
сированной точкой. Работа над ней аппаратно (всего имелось девять
завершилась в 1939 г. Арифметическое арифметических команд: сложение,
устройство, выполненное из 200 ста- вычитание, деление, извлечение квад-
рых телефонных реле, соединялось ратного корня, а также умножение
в машине с механической памятью. на 1/2 , 2, 1/10, 10 и на –1). Сложение
Этот опыт придал Цузе уверен- выполнялось за 0,3 с, а умножение
ность в своих силах. Он понял, что занимало от 4 до 5 с. Арифметичес-
готов создать машину без использо- кое устройство было построено из
вания механических элементов. Хотя 600 реле. Ещё 1800 реле потребова-
в 1939 г. работа над Z3 прервалась (Цу- лось для памяти объёмом 64 числа по
зе призвали на военную службу), 22 бит (один знаковый разряд, 14 бит
упорно трудясь по вечерам и в выход- на мантиссу и 7 бит на порядок).
ные дни, он сумел в 1941 г. завершить
разработку. Это была электромеха- Машина Z3.
ническая программно управляемая
универсальная машина и фактически
первое в истории реальное воплоще-
ние идеи аналитической машины
Бэббиджа!
Как и в предыдущих моделях, здесь
использовалась двоичная система
счисления. Команды были одноадрес-
ными (это во многих случаях увели-
чивало скорость вычислений благо-
даря отсутствию лишних записей

387
Компьютер

Одна из подпрограмм
игры в шахматы,
написанная К. Цузе
на языке Plankalkul.

Z3 использовалась для весьма тру- на впервые была продемонстрирова-


доёмких расчётов, связанных с опре- на местным учёным. Несколькими
делением прочности конструкций днями позже, отказавшись отправить
самолётов. Машина погибла во вре- машину на подземные заводы в горах
мя бомбёжки Берлина, но её копия, Гарца, где фашисты лихорадочно до-
сделанная спустя 20 лет, экспониру- рабатывали «оружие возмездия», с по-
ется сейчас в одном из музеев Мюн- мощью сотрудников Вернера фон
хена. Брауна (изобретателя реактивных
В 1942 г. Цузе приступил к по- снарядов Фау-1 и Фау-2) Цузе снова
стройке более мощной машины Z4. увозит её в никуда. Странствия по го-
Правда, память на 1024 слова была рящей, разрушенной стране закончи-
в ней механической, но длина чисел лись далеко на юге, в маленькой аль-
увеличивалась до 32 бит. Плани- пийской деревушке Хинтерштейн.
ровалось также улучшить систему Именно здесь, в помещении бывшей
ввода-вывода и предоставить про- конюшни, постройка Z4 была завер-
граммисту больше возможностей шена. Здесь же Цузе создал первый
по написанию гибких программ. К со- в истории язык программирования
жалению, эти идеи ему так и не уда- Plankalkul.
лось реализовать. До 1950 г. Z4 оставалась практиче-
Судьба Z4 сложилась удачнее, чем ски единственным работающим ком-
у её предшественниц. В конце войны, пьютером в Европе. С 1950 по 1954 г.
спасая машину от бомбёжек, Цузе по- она успешно эксплуатировалась в Тех-
кинул Берлин. Переезжая с места на ническом университете в Цюрихе
место, он ухитрялся при этом не пре- (Швейцария). Ещё позднее в знак при-
кращать работу. За несколько недель знания исторического значения Z4
до капитуляции Германии Конрад Цу- поместили в музей в Мюнхене.
зе нашёл убежище в старинном уни- Цузе был пионером во многих
верситетском городе Гёттингене. Там направлениях развития и примене-
28 апреля 1945 г. работающая маши- ния компьютеров. Вероятно, он пер-

388
История докомпьютерной эпохи

вым в мире построил вычислитель-


ное устройство, предназначенное для
управления и контроля технологи-
ческих процессов. Во время войны
Цузе (как инженер, специалист по
прочности конструкций) был при-
влечён к работам по производству
управляемых реактивных снарядов.
Недостаточная точность изготовле-
ния ухудшала аэродинамические ха-
рактеристики снарядов, поэтому
в конце производственной линии
каждое изделие подвергалось тща-
тельному обследованию с помощью
80 датчиков. Затем производились
достаточно сложные вычисления,
определявшие степень отклонения
от проектных норм и необходимую
корректировку изделий. Сначала Цу-
зе построил специализированный разрядными числами. (Когда после Машина Z4.
вычислитель из 500 реле, выполняв- войны стало известно о появлении
ший фиксированную последователь- компьютера ENIAC, содержавшего
ность операций. Машина заменяла 18 тыс. ламп, Цузе был потрясён — на-
12 человек и безотказно работала столько невероятным представлялось
в течение двух лет, с 1942 по 1944 г., создание такого сложного электрон-
по две смены ежедневно. Однако при ного устройства.) Эта работа Цузе не
этом требовалось участие техника, получила развития, поскольку в по-
который считывал, записывал и пе- беждённой Германии исследования
редавал показания датчиков опера- в области электроники запрещались.
тору, вводившему их в вычислитель.
Цузе удалось полностью устранить
вмешательство человека в этот про-
цесс. Данные с датчиков считывались
автоматически и передавались в вы-
числитель через изобретённое им
устройство, которое сейчас мы бы
назвали аналого-цифровым преоб-
разователем. Таким образом, Цузе
удалось встроить вычислитель в замк-
нутый технологический процесс. Так
что и полностью автоматизирован-
ные огромные современные произ-
водства, и миниатюрные встроенные
микропроцессоры в бытовых прибо-
рах — все они ведут свою родослов-
ную от скромного релейного устрой-
ства Конрада Цузе.
Ещё до войны вместе другом Гель-
мутом Шрейером Цузе выполнил
проект полностью электронной
машины, содержавшей 2 тыс. элек-
тронных ламп. Их идея казалась в то
время нереализуемой и не нашла под-
держки в официальных инстанциях,
но к 1945 г. им всё же удалось собрать
макет арифметического устройства
на ста лампах, работавшего с десяти-

389
Компьютер

В истории вычислительной техни- машин... В истории науки часто слу-


ки имя Конрада Цузе стоит особня- чалось, что опередившие время идеи
ком. Один человек, работавший с не- оставались невостребованными со-
сколькими помощниками, не только временниками. Идеи Цузе были акту-
повторил путь, проделанный боль- альны и могли быть востребованы.
шими коллективами учёных в других Но этому помешали обстоятельства.
странах, но часто опережал их. Начав И хотя его не обошло прижизненное
с механических и релейных машин, признание (удостоенный многих
он пришёл к пониманию роли элек- престижных международных наград,
тронных устройств. Цузе стал перво- Цузе скончался в 1995 г.), вычисли-
проходцем в теории и практике про- тельная техника развивалась своим
граммирования, в области систем путём. Кто знает, каким оказался бы
искусственного интеллекта, в созда- этот путь, стань работы Цузе извест-
нии управляющих вычислительных ны своевременно.

АНАЛОГОВЫЕ МАШИНЫ

В отличие от машин Бэббиджа в ана- ром которого якобы являлся фило-


логовых машинах числа заданы каки- соф Платон.
ми-либо физическими величинами. Тем не менее первым аналоговым
Говорят, что аналоговая машина об- вычислительным устройством при-
рабатывает информацию, которая нято считать логарифмическую ли-
представлена в непрерывной (анало- нейку. Логарифмические шкалы изо-
говой) форме. брёл английский математик Эдмунд
Развитие аналоговых машин, как Гюнтер, применявший их для умно-
и положено, шло от простых реша- жения и деления чисел путём сложе-
ющих устройств к сложным. Ещё око- ния и вычитания отрезков. В 1654 г.
ло IV тысячелетия до н. э. в местах, Роберт Биссакер изготовил первую
где впоследствии возникло государ- логарифмическую линейку.
ство Вавилония, при проведении зем- На линейке отрезки представляют
лемерных работ и составлении карт собой логарифмы чисел. Поэтому
применялись принципы аналоговых при умножении длины отрезков скла-
вычислений. Около 80 г. до н. э. гре- дывались (lnab = lna + lnb), при деле-
ки, используя геоцентрическую мо- нии — вычитались (ln a/b = lna – lnb),
дель Солнечной системы, построи- а при извлечении квадратного кор-
ли планетарий. И, таким образом, ня — делились пополам (ln—a = 1/2 lna).
стало возможным определять поло- Если бы шкалы линейки были равно-
жение Солнца и планет. Существует мерными, то на ней производили бы
легенда о механическом устройстве только сложение и вычитание.
для решения логических задач, авто- Графики и номограммы можно
считать ещё одной разновидностью
аналоговых вычислительных уст-
ройств. В 1791 г. графики впервые ста-
ли использоваться в руководствах по
навигации для нахождения значения
функции нескольких переменных.
С той поры изобретено множество
аналоговых устройств для решения
самых разных задач. В XIX столетии
применялись наполненные водой со-
общающиеся сосуды для решения
обычных уравнений. В 1814 г. англий-
ский инженер Дж. Герман разработал
аналоговый прибор — планиметр для

390
История докомпьютерной эпохи

вычисления площадей плоских фи- Установка новой


гур, ограниченных замкнутой кри- задачи на
коммутационной
вой. Планиметр усовершенствовал в панели машины
1854 г. швейцарский учёный Якоб Ам- фирмы «Элиот».
слер, предложивший интегрирующий
прибор с катящимся колесом. А анг-
лийский физик Джеймс Томсон, изо-
брёл так называемый фрикционный
интегратор.
В 1876 г. его родной брат, тоже фи-
зик, Уильям Томсон барон Кельвин
придумал прибор, определявший вре-
мя и высоту прилива в различных
портах, применив фрикционный ин-
тегратор. Вычисления основывались
на положении Солнца и Луны, а ме-
ханизмы, отображающие их, приво-
дились в движение электромотором.
Кельвин является и автором машины
для решения системы линейных ура-
внений. Кроме того, он показал воз- стороны, позволяло успешно решать
можность решения дифференциаль- большинство поставленных задач, а с
ных уравнений путём соединения другой — являлось непреодолимым Номограммы — это
нескольких интеграторов, однако это барьером, так как требовало точности специальные черте-
не было реализовано из-за низкого изготовления узлов самой машины. жи, предназначенные
уровня техники. В аналоговых машинах часто чи- для решения опреде-
Первую механическую вычисли- сла кодируются величиной напряже- лённого типа задач,
тельную машину для решения диф- ния. С помощью обычного потенцио- например приведён-
ференциальных уравнений постро- метра (переменного сопротивления) ных квадратных урав-
ил в 1904 г. русский механик и производят операции сложения и вы- нений.
математик А. Н. Крылов. Он исполь- читания, поворачивая ручку прибора
зовал идею польского математика на соответствующую величину по или
Бруно Абданк-Абакановича, приду- против часовой стрелки. Величина на-
мавшего в 1879 г. механический ана- пряжения на выходе потенциометра
логовый интегрирующий прибор — пропорциональна величине напря-
интеграф для интегрирования про- жения на входе и углу поворота руч-
извольных функций, заданных гра- ки (Uвых = Uвх f(ϕ), где ϕ — угол пово-
фически. рота ручки, а f — функция изменения
В 1909 г. Артур Райт сконструиро- отношения сопротивления потенцио-
вал устройство для сложения и вычи- метра к его полному сопротивлению),
тания, работающее на основе закона т. е. потенциометр можно применять
последовательного и параллельного как множительное (или делительное)
соединения электрических сопротив- устройство: z = x f(y). Специализиро-
лений в цепи (R = R1+R2— для после- ванные синусно-косинусные потен-
довательного, 1/R = 1/R + 1/R — для па- циометры позволяют реализовать сра-
1 2
раллельного). зу две функции z = x cos y и z = х sin y.
Особенно интенсивно велась раз- Другой метод перемножения ис-
работка аналоговых машин во время пользует пару катушек, при этом со-
Второй мировой войны. В те годы бы- множителям соответствуют токи в ка-
ли созданы устройства для управле- тушках, а произведению — ток между
ния артиллерийским огнём и наведе- катушками. Прибор для измерения
ния бомб. Аналоговые устройства мощности — ваттметр требует пере-
хорошо отвечали требованиям армии: множения не двух, а трёх величин: p =
выдавать решение сразу же после вво- = UI cos ϕ, где ϕ — фазовый угол меж-
да данных. ду U и I. По одной катушке ваттметра
Предельная точность аналоговых пропускают ток I, по другой — ток,
машин достигала 0,1 %, что, с одной пропорциональный напряжению U.

391
Компьютер

Домашний электросчётчик дела-


ет ещё более сложную работу, он ин-
тегрирует UI cos ϕ по времени, т. е. в
каждый момент времени умножает
UI cos ϕ на бесконечно малую про-
должительность этого момента и
суммирует все произведения. Ско-
рость диска соответствует потребляе-
мой мощности, а число оборотов —
интегралу по времени. Домашний
счётчик — электромеханический
прибор. В отличие от него в элек-
тронных аналоговых машинах инте-
грирование обычно производится
путём накопления заряда на конден- времени и пр. В больших машинах
саторе. В дифференциальных анали- иногда использовалось более 500 уси-
заторах, предназначенных для реше- лителей. Подобные приборы смонти-
ния дифференциальных уравнений, рованы в специальных ячейках, легко
основным процессом является инте- устанавливающихся в машине. Это по-
грирование по времени. зволяет собирать любую схему, при-
Аналоговая машина не в состоя- меняя базовые ячейки усилителей,
нии решить задачу в общем виде, из конденсаторы и сопротивления. Сое-
которого потом можно было бы по- динения происходят на коммутацион-
лучать частные решения, подставляя ной панели (она похожа на панель
новые исходные данные. По принци- телефонной станции), на которую
пу действия аналоговые машины мо- выводятся провода от всех участвую-
гут оперировать только конкретны- щих в схеме элементов. Соединения
ми числами и давать только частные между гнёздами производят провода-
решения. ми с быстросъёмными штекерами.
Усилители постоянного тока явля- Решение задачи можно получить,
ются важным элементом электрон- включив питание схемы, на точном
ных аналоговых машин. На них осно- стрелочном приборе, регистрирую-
ваны схемы операций суммирования, щем самописце или электронно-лу-
вычитания, интегрирования, диф- чевой трубке.
ференцирования, изменения шкалы К середине XX в. кроме дифферен-
циальных анализаторов существовал
ещё большой класс аналоговых ма-
Универсальная шин, используемых в моделировании.
аналоговая машина Отдельные элементы машины наме-
фирмы «Шот
Бразерс». ренно соединяются в схемы так, что-
бы она представляла модель изучаемой
системы. Каждый вычислительный
элемент машины решает математиче-
ское уравнение, описывающее физи-
ческое поведение аналога в системе.
Это свойство аналоговых машин по-
зволяет учёным увидеть за математи-
ческими формулами действительную
физическую систему. Аналоговые ма-
шины активно использовались в авиа-
ции для моделирования аэродинами-
ческих систем и систем управления
самолётом.
Аналоговые машины применяют и
сегодня. Во многих автомобилях име-
ется прибор, объединяющий в себе
два типа устройств — цифровое и ана-

392
История докомпьютерной эпохи

Стандартный блок
усилителя
постоянного тока,
вставляемый
в аналоговую машину.

логовое. Это всем известный спидо- целиком на цифровую. Однако чело-


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

393
ЭВОЛЮЦИЯ КОМПЬЮТЕРА
В ХХ ВЕКЕ
ПЕРВОЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ

MARK I ными числами, но и специальные


встроенные алгоритмы для вычисле-
В конце 30-х гг. ХХ в. многочисленные ния тригонометрических функций и
устройства, использующие перфокар- логарифмов. Машина «программиро-
ты в роли носителей закодированной валась» с перфоленты (информация
информации, стали достаточно на- на перфоленте кодировалась проби-
дёжны и по меркам того времени об- ванием отверстий в определённых ме-
ладали хорошей скоростью считыва- стах, как и на перфокартах), которая
ния (порядка нескольких перфокарт двигалась только вперёд. Поэтому вы-
Говард Айкен и Грейс в минуту). Их начали применять для полнение циклов или передача управ-
Хоппер. хранения информации и в качестве ления назад были невозможны.
устройства ввода-вывода, когда учё- Результат выдавался на перфора-
ные приступили к созданию цифро- тор или обычную электрическую пи-
вых машин-компьютеров. Одна из та- шущую машинку. Mark I использовал
ких машин была сделана группой для выполнения арифметических опе-
учёных из лаборатории фирмы IBM раций вращающиеся диски-счётчики
под руководством Говарда Айкена и (как в арифмометре) и для некоторых
получила название Mark I. Построили функций— электромагнитные реле,
её из стандартных электромеханиче- так что машину уже можно было клас-
ских частей, применяемых в кальку- сифицировать как «релейный» ком-
ляторах. Mark I мог выполнять не толь- пьютер. Его габариты ужасают! Mark I
ко четыре основных арифметических размещался вдоль 20-метровой сте-
действия с 23 разрядными десятич- ны и весил около 5 т. Машина работа-

394
Эволюция компьютера в XX веке

Электромеханическая
вычислительная
машина Mark I.

ла по современным меркам медлен- вычитаний! Такой производительно-


но (ей требовалось от 3 до 5 с для сти удалось достичь при помощи хра-
умножения), но полностью автома- нения в памяти машины готовых ре- ENIAC изумил бы се-
тически и могла использоваться для зультатов таблиц умножения. Вместо годняшних школьни-
длинных вычислений, где отсутство- «медленных» реле ENIAC использо- ков не столько сво-
вали циклы (их приходилось вручную вал 18 тыс. электронных вакуумных ими возможностями,
разбивать на последовательность опе- ламп, а для ввода-вывода закодиро- сколько размерами.
раций). Так, вычисление n! = n(n2)...1 ванной информации— хорошо зна- Он размещался на пло-
состояло из n–1-строки умножения в комые перфокарты. щади более 150 м2
отличие от нескольких строк вычис- Как и умногих современных вычис- и потреблял свыше
ления n! в цикле: лительных машин, у ENIAC вычисли- 180 кВт электроэнер-
тель состоял из нескольких блоков- гии!
m:= 1 устройств: один блок складывал и
факториал: = 1 вычитал, другой умножал, третий де-
нц пока m < n + 1 лил и даже мог извлечь квадратный ко-
| факториал: = факториал * m рень и т. д. Кроме того, имелось ещё
| m:= m + 1 20 десятичных регистров-счётчиков,
кц которые использовались для сложе-
ния и временного хранения резуль-
татов. Чтение чисел из регистров и
ЕNIAC запись в них— так называемое время
выборки из регистра— происходили
Вторая мировая война вынуждала ве- за 0,2 миллисекунды. Благодаря тому
сти постоянные разработки автома- что время доступа к числам, содер-
тических вычислительных машин. Во- жащимся в памяти, на несколько по-
енная техника требовала быстрых рядков превышало время доступа к
математических расчётов, например регистрам, можно было хранить про- Джон Моучли
для систем наведения при управлении межуточные результаты в регистрах, и Преспер Экерт.
зенитным огнём. Механические каль-
куляторы не могли обеспечить нуж-
ной скорости вычислений, поэтому
военные настаивали на проведении
скорейших разработок и немедлен-
ной постройке электронных вычис-
лительных машин. В 1942 г. Преспер
Экерт и Джон Моучли со своими со-
трудниками-единомышленниками в
Школе электрических разработок
Университета штата Пенсильвания
(США) задумали создать быстродей-
ствующую ЭВМ, получившую назва-
ние ЕNIAC (аббревиатура определе-
ния, переводится с английского как
«электронный числовой интегратор
и вычислитель»).
Несмотря на то что размер машин-
ного слова был всего 10 десятичных
цифр (у Mark I— 23), ENIAC произво-
дил 300 операций умножения за од-
ну секунду и около 5000 сложений и

395
Компьютер

Изменение программы вычисле-


ний требовало немалых (в том числе
и физических) усилий. Ещё до окон-
чания постройки ENIAC машиной за-
интересовался видный американский
математик Джон фон Нейман, приня-
вший участие в работе команды Моуч-
ли — Экерта. Он произвёл существен-
ное усовершенствование машины,
предложив создать блок со стандарт-
ным набором кабельных соединений,
куда входили все команды вычисле-
ний и все функции. Управлять процес-
сом вычислений стала программа,
хранящаяся в выделенной области па-
мяти. Она представляла собой набор
двоичных чисел, а поскольку была
малопонятна неспециалисту, то полу-
чила название машинной программы.
Компьютер ENIAC. что уменьшало время счёта. Напри- Каждая из её команд соответствовала
мер, если надо сложить 123 + 102 + 45, определённой функции, т. е. опреде-
то 123 и 102 выбираются из памяти, лённому кабельному соединению из
результат суммы первых двух слага- блока соединений. Теперь для загруз-
емых хранится в регистре. При сложе- ки программы не требовалось произ-
нии 225 + 45 лишь 45 надо «достать» водить новые кабельные соединения
из памяти. или убирать старые. Оставалось лишь
Программа вычислений на ENIAC поместить новую программу в память.
задавалась вручную с помощью меха- Таким образом, фон Нейман сформу-
нических переключателей и гибких лировал принцип, лежащий в основе
кабелей со штекерами, которые встав- функционирования современных вы-
лялись в нужные разъёмы (кабельные числительных машин: в памяти ЭВМ
соединения), что сильно напомина- содержатся не только обрабатыва-
ло телефонные станции начала ХХ в. емые числа, но и сама программа; и
Фактически программы на этой ма- то и другое хранится в виде много-
шине не записывались, а «навтыкива- значных двоичных чисел. Внушитель-
лись». ный масштаб решённых проблем и
широкие возможности применения
ENIAC положили начало первому по-
колению компьютеров.
Позднее, в 1971 г., было оспорено
первенство ENIAC как первой цифро-
вой вычислительной машины. Более
простой вычислитель, построенный
под руководством Джона Атанасова в
30-х гг., использовал те же принципы
конструирования электронных пере-
ключателей на вакуумных лампах.
В 1973 г. состоялось судебное слуша-
ние по этому вопросу, и суд принял ре-
шение, что патентные права на основ-
ные идеи цифровых электронных
машин принадлежат Джону Атанасову.
Тем не менее ENIAC можно назвать
первым удачным быстродейству-
ющим электронным цифровым ком-
пьютером, который успешно работал
Электронные лампы. с 1946 по 1955 г.

396
Эволюция компьютера в XX веке

IAS Компьютеры IAS.

После Второй мировой войны Джон


фон Нейман приступил к разработке
собственного компьютера, который
получил название IAS (от англ. Insti-
tute for Advanced Studies — Институт
передовых исследований). Он впер-
вые был представлен в 1952 г. в Прин-
стоне (США).
Машинные слова стали измерять-
ся в битах, т. е. двоичных разрядах, в
отличие от десятичных разрядов в
ENIAC. В этом «виноваты» инженеры, ке памяти. Тогда в 20-битной коман-
которым удобнее было проектиро- де будут записаны двоичный код опе-
вать память вычислительных машин рации «сложить» и адрес второго
из элементов, имеющих два состоя- слагаемого «342», представленный
ния, как в электрической (не путать с в двоичной записи: 000101010110.
электронной) лампочке: «горит» или Чтобы сложить два числа, помещаю-
«не горит». Машинное слово в IAS со- щиеся в памяти, первое сначала надо
ставляло 40 бит. Именно такое коли- «загрузить» в регистр (как бы провес-
чество информации могло переда- ти операцию сложения с нулём), а за-
ваться между памятью и процессором тем уже выполнить команду сложе-
за одну передачу. ния, т. е. потребуются две команды.
Память состояла из 4096 таких
слов. В соответствии с идеями фон
Неймана слово, записанное в память, Команда Адрес Память Адрес
может представлять собой либо ко- Сложить 342 341
манду процессору (инструкцию),
либо данные (например, для вычис- 33 342
лений). Инструкция, как правило, со- Регистры процессора использова-
343
стояла из числового кода команды (8 лись, чтобы хранить данные и резуль-
бит) и адреса ячейки памяти (12 бит). таты команд. Процессор при выпол- ...
Вся инструкция — в два раза меньше, нении команды в качестве аргумента
чем машинное слово IAS (20 бит). автоматически получал тот регистр,
который требовался. Другими слова-
ми, «адрес» регистра определялся са-
Команда Адрес мой командой.
8 бит 12 бит Процессор IAS компьютера состоял
из блока обработки данных (ариф-
метические операции и др.) и управ-
Таким образом, число команд ма- ляющего устройства, которое и осу-
шины IAS не более 28 = 256, а размер ществляло выполнение программы.
адресуемой памяти (называемый ещё Процессор также содержал быстро-
математическим адресным простран- действующие регистры со «странны-
ством), 212 = 4096, совпадает с реаль- ми» именами— AC, MQ, DR, IBR, PC, IR,
ным физическим размером памяти, AR, предназначенные для временного
т. е. в команде IAS можно указать одну хранения инструкций, адресов идан-
из ячеек памяти, содержимое которой ных. Для синхронизации работы всех
будет использоваться в операции. устройств машины использовались
При сложении одно слагаемое по- электронные часы. Они подавали элек-
мещается в специальном регистре, трические сигналы через равные про-
предназначенном для суммирова- межутки времени, называемые машин-
ния, — аккумуляторе, а второе — где- ными тактами. За один такт можно
то в памяти. Пусть надо сложить чис- было, например, прочитать из памяти
ло 28, находящееся в аккумуляторе, и 40-битное слово в 40-битный регистр
число 33, находящееся в 342-й ячей- DR (или записать в память), при этом

397
Компьютер

инструкций IBR. По окончании под-


нц готовительного шага следовал основ-
| если очередная инструкция не в буфере инструкций (IBR) ной шаг, и все последующие действия
| | то прочитать из памяти с адресом (PC) в (DR) машины зависели от результатов по-
| | занести инструкцию в буфер инструкций (IR) следней инструкции. Могла встре-
| | занести следующую инструкцию в регистр инструкций (IBR) титься инструкция перехода к «дру-
| | увеличить счётчик команд (PC) на единицу гому месту» в программе, выполнение
| всё которой состояло в изменении зна-
| выполнить команду чения счётчика команд.
кц Инструкции программы храни-
лись в памяти приблизительно в той
же последовательности, в которой по-
регистр AR содержал 12-битный ад- том исполнялись. Таким образом, в
рес машинного слова. Регистры AC IAS использовались основные прин-
Регистр DR ещё но- (аккумулятор) и MQ (множитель) ис- ципы, повлиявшие на все после-
сит название MBR (me- пользовались для временного хране- дующие цифровые машины:
mory buffer register — ния данных и результатов операции. • наличие арифметического
«буферный регистр Эти регистры участвовали в суммиро- устройства для выполнения арифме-
памяти»), а регистр AR вании и операциях умножения и де- тических действий;
называют MAR (me- ления. • расположение программы и дан-
mory address register — Так как в одном машинном слове ных в общей памяти;
«регистр адреса па- помещались две инструкции, то при • стандартный цикл выполнения
мяти»). выполнении они одновременно за- программы;
гружались из памяти. Первая инструк- • последовательное расположение
ция выполнялась, помещаясь врегистр элементов программы впамяти;
инструкций IR. Вторая помещалась в • регистры (маленькая быстрая па-
«буфер инструкций» — регистр IBR и, мять).
возможно, выполнялась на следующем Машина IAS работала эффектив-
шаге. Счётчик команд PC (англ. pro- но — выполняла умножение за 100 ми-
gram counter — «программный счёт- кросекунд, а доступ к памяти (чтение
чик») хранил адрес следующей инст- из памяти и запись) осуществлялся за
рукции программы впамяти. 50 микросекунд.
Выполнение программы IAS состо- Джон фон Нейман в 1954 г. пред-
яло в циклическом исполнении ком- ложил основы алгоритмического язы-
пьютером двух шагов — подготови- ка, который нашёл применение гораз-
тельного и основного (называемого до позднее в популярных языках
ещё шагом исполнения). На подгото- программирования. Гениальный учё-
вительном шаге происходила загруз- ный не прекращал работ по констру-
ка инструкции, на основном — её ис- ированию вычислительных машин,
полнение. будучи консультантом в IBM. Его ком-
Машина IAS увеличивала счётчик пьютер IAS можно назвать основным
команд PC всякий раз, когда следу- представителем компьютеров перво-
Джон фон Нейман. ющей инструкции не было в буфере го поколения.

ДЖОН ВИНСЕНТ АТАНАСОВ

В1971г. в Федеральном суде США на- Джон Винсент Атанасов появился


чалось разбирательство по установле- на свет 4 октября 1903 г. на севере
нию авторства электронной вычисли- США, под Нью-Йорком, в семье бол-
тельной машины. Ответчиком была гарских эмигрантов. (Фамилия Ата-
фирма HONEYWELL — обладатель па- насов имиграционными властями в
тента на машину ENIAC. Процесс длил- 1989 г. была изменена на Атанасофф.)
ся два года и в 1973 г. закончился по- Любовь к математике Джон уна-
бедой Джона Винсента Атанасова. следовал от матери, Айвы Люцены

398
Эволюция компьютера в XX веке

Парди, преподававшей этот предмет


в школе. Отец научил сына разбирать-
Мысли о создании цифровой машины не покидали Атанасова ни
ся вэлектрике: девятилетний мальчик
на минуту. Как-то после очередных неудач он бросился в авто-
легко находил и исправлял повреж-
мобиль и, в исступлении проехав 300 км, внезапно остановился
дённую проводку в доме.
у неприметного придорожного кафе. Там, успокоившись, Ата-
В 1921 г. Атанасов поступил в Уни-
насов нашёл долгожданное решение, окончательный вариант
верситет штата Флорида, а в 1925 г.,
концепции цифровой машины.
окончив его, получил степень бака-
лавра. Его приглашали преподавать
во многие учебные заведения, даже в
Гарвард, но Атанасов выбрал Универ- предназначалась для решения линей-
ситет штата Айова. ных уравнений. Они назвали её АВС
В 1929 г. Атанасов получил место (Atanasoff Berry Computer). Весила ма-
в докторантуре в Мэдисоне, в 1930 г. шина более 300 кг и состояла из:
защитил докторскую диссертацию, • двух барабанов по 30 50-разряд-
посвящённую электронной структу- ных двоичных слов памяти, к каждому
ре атомов гелия. Работа была связана барабану можно было обращаться не-
с большими объёмами вычислений, и зависимо. Запоминающее устройство
это натолкнуло Атанасова на мысль использовало конденсаторы с автома-
создать электронное устройство для тическим восстановлением заряда
автоматизации вычислений. Вскоре (сейчас это называется DRAM — «ди-
он получил место профессора-асси- намическая память»);
стента по математике и физике в Уни- • блока управления, собранного на
верситете штата Айова, куда Джон воз- 300 электронных лампах и обеспечи-
вратился с намерением построить вающего поразрядное сложение и вы- Джон Винсент
компьютер. Там он провёл экспери- читание чисел при тактовой частоте Атанасов.
менты с электронными вакуумными 60 Гц (примерно одно сложение за се-
лампами и изучил разработанные к кунду);
тому времени устройства для матема- • перфокарт, которые использова-
тических расчётов. Атанасов условно лись в качестве вторичной памяти,
разделил их на аналоговые и «свойст- они вставлялись вручную (дырки на
венные вычислительным машинам», перфокартах не пробивались, как
т. е. цифровые (термин «цифровые» обычно, а прожигались со скоростью
появился позже). В 1936 г. Атанасов до 1500 бит данных в секунду с помо-
вместе с физиком-атомщиком Гленом щью свечек, похожих на автомобиль-
Мэрфи построили модель небольшо- ные. Эта технология была настолько
го аналогового калькулятора для ана- удачной, что ошибка при вводе случа-
лиза геометрических поверхностей. лась только 1 раз на 100 тыс. чисел).
В декабре 1939 г. Атанасов и его ас- Попытки запатентовать изобрете-
систент Клиффорд Берри создали ние оказались безрезультатными. По-
первый образец машины, которая сле демонстрации ABC Атанасов по-
лучил от Университета штата Айова
650 долларов на построение компью-
тера. В январе 1941 г. в газете «Des
Moines Tribune» появилась небольшая Клиффорд Берри.
заметка, в которой сообщалось, что
«Д-р Джон Атанасов, профессор фи-
зики Университета Айовы, строит
ЭВМ, которая по принципу своей ра-
боты ближе к человеческому мозгу,
чем любая другая машина». Однако
тогда на это обратили внимание толь-
ко специалисты. (При создании ма-
шины ENIAC разработчики использо-
вали идеи Атанасова.) Но из-за Второй
мировой войны работы над машиной Часть компьютера
были прекращены. ABC.

399
Компьютер

Во время войны Атанасов возглав- Умер Джон Винсент Атанасов


лял управление акустики лаборатории 15 июня 1995 г., так и не получив па-
В августе 1996 г. Гар- Военно-морских сил США в штате Ва- тента на АВС.
ри Слидж и Джон шингтон. Одновременно он участво- Оригинальные идеи Атанасова
Эриксон, используя вал в проекте испытаний атомной предвосхитили инженерные реше-
идеи Атанасова, по- бомбы в Тихом океане. Когда в 1948 г. ния, положенные в основу универ-
строили компьютер Атанасов вернулся в Университет Ай- сальных ЭВМ. Компьютер Атанасова,
АВС-2, который пред- овы, то обнаружил, что его компьютер в отличие от электронномеханичес-
назначался для реше- демонтирован и все чертежи и диа- ких машин 40-х гг. XX столетия, был
ния системы из 5 ли- граммы машины утеряны. Удалось спа- полностью собран из электронных
нейных уравнений с сти лишь немногие части машины. элементов.
5 неизвестными. При
сборке они использо-
вали около 500 ваку-
умных ламп, десятки ВТОРОЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ
метров электрическо-
го кабеля и старый
перфоратор фирмы Компьютеры второго поколения про- тельной машины. Увеличился набор
IBM. изводились приблизительно с 1955 команд. Стало возможным читать
по 1964 г. В 1948 г. специалистами иписать не только по адресам в па-
американской компании AT&T Bell мяти, указанным в команде, но и вы-
Laboratories (Bell Labs) был изобретён числять их, например складывая зна-
транзистор, и его авторы — Джон Бар- чение специального, индексного,
дин, Уолтер Браттейн и Уильям Шок- регистра с числом.
ли — получили патент на это изобре- Были разработаны специальные
тение. Данное открытие в очередной процессоры IO (англ. input-output —
раз перевернуло мир. Транзистор пол- «ввод-вывод») для управления вводом-
ностью вытеснил вакуумные лампы из выводом и передачей информации.
конструкции ЭВМ. Он занимал в де- Ими командовал центральный процес-
сятки раз меньше места, выделял мень- сор, при этом ничего не передавая.
ше тепла, потреблял меньше электро- Оказалось, что для математических
энергии, работал более надёжно. расчётов не хватает четырёх основных
Переход с технологии вакуумных ламп арифметических действий (сложения,
на транзисторную считается особен- вычитания, деления и умножения), ко-
ностью машин второго поколения. торые выполнялись, как правило, лишь
Усовершенствовалась и память ма- с целыми числами. Поэтому дополни-
шин. Электронно-лучевые трубки и тельно были разработаны специаль-
ультразвуковые линии задержки со ные процессоры для эффективного
временем были заменены феррито- выполнения арифметических дейст-
выми сердечниками и магнитными вий над действительными числами
барабанами. Изменения произошли (числами с плавающей запятой).
и в процессоре — сердце вычисли- Программирование на машинном
языке процессора очень трудоёмкая
задача. И программы, работавшие на
одних ЭВМ, было тяжело адаптиро-
вать для выполнения на других, так
как языки ЭВМ отличались друг от
друга. Нужны были новые машинно-
независимые языки программирова-
ния. Появились языки высокого уров-
ня: FORTRAN, созданный Джоном
Бэкусом в 1954—1957 гг. в IBM, и Algol
(англ. Algorithmic Language), первая
версия Algol-58 опиралась на идеи
синтаксиса FORTRAN.
Началась разработка программно-
Транзистор. го обеспечения для вычислительных

400
Эволюция компьютера в XX веке

ЗАПОМИНАЮЩИЕ ЭЛЕКТРОННО-ЛУЧЕВЫЕ ТРУБКИ И УЛЬТРАЗВУКОВЫЕ ЛИНИИ ЗАДЕРЖКИ

В компьютерах первого поколения запоминающей сре-


дой часто являлся люминофор экрана электронно-луче-
вых трубок. Запись и чтение в отдельные биты памяти
производились с помощью электронной пушки. Пушка
при записи «зажигала» небольшую область экрана в фор-
ме тире, устанавливая значение бита в 1, или в форме
точки для записи 0. Для считывания хранящейся инфор-
мации используется вспомогательный электрод, который
находится в виде тонкого проводящего слоя на внешней
части экрана трубки. Луч электрода направляется в счи-
тывающую область (бит), на вспомогательном электроде
возникает положительный импульс, если в данном мес-

те было «засвечено» тире, или потенциал электрода


не меняется, если была записана точка, т. е. 1 или 0. Обыч-
ный объём памяти трубки до смешного мал — 1024 или
2048 бит. Однако в 50—60-х гг. ХХ в. такая память явля-
лась основной для ЭВМ.
Альтернатива памяти на электронно-лучевых трубках —
память на ультразвуковых линиях задержки, где в каче-
стве запоминающей среды были электрические ультра-
звуковые импульсы, непрерывно «путешествующие» от од-
ного конца трубки с ртутью до другого. Это напоминало
волну, бегущую от берега к берегу. Электрический сиг-
нал запускал её. Точно такой же сигнал получали на дру-
гом конце трубки, когда волна достигала его. Таким об-
разом, сигнал запоминался на время прохождения по
ультразвуковой линии задержки. В одном таком элемен-
те могло храниться 400-значное двоичное число.

машин. В первую очередь это относи- ла процессорами ввода-вывода, на-


лось к системам так называемой па- званными впоследствии каналами,
кетной обработки (когда задачи для или канальными процессорами. Они
машины собирались в пакеты: ввод за- осуществляли операции по обмену
дач, обработка, вывод), которые явля- информацией, а управлял ими цент-
лись зачатками современных операци- ральный процессор, это получило
онных систем. Первым компьютером, название программирования ввода-
использующим в качестве элемент- вывода.
ной базы транзисторы, стала экспе- Первые машины второго поколе-
риментальная машина TX-O (англ. ния фактически являлись гибридны-
Transistorized Experimental Computer— ми, т. е. создавались с использовани-
«транзисторный экспериментальный ем и старой, и новой технологий.
компьютер»). О производстве TX-O
заявили в 1953 г.— машину построи- Компьютер ТХ-О.
ли в Массачусетсском технологиче-
ском институте.
Компьютер IBM 704 на электрон-
ных вакуумных лампах имел про-
цессор с индексными регистрами и
выполнял действия над числами с
плавающей запятой. Более поздняя
модель этого ряда— IBM 709 облада-

401
Компьютер

ФЕРРИТОВЫЕ СЕРДЕЧНИКИ И МАГНИТНЫЕ БАРАБАНЫ

Магнитный (ферритовый) сердечник представлял собой дечников, пропустив провода через каждый вертикаль-
кольцо небольшого диаметра. Он легко намагничивался ный и горизонтальный ряды, и пустить по ним ток силой
и долго сохранял такое состояние. Сердечники нанизы- в половину нормы (0,25 А), то можно изменить намагни-
вались на провод наподобие бус. Постоянный ток (око- ченность только одного сердечника (0,25 + 0,25 = 0,5),
ло 0,5 А) мог изменить намагниченность сердечника, ес- находящегося на пересечении горизонтальной и верти-
ли был пропущен через провод в одном направлении, кальной линий. Остальные не будут реагировать, так как
или оставлял её без изменений, если имел противопо- ток меньше 0,5 А.Чтобы определить значение сердеч-
ложное направление (намагниченность в одном направ- ника, его переводят всостояние 0 (намагниченность од-
лении — 0, в другом — 1). Если составить матрицу сер- ного направления). Если он уже в этом состоянии, то ни-
чего не произойдёт. Переход в другое
состояние вызовет возникновение тока в
дополнительном проводе, проходящем
через все сердечники на матрице (провод
считывания).
Магнитные барабаны имели тонкий
слой (около 0,025 мм) магнитного мате-
риала по поверхности немагнитного бара-
бана. Двоичные цифры записываются на
вращающийся с постоянной угловой ско-
ростью барабан путём намагничивания ма-
леньких участков, когда те проходят ми-
мо головки записи-чтения. Записанное
число может быть считано через один обо-
рот барабана. На вращающемся со скоро-
стью 6000 оборотов в минуту магнитном
барабане диаметром 15 см и длиной 30 см
Накопительная матрица Увеличенный фрагмент матрицы при плотности записи 60 цифр на 1 см2
на магнитных сердечниках. ферритовых сердечников. можно записать около 4 кбайт.

IBM 7094 запятой. Стоимость машины состав-


ляла около 3,5 млн долларов США.
Модель IBM 7094 — научный компью- Стандартный IBM 7094 имел 32 × 1024 =
тер второго поколения IBM был пост- = 32 768 36-битных слов памяти на
роен целиком на транзисторах. В се- ферритовых сердечниках, каждый из
редине 60-х гг. ХХ в. он являлся одним сердечников мог запомнить один бит
из самых быстрых компьютеров на информации.
рынке: выполнял до 350 тыс. операций В качестве внешней памяти исполь-
в секунду над числами с плавающей зовался накопитель на жёстких маг-
нитных дисках модели IBM 2302. Жё-
сткие магнитные пластины диска
размером 24 дюйма в диаметре враща-
лись в вакууме. Магнитные головки счи-
тывали и записывали информацию на
магнитную поверхность дисков (так
же как пишут и воспроизводят звук на
магнитной кассете). (Одна из послед-
них в этом ряду моделей — IBM 2302
могла хранить более 200 Мбайт.) Про-
цессор IBM 7094 отличался от процес-
сора IAS наличием индексных реги-
стров и арифметического устройства,
Компьютер IBM 7090. которое выполняло все операции с

402
Эволюция компьютера в XX веке

Если в процессоре отсутствуют ин-


Устройство
дексные регистры, то другого пути нет. магнитного диска.
Однако индексный регистр позволя-
ет вычислить адрес ячейки, складывая
число и значение, которое находит-
ся в индексном регистре. Построим
цикл:

нц для Индексный регистр от 1 до 10


| Положить 0 в ячейку по адресу
| Индексный регистр + 100
кц

действительными числами (с плаваю- У IBM 7094 было семь индексных


щей и фиксированной запятой). Ка- регистров (XR), каждый из которых
нальные процессоры осуществляли мог хранить 15-битный адрес.
прямой доступ к памяти. Так как па-
мять не могла быть одновременно до-
ступна центральному процессору и Команда Признак Адрес
каналам, было предусмотрено специ- 18 бит 3 бит 15 бит
альное управляющее устройство, пе-
реключающее доступ к памяти между
процессорами. Для того чтобы процессор знал, ка-
Большинство регистров процессо- кой из индексных регистров исполь-
ра IBM 7094 подобны процессору IAS, зуется при вычислении адреса, в ко-
например: манде выделено место — 3 бит (23=8),
• IC (англ. instruction counter)— что позволяет закодировать признак
счётчик команд, аналог PC; адресации — число от 0 до 7. Число 1
• AR (англ. address register)— адрес- соответствует первому регистру, 2 —
ный регистр, содержит адрес памяти, второму, ... , 7 — седьмому, по числу ин-
указанный в инструкции; дексных регистров. Если в признаке
• SR (англ. storage register)— бу- стоит 0, то адресация обычная, без сум-
ферный регистр, аналог DR и IBR; мирования с индексным регистром.
• RI (англ. register instruction)— ре- Например, в команде использует-
гистр инструкций, содержит текущий ся четвёртый индексный регистр (при
код операции. этом 3-битный признак равен 1002,
За один такт процессор загружал или 410). Тогда содержимое четвёрто-
две команды-инструкции из памяти, го индексного регистра складывает-
вторая инструкция запоминалась в ре- ся с адресом, который находится в ин-
гистре SR, который был скрыт от про- струкции (15 бит). Это и будет адресом
грамм и имел служебное назначение. в памяти.
Вот пример сложения числа 28, на-
ходящегося в аккумуляторе, и числа 33,
ИНДЕКСНЫЕ РЕГИСТРЫ находящегося в 342-м слове памяти.

Обычно в команде указывается адрес


ячейки памяти (откуда надо взять или
куда надо положить данные). Однако
если требуется заполнить некоторую
таблицу (массив) из 10 элементов ну-
лями, выполняют 10 одинаковых опе-
раций, где явно указан адрес каждой
ячейки таблицы:
Положить 0 в ячейку №101
Положить 0 в ячейку №102
...
Положить 0 в ячейку №110

403
Компьютер

КОСВЕННАЯ АДРЕСАЦИЯ • операции ввода-вывода: для пе-


редачи данных между устройствами
Предыдущий пример относился к ввода-вывода и памятью компьютера.
прямой адресации, когда данные для
команды расположены по указанно-
му адресу. В нашем примере при кос- ПОДПРОГРАММЫ
венной адресации (на что указывает
знак *) в 342-м слове содержится ад- Важная особенность машин второго
рес аргумента. Подобно тому как, поколения — наличие специальных
придя к другу Пете домой, застанешь инструкций для перехода к подпро-
не его самого, а записку, в которой ска- граммам (вспомогательным алгорит-
зано, что он пошёл к Васе. Если тот на- мам) и возврата из них. В IBM 7094
ходится у Васи, то это косвенная ад- для вызова подпрограммы использо-
ресация первого уровня. Если же и у валась специальная инструкция — TSX,
Васи записка, что они с Петей у Тани, обратная (возврат из подпрограммы)
то это косвенность второго уровня и инструкция — TRA.
т. д. Реально в процессорах использу- При выполнении команды TSX в
ется косвенность трёх уровней. индексный регистр, применяемый в
качестве аргумента, запоминался ад-
рес текущей инструкции (адрес воз-
врата). Затем начиналось выполне-
ние подпрограммы (т. е. происходила
передача управления). При заверше-
нии в ней должна была находиться
инструкция TRA, где в качестве аргу-
мента присутствовал тот же индекс-
ный регистр, что и в команде TSX.
Происходил возврат в программу.

Индексная и косвенная адресации


незаменимы при работе с массивами
и таблицами.
Всего у машины IBM 7094 насчи-
тывалось более 200 команд, которые
можно разделить на несколько клас-
сов: ВВОД-ВЫВОД
• инструкции пересылки (переда-
чи) данных, служащие для обмена ин- Канальные процессоры (каналы) вы-
формацией между процессором и па- полняют специальные программы —
мятью или между двумя регистрами программы ввода-вывода. Централь-
процессора; ный процессор производит запуск
• арифметические инструкции: канала и «присматривает» за опера-
сложение, вычитание и т. д. (в том чис- циями ввода-вывода (осуществляет
ле и с плавающей запятой); их мониторинг). Хотя центральный
• логические (не числовые) инст- процессор сам в процессе ввода-вы-
рукции типа операции ИЛИ, НЕ и т. д.; вода не принимает участия, он может
• инструкции для изменения зна- выставить запрос на прерывание —
чений индексных регистров, такие, остановку текущей работы. Обычно
как увеличение на 1, уменьшение на это происходит по окончании опе-
1 и др. рации ввода-вывода, когда получе-
• условный и безусловный пере- ны данные, ожидаемые центральным
ход (передача управления): измене- процессором. Аппарат прерываний,
ние порядка выполнения программы, появившийся у некоторых компью-
циклов; теров второго поколения, сущест-

404
Эволюция компьютера в XX веке

венно повысил их производитель-


ность..
Каждый канальный процессор мо- АППАРАТ ПРЕРЫВАНИЙ
жет одновременно управлять десятью
магнитными лентами, печатающим В классе 20 учеников выполняют контрольную работу (учени-
устройством, устройством ввода с пер- ки — это каналы, учитель — центральный процессор, контроль-
фокарт и даже дисководом с жёстким ные работы — программы каналов или инструкции). Учитель
магнитным диском. Канал, как и цен- ожидает окончания выполнения контрольных работ и одновре-
тральный процессор, имеет похожий менно заполняет журнал. В случае отсутствия аппарата преры-
набор скрытых регистров. Естествен- ваний учитель через равные промежутки времени приостанав-
но, у него отсутствуют обычные реги- ливает заполнение журнала и спрашивает у каждого отдельного
стры, предназначенные для арифме- ученика о готовности его работы. Те, кто ответил на вопрос
тических операций (аккумулятор утвердительно (закончил выполнение своих программ), пере-
и др.), и индексные регистры. Каналь- дают учителю тетрадки (данные ввода-вывода находятся в па-
ные процессоры служат для унифика- мяти). Остальные продолжают выполнять свои контрольные
ции ввода-вывода. работы. Очевидно, что при этом механизме учитель тратит мно-
В IBM 7094 данные между каналь- го времени на опрос учеников.
ным процессором и основной памя- Напротив, при наличии аппарата прерываний учитель да-
тью передавались словами по 36 бит, ёт ученикам контрольную работу и просит, чтобы они позва-
а между каналами и устройствами ли его по окончании выполнения, подняв руку. В этом случае
ввода-вывода, такими, например, как сам он просто заполняет журнал, никого не опрашивая. Когда
магнитные ленты,— уже по 6 бит. По- кто-нибудь из учеников заканчивает работу, то поднимает
этому каналы осуществляли сборку руку, подавая сигнал (какой-то из процессов ввода-вывода
поступающих данных (по 6 бит) в завершён). Учитель приостанавливает заполнение журнала и
слова по 36 бит. Роль буфера для занимается контрольной ученика.
сборки-разборки выполнял 36-бит-
ный регистр данных. Число слов, ко-
торое должно передаваться в процес-
се ввода-вывода между памятью и
каналом, запоминалось в регистре-
счётчике. Состояние ввода-вывода
содержалось в статусном регист-
ре. Если вдруг возникали ошибки в
процессе ввода-вывода, то централь-
ный процессор мог узнать о случив-
шемся по коду, который содержался
в этом регистре.
Процесс ввода-вывода происходил
следующим способом:
1. Центральный процессор встре-
чает инструкцию ввода-вывода. По
ней он определяет, где находится про-
грамма ввода-вывода.

2. Центральный процессор пе-


редаёт в качестве параметра имя
устройства ввода-вывода и запускает
программу.
3. Канальный процессор выполня-
ет программу и по окончании дейст-
вий (правильных или с ошибкой) со-
храняет код завершения в статусном
регистре. Затем посылает прерывание
центральному процессору, сообщая
о выполнении ввода-вывода.

405
Компьютер

БОЛЬШИЕ СИСТЕМЫ

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

Команды ввода-вывода делятся на адрес основной памяти (куда или от-


3 группы: куда поступят данные).
• Инструкции, управляющие После этого осуществляется пере-
устройствами ввода-вывода. дача данных:
К ним относятся, например, коман-
ды на перемотку магнитной ленты на- нц пока счётчик > 0
зад или позиционирование головки | передать слово между каналом и
дисковода на указанное место перед | памятью (адресный регистр)
чтением/записью. | счётчик:= счётчик – 1
• Инструкции передачи данных. | адресный регистр:= адресный
Они имеют вид «передайте n слов | регистр + 1
между устройством ввода-вывода и кц
основной памятью». Каждая такая ин-
струкция содержит некое количест- • Управляющие инструкции или
во слов n, которое сохранится в счёт- инструкции условного и безусловно-
чике (регистре-счётчике) канала, и го перехода.
Каналы и центральный процессор
разделяют между собой основную па-
мять компьютера. Управление осу-
ществляется при помощи специаль-
ного устройства и набора линий
связи (проводов), идущих одновре-
менно к процессору и каналам. На-
бор линий связи называется систем-
ной шиной. Операции ввода-вывода
проходят медленно по сравнению со
скоростью обработки данных цент-
ральным процессором. Поэтому па-
мять доступна в основном ему, а не
каналам.
К 1965 г. около 300 компьютеров
IBM 7090 и IBM 7094 были установле-
ны в различных компаниях, несмот-
ря на достаточно солидную стои-
мость.
Одну из IBM 7094 Вооружённые си-
лы США «сняли с дежурства» в середи-
не 80-х гг., после 30 лет бесперебой-
ной работы.

406
Эволюция компьютера в XX веке

ТРЕТЬЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ

1965 год считается годом появления и интегральная схема готова. Поэто-


компьютеров третьего поколения. му и технологию назвали планарной,
Различия между вторым и третьим что означает «плоская».
поколениями кажутся не такими В 1954 г. Гордон Тил предложил из-
большими, как между первым и вто- готавливать транзисторы из недоро-
рым. гого материала — обычного кремния,
Производство вычислительных что позволило удешевить производ-
машин было хлопотным и дорогим ство интегральных схем.
делом. Огромное количество основ- Ещё одна ключевая идея состояла
ных элементов ЭВМ— транзисторов в том, что все компоненты интеграль-
надо было собрать воедино; бесчис- ной схемы, будь то диоды, резисторы
ленное множество проводов опуты- или конденсаторы, проектировались
вало блоки и части компьютера. в ней в виде частей самого сложного
Сложность ЭВМ росла с каждым днём, элемента — транзистора. И когда го-
это приводило к увеличению числа ворят околичестве элементов на ин- Джек Килби.
транзисторов, трудностям проекти- тегральной схеме, имеют в виду тран-
рования и монтажа. зисторы.
Революцию в технологии произ- В небольшой объём интегральной
водства ЭВМ третьего поколения выз- схемы удалось поместить сразу сот-
вало создание интегральных схем. ни и тысячи транзисторов, в резуль-
В их основе лежат идеи, впервые вы- тате уменьшились размеры ЭВМ и
сказанные и проверенные в 1958— упростился монтаж. Благодаря это-
1961 гг. американскими специали- му полупроводниковая память на
стами. интегральных схемах вытеснила гро-
Джек Килби собрал компоненты моздкую память на ферритовых сер-
электронной схемы (транзисторы, дечниках.
конденсаторы и резисторы) в еди- Но не все достижения были связа-
ном куске полупроводника. Так по- ны только с интегральными схемами.
явилась первая интегральная схема, Одновременно возник ещё один
произведённая американской кор- класс памяти ЭВМ — ПЗУ (постоян-
порацией Texas Instruments. Контак- ное запоминающее устройство; англ.
ты прикреплялись к конструкции ROM — Read Only Memory). Из ПЗУ до-
схемы воском. Это было не очень пускалось лишь чтение данных. Уда-
удобно инадёжно, особенно в произ- лось не только удешевить компьютер-
водстве, и технология не получила ную память, но и решить проблему
дальнейшего развития. защиты некоторых важных программ
Джин Херни и Курт Леховец усо- ЭВМ, помещая их при производстве
вершенствовали операцию изготов- в ПЗУ. Обычная память, доступная и
ления интегральных схем, добившись для записи, и для чтения, получила на-
особых успехов в изоляции элемен- звание ОЗУ (оперативное запомина-
тов друг от друга (изолятором служи- ющее устройство; англ. RAM — Ran-
ла тончайшая плёнка оксида кремния). dom Access Memory). Роберт Нойс.
Роберт Нойс изобрёл способ, поз-
воляющий делать выводы всех эле-
ментов интегральной схемы на одной, МИКРОПРОГРАММИРОВАНИЕ
верхней, поверхности с помощью на-
пыления металла. Это дало возмож- Техника микропрограммирования
ность обрабатывать сразу целую крем- (конструирование сложных команд
ниевую пластину, содержащую десятки процессора из простых— микро-
и сотни кристаллов интегральных команд) стала использоваться при
схем, нанося шаг за шагом «рисунок» — проектировании процессоров. Сами
слои будущей схемы. Оставалось толь- команды процессора реализовыва-
ко «разрезать» её на кристаллы, упако- лись как микропрограммы (програм-
вать в пластик и припаять «ножки» — мы, состоящие из микрокоманд).

407
Компьютер

Интегральные схемы:
микропроцессор
(слева), ПЗУ (справа).

Программирование, таким образом, ского университета, ещё в 1951 г.


«спустилось» внутрь процессора. Те- сформулировал основные концеп-
перь не требовалось переписывать це- ции микропрограммирования:
ликом всю программу при изменении • Каждая инструкция процессора
лишь некоторых свойств алгоритма. (микропрограмма) состоит из после-
Это позволяло обеспечить большую довательности микроинструкций и
«гибкость» процессора, соответст- содержится в специальной памяти,
вующую «гибкости» программы. Од- называемой управляющей памятью.
нако микрокоманды, как правило, • Микроинструкция осуществля-
оставались недоступны внешним (по ет некоторое микродействие (напри-
отношению к процессору) програм- мер, передачу данных между регист-
мам, они были «видны» только в ходе рами), необходимое для выполнения
проектирования. инструкции процессора.
Морис Вилкс, руководитель ком- • Каждое выполнение инструкции
пьютерной лаборатории Кембридж- процессора, содержащейся в основ-
ной памяти, приводит к последова-
тельному выполнению микроинст-
рукций из управляющей памяти.
Микропрограммирование обес-
печивает более простой способ про-
ектирования процессора. Набор
инструкций «микрозапрограммиро-
ванного» процессора можно изме-
нить всего лишь заменой микроко-
да, содержащегося в управляющей
памяти. Это делает возможным пе-
ренастройку такого процессора на
систему команд другого и позволяет
выполнять программы с «чужой» ма-
шины. Подобно тому как сегодня,
устанавливая новую версию ОС, рас-
ширяют возможности ЭВМ.
Хотя были попытки использовать
микропрограммирование при про-
ектировании некоторых машин пер-
вого и второго поколений, только в
середине 60-х гг. XX в. с появлением
моделей IBM System/360 оно получи-
Морис Вилкс. ло широкое применение.

408
Эволюция компьютера в XX веке

IBM SYSTEM/360
Третье поколение компьютеров впе-
чатляет многообразием моделей и
количеством фирм-производителей.
В числе наиболее известных пред-
ставителей третьего поколения — ряд
компьютеров производства IBM—
модели 360 (англ. System/360). Это
семейство пыталось охватить широ-
кий спектр приложений вычисли-
тельной техники. Различные модели
были в значительной степени совме-
стимы, и можно уже говорить о мо-
бильности программного обеспече-
ния. То есть программа, написанная
для одной модели ряда 360, должна
была работать (практически без из-
менений) на любой другой модели
этого ряда. Отличалось, конечно, вре- полнении инструкции, является сум- IBM 360.
мя выполнения, и могли возникнуть мой базового регистра и 12-битного
некоторые сложности из-за нехват- адреса (смещения), указанного в ко-
ки места в памяти. манде. При этом инструкция имеет
Весь ряд IBM 360 оказал достаточ- длину уже 32 бита.
но сильное влияние на стандарты про- У IBM 360 было 16 32-битных ре-
изводимых компьютеров. гистров (общего назначения), ис-
Простейшие инструкции процес- пользуемых в качестве сумматоров
соров IBM 360 состояли из одного по- индексных и базовых регистров, и
луслова, т. е. из 16 бит: 4 регистра с плавающей запятой, каж-
дый размером в двойное слово.
Несмотря на то что IBM 360 от-
Команда Адрес 1 Адрес 2 носились к компьютерам третьего
8 бит 4 бит 4 бит поколения, в них, как правило, ис-
пользовалась память на «старых и
добрых» ферритовых сердечниках.
Здесь адрес 1 и адрес 2 — адреса- Сердечники были небольших разме-
имена регистров процессора. Инст- ров: внутренний диаметр — 0,48 мм
рукция IBM 360, в отличие от IBM 7094, и внешний — 0,76 мм. Компания IBM
двухадресная. выпускала матрицы размером 8192
Адреса в памяти задавались слож- и 284 912 сердечников.
нее. Поскольку можно адресовать лю- Хотя с 1960 г. IBM поставила поль-
бой из 16,7 млн байт, адрес 24-битный зователям тысячи транзисторных
(224=16 777 216), хотя обычно память компьютеров, окончательную побе-
IBM 360 из-за дороговизны не превы- ду фирма смогла праздновать лишь с
шала 32 кбайт. Таким образом, для ад- появлением ряда 360. Теперь можно
ресации требовалось только 16 бит было адресовать 32-битное слово па-
(216 = 65 536). В целях экономии па- мяти, начиная с любого байта.
мяти при этом использовали так на- В новых машинах IBM впервые ис-
зываемый базовый регистр. пользовала микропрограммирова-
ние при конструирова-
нии своих процессоров.
Команда Адрес1 Индекс Базовый Смещение Благодаря этому удалось
8 бит 4 бит 4 бит 4 бит 12 бит создать шесть моделей ря-
да 360, каждая из которых
могла использовать ту же
В простейшем случае исполнитель- периферию (внешние устройства) и
ный адрес, т. е. участвующий в вы- то же программное обеспечение.

409
Компьютер

К компьютерам ряда 360 осуществ- управляющей мастер-программой


лялся удалённый доступ (например, (обычно она именуется операционной
по телефонным линиям). Теперь от- системой). Операционная система
пала необходимость ездить в компью- большого компьютера — это комплекс
терный зал для запуска вычислитель- программ, хотя некоторые из её функ-
ных задач и получения результатов. ций могут быть выполнены аппарат-
Для производства ряда 360 потре- но. Широкое распространение этих
бовалось вложить 5 млрд долларов— систем — важная характеристика ЭВМ
в постройку пяти заводов и привле- третьего поколения. Развитие опера-
чение 60 тыс. рабочих. Цель себя ционных систем началось с появле-
оправдала. IBM 360 в 70-х гг. XX в. ния пакетных операционных систем
можно было найти везде: в больни- (программы-мониторы) в 50-х гг.
цах и университетах, банках и кор- Компьютер Atlas (Манчестерский
порациях, библиотеках и лабора- университет, 1961 г.) имел одну из
ториях. первых таких систем. К проектиро-
ванию систем разделения времени,
когда несколько пользователей одно-
ОПЕРАЦИОННЫЕ СИСТЕМЫ временно работают на компьютере,
практически не замечая друг друга,
Выполнение одновременно несколь- приступили в начале 60-х гг. Муль-
ких параллельных процессов в ком- типрограммирование и мультиоб-
пьютере требует наличия достаточ- работка обычно заключаются в па-
но сложной программы, которая раллельном выполнении программ,
управляет ими и распределяет ресур- делящих между собой основную па-
сы компьютера между операциями, мять компьютера. (Ёмкость основной
устанавливает их очерёдность, взаи- памяти ограничена по соображениям
модействует с различными програм- стоимости.) Её объёма часто не хва-
мами-процессами и т. п. Специалисты тает для одновременного хранения
фирмы Burroughs (США) назвали её всех выполняемых программ с их
данными. Поэтому необходимо ди-
намично, «на ходу», выделять память
программам. Те программы, для ко-
торых она не выделена, должны вре-
менно находиться во внешней памя-
ти (например, на диске).
Автоматически (под управлением
операционной системы) осуществ-
лялись подгрузка программ из внеш-
ней памяти и выгрузка отработавших
своё время программ из оперативной
памяти на диск. Это явилось одной из
главных функций операционной си-
Компьютер Atlas. стемы ЭВМ третьего поколения.

МИНИ-КОМПЬЮТЕРЫ

Контрастом на фоне больших ЭВМ большими размерами. Невысокая це-


было начало производства малень- на обусловила их широкое примене-
ких дешёвых компьютеров, называ- ние. Например, они использовались
емых мини-компьютерами. Они харак- как индустриальные контроллеры—
теризовались «коротким» машинным машины, управляющие станками и
словом длиной от 8 до 32 бит, огра- даже целыми цехами относительно
ниченными аппаратными и про- простого производственного процес-
граммными средствами, а также не- са, где бессмысленно было использо-

410
Эволюция компьютера в XX веке

4096 18-битных слов. Память можно


было увеличить блоками по 4096 слов, Компьютер PDP-1.
её максимальный размер составлял
65 536 слов. Чтение/запись данных из
памяти происходили за 5 мкс.
PDP-1 создали именно для управ-
ления устройствами ввода-вывода. Все
операции ввода-вывода осуществля-
лись через высокоскоростные кана-
лы. Мини-компьютер использовал и
аппарат прерываний, хорошо зареко-
мендовавший себя в машинах второ-
го и третьего поколений.

PDP-11
Наибольшую популярность получи-
ла серия ЭВМ PDP-11, выпущенная в
70-х гг. Машинное слово этих ком-
пьютеров было длиной 16 бит.
Процессор имел 8 одинаковых 16-
битных регистров общего назначения.
Правда, на два последних регистра воз-
вать многоцелевые «тяжёлые» ком- лагали дополнительные функции: ре-
пьютеры. По скорости мини-компью- гистр R7 являлся счётчиком команд, а
теры были сопоставимы с большими R6 — указателем стека. Стек — это ме-
компьютерами второго поколения и сто в памяти компьютера, которое ис-
превосходили лучшие показатели ма- пользуется для временного хранения
шин первого поколения. Одним из содержимого регистров и для хране-
представителей мини-компьютеров ния адреса возврата из подпрограм-
являлась машина PDP-1 (англ. Pro- мы (нужно запомнить, куда вернуть-
grammed Data Processor) фирмы DEC. ся). Вызов подпрограммы обычно
PDP-1 могла управлять многими происходит по инструкции JSR R7
внешними устройствами. Установка (англ. Jump to SubRoutine — «переход
машины не требовала ни специаль- к подпрограмме»), а возврат— по RTS
ного перепроектирования системы R7 (англ. ReTurn from Subroutine —
энергоснабжения (в США те же 110 «возврат из подпрограммы»). Адреса
вольт), ни другой системы кондици- в программе восьмеричные, по стан-
онирования, ни усиления пола: ком- дарту PDP-11.
пьютер занимал всего около 2 м 2 и Стрелка указывает на текущую ис-
состоял из 4 блоков весом в несколь- полняемую инструкцию (до выполне-
ко десятков килограммов. ния входа в подпрограмму).
Центральный процессор выпол-
нял арифметические операции, осу-
ществлял адресацию, управление и до-
ступ кпамяти. Машинное слово было
длиной 18 бит.
Команды сложения и вычитания
выполнялись за 10 мкс, команда ум-
ножения — примерно за 20 мкс. Ско-
рость выполнения достигала 100 тыс.
команд сложения в секунду. Инструк-
ции процессора были простыми —
одноадресными. Дисковод сменного
магнитного диска
Основная память машины — на PDP-11 объёмом
магнитных сердечниках, стандартно 2,5 Мбайт.

411
Компьютер

Инструкции процессора были


100000 Программа ПАМЯТЬ адрес двухадресные. В некоторых моделях
.......................... добавлялось устройство для выполне-
101000 JSR R7, #110000 000000 776 ния арифметических вычислений с
101004 . . . . . . . . . . . . . . . . . 000000 1000 плавающей запятой, существенно уве-
.......................... 170000 1002 личивающее скорость вычислений.
110000 Подпрограмма ... Основная память машины состав-
.......................... ляла 32 768 16-битных слов. Её также
110100 RTS R7 можно было расширять. Доступ к па-
мяти, превышающей 64 кбайт, осу-
R6= 001002 R7= 101000 ществлялся при помощи устройства
MM (англ. Memory Management —
«управление памятью»). MM «делило»
Следующий шаг — запись в стек ад- программу на восемь частей, разме-
реса возврата (содержится в R7) и за- щая их в различных областях опера-
пись в R7 адреса подпрограммы. тивной памяти. Программа этого
«деления» не замечала, считая, что вы-
полнялась воедино, в 64 кбайт. Допол-
100000 Программа ПАМЯТЬ адрес нительно код программы можно бы-
.......................... ло отделять от кода данных. Таким
101000 JSR R7, #110000 000000 776 образом, максимальный размер про-
101004 . . . . . . . . . . . . . . . . . 101004 1000 граммы может составлять 64 кбайт и
.......................... 170000 1002 максимальный размер области дан-
110000 Подпрограмма ... ных тоже 64 кбайт. Так как основная
.......................... память была достаточно медленной
110100 RTS R7 (память на магнитных сердечниках),
быстродействие обеспечивала полу-
R6= 001000 R7= 110000 проводниковая кэш-память (ёмкос-
тью 2048 слов).

После выполнения подпрограммы


Компьютеры по команде RTS происходят «вспоми-
PDP-1140
и PDP-1170. нание» адреса возврата из стека и пе-
редача его в R7.

100000 Программа ПАМЯТЬ адрес


..........................
101000 JSR R7, #110000 000000 776
101004 . . . . . . . . . . . . . . . . . 101004 1000
.......................... 170000 1002
110000 Подпрограмма ...
..........................
110100 RTS R7

R6= 001002 R7= 101004

ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ

Способность проводить вычисления Помимо IBM с её нашумевшим ря-


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

412
Эволюция компьютера в XX веке

дительности машин. Одним из спо- Компьютер B 7700.


собов повышения скорости счёта бы-
ла технология многомашинных ком-
плексов, когда для решения общей
вычислительной задачи объединяли
несколько одинаковых машин. Так,
две машины IBM 7094 соединяли друг
с другом для ускорения вычислений,
однако это требовало разработки
специальных методов программиро-
вания. Кроме того, дублирование
внешних устройств и расположение
общих данных задачи в двух разных
компьютерах не давали нужной эф-
фективности. за операции ввода-вывода. Они мог-
Для решения вычислительных за- ли получать данные от 32 внешних
дач также широко применялась новая, устройств.
многопроцессорная техника парал- При программировании многопро-
лельной обработки данных. В 1963 г. цессорных комплексов применялось
фирма Burroughs (США) начала вы- специализированное программное
пуск высокопроизводительных ма- обеспечение, при котором вычисле-
шин, построенных по этому принци- ния распараллеливались (т. е. выпол-
пу. Особенностями этих машин были нялись одновременно на разных про-
не только необычные концепции раз- цессорах). Это можно пояснить на
работки компьютеров («компьютер, примере нахождения суммы четырёх
как единое целое, должен проектиро- целых чисел.
вать один человек»), но и применение Алгоритм Сумма обычная вычисля-
нескольких однотипных процессо- ет сумму четырёх чисел. Для полу-
ров для повышения производитель- чения sum требуется три раза произ-
ности системы. вести сложение. При использовании
Первой стала машина B 5000, за- вспомогательных переменных s1 и s2
тем появилось ещё несколько моде- (в алгоритме Сумма параллельная) вы-
лей, а уже более совершенную B 7700 числения можно производить парал-
выпустили в 1973 г. В некоторых эк- лельно (что показано в примере рас-
земплярах B 7700 было установлено положением s1 и s2 на одной строке,
семь быстродействующих процессо- через знак :). Для этого потребуется
ров, осуществляющих между собой всего два раза осуществить операцию
обмен данными через память. Опера- сложения, т. е. второй алгоритм вы-
тивная память разделялась на восемь полняется быстрее первого. Для эф-
независимых модулей. Модульная фективного применения многопро-
конструкция обеспечивала одновре- цессорных комплексов были созданы
менное обращение в память с вось- специальные языки программирова-
ми независимых входов. Как и в IBM, ния. Вычислительный комплекс как
в Burroughs использовалась техника бы сам «распараллеливал» вычисле-
канальных процессоров, отвечающих ния. Поэтому даже алгоритм Сумма

алг Сумма обычная (цел a, b, c, d) алг Сумма параллельная (цел a, b, c, d)


дано a, b, c, d дано a, b, c, d
надо надо
нач цел sum нач цел sum, s1, s2
| sum:= a+b | s1:= a+b : s2:= c+d
| sum:= sum+c | sum:= s1+s2
| sum:= sum+d | знач:= sum
| знач:= sum кон
кон

413
Компьютер

алг Вычисление обычное (цел a, b, c, d, f) алг Вычисление конвейерное (цел a, b, c, d, f)


дано a, b, c, d, f дано a, b, c, d, f
надо надо
нач цел sum1, sum2, s нач цел sum1, sum2, s
| s:= a+b | s:= a+b
| sum1:= s*c | sum1:= s*c : s:= d+e
| s:= d+e | sum2:= s*f
| sum2:= s*f | знач:= sum2
| знач:= sum2 кон
кон

ния, а второй алгоритм (на конвейер-


ном компьютере) выполняет не четы-
Конвейерные системы были названы по аналогии со сборочным ре действия (2+2=4), а три, так как про-
автомобильным конвейером. Специальные процессоры, осуще- изведение sum1 и сумма s вычисляются
ствлявшие однотипные операции (процессор для сложения и одновременно на различных специ-
вычитания, процессор для деления и умножения и т. д.), ассоци- ализированных процессорах ком-
ировались с рабочими, выполняющими специализированные опе- плекса (что показано в примере рас-
рации сборки. Данные для вычислений как бы продвигались по положением sum1 и s на одной строке,
конвейеру. Сразу со всем потоком различных данных произво- через знак :). В реальных вычислени-
дились соответствующие операции. ях, осуществляемых на конвейерной
системе, оба алгоритма будут рабо-
тать одинаково, так как (аналогично
обычная выполнялся на многопроцес- многопроцессорным вычислитель-
сорном комплексе быстрее, чем на ным комплексам) система сама «со-
обычной ЭВМ. образит», где можно сэкономить на
Совершенствование многопроцес- вычислениях.
сорных вычислительных комплексов Кроме того, параллелизм можно
привело к появлению конвейерных обеспечить на процессорном уровне.
систем. В них получила развитие идея Два метода параллельной обработки
параллельности вычислений. За счёт данных нашли своё место в разработ-
специальных методов программиро- ке процессоров:
вания удавалось добиться значитель- • Можно предусмотреть наличие
Работа на конвейере
ного ускорения. нескольких устройств (например,
компании «Форд мо- Алгоритм Вычисление обычное про- арифметических) для выполнения не-
тор». Начало XX в. изводит два сложения и два умноже- которых действий (например, сложе-
ния); n независимых сумматоров мо-
гут вычислять одновременно n сумм.
Этот метод позволяет быстро обраба-
тывать массивы (осуществлять век-
торные операции).
• Сам процессор можно проекти-
ровать по принципу конвейера, поз-
воляющего выполнять различные ми-
кродействия одновременно.

СУПЕРКОМПЬЮТЕРЫ
Корпорация CDC (англ. Control Data
Corporation), США, производитель
конвейерных систем, начала проек-
тирование компьютеров в 1960 г.
В 1964 г. она выпустила модель под на-
званием CDC 6600, спустя 5 лет появи-

414
Эволюция компьютера в XX веке

Компьютер CDC 7600


(слева).
Компьютер CRAY I
(справа).

лась более мощная модель CDC 7600. лялась американская фирма Cray
Позднее ряд этих машин продолжи- Research. Её основал в 1972 г. бывший
ли модели CYBER. Для ЭВМ фирмы главный конструктор CDC 6600 и 7600
CDC было характерно наличие не- Сеймур Крей. В 1976 г. фирма уста-
скольких процессоров ввода-вывода новила в Лос-Аламосской научной
(называемых периферийными про- лаборатории при Калифорнийском
цессорами), каждый из которых об- университете первый образец своей
ладал автономией от центрального машины CRAY I. Средняя произво-
процессора. Если канал обычно имел дительность её составляла 80 млн
память всего в несколько слов и не- операций в секунду, при полном за-
большой специфический набор ин- действовании всех вычислительных
струкций, то периферийный процес- ресурсов — 138 млн операций с пла-
сор с обширной памятью и развитой вающей запятой в секунду, а в корот-
системой команд представлял собой кие промежутки времени — 250 млн.
универсальную ЭВМ. Работа канала Такая высокая производительность
инициировалась и контролировалась достигнута благодаря использованию
центральным процессором, а на пе- нескольких конвейеров. Система мог-
риферийный процессор не мог ока- ла выполнять операции с векторами
зывать влияния. Десять периферий- (процессор имел векторные регист-
ных процессоров CDC 6600 обладали ры), причём функциональные устрой-
памятью по 4096 12-разрядных слов. ства процессора обеспечивали одно-
Центральный процессор компью- временное выполнение векторных и
теров CDC, в свою очередь, состоял из обычных (скалярных) операций. Про-
множества элементов — процессоров, цессор содержал 8 64-битных регис-
которые могли работать параллельно, тров для выполнения арифметиче-
независимо друг от друга. В процессор ских операций, 64 64-битных регистра
CDC 6600 входило десять функцио- для хранения промежуточных резуль-
нальных устройств: одно для сложе- татов и 8 64-элементных векторных
ния чисел с фиксированной запятой, регистров (каждый элемент вектора —
другое для сложения с плавающей это 64-разрядное слово). Роберт Нойс.
запятой, два устройства умножения,
устройство деления, устройство для
выполнения логических операций
Быстродействие CRAY I — заслуга его небольших размеров (высота
и т. п. Средняя производительность
не более 2 м, диаметр около 2,5 м). Такие габариты позволили
CDC 6600 около 4 млн операций в се-
связать компоненты суперЭВМ «короткими» линиями (проводами),
кунду, а CDC 7600 около 15 млн. (Для
что сократило задержки при передаче информации между
суперЭВМ производительность изме-
компьютерными блоками. Однако компактность ЭВМ потребовала
ряется количеством операций в секун-
наличия системы жидкостного охлаждения, похожей на систему
ду над числами с плавающей запятой.)
охлаждения двигателя автомобиля.
Одним из мировых лидеров в
производстве суперкомпьютеров яв-

415
Компьютер

Компьютер ILLIAC IV. Поэтому ILLIAC IV относят к классу


матричных ЭВМ.
Матричные системы представляют
собой двухмерные таблицы-матри-
цы процессорных модулей. При этом
процессорный модуль имел память и
мог выполнять множество арифмети-
ческих операций: сложение и умно-
жение, вычитание и деление, сдвиг,
сравнение и др. Если в конвейерных
системах все процессоры (функци-
ональные устройства в CDC 6600 и
7600) выполняли различные опера-
ции, то матричная система одновре-
Память насчитывала до 1 млн 64- менно выполняла одинаковые опера-
битных слов. На самом деле слово па- ции со всей таблицей-матрицей слов.
мяти состояло из 72 бит, где восемь Трудоёмкие операции (например,
«служебных» битов использовались «умножить все элементы матрицы на
для обнаружения и исправления сбо- какое-то число», «обнулить матрицу»,
ев памяти. Другой суперкомпьютер — а иногда и более сложные типа «сло-
ILLIAC IV, производящий операции жить первую и вторую строки матри-
не только с векторами, но даже с ма- цы») производились за одно дейст-
трицами, был разработан в 1967 — вие, как будто надо умножить число
1974 гг. в Иллинойсском универси- на число.
тете (США) и изготовлен фирмой Из-за своей универсальности мат-
Burroughs всего в одном экземпляре. ричные системы очень сложны. По-
Цель этого проекта — построение си- этому была построена всего одна ма-
стемы с производительностью око- трица из 64 процессорных элементов,
ло 1 млрд операций в секунду. Для в результате производительность упа-
этого машина должна была содер- ла до 200 млн операций в секунду.
жать 256 процессорных элементов Тем не менее до своего списания в
(фактически универсальных процес- 80-х гг. ILLIAC IV оставался самым вы-
соров) под общим управлением, сокопроизводительным компьюте-
сгруппированных в 4 матрицы по 64 ром в мире. Стоимость проекта соста-
процессорных элемента в каждой. вила почти 100 млн долларов.

АЛЕКСЕЙ АНДРЕЕВИЧ ЛЯПУНОВ

Математик Алексей Андреевич Ляпу- Н. И. Лобачевского, был профессором


нов родился в Москве 8 октября 1911 г. астрономии Казанского университе-
По семейным преданиям, род Ляпуно- та и директором обсерватории, а поз-
вых уходит своими корнями к брату же директором Демидовского лицея
Александра Невского, князю Констан- (первого высшего учебного заведения
тину Галицкому. Прадед Алексея Анд- Ярославля). Он имел трёх сыновей, ко-
реевича Михаил Васильевич, ученик торые были широко известны: мате-
матик, механик и кораблестроитель
Александр Михайлович, композитор
Сергей Михайлович, филолог-славист
А. А. Ляпунов основал издание серии научных сборников «Проб-
академик Борис Михайлович.
лемы кибернетики», создал и редактировал серию книг «Кибер-
Круг научных интересов самого
нетика в монографиях», организовал публикацию переводов луч-
Алексея Ляпунова в значительной ме-
ших работ зарубежных авторов в серии «Кибернетический
ре определён средой, в которой он
сборник».
рос. Его первым учителем астроно-
мии, физики, математики и минера-

416
Эволюция компьютера в XX веке

логии был отец Андрей Николаевич, А. А. Ляпунов.


который окончил физико-математи-
ческий факультет Московского уни-
верситета, а позже учился в Гейдель-
берге. Он же привил сыну и любовь к
математике.
Первые самостоятельные исследо-
вания — наблюдения по астрономии,
проведённые Алексеем в школьные
годы, неоднократно публиковались
в «Бюллетене Московского общест-
ва любителей астрономии». После
окончания школы в 1928 г. Ляпунов
поступает в Московский государ-
ственный университет на физико- в её становление и развитие. Работать
математический факультет, но через в области кибернетики значило бо-
полтора года ему пришлось уйти из роться за её существование.
университета «как лицу дворянского Профессор кафедры математиче-
происхождения». ской логики и вычислительной мате-
Осенью 1930 г. он начинает рабо- матики на механико-математическом
тать лаборантом в Государственном факультете МГУ, он в 1953 г. организу-
геофизическом институте у извест- ет семинар по программированию, а с
ного физика, академика П. П. Лазарева 1954 г. — семинар по кибернетике. Се-
(1878—1942). Высшее образование минар стал центром, где объединились
Алексей Ляпунов получает экстерном, учёные и специалисты, а Ляпунов ко-
сдав экзамены по университетским ординировал работы в области кибер-
курсам в МГУ. Поддерживаемый из- нетики. По его инициативе в 1959 г. при
вестным математиком, академиком Академии наук СССР создаётся Науч-
Н. Н. Лузиным (1883—1950), Ляпунов ный совет по комплексной проблеме
углублённо изучает математику и «Кибернетика», который возглавляет
включается в исследования в облас- академик А. И. Берг (1898—1979).
ти теории множеств, которым посвя- В 1961 г. Алексей Андреевич Ляпу-
щены более 60 его научных работ. нов принимает приглашение создате-
Алексей Ляпунов публикует работы ля Сибирского отделения АН СССР и
по теории множеств и незадолго до Академгородка академика М. А. Лаврен-
Великой Отечественной войны защи- тьева и переезжает в Новосибирск. Он
щает кандидатскую диссертацию. создаёт отдел кибернетики в Институ-
Война прервала на время научную те математики и кафедру теоретичес-
деятельность Ляпунова. В 1942 г. Ля- кой кибернетики в Новосибирском
пунов добровольцем уходит на фронт, университете. За годы, прожитые там,
командиром топографического взво- Алексей Андреевич сумел осуществить
да в артиллерии. многие из своих замыслов. Он был
После войны Алексей Андреевич инициатором создания в 1962 г. пер-
работает преподавателем математи- вой в стране физико-математической
ки в Артиллерийской академии име-
ни Ф. Э. Дзержинского.
Ляпунов не оставляет науку, защи-
Медаль «Computer Pioneer». На ли-
щает докторскую диссертацию в Мате-
цевой стороне – Чарлз Бэббидж,
матическом институте имени В. А. Стек-
создатель первой (механической)
лова, работает в Институте геофизики
вычислительной машины. На обрат-
АН СССР, получает звание профессора.
ной стороне надпись: «Компью-
Академик М. В. Келдыш приглашает его
терное общество признало Алексея
в отдел кибернетики Отделения при-
Андреевича Ляпунова основателем
кладной математики МИАН.
советской кибернетики и програм-
Ляпунов — один из первых отече-
мирования».
ственных учёных, кто оценил значе-
ние кибернетики, внёс большой вклад

417
Компьютер

вый язык программирования, отли-


чающийся от машинного и разрабо-
«За короткий срок отношение к кибернетике прошло следующие
танный до появления алгоритмиче-
фазы: категорическое отрицание — констатация существования —
ских языков типа Algol.
признание полезности, отсутствие задач для математиков — при-
За свою научную, педагогическую
знание некоторой математической проблематики — полное при-
и организаторскую деятельность он
знание математической проблематики кибернетики».
был награждён правительственными
А. А. Ляпунов. наградами: орденом Ленина, двумя ор-
Выступление на IV Всесоюзном математическом съезде. 1966 г. денами Трудового Красного Знамени
и орденом «Знак Почёта». Но больше
всего учёный гордился орденом Крас-
ной Звезды, который он получил на
Великой Отечественной войне за уча-
стие в боях по освобождению Крыма.
Алексей Андреевич был не только
выдающимся математиком, но и пре-
красно знал литературу, интересовал-
ся архитектурой и живописью, любил
демонстрировать свою минералоги-
ческую коллекцию, в совершенстве
Ляпунов читает владел французским языком, глубоко
лекцию. знал историю, искусство и культуру
Франции, хотя никогда не выезжал за
школы-интерната при Новосибир- пределы своей страны.
ском университете, первым председа- Алексей Андреевич Ляпунов умер
телем его учёного совета и активным 23 июня 1973 г. и похоронен на Введен-
лектором; поддерживал организацию ском кладбище (аллея, ведущая к его
Всесибирских математических олим- могиле, проходит мимо места, где по-
пиад и летних физматшкол в Академ- коится прах его учителя Н. Н. .Лузина).
городке. Первым шагом в международном
В 1964 г. Ляпунов становится чле- признании заслуг Алексея Андрееви-
ном корреспондентом АН СССР по от- ча в области информатики явилось
делению математики. присуждение ему в 1996 г. медали
Область научных интересов Ляпу- «Computer Pioneer». Это было сделано
нова огромна. Его работы посвяще- одной из самых авторитетных про-
ны общим вопросам кибернетики, фессиональных организаций в сфере
математическим основам программи- высоких технологий — IEEE Computer
рования и теории алгоритмов, мате- Society. На лицевой стороне медали
матической лингвистике и машин- изображён Чарлз Бэббидж. Оборот-
ному переводу, кибернетическим ную сторону украшает надпись на
аспектам биологии, а также философ- английском языке: «Компьютерное об-
ским и методологическим проблемам щество признало Алексея Андрееви-
развития научной мысли. Им создан ча Ляпунова основателем советской
операторный метод, по существу пер- кибернетики и программирования».

ТРОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ


И ТРОИЧНАЯ ЭВМ

В 1840 г. французским математиком мы служит число 3, но вместо цифр


и изобретателем механических вы- 0, 1 и 2 используются 0, 1 и –1 (обыч-
числителей Леоном Лаланном была но вместо «минус
– единицы» исполь-
предложена уравновешенная троич- зуется символ 1 ). По аналогии с бита-
ная система. Основанием этой систе- ми двоичной системы счисления

418
Эволюция компьютера в XX веке

такие обозначения называют три-


тами.
Сразу же можно заметить, что знак ЗАДАЧА БАШЕ О ВЕСАХ
числа определяется первым ненуле-
вым символом в его троичной записи. Интересно, что представление чисел в уравновешенной троичной сис-
Если– это 1, то число положительное, а теме неявно присутствует ещё в знаменитой «задаче Баше о весах»— ко-
если 1, то отрицательное. Очень про- торую, впрочем, Леонардо Пизанский (Фибоначчи) сформулировал за
сто, поразрядно, выполняются в урав- 400 лет до Баше, в XIII в. В задаче требуется найти набор из четырёх
новешенной троичной системе – сло- гирь, с помощью которого можно взвесить любой груз весом от 1 до
жение–и–вычитание
– – (1+0=1, 1+1 =0, 40 кг (или набор из трёх гирь для взвешивания любого груза весом от
1+1=11 , 1 +1 =11). Сложим в уравнове- 1 до 13 кг— задача известна в разных вариантах).
шенной троичной системе числа 247 Для решения задачи надо просто найти представление в уравнове-
и 122: шенной троичной системе целого числа, равного весу груза. Пусть, на-
пример, надо взвесить груз в 33 кг. Представим число 33 в уравнове-
100011 –
шенной троичной системе: 33=27+9-3+0=11103. Значит, гири 27 кг
+
––––– и 9 кг надо положить на одну чашу весов, а взвешиваемый груз и гирю
111111 3 кг— на другую. Если к этим трём гирям добавить ещё одну весом 1 кг,
–––– то мы сможем взвесить любой груз, не превышающий 40 кг.
1 1 1 1 10 0
––––
Легко проверить, что 111 1 1 003=369.

Столь же просто производится и 810=32+0–30 =1013,
вычитание: для этого достаточно –––––
изменить знак вычитаемого на проти- 11 1 1 1 13 = 35–34–33–32–31–30 =243–81–27–9–3–1=12210,
воположный и сложить число с умень- –
шаемым. Умножение также сводится –1710=33+32+0+30 = 11013,
к простым операциям изменения зна- – ––
ка и сложения. 1000 1 13= –35+0+0+0–31–30 = –243–3–1=–24710
Более 100 лет после Лаланна урав-
новешенная троичная система не при-
влекала большого внимания учёных. ма интересной и оригинальной оте-
Но когда на смену ранним механиче- чественной разработке. Речь идёт об
ским и электромеханическим вычис- ЭВМ «Сетунь», созданной в Вычисли-
лительным устройствам, основанным тельном центре МГУ в 1959 г. под ру-
на десятичной системе счисления, ста- ководством академика С. Л. Соболева
ли приходить электронные компью- и Н. П. Брусенцова. Начиная с 1962 г.
теры, она всерьёз рассматривалась как машина выпускалась серийно, и за три
возможная альтернатива двоичной. года было изготовлено около 50 эк-
Арифметические операции над земпляров. Устройства на базе троич-
числами, записанными в этой систе- ной арифметики оказались не только
ме, выполняются очень просто. Обла- более простыми и быстрыми, но и ЭВМ «Сетунь».
дает она и другими достоинствами: за-
пись числа в ней короче, чем при
использовании двоичной системы;
нет необходимости вводить специ-
альный знаковый разряд.
Знаменитый американский специ-
алист в области методов вычислений
Доналд Кнут писал в 1969 г., что вре-
мя троичной арифметики в компью-
тере наступит, если удастся найти за-
мену триггеру (логическая схема,
имеющая два состояния и позволя-
ющая хранить один бит информа-
ции). Однако задолго до выхода кни-
ги Кнута троичная система счисления
уже была успешно применена в весь-

419
Компьютер

С. Л. Соболев. мые разные задачи. Память была


двухуровневой: оперативная память
на ферритовых сердечниках объё-
мом 162 коротких слова (9 тритов)
и основная память на магнитных ба-
рабанах объёмом 3888 коротких слов.
Время выполнения сложения и вычи-
тания составляло 180 мкс, а умноже-
ния — 320 мкс. Конечно, сегодня эти
цифры кажутся весьма скромными,
но в то время «Сетунь» превосходи-
ла другие малые машины по произ-
водительности. При этом она была
значительно дешевле машин своего
класса.
весьма надёжными. Они также потреб- Спустя несколько лет, в 1970 г., был
ляли меньшую мощность, чем двоич- построен экспериментальный обра-
ные устройства, реализованные на тех зец усовершенствованной машины
же элементах. «Сетунь 70». Эта ЭВМ отличалась ря-
Эта машина выполняла операции дом интересных архитектурных осо-
с фиксированной запятой, а опера- бенностей, а идеи применения трёх-
ции с плавающей запятой реализо- значной логики получили в ней
вывались программно. Система ко- дальнейшее развитие. И хотя проект
манд насчитывала всего 24 команды «Сетунь» до сих пор остаётся единст-
(среди них — три команды условно- венным примером использования
го перехода и команда умножения троичной системы в компьютерах,
тритов), но, используя их, можно бы- возможно, время троичных машин
ло эффективно программировать са- ещё придёт.

ОТЕЧЕСТВЕННЫЕ ЭВМ

На первый взгляд может показаться, ласть требовала больших финансо-


что вычислительная техника разра- вых вложений, что было не под силу
батывалась только в США. Но это не послевоенной Европе, ставшей основ-
С. А. Лебедев. так. Действительно, новая научная об- ным плацдармом Второй мировой
войны. Одной из немногих стран, ко-
торая, несмотря ни на что, стала уча-
стником гонки в компьютерострое-
нии, являлся СССР.
В 1948 г. академик Сергей Алексе-
евич Лебедев (1902—1974), пионер
отечественного производства ком-
пьютеров, начал строительство пер-
вой советской (и европейской) ЭВМ —
малой электронной счётной маши-
ны (МЭСМ). Работы по её созданию
носили исследовательский, экспери-
ментальный характер. В 1950 г. в Ин-
ституте электромеханики Академии
наук Украины МЭСМ ввели в эксплу-
атацию. В 1952—1953 гг. она остава-
лась практически единственной ре-
гулярно эксплуатируемой ЭВМ в
Европе.

420
Эволюция компьютера в XX веке

Основные параметры машины: бы-


стродействие — 50 операций в секун-
ду; в памяти можно было хранить 31
16-разрядное число и 63 команды дли-
ной 20 бит; площадь помещения, за-
нимаемого машиной, — 60 м2; потреб-
ляемая мощность — 25 кВт. Только в
ОЗУ использовалось 2,5 тыс. триодов
и 1,5 тыс. диодов. Для расширения ма-
ленькой памяти можно было допол-
нительно использовать магнитный
барабан ёмкостью 5 тыс. слов (по
16 бит). Машина имела сменное так
называемое долговременное запоми-
нающее устройство (позже названное
ПЗУ) для хранения числовых констант
и часто выполняемых команд.
Конечно, машина, по современным
меркам работала медленно, но основ- В таком виде машина известна как БЭСМ-4.
ные принципы её построения (Лебе- БЭСМ-1. На ней решались разнооб-
дев предложил их независимо от разные задачи, например подсчиты-
проводимых в США разработок) ис- вались орбиты движения 700 малых
пользовались при проектировании планет Солнечной системы.
других ЭВМ. МЭСМ фактически яви- Для промышленного изготовления
лась моделью БЭСМ — большой элект- конструкцию машины изменили, и в
ронной счётной машины. Обе маши- 1958 г. начался серийный выпуск лам-
ны (МЭСМ и БЭСМ) были изготовлены повой машины БЭСМ-2. Её потребля-
в единичном экземпляре. емая мощность составляла 75 кВт.
Практически весь коллектив со- В 1964 и 1966 гг. появились новые
трудников, создавших МЭСМ, стал яд- машины этого ряда — БЭСМ-3М и
ром Вычислительного центра АН БЭСМ-4. В отличие от своих предше-
УССР, организованного на базе лабо- ственниц, они собирались из полу-
ратории С. А. Лебедева. проводниковых элементов. Машина
Работа над БЭСМ в Вычислитель- БЭСМ-4 имела память 2 × 4096 45-раз-
ном центре закончилась в 1952 г., и рядных слов, четыре магнитных ба-
С. А. Лебедев
через год в АН СССР она уже вошла в рабана объёмом 16 384 слов и потреб- и В. А. Мельников
строй. БЭСМ по праву признана луч- ляла всего 8 кВт. у БЭСМ-6.
шей европейской ЭВМ 50-х гг. XX в.
Машина обрабатывала 39-разрядные
слова со средней скоростью 10 тыс.
операций в секунду. В качестве внеш-
них запоминающих устройств БЭСМ
использовала два магнитных бараба-
на по 5120 слов в каждом. Скорость
считывания с барабана составляла
800 слов в секунду. К машине также
подключались магнитные ленты об-
щей ёмкостью 120 тыс. слов.
БЭСМ положила начало целой се-
рии цифровых вычислительных ма-
шин. Ртутные линии задержки, ис-
пользуемые в качестве элементов
оперативной памяти, в 1954 г. были
заменены на запоминающие элект-
ронно-лучевые трубки. А через два го-
да их сменили ферритовые сердечни-
ки объёмом 1024 39-разрядных слова.

421
Компьютер

В 1967 г. для задач, требующих ной техники того времени: мульти-


множества сложных вычислений, бы- программный режим, аппаратная си-
ла создана полупроводниковая маши- стема прерывания, схема «защиты па-
на БЭСМ-6 со средним быстродейст- мяти» и автоматического присвоения
вием 1 млн операций в секунду. По адресов (т. е. фактически диспетчер
сравнению с БЭСМ-4 память возрос- памяти). Любая часть памяти могла
ла в 8 раз (разрядов было 48, а не 45), использоваться в качестве стека. Цен-
а магнитных барабанов стало 16 по тральный процессор использовал од-
32 тыс. слов в каждом. ноадресную систему команд и 16 бы-
В БЭСМ-6 отразились все передо- стродействующих регистров.
вые тенденции развития вычислитель- Для программирования применя-
лись языки FORTRAN и Algol. Машина
оказалась настолько удачна и надёжна,
что эксплуатировалась до 90-х гг. Ред-
МАШИНА ДЛЯ ИНЖЕНЕРНЫХ РАСЧЁТОВ кий современный компьютер похва-
стает подобным долголетием!
ЭВМ МИР (машина для инженерных расчётов) — фактически первый Под руководством С. А. Лебедева в
персональный компьютер (мог разместиться в небольшой комнате), 1958 г. в Институте точной механики
задуманный и построенный под руководством академика Виктора Ми- и вычислительной техники АН СССР
хайловича Глушкова в 1965 г. в Институте кибернетики АН УССР. создали ЭВМ М20. Она стала родона-
Первые машины использовали алгоритмический язык МИР, весьма чальницей семейства машин М220
близкий к математическому. В ходе проведения вычислений можно и М222. Среднее быстродействие М20
было легко изменять алгоритм, формулы, коэффициенты, подобно было 20 тыс. операций в секунду. Па-
тому как это делалось на персональных компьютерах 90-х гг. при ис- мять объёмом 4096 45-разрядных слов
пользовании языка BASIC. Программист работал за столом с электри- выполнена на ферритовых сердеч-
ческой пишущей машинкой, с которой вводилась и выводилась ин- никах. Три магнитных барабана запо-
формация. минали более 12 тыс. слов. Ввод про-
В машине предусматривалось микропрограммирование (специаль- исходил с перфокарт, вывод — на
ные микропрограммные матрицы общей ёмкостью около 700 кбит, печатающее устройство. Машина бы-
описывающие логику команд машины). Основная память располага- ла построена по блочному принципу,
лась на магнитных сердечниках ёмкостью 4096 байт. Арифметическое что упрощало ремонт. В ней исполь-
устройство было матричным, что позволило сделать произвольную зовалось 4,5 тыс. электронных ламп и
разрядность обрабатываемых чисел, при этом быстродействие состав- 3,5 тыс. полупроводниковых диодов.
ляло около 8 тыс. операций в секунду. В 1957 г. в Пензе была создана од-
В 1968 г. вышла модификация машины — МИР-1, которая могла ноадресная ламповая ЭВМ «Урал-1».
вводить и выводить информацию на перфоленту. Экземпляр ЭВМ Хотя машина отличалась большими
МИР на выставке в Лондоне приобрела американская фирма IBM. размерами, по производительности
В 1969 г. была выпущена машина МИР-2, в ней впервые применён её отнесли к малым. Можно считать,
дисплей со световым пером, упростивший диалог с ЭВМ и сделавший что с неё началась история малых
его более оперативным. В новой машине использовался язык програм- ЭВМ. При малом быстродействии (100
мирования Аналитик, дальнейшее развитие алгоритмического языка операций в секунду) машина не нуж-
МИР. На ней можно было решать задачи линейной алгебры не толь- далась в быстром запоминающем ус-
ко в числовом, но и в аналитическом виде. Быстродействие машины тройстве, поэтому в качестве основ-
возросло до 12 тыс. операций в секунду. Ряд машин МИР имел про- ной памяти использовался магнитный
должение. барабан объёмом 1024 36-битных
слова, который впоследствии замени-
ли на ферритовое запоминающее
устройство. В 1964—1971 гг. выпусти-
ли ряд программно- и аппаратно-сов-
местимых между собой моделей:
«Урал-11», «Урал-14», «Урал-16».
Машины серии «Минск» в 70-х и
80-х гг. XX в. применялись в основ-
ном для инженерных и научных рас-
чётов. Одна из них, «Минск-22» (её
показатели: 5 тыс. операций в секун-
Машина МИР-1. В. М. Глушков. ду, память — 8 тыс. 37разрядных

422
Эволюция компьютера в XX веке

Машина «Урал-1»
(слева).
«Минск-22» (справа).

слов), долгое время являлась основ- ЭВМ — процессоры передачи дан-


ным компьютером вычислительно- ных — обеспечивали связь с пользо-
го центра ГУМа (главного универма- вателями. В 1961 г. под руко-
га страны). В ней (магнитная лента В МВК использовано много неор- водством академика
вмещала 1,6 млн слов) хранилась ин- динарных решений, например, каж- В. М. Глушкова была
формация о движении товаров по дая величина, хранящаяся в памяти, создана полупровод-
всем складам магазина и производи- снабжена дополнительным призна- никовая ЭВМ «Днепр».
лся расчёт заработной платы. Одна- ком — тегом (управляющим разря- При этом установлен
ко, испытывая некоторое недоверие дом). В нём содержится информация мировой рекорд раз-
к вычислительной технике, руковод- о типе хранимой величины, а также работки: от идеи до
ство параллельно держало обшир- признак защиты от чтения или запи- производства маши-
ный штат бухгалтеров, проверявших си. Архитектура центрального процес- ны прошло всего три
вычисления машины. Ассемблер ЭВМ сора имела много общего с аналогич- года.
имел кириллическую мнемонику и ными комплексами американской
назывался ЯСК (язык символическо- фирмы Burroughs.
го кодирования). В конце 70-х гг. в Советском Сою-
Другой компьютер этого ряда — зе началось производство универсаль-
«Минск-32» обладал быстродействием ных многопроцессорных комплексов
25 тыс. операций в секунду и комп- четвёртого поколения «Эльбрус-2».
лектовался памятью до 65 тыс. 37- Производительность каждого процес-
разрядных слов. Машина была про- сора превышала 10 млн операций в
граммно-совместима с «Минском-22». секунду. Суммарная производитель-
Медленные и быстрые каналы позво- ность могла достигать 100 млн опе-
ляли подключать к ней магнитные ба- раций в секунду.
рабаны, что существенно ускоряло Отечественное компьютерострое-
производительность. ЭВМ «Минск-32» ние испытывало трудности, связанные
уже имела компиляторы с языков про- с необходимостью высококачествен- Труды академика
граммирования высокого уровня — ного промышленного изготовления В. М. Глушкова по
Алгамс (разновидность Algol) и Кобол. электронных компонентов. Вероят- теоретической и при-
К отечественным суперЭВМ (ма- но, поэтому был повторён не совсем кладной кибернетике,
шины, предназначенные для высоко- удачный опыт фирмы IBM System/360 теории цифровых ав-
скоростных вычислений) относят в виде серии ЕС ЭВМ (единой серии). томатов (монографии
многопроцессорные вычислитель- Многие успешные (и не очень) реше- «Синтез цифровых ав-
ные комплексы (МВК) «Эльбрус», раз- ния копировались с западных ана- томатов», статья «Аб-
работанные в 70—80-х гг. «Эльбрус-1» логов. страктная теория ав-
достигал производительности 10 млн Прообразом киевской мини-маши- томатов» в журнале
операций в секунду. В конфигурацию ны СМ-4 и зеленоградской «Электро- «Успехи математиче-
машины входило до десяти централь- ники-79» стали машины серии PDP-11 ских наук») заложили
ных процессоров, обращающихся к фирмы DEC (США). Однако отечест- основы теории ЭВМ.
общей памяти. Обмен с внешними венные образцы уступали по основ- Русский кибернетик
устройствами производили процес- ному критерию потребителя — надёж- Глушков стал известен
соры ввода-вывода, которые факти- ности. А с появлением персональных в мире не меньше, чем
чески представляли собой специа- компьютеров бороться с всепроника- американец Н. Винер.
лизированные ЭВМ. Максимально ющим IBM PC не смогли ни запад-
машина могла управлять четырьмя ноевропейские конкуренты, ни рос-
такими процессорами. Другие спец- сийские разработчики.

423
СОВРЕМЕННЫЙ КОМПЬЮТЕР
ЧЕТВЁРТОЕ ПОКОЛЕНИЕ КОМПЬЮТЕРОВ

БОЛЬШИЕ раз; при этом размеры и потребление


электроэнергии у современных ЭВМ
И СВЕРХБОЛЬШИЕ стали в 10 тыс. раз меньше, чем у
ИНТЕГРАЛЬНЫЕ СХЕМЫ машин сравнимой производительно-
сти 25-летней давности».
Ещё в 1982 г. в статье журнала «Scien- А начиналось всё в 60-х гг. XX
tific American» Ху Мин Туг и Амар Гуп- столетия, когда доминирующей тех-
та писали: «Если бы за последние нологией в производстве компьютер-
25 лет авиационная промышленность ных компонентов стали чипы —
развивалась столь же стремительно, крошечные прямоугольники полупро-
как и вычислительная техника, то водника, изготовленные из кремния
“Боинг-767” можно было бы приобре- и «упакованные» в изолирующий
сти сегодня за 500 долларов и обле- материал. Они получили название
теть на нём земной шар за 20 минут, «интегральные схемы».
израсходовав при этом 19 литров го- Основным элементом схемы яв-
рючего. По этой аналогии, хотя и не лялся транзистор, поэтому «ёмкость»
совсем точной, можно судить о тем- её измеряли в транзисторах. Техно-
пах снижения стоимости энергопо- логия производства интегральных
требления и роста быстродействия схем прошла эволюцию от малых
вычислительных машин. интегральных схем (МИС), содержа-
Цены на логические элементы щих лишь несколько транзисторов,
компьютеров ежегодно снижаются до больших интегральных схем
на 25 %, а для устройств памяти этот (БИС), объединяющих тысячи, сотни
показатель ещё выше — 40 %. За 25 лет тысяч и более транзисторов, и сверх-
скорость вычислений возросла в 200 больших интегральных схем (СБИС).

424
Современный компьютер

Термин «сверхбольшие интеграль-


ные схемы», появившийся в 1986 г.,
относился к схемам с памятью 1 Мбайт.
Каждый такой чип содержал более
миллиона транзисторов. Изготовлять
интегральные схемы можно только
на автоматизированном производ-
стве, поэтому стоимость чипов была
невелика. Массовое производство
больших интегральных схем нача-
лось в 70-х гг. с выпуска памяти ЭВМ
и микросхем для карманных кальку-
ляторов.
Современный компьютер объеди-
няет множество интегральных схем,
имеющих металлические контакты для
соединений, источник питания и дру-
гие мелкие элементы (резисторы, кон-
денсаторы и др.). Интегральные схе-
мы заключаются в корпуса, которые
отличаются формой друг от друга.
Наиболее «старые» и поныне попу-
лярные интегральные схемы (микро-
схемы) — это ДИПы (англ. dual in-line ная печатная плата (англ. printed- Плата ЭВМ VAX.
package, DIP), в них выводы («ноги») circuit board, PCB) намного дешевле
организованы в два параллельных и технологичнее, чем простое соеди-
ряда с интервалом 2,54 мм между бли- нение проводниками, так как «рисо-
жайшими контактами. Иногда выво- вание» можно произвести за один
ды расположены только с одной сто- этап, если наложить трафарет, в кото-
роны микросхемы, такой чип носит ром будет вырезан рисунок соедине-
название СИПа (англ. single in-line ний для всей платы целиком.
package, SIP). Cложный, современный, Иногда достаточно сложно без пе-
требующий сотню или более контак- ресечений произвести все нужные
тов чип имеет иную конфигурацию, соединения на плате, в таком случае
где выводы микросхемы расположе- используется многослойный мон-
ны по всем её краям, он именуется таж. В мини-компьютерах были пла-
ПГА (англ. pin-grid array). ты с семи- и даже десятислойным
Интегральные схемы можно со- монтажом. Как правило, пара слоёв
единять как при помощи пучков про- выделялась для подводки питания к
водов, так и гораздо проще. Для этого микросхемам на плате, а остальные
на тонком листе изолятора (напри- выполняли роль соединителей. Про-
мер, на стекловолокне) располагают изводство таких плат более трудоём-
интегральные схемы и другие элемен- кое. Чем больше интегральных схем
ты, чтобы контакты через подготов- и элементов на плате, тем она слож-
ленные отверстия (сверления) выхо- нее.
дили на другую сторону листа (платы), Кроме того, существует и иная про-
которая одновременно выполняет и блема. Чипы, как и транзисторы, при
функцию механического крепежа. работе излучают тепло. Поэтому, что-
Далее торчащие «ножки» необходи- бы избежать перегрева и выхода из Джек Килби, «отец»
мо соединить между собой по зара- строя микросхемы и даже целой пла- интегральной схемы,
нее разработанной электрической ты, разработчики вынуждены поме- лишь в 2000 г. был
схеме. Соединения можно просто щать микросхемы на безопасном рас- удостоен Нобелев-
«нарисовать» каким-нибудь токо- стоянии друг от друга. Иногда для ской премии за своё
проводящим материалом, например соблюдения температурного режима гениальное изобре-
медью. Такой «рисунок» и будет заме- на интегральную схему устанавлива- тение.
ной соединительных проводов. При ется металлический радиатор или
промышленном изготовлении подоб- даже вентилятор.

425
Компьютер

2 4 = 16, т. е. потенциально у этого


«малыша» имелось 16 команд, при-
чём со всеми методами адресации.
Поэтому инструкции были длиной
8 бит: 28 = 256. Данные и программа
хранились в разной памяти. Всего
1 кбайт памяти отводился под дан-
ные и 4 кбайт — под программу.
В Intel 4004 предусмотрен 12-битный
счётчик команд (PC) и малюсенький
стек глубиной всего в 4 вызова — для
выполнения подпрограмм (CALL) и
возврата из подпрограмм (RET), а так-
же шестнадцать 4-битных регистров,
которые могли группироваться в
восемь 8-битных. Всего Intel 4004
имел 46 инструкций (команд).
После MSC-4 появилось большое
количество микропроцессоров раз-
личных производителей. С увеличе-
нием плотности интегральных схем
возрос до 32 бит размер машинного
Печатная плата. МИКРОПРОЦЕССОРЫ слова, расширился набор команд
микропроцессоров, хотя по сравне-
С возникновением интегральных схем нию с «большими» процессорами он
впервые появилась возможность изго- был невелик (например, отсутство-
Скромные возмож- товить процессор (или даже целый вали команды для вычислений с пла-
ности микропроцес- компьютер) в одном-единственном вающей запятой), увеличилась про-
сора Intel 4004 объ- чипе, т. е. создать микропроцессор. изводительность микропроцессоров,
ясняются ограниче- Первым настоящим микропроцес- т. е. число выполняемых команд в се-
ниями, наложенными сором был Intel 4004, произведённый кунду.
плотностью инте- фирмой Intel (США) в 1971 г. Перво- Микропроцессоры уже могли
гральных схем (раз- начально он использовался в каль- управлять, например, компонентами
мер чипа 1971 г. — куляторах в составе четырёх чипов подачи топлива («компьютеры» в авто-
1 см2). набора MSC-4 (большие интегральные мобильных двигателях) и сложными
МОП-схемы). Длина машинного слова бытовыми приборами. Они постепен-
Intel 4004 всего 4 бит. «Уложить» все но приобретали черты процессоров
команды в одно такое слово просто «больших» ЭВМ. С увеличением выпу-
Машина Intellec 4 на
микропроцессоре невозможно: разнообразные комби- ска микропроцессоров появились их
Intel 4004. нации битов 4-битного слова дают индустриальные стандарты.

Z-80
В апреле 1974 г. фирма Intel выпусти-
ла 8-битный микропроцессор Intel
8080, превосходивший по всем пока-
зателям предыдущие процессоры. Но
настоящую нетленную славу снискал
себе микропроцессор Z-80, который
разработала и произвела небольшая,
по сравнению с Intel фирма Zilоg.
Он был полностью совместим с Intel
8080, т. е. умел всё, что Intel 8080, но и
ещё многое… С этих пор фирма Intel
перешла к разработке 16-битных, а
затем 32- и 64-битных процессоров,

426
Современный компьютер

ставших основными для современ- RISC (Reduced Instruction Set Com-


ных персональных компьютеров. puter) — процессоры с сокращённым
Z-80 применяется и в настоящее набором команд. Они имеют упро-
время, а в 80-х гг. он произвёл фурор. щённую логику-схему — очень про-
8-битный микропроцессор исполь- стые инструкции и методы адресации
зовал 16-битную адресацию, т. е. мог без многоуровневой косвенности.
напрямую обращаться к памяти в 64 Благодаря этому процессор становит-
кбайт. Было добавлено более 80 ся меньше, проще и соответственно
новых инструкций по сравнению с быстрее.
Intel 8080: операции с 1-, 4-, 8- и 16- История RISC восходит к компью-
битными данными, а также блоковые терам CDC 6600, когда Сеймур Крей
(для пересылки за одну команду до предложил упростить набор команд
64 кбайт данных) или специальные для ускорения вычислений, с успе-
команды для поиска нужного байта в хом применив эту архитектуру при
памяти. Процессор имел два набора создании широко известной серии
регистров и операции переключения суперкомпьютеров Cray. Однако окон-
между ними, что упрощало организа- чательно RISC-архитектура сфор-
цию обработки прерываний (не тре- мировалась после трёх исследова-
бовалось запоминать состояние реги- тельских проектов: процессора 801
стров в программе). В Z-80 также компании IBM, процессора RISC Кали-
было добавлено два 8-битных индекс- форнийского университета (Беркли)
ных регистра (IX и IY). и процессора MIPS Станфордского
Быстродействие микропроцессо- университета.
ра определялось особенностями ин- Технология RISC, которую впервые
тегральной схемы и при функцио- представила IBM в 1970 г., никогда не
нировании задавалось кварцевым публиковалась — компьютер на её
генератором — часами. Это называ- основе серийно не изготовлялся.
лось тактовой частотой процессора. В 1980 г. Дэвид Паттерсон с коллек-
Первый Z-80 имел тактовую часто- тивом Калифорнийского университе-
ту 2,5 МГц, более поздний Z-80C — уже та (Беркли) создал две машины, полу-
8 МГц. Самая «короткая» команда пе- чившие названия RISC-I и RISC-II.
ресылки из одного регистра в другой Главной идеей этих ЭВМ было отде-
выполнялась за четыре такта процес- ление медленной памяти от высо-
Фрагмент платы
сора. Первый Z-80 осуществлял более коскоростных регистров, создание компьютера MSX на
600 тыс. команд в секунду — весьма отдельных «быстрых» команд для процессоре Z-80.
впечатлительно для «малыша».

«КИСКИ» И «РИСКИ»
Большинство микропроцессоров
относится к стандарту архитектуры
CISC (англ. Complex Instruction Set
Computer) с полным набором ко-
манд. Её прародителем принято счи-
тать IBM.
Фирма Intel — лидер в разработке
CISC-микропроцессоров — знамени-
та своими сериями x 86 и Pentium.
Для CISC-процессоров характерно
небольшое число регистров, но при
этом количество команд, методов
адресации с большим уровнем кос-
венности, форматов команд остаётся
большим.
Данная архитектура является стан-
дартом для микрокомпьютеров.

427
Компьютер

ТИПЫ ИНТЕГРАЛЬНЫХ СХЕМ

Полупроводники, из которых изготовляют тран-


зисторы и диоды, разделяются на полупроводни-
ки с электронной — n- (от англ. negative — «отри-
цательный») и дырочной — р- (от англ. positive —
«положительный») проводимостью. Принцип дей-
ствия полупроводниковых диодов основан на
свойствах p — n- перехода, когда в контакте нахо-
дятся два полупроводника p- и n- типа. В месте
контакта происходит диффузия положительных
зарядов (дырок) из области p в область n, а элек-
тронов обратно, из n в p. Однако без внешнего
воздействия (электрического тока) процесс ста-
билизируется, потому что образуется так назы- Транзистор в разрезе. Полевой транзистор.
ваемый запирающий слой.
В качестве альтернативы был разработан полевой
n p транзистор. Он представляет собой однополярный
– – – – – – ++ – – ++++++ полупроводниковый прибор, выводы которого назы-
– – – – – – ++ – – ++++++ ваются исток, сток, затвор. При подаче напряжения
на затвор и сток (или соответственно исток) носите-
ли заряда, электроны в областях с проводимостью n-
При подключении к области p «плюса» источника типа (или дырки в областях с проводимостью p-типа),
электрического тока, а к n соответственно «минуса» проходят через возникающий под затвором тонкий
запирающий слой разрушится, и такой диод будет проводящий канал. Как правило, ток в канале изме-
проводить ток. Если осуществить подключение источ- няется посредством электрического поля, создава-
ника питания наоборот, т. е. к p — «минус», а к n — емого напряжением, приложенным к переходу (меж-
«плюс», то ток будет фактически равен нулю, запи- ду затвором и стоком). Если сток и исток изготовлены
рающий слой расширится. Это основное свойство из полупроводника n-типа, то транзистор называют
полупроводниковых диодов позволяет применять их n-канальным, если р-типа — p-канальным.
в качестве выпрямителей тока. Большинство полупро- Существуют полевые транзисторы, у которых
водников делается из кремния и германия с различ- затвор отделён от канала слоем диэлектрика. Такие
ными добавками, из оксидов некоторых металлов и транзисторы состоят из пластины полупроводника
из собственно металлов. В зависимости от добавок (подложки) с высоким удельным сопротивлением,
они имеют n- или p-тип. имеющей две области с противоположным типом элек-
Транзистор представляет собой трёхслойную струк- тропроводности, куда нанесены электроды — исток и
туру из таких же полупроводниковых материалов, сток. Поверхность полупроводника между ними
однако в основе его работы лежит не один, а два p — покрыта тонким слоем диэлектрика (обычно оксид
n- перехода. Внешние слои называют эмиттером и кол- кремния SiO 2), на который нанесён металлический
лектором, а средний (обычно очень тонкий, порядка электрод — затвор. Поэтому полевые транзисторы с
нескольких микрон) слой — базой. При подключении изолированным затвором — МДМ (металл — диэлек-
к транзистору источника тока малые изменения тока, трик — полупроводник) часто называют МОП-тран-
протекающего от базы к коллектору, вызовут анало- зисторами (металл — оксид — полупроводник). Ис-
гичные, но бо′ льшие изменения тока от эмиттера к пользуют ещё слоистые диэлектрики, например
коллектору. Это свойство транзистора позволяет SiО 2 — Al 2O 3, которые соответственно называются
использовать его в качестве усилителя тока. МАОП-транзисторы (металл — алюминий — оксид —
Простейший трёхслойный транзистор называется полупроводник). В отличие от биполярных транзисто-
биполярным. Если база относится к полупроводникам ров МОП-транзисторы более экономичны.
р-типа, а эмиттер и коллектор — n-типа, то транзистор Транзистор, изобретённый в 1948 г., лежит в осно-
имеет тип n — р — n, а если, наоборот, внутри находит- ве всех современных микросхем и микропроцессоров.
ся материал типа n, а по краям — типа р, то тип тран- Недаром его авторы — Уильям Шокли (1910—1989),
зистора р — n — р. Основной недостаток биполярного Уолтер Браттейн (1902—1987) и Джон Бардин (1908—
транзистора — большое потребление энергии и выде- 1991) получили Нобелевскую премию по физике в
ление тепла. 1956 г. В вычислительной технике состояние транзи-

428
Современный компьютер

упаковки. Малое выделение тепла КМОП-парами


позволяет объединить на одном кристалле микросхе-
мы многие миллионы элементов. При этом можно
избежать опасного перегрева схем, что приводит к их
выходу из строя.
Из транзисторов составляют вентиль — электри-
ческую схему, преобразующую два и более входных
сигнала в один выходной (например, логическое «И»,
«ИЛИ» и пр.), или триггер, схему для запоминания
одного бита, т. е. находящуюся в одном из двух устой-
чивых состояний: 0 или 1. Триггер можно составить
и из пары транзисторов, а на составление логическо-
го вентиля средней сложности обычно идёт четыре —
восемь транзисторов.
Интегральные схемы (чипы) классифицируются по
плотности, которая определяется числом транзисто-
Микросхема. ров, включённых в них, или числом логических вен-
тилей. Если говорят, что на кристалле 100 тыс. тран-
стора, когда через коллектор течёт большой ток, зисторов, значит, можно сказать, что схема содержит
можно условно принять, например, за 1, а малый — 50 тыс. КМОП-пар, или 12,5 тыс. логических вентилей.
за 0. Но условия использования транзистора не огра- Хотя большинство интегральных схем традицион-
ничиваются только потреблением им энергии при хра- но производится из кремния, может также использо-
нении информации (0 или 1), важно также и время, ваться полупроводник из другого материала — арсе-
которое потребуется для перевода его из одного нида галлия. Такие интегральные схемы сложнее в
состояния в другое: из 0 в 1 или из 1 в 0. производстве, но зато имеют более высокие скорост-
Вначале транзисторы изготовлялись как отдель- ные показатели (примерно в пять раз выше, чем у крем-
ные элементы и представляли собой цилиндры диа- ниевых схем).
метром в десяток миллиметров с не-
сколькими проволочными выводами.
Однако в вычислительной техни-
ке используются не отдельные тран-
зисторы, а их комбинации. Обычно
соединяют два МОП-транзистора: p-
канальный и n-канальный. Такую пару
называют КМОП-парой (комплимен-
тарные МОП). КМОП-пара хороша
тем, что практически не потребляет
энергии в интервалах между переклю-
чениями, т. е. пока находится в одном
из двух устойчивых состояний, кото-
рые соответствуют 0 или 1. Примене-
ние КМОП-технологии позволяет
существенно повысить производитель-
ность, понизить энергопотребление
схем и соответственно уменьшить
выделение тепла. Эта технология
является основой так называемых
TTL-схем (транзисторно-транзистор-
ная логика). Чем меньше размеры
МОП-устройств, тем больше их мож-
но расположить на единице площади,
или, как говорят, увеличить плотность Так можно собирать триггеры.

429
Компьютер

обработки данных (вычислений) и верситетскими проектами, вызвали к


отдельных «медленных» команд для ним интерес производителей вычи-
загрузки и выгрузки данных из реги- слительной техники, и с 1986 г. начал-
стров в память и обратно. ся выпуск RISC-процессоров.
В 1981 г. Джон Хеннесси со свои- Одним из таких процессоров был
ми коллегами представил описание Motorola PowerPC 601, разработанный
«станфордской машины MIPS», раз- совместно фирмами Motorola и IBM.
работка которой основывалась на Это 32-битный RISC-процессор с так-
конвейерной обработке данных с товой частотой 80 МГц. Следующий,
предварительным, тщательным пла- PowerPC 603 (КМОП-чип), в два-три
нированием «загрузки» процессора. раза более экономичный по сравне-
Эти машины имели много общего. нию с 601, состоящий всего из 1,6 млн
Система команд процессоров была транзисторов, имел также тактовую
устроена так, чтобы выполнение частоту 80 МГц.
команды занимало минимальное ко- Дальнейшие разработки Motorola
личество тактов (в идеале один). При и IBM возникали одна за другой:
этом с целью повышения производи- PowerPC 604 (100 МГц) появился спу-
тельности команды реализованы ап- стя несколько месяцев. PowerPC 615
паратно, без применения техники имел аппаратную совместимость с
микропрограммирования, а чтобы популярным процессором 8086 фир-
максимально упростить реализацию мы Intel, создав ей весьма солидную
и увеличить скорость выполнения, конкуренцию, а PowerPC 620 был уже
использовались команды только фик- 64-битным процессором. Развитие
сированной длины. RISC-процессоров в значительной
Среди других особенностей RISC- степени определялось совершен-
процессоров следует отметить на- ствованием специальных оптимизи-
личие 32 и более регистров (по рующих компиляторов. «Умный» ком-
сравнению с 8—16 регистрами в пилятор обеспечивал эффективный
CISC-процессорах), что позволяет программный код, распределяя мно-
хранить больший объём данных. жество данных по большому количе-
Для обработки информации, как пра- ству регистров RISC-процессора,
вило, используются трёхадресные стараясь как можно меньше исполь-
команды, что даёт возможность со- зовать команды выгрузки и загрузки
хранять большее число переменных данных из «медленной» памяти
в регистрах без перезагрузки. компьютера. Подобно конвейерным
Простота и быстродействие RISC- системам, компилятор должен был
процессоров, подтверждённые уни- так преобразовать программу, чтобы

430
Современный компьютер

задать код для одновременного вы-


полнения различных вычислений на
конвейере процессора.
Для совместимости с распростра-
нёнными CISC-процессорами RISC-
процессоры имели специальный
режим эмуляции CISC-процессора,
при котором cкомпилированная про-
грамма даже не «подозревает», что
выполняется не на том процессоре.
Интересно отметить, что в разра-
ботках компании Intel (Pentium и
Pentium Pro), а также её последовате-
лей-конкурентов (AMD R5, Cyrix M1, питание от аккумуляторов и настоль- Компьютер Sinclair ZX
NexGen NX586 и др.) используются ко компактны, что их можно брать с Spectrum.
идеи конвейерной обработки, реали- собой в путешествие.
зованные в RISC-микропроцессорах, Типичный персональный компью-
так что многие различия между CISC тер включает клавиатуру, видеомони-
и RISC постепенно стираются. тор и системный блок (где и разме-
щается плата с микропроцессором).
Для связи с внешним миром компью-
МИКРОКОМПЬЮТЕРЫ тер использует телефонные линии,
для хранения данных — различные
Типичный микрокомпьютер с доста- магнитные диски, для ввода графиче-
точной памятью и развитой пери- ской информации — сканеры и мани-
ферией (множеством портов для пуляторы, для создания твёрдых
устройств ввода-вывода) содержит копий — принтеры и графопостро-
порядка 50 интегральных схем и ители.
может быть реализован на единствен- В Великобритании в 80-х гг. была
ной печатной плате. Такие машины очень популярна модель, разработан-
называются одноплатными микро- ная Клайвом Синклером, — Sinclair ZX
ЭВМ. Spectrum. Машина размещалась в
Микрокомпьютер с маленькой одном корпусе с клавиатурой, а в каче-
памятью и небольшим числом портов стве монитора использовался домаш- Одна из первых
ввода-вывода может быть изготовлен ний телевизор. Она стоила всего не- микроЭВМ, Intellec 8
в одном-единственном СБИС-чипе. сколько сотен долларов, что делало (базировавшаяся на
процессоре Intel
Одночиповые микроЭВМ получили её доступной по цене практически 8008), стоила около
широкое распространение благода- каждому. Домашний компьютер имел 2,5 тыс. долларов.
ря компактным размерам, низкой
цене и простоте ремонта (выбросить
неисправный, установить новый). Их
производство началось в середине
70-х гг., вскоре после появления пер-
вых микропроцессоров. Эти микро-
ЭВМ использовались в основном в
качестве программируемых контрол-
леров для различных машин и ме-
ханизмов (например, для станков с
числовым программным управлени-
ем, микроволновых печей и т. д.).
Появился новый класс ЭВМ широ-
кого применения — персональные
компьютеры. Это маленькие и де-
шёвые микрокомпьютеры, которые
предназначаются для установки в
офисе, в кабинете учёного, на парте
школьника. Некоторые из них имеют

431
Компьютер

нению с другими. Правда, после того


как машины, подобные IBM PC, стали
производить на микропроцессорах
фирмы AMD (англ. American Micro
Device), машины заметно улучшили
свои характеристики.
Другой знаменитый персональный
компьютер — Мacintosh. В США родо-
начальниками персональных компью-
теров считаются Стив Джобс и Сте-
фан (Стив) Возняк. 1 апреля 1976 г.
они основали фирму Apple в Пало-
Альто (штат Калифорния). Первый
компьютер, собранный в их знамени-
том гараже, назывался Apple I и имел
всего 8 кбайт памяти. В 1977 г. они раз-
работали, собрали и продали первый
настоящий компьютер Apple II. Он
подключался прямо к телевизору.
Компьютер Apple I. 48 кбайт памяти и базировался на Процессор марки 6502, используемый
микропроцессоре Z-80. в этой машине, стоил всего 25 долла-
Другая известная машина на том ров. Цена являлась определяющим
же микропроцессоре — MSX-компью- фактором в его выборе. Возможно-
тер, появившийся в Японии в 1982 г. сти процессора были достаточно сла-
Эта ЭВМ была широко распростране- быми: пять регистров, из них два
на в Японии, Корее, Южной Америке, служебных (PC и SP), остальные 8-
Нидерландах и Франции. Четыре битные.
тысячи MSX, поставленных в СССР, В 1983 г. фирмой создан компью-
стали базой для школьной информа- тер Lisa со странным устройством-
тики с 1986 г. В MSX-компьютерах манипулятором для ввода графиче-
использовался процессор Z-80 с так- ской информации. Большинство
товой частотой 3,58 МГц. Видеопро- учёных и разработчиков скептиче-
цессор (процессор, формирующий ски отнеслись к новинке. Название
изображение на экране), разработан- этого устройства — «мышь». Стоил
ный фирмой Texas Instruments (чипы Lisa очень дорого — около 10 тыс.
TI9918 или TI9928), намного превос- долларов. В 1984 г. появился менее
ходил видеопроцессоры IBM PC XT и дорогой компьютер — Мacintosh. Он
AT (1983—1988 гг.) по количеству вос- имел чёрно-белый монитор, аудио-
производимых цветов. Эта машина систему и операционную систему с
была снабжена аудиосистемой — графическим интерфейсом. В 1994
трёхканальным музыкальным синте- г. был представлен первый Мacintosh
затором, что считалось редкостью для на базе RISC-процессора Motorola
ЭВМ. MSX-1 имел 64 кбайт памяти, а PowerPC.
MSX-2 — 128 кбайт (максимальный
объём памяти MSX-2 — 4 Мбайт).
Вероятно, MSX-машины — лучшие
компьютеры, построенные на 8-бит-
ном процессоре.
Машина серии IBM PC, впервые
представленная в 1981 г., в настоящее
время фактически стала стандартом
для персональных компьютеров.
Однако видеопроцессоры первых
Электронная моделей IBM PC XT (базирующейся на
записная книжка процессоре Intel 8086) и IBM PC AT
Xircom также
использует (базирующейся на процессоре Intel
процессор Z-80. 80286) сильно проигрывали по срав-

432
Современный компьютер

Персональные компьютеры всего Компьютер Lisa.


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

ПРОИЗВОДСТВО МИКРОПРОЦЕССОРОВ

Производство интегральных схем ние и производство чипов для ком-


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

433
Компьютер

Кремниевые ем повторяя разработанную схему.


пластины перед Предварительный этап начинается с
обработкой.
заготовки. К кремниевой пластине
предъявляются высокие требования.
Свойства полупроводника сильно
различаются в зависимости от ори-
Фотошаблоны пред- ентации его кристаллической ре-
ставляют собой тон- шётки. При изготовлении пластины,
кие стеклянные пла- представляющей собой тонкий срез,
стины с нанесённой выполняемый алмазной пилой из ис-
схемой микропроцес- кусственно выращенного монокри-
сора. Они изготов- сталла кремния диаметром 200 или
ляются на высоко- 300 мм, важно её правильно ориен-
точном оптическом тировать. Чем больше размер пласти-
оборудовании, рису- ны, тем большее количество кристал-
нок наносится элек- лов (микросхем) умещается на ней.
тронным лучом. Сложным путём интегральная схе- Однако это требует применения вы-
ма изготовляется на специализи- сокотехнологичного оборудования,
рованном производстве, слой за сло- так как на этапах обработки пласти-
ны важно сохранять равномерность
воздействия (например, обеспечи-
вать постоянную температуру) по
ПРОЕКТИРОВАНИЕ ИНТЕГРАЛЬНЫХ СХЕМ всей её поверхности.
Перед тем как пластина примет
Разумеется, кристалл сложностью в несколько миллионов элементов участие в первой технологической
нельзя разработать вручную. Для этого нужны мощные компьютеры операции, её готовят: моют, полиру-
и специализированные программные системы автоматизированного ют, сушат и пр. Заготовка должна быть
проектирования интегральных схем — САПР (англ. Computer-Aided идеально чистой — это обязательное
Design, CAD). условие во всём процессе производ-
В процессе проектирования выделяют три этапа. ства. Любая пылинка, попавшая в кри-
Задание интегральной схемы. Проектируется схема на CAD-ком- сталл, может привести к браку, пото-
пьютере. Разработчик рисует её на экране. Как простая схема, так и му что расстояния между элементами
сложный микропроцессор задаются поэлементно. Элементы схемы чрезвычайно малы.
либо спроектированы человеком самостоятельно, либо для этого выбра- На первом этапе пластину, состоя-
ны некоторые стандартные элементы из базы данных. Или, например, щую из чистого кремния, покрыва-
интегральная схема просто берётся из файла со своим прообразом и ют тонкой плёнкой диэлектрика —
корректируется. При проектировании используется специальный язык диоксида кремния (SiO2). Для этого
описания схемы микропроцессора. заготовки окисляют в камере при
Верификация интегральной схемы. Это процесс сверки интеграль- давлении 25 атм и температуре около
ной схемы. Созданная схема тестируется на соответствие проекту с 1000 оС или используют другой ме-
помощью специализированного программного обеспечения. Причём тод — окисление водяными парами.
производится не только проверка на соответствие проекту, но прове- Он состоит в том, что кислород под
ряются и временные показатели так, чтобы операции компонентов давлением обдувает поверхность пла-
будущего микропроцессора были согласованы между собой. На этом стины парами воды. Чтобы получен-
этапе человек может вносить поправки в проект, а затем снова про- ная тонкая плёнка изолятора была
верять интегральную схему, улучшать или полностью менять её части. равномерной (без дефектов), надо
Вручную, без применения CAD-компьютера, данный процесс выпол- чётко выдержать одинаковую темпе-
нить практически невозможно. Результатом второго этапа будет файл, ратуру по всему объёму камеры.
поэлементно описывающий интегральную схему.
Подготовка производства интегральной схемы. Как правило, база
данных CAD-компьютера содержит описания различных производств ФОТОЛИТОГРАФИЯ
интегральных схем. Файл с проектируемой схемой преобразуется в
специальный формат автоматизированного процесса производства Это одна из основных операций пла-
интегральной схемы. Остаётся только, используя этот файл, заказать нарной технологии, которая по-
изготовление на заводе фотошаблонов спроектированной интеграль- зволяет обеспечить выборочность
ной схемы. воздействия на пластину при техно-
логических операциях.

434
Современный компьютер

Для изготовления на пластине


транзисторов определённого типа
Два главных химических свойства пары кремний — диоксид крем-
необходимо внести примеси в крем-
ния (Si — SiO2) являются основой кремниевой технологии. Пер-
ний, чтобы получить полупроводни-
вое: возможность выборочного воздействия на один из этих
ковые приборы c p- или n-типом про-
материалов (так, плавиковая кислота растворяет диоксид крем-
водимости. Такое внедрение должно
ния, но не действует на сам кремний); второе: диоксид кремния
быть точечным, при этом области,
можно использовать для защиты участков кремния при легиро-
в которые не следует вносить приме-
вании (внесении примесей).
си, надо прикрыть, например, изоля-
тором. Тогда можно закрыть цели-
ком всю пластину и вытравить в ней
окошки перед операцией травления олетовый свет, стали устойчивыми к
(процесс удаления с поверхности травлению, они будут защищать слой
пластины ненужных участков полу- диоксида кремния во время следующе- Современная техно-
проводника, диэлектрика, алюминие- го этапа. логия при фотоли-
вых или медных проводников). Это Кроме фотолитографии существу- тографии может ис-
и происходит при фотолитогра- ют другие методы подготовки пласти- пользовать защитный
фии — переносе рисунка с эталон- ны к травлению, например электрон- материал, который
ного фотошаблона на поверхность но-лучевая литография и лазерная становится устойчи-
пластины. литография. При этом в отличие от вым к травлению при
После обработки на пластине ос- оптической литографии не произво- облучении или теряет
танется замысловатый рисунок из дится одновременное экспонирова- защитные свойства.
плёнки специального светочувстви- ние всего рисунка интегральной схе-
тельного материала, восприимчиво- мы, а электронный (или лазерный)
го к действию ультрафиолетовых луч последовательно проходит весь
лучей. Следовательно, если участки рисунок под управлением компьюте-
пластины облучить (проэкспониро- ра, т. е. не требуется использование
вать) ультрафиолетовой лампой, то никакого фотошаблона. Из-за неболь-
покрывающий их материал станет шой скорости обработки (на одной
устойчивым к травлению.
Фотолитография — сложный про- В производственных
цесс, состоящий из нескольких эта- помещениях должна
быть абсолютная чи-
пов. Поверхность пластины целиком стота.
покрывается специальным материа-
лом с использованием центрифу-
ги: пластина помещается на вра-
щающийся горизонтальный диск, а
сверху из форсунок распыляется
покрывающий материал; под дей-
ствием центробежной силы жидкий
раствор растекается от центра к кра-
ям пластины.
Сушка этого слоя выполняется в
печи под воздействием точно рассчи-
танных доз инфракрасного излуче-
ния. Затем пластину совмещают с
фотошаблоном. Данную операцию
раньше проводили вручную с помо-
щью микроскопа, ориентируясь на
метки на пластине и фотошаблоне.
Однако сейчас её уже не доверяют
человеку.
После того как шаблон строго сов-
мещён с пластиной, поверхность облу-
чают ультрафиолетом, и рисунок буду-
щего слоя остаётся запечатлённым.
Участки, на которые попал ультрафи-

435
Компьютер

Травление повторяется многократ-


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

Один из этапов установке можно обработать около


производства интер-
активных схем.
60 пластин в год в отличие от фото- ДИФФУЗИЯ
литографии при которой скорость
обработки порядка десятков тысяч
(ВНЕДРЕНИЕ ПРИМЕСЕЙ)
пластин в год) такая техника в ос-
новном используется для изготовле- Цель внедрения примесей — измене-
ния фотошаблонов. ние электрических характеристик
кремния, чтобы чистый полупровод-
ник стал полупроводником p- или
ТРАВЛЕНИЕ n-типа. Для получения полупровод-
ника n-типа можно использовать
Может использоваться жидкостное фосфор, а для p-типа — атомы бора.
травление, например, азотной кисло- Диффузия состоит из двух шагов: пред-
той. Пластину обрабатывают так же, осаждения и собственно диффузии.
как радиолюбители травят свои печат- На первом этапе в поверхность
ные платы. На покрытый токопрово- кремния внедряется небольшое коли-
дящим слоем (фольгированный) изо- чество легирующего вещества. Как и
лятор (текстолит) наносят рисунок на многих других этапах обработки
дорожек будущей платы, затем плату пластины, её поверхность должна быть
опускают, например, в азотную кисло- тщательно очищена, чтобы нежела-
ту. Ненужные участки фольги страв- тельные примеси не попали в кри-
ливают, обнажая текстолит. сталл. При температуре около 1000 оС
Ионное легирова- При этом на результат травления легирующее вещество проникает
ние — ещё один со- влияет много факторов. Это и концен- сквозь кристаллическую решётку
временный способ трация кислоты, и температура. При кремния. На втором этапе происходит
добавления примеси неточном соблюдении параметров диффузия — «разгонка», при которой
в кремний. Он не тре- кислота постепенно проникает под примеси глубже проникают и равно-
бует высокой темпе- край маски из защитного слоя, как бы мернее распределяются в кремнии.
ратуры и позволяет подтачивая нужные соединения.
осуществлять поверх- Сухое (плазменное) травление с
ностное (слоем тонь- применением ионизированного газа СОЗДАНИЕ СОЕДИНЕНИЙ
ше 1 мкм) распреде- позволяет вести процесс в одном
ление легирующих направлении, строго сверху вниз. Газ Отдельные приборы (транзисторы,
веществ в полупро- вступает в реакцию с обрабатываемой КМОП-пары), полученные при пла-
воднике. поверхностью, а летучие побочные нарной технологии, необходимо сое-
продукты поглощаются камерой, в динить между собой и, возможно, с
которой происходит травление. внешними выводами.

436
Современный компьютер

Для этого с участков, где должен


получиться контакт с кремнием, уда-
При травлении окон в кремнии на поверхности образуются сту-
ляют диоксид, затем на поверхность
пеньки, которые влияют на качество контактов с пластиной. Но-
пластины наносится осаждением
вый метод позволяет проводить металлизацию по так называе-
слой металла. Металл нагревают до
мой дамасской технологии, получившей своё название из-за
высокой температуры, при этом он
определённого сходства с гравировкой металла. На поверхность
испаряется. Затем, охлаждаясь, газо-
диоксида с предварительно протравленными дорожками осаж-
образный металл конденсируется на
дается слой металла, при этом он заполняет углубления, созда-
кремниевой пластине в виде одно-
вая контактные соединения. Затем поверхность полируется и
родной плёнки. Потом металл (обыч-
лишний металл удаляется. Этот метод позволяет увеличить вы-
но алюминий) с помощью фотоли-
ход годных микросхем. В начале XXI в. стала использоваться бо-
тографии и травления удаляется со
лее прогрессивная разновидность этой технологии.
всех участков, где его не должно быть.
Вся операция носит название метал-
лизация.
Так как плотность транзисторов,
размещённых в интегральных схе-
мах, всё время увеличивается, то воз-
растает число соединений между
элементами, которые не всегда удаёт-
ся разместить на одном металличе-
ском слое. Может потребоваться вто-
рой, третий и большее число слоёв.
Указанные технологические опера-
ции многократно повторяются, при
этом слои металлизации изолируют-
ся друг от друга диэлектриком.
После проведённых циклов тех-
нологических операций получается
пластина с сотнями одинаковых ма-
леньких прямоугольников (каждый
прямоугольник — будущий микропро-
цессор или интегральная схема дру- Микропроцессор.
гого назначения).
Пластине предстоит пройти ещё сколько микропроцессоров пойдёт в
несколько операций: резку на отдель- брак, а сколько будет использовано в
ные чипы, сборку интегральных схем, производстве компьютеров, автомо-
тестирование. Последнее покажет, билей, микроволновых печей и т. д.

ЭВОЛЮЦИЯ ПАМЯТИ ЭВМ

Перефразируя известное выражение, Компоненты компьютера, свя-


можно сказать, что «лучше купить занные проводами, обмениваются
дешёвый компьютер с большой и
быстрой памятью, чем дорогой ком-
пьютер с маленькой и медленной памя-
тью». Но большая память стоит доро-
же, чем маленькая, а быстрая — дороже,
чем медленная. Поэтому производите-
лям и потребителям приходится искать
компромисс между ценой, объёмом и
скоростью памяти, стараясь скомби-
нировать разные виды памяти так, что-
бы компьютер работал оптимально. Память.

437
Компьютер

память. К оперативной памяти про-


цессор компьютера обращается ча-
Шина обслуживает не только процессор и память, но и другие
сто, считывание и запись информа-
компоненты ЭВМ. Кроме передачи данных шина предназначена
ции в неё происходят достаточно
для согласования скоростей работы подключённых к ней уст-
быстро. Во внешней, долговремен-
ройств. Для этого она вырабатывает собственные сигналы,
ной, памяти компьютер хранит боль-
позволяющие понять, готова ли шина передать или принять
шие объёмы информации и, можно
информацию. Важно, чтобы производительности шины и всех
сказать, обращается к ней эпизоди-
подсоединённых к ней устройств были согласованы. Неразум-
чески. По экономическим сообра-
но иметь быстрый процессор и медленную память или быстрые
жениям оперативная память всегда
процессор и память, но медленную шину.
меньше по объёму, чем внешняя.
На протяжении всей истории вы-
числительной техники как оператив-
ная, так и внешняя память непрерыв-
но эволюционируют: повышаются
Ферромагнетики — вещества (например, железо, никель, ко-
производительность и объём, умень-
бальт) с большой магнитной проницаемостью, способные к на-
шается стоимость. Применяемые тех-
магничиванию под действием внешнего поля. Французский
нологии сменяют друг друга, как
учёный Андре Мари Ампер высказал гипотезу, что внутри мо-
кадры в фильме. Память на электрон-
лекул и атомов циркулируют элементарные токи. При намагни-
но-лучевых трубках и ультразвуко-
ченном состоянии вещества элементарные токи ориентированы
вых линиях задержки уступает место
так, что их действия складываются.
памяти на ферритовых сердечниках.
Вместо ферритовой памяти прихо-
дит память на полупроводниках и
информацией между собой, исполь- интегральных КМОП-схемах. То же
зуя электрические сигналы. Если при- происходит и с долговременной
нять за аксиому, что процесс переда- памятью.
чи информации по проводам (шине) В 60—70-х гг. полупроводниковая
между процессором и памятью не память была дорогостоящей, и, кро-
зависит от собственных характери- ме того, её содержимое очищалось
стик шины (числа проводов, скоро- при выключении питания (не сохра-
сти прохождения сигнала и пр.), что, нялись ни данные, ни программы).
конечно же, не так, то память оцени- Поэтому искали новое решение
вают по трём основным критериям: проблемы. Множество разработок
стоимость, объём и время доступа. приводили к созданию, казалось,
Из всего многообразия принци- быстрой и надёжной памяти, но она
пиально разных видов памяти мож- тут же вытеснялась новой технологи-
но выделить две основные группы: ей. Однако случались и неудачи, кото-
оперативную память и внешнюю рые не оправдывали ожиданий.

ПУЗЫРЬКОВАЯ ПАМЯТЬ
К одной из этих неудач относят так
называемую пузырьковую память
(англ. bubble memory), разработанную
в Bell Labs (США) в 1966 г. Устройство
запоминало данные в виде магнит-
ных доменов на тонком магнитном
материале, например таком, как фер-
рогранат.
Если пластину предварительно
намагнитить, а затем приложить к
ней определённого уровня магнит-
ное поле в направлении намагничен-
Так выглядят домены ности, то домены из кривых линий
пузырьковой памяти. примут форму пузырьков, отсюда и

438
Современный компьютер

название памяти. На самом деле


домен имеет форму цилиндра, его
Домены (фр. domaine — «область») — довольно большие группы
ось перпендикулярна пластине. Нали-
атомов, внутри которых весь металл намагничивается только в
чие домена в определённой точке
одном направлении, обычно вдоль одной из главных кристалли-
материала принималось за 1, а отсут-
ческих осей. При намагничивании металла домены, намагниче-
ствие — за 0. На 1 см2 плёнки могло
нные в направлении приложенного поля, «растут» за счёт атомов
помещаться до 16 млн доменов, ина-
соседей. Если поле слабое, то эти изменения обратимы и неве-
че говоря, ёмкость пузырьковой
лики, напротив, в очень сильном магнитном поле некоторые до-
памяти была до 16 Мбайт.
мены могут принять направление поля, даже если оно не совпа-
Такая память обладала ещё одним
дает ни с одной осью кристалла. Домены по физическим размерам
интересным свойством. Под действи-
очень малы, их можно увидеть только с помощью мощного ми-
ем слабого внешнего магнитного по-
кроскопа, однако по сравнению с атомами эти элементарные маг-
ля домены перемещались в пластине
нитики кажутся колоссальными скоплениями.
ферромагнитного материала по зара-
нее заданным направлениям с боль-
шой скоростью. Это позволило соз-
дать запоминающее устройство без поминающих» поток света в виде заря-
механически движущихся частей — дов при экспонировании. После это-
так, для чтения из памяти нужно было го прибор с зарядовой связью осу- Прибор с зарядовой
последовательно переместить счи- ществлял передачу информации о связью назван так из-
тываемые домены к считывающему картинке: за один шаг заряды сдвига- за способа передачи
устройству. Ещё одно важное свой- лись по рядам матрицы вниз на одну заряда между элемен-
ство пузырьковой памяти — умение строку. Нижняя строка попадала в так тами матрицы.
сохранять свою намагниченность называемый сдвиговый регистр,
при отсутствии электрического тока. «покинув» который, сигнал усиливал-
То есть на базе данной памяти легко ся и преобразовывался в цифровую
получалось энергонезависимое пере- форму. Процесс прекращался только
программируемое постоянное запо- тогда, когда вся матрица CCD была
минающее устройство ПЗУ, или ROM полностью прочитана.
(англ. read only memory). ССD нашёл своё применение в
Оригинальная научная идея уже к 1975 г. — в видеокамерах и сканерах,
началу 90-х гг. была полностью вы- в 1980 г. — в первых цифровых фото-
теснена более дешёвой и быстрой аппаратах.
электронно-перепрограммируемой КМОП-полупроводники, основные
постоянной памятю EEPROM (англ. компоненты микросхем, также вос-
electrically erasable programmable read- приимчивы к свету и используются в
only memory). качестве светочувствительных мат-
риц в камерах. В начале 90-х гг. суще-
ственно повысилась чувствительность
ПРИБОР КМОП-сенсоров и уменьшилась по-
требляемая ими мощность.
С ЗАРЯДОВОЙ СВЯЗЬЮ
Схема работы ПЗС
Другое гениальное изобретение — (CCD).
ССD (англ. charge coupled device), или
ПЗС — прибор с зарядовой связью.
Этот тип полупроводника, чувстви-
тельный к свету, был придуман в Bell
Labs американцами Уильямом Бойлем
и Джорджем Смитом в конце 1969 г.
ССD также предназначался для хра-
нения информации в компьютере, но
прибор оказался слишком медлен-
ным для использования в качестве
памяти, зато для сенсора он идеален.
ССD представлял собой матрицу
светочувствительных элементов, «за-

439
Компьютер

Считывание заряда с активных


Лентопротяжный элементов КМОП-сенсора произво-
механизм.
дится по параллельной схеме, что
позволяет организовать произволь-
ный доступ, считывая не всю матри-
цу целиком, а лишь некоторые обла-
сти. Скорость считывания матрицы
более высокая, чем в ССD, где весь
заряд выходит через единственный
сдвиговый регистр. КМОП-сенсор
способен также уменьшить размер
изображения. По экономическим
соображениям становится нерента-
бельным содержать отдельное про-
изводство CCD-схем, когда можно
организовать выпуск аналогичных
КМОП-сенсоров на обычном заводе,
где изготовляют КМОП-микропро-
цессоры.
Вполне вероятно, что в начале
XXI в. на смену ССD-матрицам придут мадных объёмов информации. Кро-
КМОП-матрицы и технология CCD ме того, содержимое оперативной
будет забыта. Не потому ли CCD и памяти всё ещё теряется при выклю-
пузырьковая память, в отличие от чении ЭВМ. Это доказывает, что внеш-
транзистора, не вошли в список деся- няя память компьютера должна быть
Первое устройство ти великих изобретений Bell Labs, дешевле и иметь больший объём.
несъёмного магнит- которые «изменили мир»? В одну группу внешней памяти
ного носителя состоя- попадают так называемые устройства
ло из двух дисков, по с произвольным доступом, в другую —
30 Мбайт в каждом. ВНЕШНИЕ устройства с последовательным до-
Суммарная ёмкость ступом. Типичный пример сейчас уже
памяти обозначалась ЗАПОМИНАЮЩИЕ редко используемых устройств с
30/30, что совпало с УСТРОЙСТВА последовательным доступом — маг-
названием популяр- нитная лента. Данные можно читать
ной винтовки фирмы Оперативная память компьютера долж- или записывать только последователь-
«Винчестер». Счита- на работать быстро, но даже в XXI в. но, при нарушении порядка прихо-
ется, что именно так это по-прежнему достаточно дорого. дится долго ждать, пока лента будет
получила свое назва- Теоретически можно предположить перемотана на нужное место.
ние важная деталь ситуацию, когда стоимость оператив- Магнитные ленты — достаточно
компьютера. ной памяти упадёт настолько, что она медленные устройства с последова-
останется единственной памятью в тельным доступом, хотя и с большой
ЭВМ. Однако пока она не вмещает гро- ёмкостью. Современные устройства
для работы с магнитными лентами —
стримеры имеют увеличенную ско-
рость записи (несколько мегабайтов
в минуту). Дешевизна магнитных лент
позволяет использовать стримеры для
организации долгосрочного хране-
ния информации. Ёмкость одной кас-
сеты стримера измеряется сотнями и
тысячами мегабайтов.
Устройства с произвольным досту-
пом позволяют любую часть данных
получить примерно за одно и то же
время доступа. Наиболее популяр-
ные устройства с произвольным до-
ступом — дискеты, маленькие магнит-

440
Современный компьютер

ные диски, упакованные в пластико-


вый «конверт» размером 3,5 дюйма
(1 дюйм = 2,54 см). Они защищены от МАГНИТНАЯ ЗАПИСЬ
механических повреждений и сво-
бодно помещаются в карман пиджа- Магнитная запись существует уже более
ка, поэтому их легко носить с собой. 100 лет, тем не менее она остаётся одной
Данные хранятся на концентриче- из самых передовых технологий современ-
ских магнитных дорожках, располо- ного общества.
женных на поверхности диска с двух Первый прибор для записи был создан
сторон. Устройство, которое читает в 1898 г. датским инженером и изобре-
и пишет на дискеты, называется тателем Вальдемаром Поульсеном (1869—
дисководом для гибких магнитных 1942), работавшим в то время в Датской
дисков. Внутри него находятся две телефонной компании.
магнитные головки, перемещающие- Поульсен использовал стальную рояль-
ся радиально, от границы диска к цен- ную струну, протянутую через лаборато-
тру шаговым двигателем. Сама диске- рию. Запись и считывание осуществлялись
та вращается с небольшой скоростью. с помощью винтового механизма, который
В итоге чтение или запись можно перемещал вдоль струны каретку с микро- Вальдемар Поульсен.
произвести в любом месте дискеты, фоном и тонким стержнем из специально-
подождав не более продолжительно- го магнитно-мягкого материала (практически не обладающего оста-
сти одного оборота. точным намагничиванием). Обмотка превращала стержень в соленоид
Максимальная ёмкость дискеты — (от греч. «солен»— «трубка» и «эйдос» — «вид») — возбудитель магнит-
2,88 Мбайт. Скорость передачи дан- ного поля. При подаче напряжения к соленоиду на конце стержня
ных при работе с дискетой невели- формировалось магнитное поле, меняющееся в полном соответствии
ка, примерно несколько килобайтов с колебаниями тока в обмотке. Это магнитное поле и создавало оста-
в секунду, среднее время доступа — точные магнитики — элементы записи в стальной магнитно-жёсткой
250 мс. проволоке (сохраняющей остаточную намагниченность) — пропорцио-
До 3,5-дюймовых дискет суще- нально напряжённости магнитного поля соленоида.
ствовали 5,25- и даже 8-дюймовые При воспроизведении записи применялся тот же самый стержень,
дискеты. В отличие от маленькой дис- работающий как магнитопровод, воспринимая изменение записан-
кеты её большие собратья заклеива- ного магнитного поля при перемещении вдоль проволоки. В обмотке
лись в мягкий картонный конверт. возникал электрический ток, который потом преобразовывался в
8-дюймовая дискета вмещала всего звуковые колебания.
0,3 Мбайт информации, а 5-дюймо- Поульсен первым создал универсальную стержневую магнитную
вая дискета до 1,2 Мбайт. В конце головку. Сейчас она используется в устройствах магнитной записи в
80-х гг. выпускались очень похожие компьютерах.
на 3,5-дюймовые дискеты размером Магнитная лента, лента на ацетатной основе с порошковым фер-
ровно 3 дюйма (в пластиковом кожу- ромагнитным материалом (гамма-окись железа), была разработана в
хе). Однако объём помещавшейся на 30-х гг. XX в. на фирме BASF.
них информации был меньше, и дис-
кеты быстро вышли из моды.
Съёмные магнитные диски приме-
нялись на больших ЭВМ давно. Пере-
ход к несъёмному магнитному носите-
лю — винчестеру (диск конструктивно
объединён в едином блоке с приво-
дом) — дал возможность существен-
но увеличить скорость вращения дис-
ка (до нескольких тысяч оборотов в
минуту) и плотность записи. В ком-
пьютерах 2000 г. ёмкость винчесте-
ров измерялась десятками гигабайтов,
скорость передачи данных составля-
ла сотни мегабайтов в секунду, а сред-
нее время доступа — миллисекунды.
В компьютерах начала XXI в. это
основной вид внешней памяти. Стример.

441
Компьютер

же воспроизводить на компьютере
аудиокомпакт-диск. Компакт-диск
CD был разработан фирмой Philips для записи музыки. Пол-
изготовляется из прозрачного поли-
ная ёмкость диска — около 650 Мбайт, а длительность проиг-
мера (например, поликарбоната) диа-
рывания — 74 мин. Для 16-битного кодирования с частотой
метром 120 мм и толщиной 1,2 мм.
44 100 Гц стерео требовалась скорость около 170 кбайт/с.
CD ROM хранит данные в форме
микроскопических углублений на
отражающей поверхности, обозна-
чающих двоичные нули и едини-
цы, расположенные на спиральной
Внутреннее устройство дорожке с шагом в 1,6 мкм. Длина
CD ROM. углубления — 0,13 мкм, ширина —
0,5—0,8 мкм, а минимальная длина
углубления вдоль канавки — 0,834 мм.
Скорость передачи данных составля-
ет несколько мегабайтов в секунду и
CD ROM
более, а среднее время доступа —
десятки миллисекунд.
Лазерный луч Достоинства CD ROM заключаются
Отражённый в приемлемой стоимости (меньше
луч проходит 1 доллара США) и большом объёме
через призму… записанной информации (600—
…и преобразуется в электрический сигнал. 700 Мбайт). Практически всё совре-
менное программное обеспечение
Оптические диски получили рас- распространяется на CD. На них за-
пространение вслед за бытовыми писывают большие мультимедийные
оптическими аудиокомпакт-диска- обучающие энциклопедии, игры,
ми (лазерными дисками, или CD). видеофильмы и т. п.
Устройство, умеющее читать CD на На дисках CD RW (англ. ReWritable)
компьютере, называется CD ROM. можно многократно повторять про-
Оно очень похоже на проигрыватель цесс стирания и записи. Их отличает
компакт-дисков и механически ана- ёмкость в 700 Мбайт и более высокая
логично устройству дисковода для надёжность хранения.
гибких дисков, однако в нём един- Многие персональные компью-
ственная спиральная дорожка с теры, выпущенные в XXI в., уже не
информацией (как на виниловой имеют дисковода для дискет. Магни-
пластинке), а при чтении использу- тооптические диски, магнитные съём-
ется инфракрасный лазер с длиной ные карты, DVD ROM, flash-память на
волны 780 нм. CD ROM позволяет так- карточках (ёмкость в сотни мега-

Flash-карты памяти
(слева);
дискеты 8; 5
и 3 дюйма (справа).

442
Современный компьютер

байтов) — вот неполный список


устройств, используемых в начале XXI
столетия в компьютере.

ВОЙНА СТАНДАРТОВ
В середине 80-х гг. один из специа-
листов фирмы JVC заметил, что если
частота выхода новых стандартов
VHS-кассет будет нарастать с той же
скоростью, то к 2005 г. стандарты ста-
нут выпускать каждые пять минут. Од-
нако кассеты, записанные на самом
современном видеомагнитофоне
стандарта VHS, могут быть просмо-
трены на старом видеомагнитофоне,
не поддерживающем и доброй поло-
вины новомодных функций. Челове-
ку надо бояться только того, что VHS-
кассеты заменит какое-нибудь новое санные диски подчас воспроизводи- Винчестер
оборудование, например DVD — циф- лись на DVD-проигрывателях. Третий, со снятой крышкой.
ровой многофункциональный диск. но не последний, вариант предлагала
Нечто подобное происходило до технология DVD-RW, разработанная
XX в. с компьютерами. Пользователь фирмой Pioneer. В записывающих
должен был позаботиться о своевре- устройствах можно использовать
менном переносе информации со ста- диски с однократной записью, кото-
рых носителей на новые, например рые легко воспроизводить практиче-
с 5-дюймовых дискет на 3-дюймовые, ски на любом DVD-плеере фирмы
с 3-дюймовых — на CD ROM и т. д. Pioner и часто на DVD-проигрывате-
Однако всё изменилось с появле- лях других фирм.
нием DVD — носителей информа- Как же разобраться пользователю
ции, имеющих те же размеры, что и в таком многообразии стандартов,
CD ROM, но обладающие в зависимо-
сти от формата поистине гигантской
ёмкостью (от 4,7 до 17 Гбайт). В DVD
для достижения высокой плотности КЭШ НАМ ПОМОЖЕТ
записи применяется красный лазер с
длиной волны 635—650 нм, мини- Быстрее всего процессор записывает или читает данные из сво-
мальная длина углубления составля- ей сверхбыстрой памяти (регистров). Далее, в порядке убыва-
ет всего 0,4 мкм, а дорожка имеет шаг ния скорости доступа, идут основная память и внешняя память.
0,74 мкм. DVD бывают двухслойные и Если бы вся память была сверхбыстрой, то значительно повы-
двухсторонние. силась бы производительность компьютера. Но реализовать
В технологии DVD есть одно явно это очень дорого. На помощь приходит кэш-память — быстрая
уязвимое место — различные, как пра- по сравнению с оперативной память небольшого объёма.
вило несовместимые между собой Когда процессор записывает в основную память байт, то он
стандарты приводов и дисков DVD. и его адрес в основной памяти одновременно заносятся и в
С начала 1999 г. фирмы Hitachi, To- кэш-память. Всякий раз, когда процессор намерен прочитать
shiba и Panasonic выпускали так назы- некоторый байт, сначала проводится анализ: есть ли байт с
ваемый записываемый DVD-ROM, этим адресом в быстрой кэш-памяти? Если есть, то происходит
плохо совместимый с обычными, чтение из кэш-памяти. Если нет, то байт копируется из основ-
компьютерными DVD-ROM-приво- ной в кэш-память и одновременно передаётся процессору.
дами и бытовыми проигрывателями В результате в каждый момент времени наиболее часто ис-
DVD-дисков. Формат однократно и пользуемая часть основной памяти уже оказывается скопиро-
многократно записываемых дисков ванной в кэш-память и становится быстродоступной. Принцип
DVD+RW поддерживали Hewlett- кэш-памяти используется в винчестере, CD ROM и др.
Packard, Ricoh, Philips и Yamaha. Запи-

443
Компьютер

что выбрать? Может, стоит подождать, вив диск в DVD-плеер или компьютер,
когда один из них всё-таки станет ещё можно обнаружить, что кино не
В 1976 г. компания лидером? А пока, придя домой и вста- показывается, а диск не читается.
JVC (Victor Company
of Japan) разработала
формат видеозаписи
VHS (Video Home Sys- «БЛЕСК И НИЩЕТА» IBM
tem) и кассеты VHS.
В 1978 г. был выпу-
щен первый порта- ГОЛУБОЙ ГИГАНТ сор Intel 8088 (8-битную версию про-
тивный VHS-видео- цессора Intel 8086), память объёмом
магнитофон. ПРИХОДИТ НА РЫНОК 64 кбайт, дисковод (или даже два) для
гибких дисков ёмкостью 160 кбайт.
В начале 80-х гг. XX в. всё громче заяв- В ПЗУ компьютера размещался интер-
ляла о себе новая отрасль компьюте- претатор — язык BASIC. Одновремен-
ростроения — персональные ЭВМ. но были выпущены программные и
В 1981 г. сбыт составил около 700 тыс. технические спецификации, которые
персональных ЭВМ, планы на сле- позволили разработчикам других
дующий год прогнозировали увели- фирм создавать платы для расшире-
чение продаж как минимум в два раза. ния функций компьютера.
Эту часть бизнеса не упустила и круп- В том же году число проданных
нейшая электронная корпорация машин IBM PC составило 4 % от обще-
США IBM, лидер в производстве боль- го объёма сбыта. Лидерами на рынке
ших ЭВМ. персональных ЭВМ являлись:
12 августа 1981 г. IBM представила • Radio Shack — 26 %;
свой первый персональный компью- • Apple — 25 %;
тер, названный IBM PC (Personal • Commodore — 10 %;
Computer). Он использовал процес- • Nippon Еlectric —5 %.
В 1983 г. IBM произвела новую
модель — PC XT (eXtended Technology).
Машина уже была оснащена винчесте-
ром ёмкостью 10 Мбайт, тремя разъ-
ёмами под дополнительные платы
(слоты расширения). Оперативная
память занимала 128 кбайт, но могла
расширяться до 640 кбайт. На дискеты
записывалось 360 кбайт информации.
В качестве операционной системы
использовалась диалоговая система
MS DOS компании Microsoft.
Компьютеры IBM по сравнению с
машинами фирмы Apple проигрыва-
ли по всем показателям. Liza рядом
с IBM PC выглядел как гостья из
будущего. А выпущенный Macintosh,
использующий 32-битный процессор
Motorola 68000 с тактовой частотой
8 МГц, оснащённый оконной опера-
ционной системой, затмил IBM.
К основным причинам, которые
помогли IBM в борьбе за рынок пер-
сональных компьютеров, можно от-
нести колоссальные финансовые
ресурсы корпорации, позволяющие
производить заведомо проигрышный
Компьютер Mainframe компьютер в течение долгого време-
IBM. 80-е гг. XX в. ни, и открытость архитектуры IBM PC.

444
Современный компьютер

ли сопроцессор плавающей точки


8087, что добавило к архитектуре 8086 Винчестер.
несколько десятков команд для рабо-
ты с действительными числами.
Появление в 1982 г. микропроцес-
сора 80286 определило дальнейшее
расширение старой архитектуры
8086. Адресное пространство расши-
рили до 24 разрядов (16 Мбайт), уве-
личили количество команд. Для
совместимости с 8086 в 80286 был
предусмотрен так называемый режим
реальных адресов.
В 1987 г. создан микропроцессор
Это привело к выпуску в 1982 г. пер- 80386. В дополнение к 32-битной
вого клона IBM PC — Compaq I, совме- архитектуре с 32-битными регистра-
стимого с IBM PC. В дальнейшем ми и 32-битным адресным простран-
подобные машины стали называть ством в микропроцессоре 80386
IBM PC-compatible (совместимыми), появились поддержка страничной
а IBM продолжала выпускать далеко организации памяти и ряд допол-
не самые лучшие компьютеры в ряду нительных команд. Наконец-то бес-
IBM-compatible. конечные доработки практически
Часто причиной выживания IBM превратили 80386 в процессор с ре-
PC называют процессоры Intel. гистрами общего назначения. Как и
все предыдущие модели, он имел
режим выполнения программ, напи-
INTEL. «ДОВЕДЁМ — санных для 8086. Страничная органи-
зация памяти и 32-разрядная архитек-
ДОДЕЛАЕМ» тура позволили установить на этой
платформе полноценную операци-
Как правило, когда новую архитекту- онную систему UNIX. Последующие
ру создаёт небольшая группа специа- процессоры: 80486 (1989 г.) и Pentium
листов, то отдельные части очень (1993 г.) были нацелены больше на
хорошо подогнаны друг к другу, чего увеличение производительности и до-
нельзя сказать о линейке процессо- бавили лишь несколько новых команд
ров 80 × 86. Это продукт нескольких для обеспечения многопроцессорной
независимых групп разработчиков, работы.
развивавших данную архитектуру Тяжёлое наследие в виде со-
десятки лет, добавляя всё новые и вместимости с ранними версиями
новые возможности к исходному 80x86 процессоров, как ни странно,
набору команд. не отразилось на распространённо-
В 1978 г. был представлен процес- сти процессоров Intel. Четыре из пяти
сор Intel 8086 как расширение своего процессоров персональных компью-
8-битного собрата — микропроцес- теров базируются именно на этой
сора 8080. Процессор стал 16-битным, архитектуре.
построенным на базе одного аккуму- Процессоры, начиная с i486, имели
лятора, но дополненный новыми реги- некоторые черты RISC-процессоров.
страми. Практически каждый регистр Например, наиболее употребительные
этой архитектуры имел чётко опреде- команды выполнялись за один такт.
лённое назначение; Intel 8086 по удоб- Процессор Pentium ознаменовал
ству программирования проигрывал новый этап в развитии 80x86, связан-
классу более прогрессивных процес- ный с использованием элементов
соров с регистрами общего назначе- RISC-архитектуры. В отличие от про-
ния. Версия 8088 (с 8-битной внешней цессоров i486 в нём использовалась
шиной данных) — основа серии ком- раздельная кэш-память команд и дан-
пьютеров IBM PC, завоевавшая впо- ных ёмкостью по 8 кбайт, что повы-
следствии весь мир. В 1980 г. выпусти- шало производительность. Основные

445
Компьютер

Схема
персонального
компьютера.

рение, добавившее несколько десят-


ков новых команд с восемью 64-раз-
Процессоры i486SX, i486DX, i486DX2 и i486DX4 — это 32- рядными регистрами. Для доступа к
битные процессоры с внутренней кэш-памятью ёмкостью MMX-регистрам использовался тот же
8 кбайт и 32-битной шиной данных. В процессоре i486SX отсут- механизм, что и для доступа к реги-
ствует сопроцессор плавающей точки. В процессорах с мар- страм при выполнении команд с пла-
кой OverDrive и i486DX2 внутренняя тактовая частота удваи- вающей запятой, что исключало одно-
вается, а в процессоре i486DX4 — утраивается, что увеличивает временное выполнение команд.
производительность процессора почти в два раза. Справедливости ради можно заме-
тить, что в следующем процессоре —
Pentium II подобную оплошность
команды процессора распределялись исправили. Также была исправлена
по двум независимым исполнитель- ошибка в процессоре Pentium, которая
MMX-инструкции мо- ным устройствам — конвейерам. Пер- в середине 90-х гг. имела настолько
гли выполнять про- вый конвейер выполнял любые большой общественный резонанс, что
стейшие команды с 8- команды, а второй — простые цело- фирма, устранив её, все вновь выпу-
битной целочисленной численные команды и некоторые щенные процессоры помечала надпи-
матрицей размером команды с плавающей запятой. сью «Bug free» — «Ошибок нет».
8 x 8. Это ускоряет Команды направлялись на конвейеры
выполнение дискрет- одновременно, более сложная коман-
ного косинусного пре- да поступала в первый конвейер, а АТАКА КЛОНОВ. ГДЕ IBM?
образования, исполь- менее сложная — во второй. К сожа-
зуемого при воспро- лению, такая работа была возможна Открытость компьютера IBM PC при-
изведении MPEG-ки- на ограниченном множестве целочи- вела к тому, что вместе с ростом
нофильмов, музыки в сленных команд. объёма продаж мир наполнился мно-
формате MP-3 и про- Нельзя утверждать, что от техноло- гочисленными аналогами третьих
смотра картинок, сжа- гии «доведём — доделаем» фирма Intel производителей. В 1984 г. их выпуска-
тых алгоритмами JPEG. отказалась в 80-х гг. XX в. В 90-х гг. ли более 50 компаний, а через два года
вышла модификация процессоров объём продаж клонов превысил объём
Pentium — MMX (англ. Multi-Media собственных поставок IBM. После это-
eXtension) — мультимедийное расши- го IBM так больше и не смогла вернуть

446
Современный компьютер

себе лидерство. С тех пор название Клон IBM. PC XT.


«IBM PC» стало нарицательным, так
же как «ксерокс».
Вероятно, большой ошибкой мож-
но считать и производство в 1984 г.
IBM PCjr — домашнего персонального
компьютера. Машина имела улучшен-
ную графику (по сравнению с IBM PC),
звуковую плату и беспроводную кла-
виатуру. Клавиатура, работавшая из
рук вон плохо, сыграла злую шутку
с домашней машиной. Улучшение
(добавление новых плат) PCjr не оправ-
далось, и компьютер был снят с про-
изводства в 1986 г.
В 1984 г. компания IBM объявила
о выпуске новой серии персональ-
ных компьютеров — IBM PC/AT. Пер-
вые машины работали на частоте паний-клонмейкеров во главе с
6 МГц (однако появились процес- Compaq (AST, Epson, Hewlett- Packard,
соры на частоте 12 и даже 20 МГц). NEC, Olivetti, Tandy, Wyse и Zenith) К одной из самых до-
Intel 80286 стали использовать в AT- выпустили свой стандарт шины, пол- садных неудач фир-
клонах. Существует легенда, что BIOS ностью совместимой с предшествен- мы Intel относят вы-
(место в ROM, где содержатся основ- ницей в IBM PC/AT. Не отставали и пуск в конце 1982 г.
ные функции устройств) в те годы производители микропроцессоров. iAPX 432 — набора из
поставляла главным образом фирма Advanced MicroDevices (AMD) и Cyrix четырёх микросхем с
IBM, его коды держались в секрете, и разработали процессоры, совме- общей производи-
он просто устанавливался на каждом стимые с i386 и i 486, с улучшенными тельностью 2 млн ко-
компьютере без переделки. Чтобы в скоростными показателями при манд в секунду. Это
клонах не применяли процессоры на более низкой цене. был объектно-ориен-
более высокой тактовой частоте, чем Разочарование пережила фирма тированный процес-
настоящие IBM PC/AT, при старте IBM при выпуске операционных си- сор, включавший под-
проверялась скорость процессора: стем. Полностью 32-разрядная мно- держку многих функ-
если она была выше положенных гозадачная операционная система ций операционных
6 МГц, то компьютер останавливал- OS/2 Warp 3.0 вышла в 1994 г., ещё систем, таких, как пла-
ся. Как рассказывают, для этого на до системы Windows 95 фирмы Mic- нировка процессов и
клонах появилась кнопка «Turbo» rosoft. Её презентация прошла весьма обмен сообщениями.
(«Ускоритель»). При старте 12-мега- торжественно. Тем не менее ниша iAPX 432 имел про-
герцевый процессор запускался на уже была занята Windows 3.11, привы- изводительность в
6 МГц, проходил проверку, затем чной для пользователей, которые 10 раз меньшую, чем
человек нажимал кнопку, и процес- Motorola 68000 и
сор работал в два раза быстрее. Кноп- Intel 80286.
ка «Turbo» исчезла с корпусов после
появления процессоров Pentium,
хотя BIOS давно уже выпускали
другие фирмы и, конечно же, не про-
водили никаких проверок.
Первый компьютер на процессо-
ре 80386 был изготовлен компанией
Compaq Computers в 1987 г. В апреле
того же года IBM попыталась вернуть
себе лидерство и создала семейство
персональных компьютеров PS/2
(Personal System). Эти компьютеры
использовали другой стандарт шины
и соединений, поэтому их произ-
водителей ждала неудача. Девять ком- Компьютер PS/2.

447
Компьютер

с нетерпением ожидали появления IBM PC. OS/2 — классический пример,


Windows 95. IBM попала в затрудни- как замечательная идея умирает, наты-
тельное положение. С одной стороны, каясь на неудачную внутреннюю поли-
OS/2 создавалась под будущие персо- тику фирмы и бизнес-стратегию.
нальные ЭВМ на базе своих процессо- А где сейчас IBM? Голубой гигант
ров Power PC, с другой — IBM сотруд- по-прежнему остаётся суперкорпора-
ничала с Microsoft для поддержания цией и неплохо себя чувствует, шаг-
собственной линейки компьютеров нув в XXI век.

О ЧЁМ НЕ ЗНАЛ СТИВ ДЖОБС

Первооткрыватели часто действуют финансовое положение компании


одержимо, словно наделены боже- долго оставалось тяжёлым. Но в 1980 г.
Стивен Пол Джобс ственным правом вершить дела. Для было продано уже более 130 тыс. экзем-
родился в феврале достижения цели они не жалеют ни пляров Apple-II. (В 1980 г. акционер-
1956 г. в Маунтейн- себя, ни коллег, ни подчинённых, ни ный доход Джобса составил 256 млн
Вью (штат Калифор- начальников. Они обладают огром- долларов.)
ния, США), районе, ной силой воли. Всё сказанное мож- Стефан Возняк занимался разра-
впоследствии став- но отнести к Стиву Джобсу, одному из боткой компьютеров, а Джобс высту-
шем сердцем Силико- основателей компьютерной фирмы пал как катализатор, который не про-
новой долины (центр Apple. Его девиз: «Это мой путь — и это сто дал толчок к возникновению
микрокомпьютерной лучший путь». нового рынка, но и организовал это
промышленности). Стефан Возняк фактически был рискованное дело. Он сам определял
Здесь же спустя не- изобретателем первого персонально- для себя правила и сам же нарушал их,
сколько лет Роберт го компьютера Apple. В его производ- совершенно не считаясь с людьми. Во
Нойс создал свою ство Стив Джобс вложил средства, имя избранной цели Стивен готов был
первую интегральную полученные от продажи принадле- пожертвовать всем и не терпел друго-
микросхему. жавшему ему автобуса «фольксваген», го отношения к делу ни от кого.
а Возняк для того же продал за 1,3 тыс. Но не все решения Джобса прино-
долларов свой калькулятор. сили прибыль. Он выступал против
Фирма Apple была создана 1 апре- создания совместимых компьютеров.
ля 1976 г. Президент фирмы Майк Apple-II, Lisa, Macintosh и Apple-III
Скотт считал главным поиск средств были несовместимы даже между
на производство компьютеров. Он собой. Но странно, совершив такую
составлял бизнес-планы, проводил крупную ошибку, компания приобре-
маркетинговые исследования. Однако ла целую армию фанатов — пользо-
вателей машин фирмы Apple. Удоб-
Стивен Джобс ная техника с самого начала стала
и Стефан Возняк. доминировать на рынке учебных
компьютеров.
Стивена Джобса в 1981 г. назначи-
ли руководителем компании. Итогом
1982 г. явилось вручение премии «Че-
ловек года»... персональному компью-
теру. (Доход Стива тогда составил око-
ло 500 млн долларов.)
В 1983 г. фирма Apple выпустила
новую машину — Lisa. Это первый ком-
пьютер, использующий оконную си-
стему GUI (graphic user interface). Дру-
гой новацией явилась иерархическая
файловая система с директориями и
поддиректориями и выпадающими
меню, к которой сейчас так привыкли.

448
Современный компьютер

Однако высокая стоимость (10 тыс.


долларов) и небольшая производитель-
Дизайн первых моделей выполнялся в стиле all-in-one, т. е.
ность привели к тому, что машина была
системный блок и 9-дюймовый монитор в одном корпусе весом
вытеснена с рынка более успешной
около 9 кг. Небольшой размер экрана компенсировался чрез-
разработкой Apple — компьютером
вычайно высокой чёткостью изображения. В качестве централь-
Macintosh. Lisa считается одной из
ного процессора использовался Motorola 68000, а затем и более
самых больших производственных
мощный процессор Motorola 68020.
ошибок фирмы Apple, так как за три
года производства компьютер не при-
нёс компании финансовой выгоды.
В 1983 г. Apple возглавил бывший
исполнительный директор компании
PepsiСо Джон Скалли, а через два года
Джобса отстранили от управления.
1984 год — время триумфа. Компа-
ния подготовила для рынка новый
продукт — компьютер Macintosh. Что-
бы победить IBM, требовалось пра-
вильно провести маркетинговую под-
готовку.
Был сделан новый шаг для рекла-
модателей. Прямо в середине транс-
ляции Суперкубка по американскому
футболу показали рекламный ролик
с нехитрым на первый взгляд сюже-
том. Зал. Люди. Взгляды прикованы к
экрану, с которого вещает «Большой
Брат», олицетворяющий фирму IBM.
Тот самый Macintosh.
Всё в унылых тонах. Внезапно вбега- Теперь он называется
ет девушка и кидает в экран молот. Classic.
Экран разбивается вдребезги, и
появляется надпись: «В этом году фир- История 90-х гг. для Apple — исто-
ма Apple выпускает компьютер рия убытков и несбывшихся надежд.
Macintosh. Вот почему 1984 год не ста- В 1991 г. компания уволила 10 % со-
нет “1984”!» . Этот клип, обыгрывав- трудников, в 1993 г. Джон Скалли
ший темы знаменитого романа-анти- покинул Apple. Фактически для ком-
утопии Джорджа Оруэлла «1984», пании закончился очередной этап
признан лучшим за всю историю истории, возможно самый лучший.
рекламы XX века. Macintosh стал Через два года компания терпит
продаваться «на ура». серьёзные убытки — около 70 млн
Лишь в 1988 г. компания Apple зна- долларов. Через год, несмотря на
чительно отстала от других фирм, ротацию в руководстве, убытки за
производящих компьютеры. один квартал достигли 700 млн дол-
Вот итоги продаж продукции за год ларов.
(в миллиардах долларов США): В 1993 г. Apple выпустила один из
• IBM — 59,681; первых PDA (англ. рersonal digital assi-
• Digital Equipment — 11,475; stant — «персональный цифровой
• Hewlett-Packard — 9,831; помощник») — Apple Newton. Основ-
• Apple Computer — 4,071. ной рекламный слоган: «Newton
Но к 90-м гг. XX в. компания уже обо- может читать ваши рукописные тек- Один из своих прин-
шла IBM по объёмам продаж персо- сты!». Эта возможность PDA стала ципов Джобс обозна-
нальных компьютеров (к тому време- притчей во языцех. Newton плохо чил аббревиатурой
ни IBM практически ушла с этого распознавал рукописный текст, воз- KISS (Keep It Simple,
рынка). К 1992 г. ежегодный доход ком- никало немало забавных, смешных Stupid! — «Делай это
пании достиг 7 млрд долларов, хотя ошибок. Тем не менее Newton проло- проще, дурачок!»).
Apple охватывала лишь 10 % мирового жил дорогу более совершенным про-
рынка персональных компьютеров. граммам распознавания текста.

449
Компьютер

MACINTOSH НА РУБЕЖЕ ВЕКОВ

Компьютер, неизвестный для большинства россий- Считается, что компьютеры Macin-


ских пользователей, является сильным помощ- tosh не могут решать столь широкий круг
ником для узкого круга профессионалов. задач, как PC-компьютеры. Это заблуж-
Macintosh сочетает в себе, казалось бы, дение. Даже производители компью-
несовместимое: надёжность и высокую терных игр не оставляют Macintosh без
эффективность, с одной стороны, и работы: практически все игрушки
подкупающую простоту в общении — с можно найти и для этих ма-
другой. Компьютеры, на которых кра- шин. Да и в Сети «соперни-
суется логотип, изображающий надку- ки» отлично чувствуют себя
санное яблоко, можно часто увидеть в вместе. Конечно, Macintosh
домах и учебных организациях Амери- несовместим с РС, но если
ки. Среди этих машин есть переносные запустить специальную про-
«чемоданчики» — PowerBook и оригиналь- грамму-эмулятор PC — Virtual PC, то
ный Cube в форме куба — и более привыч- станут доступны все приложения и
ные «башни» PowerMac G3 и PowerMac G4. игры, написанные для РС. В послед-
Существуют и мощные производительные моде- нее время (начиная с модели компью-
ли с двумя процессорами G4 (один ум хорошо, тера Power Mac G4) к Macintosh можно под-
а два — лучше!), особенно популярные у художников ключать многие устройства, созданные изначально для
и дизайнеров, занимающихся компьютерной графикой. РС: оперативную память и др.
Есть iMac и eMac, где монитор и системный блок совме- Когда-то Стив Джобс выдвинул лозунг Apple: «Думай
щены в одном корпусе. В 2002 г. появился необычный иначе!». Детище компании — Macintosh, постоянно раду-
iMac-2 — серая полусфера с жидкокристаллическим мони- ющий пользователей своей нестандартностью, — лучшая
тором на кронштейне, как у настольной лампы. Целена- его реализация.
правленное удешевление iMac лишь увеличило число
поклонников этих «подсолнухов».
Macintosh (Мас-компьютер) изначально создан для
людей творческих, по принципу «сел — и работай». Фир-
ма Apple производит не только компьютеры Мас, но и опе-
рационную систему для них — MacOS (или System), кото-
рая ведёт себя так дружественно, что порой её присутствие
даже незаметно. Программы настраиваются легко, неза-
висимо от квалификации пользователя. Новые версии про-
грамм и драйверов меняются нечасто, и именно поэтому
на рынок попадает продуманный до мелочей продукт.
Приложения реже конфликтуют в борьбе «не на жизнь, а
на смерть» за ресурсы компьютера, отсюда меньше «зави-
саний». Конечно, для опытных пользователей в MacOS
существует возможность покопаться и поглубже, напри-
мер автоматизировать рутинную работу с помощью языка
управления заданиями AppleScript. Этот язык описывает
скрипты (интерпретируемые программы), управляющие
действиями компьютера, которые задаёт пользователь.
Операционная система MacOS Х основана на ядре
хорошо себя зарекомендовавшей ОС FreeBSD (свободно
распространяемый UNIX), отлично использует многопро-
цессорность Macintosh. Она более устойчива, чем её млад-
шие сёстры: имеет защиту памяти — при «зависании»
какой-либо из программ не нужно перезагружать ком-
пьютер, достаточно выгрузить эту программу из памя-
ти и работать дальше. Новый графический интерфейс
Aqua (лат. «вода») имеет ряд приятных усовершенство-
ваний, как внешних, так и для более удобной работы.

450
Современный компьютер

В 1985 г. Стив Джобс, уйдя из Apple, Стив Джобс.


основал компанию NeXT Computer.
Джобс хотел создать совершенно
новый компьютер, он был полон идей.
Во исполнение цели NeXT взял всё
лучшее из разработок других компа-
ний: операционную систему UNIX,
объектно-ориентированный язык
Objective-C и новую систему визуали-
зации, основанную на Adobe PostScript.
В течение пяти лет компания выпу-
скала компьютеры собственной раз-
работки, но уже в 1993 г. их производ-
ство прекратилось. Операционные
системы по-прежнему реализовыва-
лись: сначала появилась NextStep для
процессоров Intel, затем она была пор-
тирована на Hewlett-Packard PA-Risc
и рабочие станции Sun SPARC.
В период работы в NeXT Computer
Стив Джобс показал себя профессио-
нальным финансистом. Он привлёк
инвесторов личным примером, вло- гии компании. Сократилась линейка
жив 15 млн долларов в свою новую выпускаемой техники, а основные
компанию, заключил 20-миллионную усилия в области программного обес- Вы, скорее всего, не
сделку с миллиардером Россом Перо, печения сфокусировались на совре- фанат Microsoft, если
получил инвестиции от японского кон- менной операционной системе. на вашей любимой
церна Cannon на сумму 100 млн дол- Результатом деятельности вернув- футболке написано
ларов. Содружество с IBM принесло шегося президента стал рост объёма «WINDOWS MUST
компании десятки миллионов долла- продаж. Похоже, Apple вышел из затяж- DIE!».
ров. Джобс провёл классическую сдел- ного кризиса. Правда, не обошлось без
ку с магазинами Businessland Computer, финансовой помощи от Microsoft.
реализовав будущую продукцию NeXT К сожалению, мир устроен так, что
на сумму 100 млн долларов. научный и финансовый успех редко
В сентябре 1997 г., после 12-летне- идут рука об руку. Стив Джобс так и не
го перерыва, Стивен Джобс снова воз- осознал, что все его гениальные идеи
главил компанию Apple. Но это был и начинания, словно по воле рока,
уже не прежний Джобс. Многие его изначально обречены. А если так, то
решения вызвали протест фанатов Apple снова произведёт фурор свои-
компьютеров Apple. Принцип Джоб- ми компьютерами и операционными
са — простота и прямота ведут к системами, за которым последует
успеху — воплотился в новой страте- неминуемый финансовый крах.

451
Компьютер

УИЛЬЯМ (БИЛЛ) ГЕНРИ ГЕЙТС III

Основатель и председатель совета директоров корпора- го директора Microsoft. 26 апреля 1996 г. у Гейтсов роди-
ции Microsoft, ведущего мирового производителя про- лась дочь Дженнифер Кэтрин Гейтс. В сентябре 1997 г. на
граммного обеспечения для персональных компьютеров, берегу озера Вашингтон Билл Гейтс построил для своей семьи
Билл Гейтс родился 28 октября 1955 г. в Сиэтле. В семье полностью компьютеризованный дом. 23 мая 1999 г. в семье
он был третьим ребёнком. Его полное имя — Уильям Ген- Гейтсов появился сын Роури Джон Гейтс.
ри Гейтс III. (Билл Гейтс I — дед, владелец мебельного мага- В 1995 г. Гейтс вместе с Натаном Мирволдом, в то вре-
зина, Уильям Гейтс II — отец, адвокат.) Его мать, Мэри Гейтс мя вице-президентом Microsoft, и журналистом Питером
(урождённая Максвелл), была школьной учительницей, чле- Райнарсоном написал книгу «Дорога в будущее», опубли-
ном правления в университете штата Вашингтон и пред- кованную издательством Viking в США и 18 недель нахо-
седателем благотворительной организации United Way дившуюся в списке бестселлеров. Вторая книга — «Бизнес
International, а дед со стороны матери являлся основате- со скоростью мысли», изданная в 1999 г., — была написа-
лем банка National City. на в соавторстве с Коллинз Хемингуэй и впоследствии
Билл Гейтс начал своё образование в муниципальной издана на 25 языках. Прибыль от обеих публикаций Билл
школе, продолжив его в элитарной частной школе Lakeside Гейтс пожертвовал в благотворительный фонд, который
School. Там с 13 лет он увлёкся программированием. осуществляет поддержку учителей мира, использующих
В 1973 г. Билл Гейтс поступил на первый курс Гарвард- компьютерные технологии в учебном процессе.
ского университета, где разработал язык программирова- Microsoft постоянно разрабатывает и совершенствует
ния BASIC для первого компьютера — Altair 8800. Но Гар- информационные продукты и технологии. Её успех — стре-
вард Билл так и не закончил. Он покинул стены учебного мление сделать работу с компьютером более простой и удоб-
заведения на третьем году обучения, решив полностью ной. Компания расходует огромные средства на научно-
посвятить себя компании по разработке программного исследовательские работы.
обеспечения для персональных компьютеров Microsoft, Однако идея использования оконных систем принадле-
которую основал вместе с Полом Алленом в 1975 г., пред- жит не Биллу Гейтсу или кому-либо из компании Microsoft.
видя развитие РС. Её уже внедрял Стив Джобс, тот самый, который вместе со
По ошибке Биллу Гейтсу приписывается авторство опе- Стивом Возняком создал первый персональный компьютер.
рационной системы DOS, но на деле это не что иное, как Компьютеры Apple — Lisa и Mac уже были на рынке и пре-
удачное вложение денег. Придумал DOS Тим Патерсон, восходили IBM оконными системами. Игровой компьютер
который в то время в Microsoft даже не работал. Аtari в конце 80-х гг. оказался на порядок лучше IВМ АТ —
В 1981 г. Гейтс и Аллен, выполнявшие работу для IBM, купи- по возможностям оконной операционной системы и по
ли за не слишком крупную сумму у Патерсона из Seattle 32-битному процессору Моtorola. Тогда в 1985 г. Гейтс
Compute Products созданную им QDOS (Quick Disk Operating выпустил Windows. Первые версии (вплоть до 3.0) были
System — «быстрая дисковая операционная система») для почти неработоспособны. Требовалось вводить не только
16-разрядных процессоров Intel. Конечно, операционная оконный интерфейс, но и многозадачность — возможность
система требовала доработки, но это не изготовление с выполнять сразу несколько программ. В надстройке над
нуля абсолютно новой ОС. Учтя все требования со сторо- MS DOS Windows 3.0 это уже удавалось сделать. Откры-
ны IBM, компаньоны переделали её для 8-разрядных про- валось сразу несколько окон и оставалось лишь переклю-
цессоров, которыми оснащались IBM PC. Неизвестная тог- чаться между задачами. Такой механизм был встроен в
да компания Microsoft смогла заключить с IBM контракт на DOS, только не MS (фирмы Microsoft), а DR DOS (фирмы
поставку новой операционной системы. IBM оплатила её Digital Reserch — успешного разработчика ОС для 8-бит-
производство и обязалась продавать компьютеры только ных ЭВМ (СР/М); DR DOS получился весьма удачным изде-
с версией PC DOS (MS DOS). Microsoft получала проценты лием. И дни MS DOS были бы сочтены, если бы не умение
с каждой проданной машины. Теперь данная сделка изуча- Билла Гейтса бороться с конкурентами. Дело в том, что
ется молодыми менеджерами как классическая — ведь сто- Windows работала исключительно в MS DOS, а c другими
ило продать право на поставку за некоторую круглую сум- операционными системами была несовместима.
му, и не был бы сейчас Билл Гейтс мультимиллиардером. В 1997 г. Билл Гейтс претворил в жизнь свою идею —
1 января 1994 г. Билл Гейтс женился на Мелинде Френч, кредитование 150 млн долларов главному конкуренту —
работавшей в Microsoft. Свадьба проходила на Гавайях, на компании Аррlе, которую предварительно он поставил
острове Ланаи. Чтобы избежать появления журналистов, перед угрозой банкротства и ликвидации. Что принесла
были оплачены все гостиничные номера и зарезервирова- эта сделка Биллу Гейтсу и его компании кроме удачной
ны все доступные автомобили и самолёты. Шафером стал возможности избежать антимонопольного расследова-
Стив Баллмер, занявший в начале 2000 г. пост генерально- ния и принудительного раздела компании?

452
Современный компьютер

Скорее всего, вы ра-


ботаете с продукци-
ей Microsoft, если на
вопрос трёхлетнего
малыша: «Почему не-
бо синее?» — начина-
ете бормотать что-то
о Windows.

Билл Гейтс. Пол Аллен. Тим Патерсон.

Microsoft нанесла удар по конкурирующим компаниям мые из разных концов света, написанные в тех же MS Word.
Netscape, Sun, Oracle, объявив, что доступ в Internet будет Как только разработки третьих фирм начинают бить Word
встроен в операционную систему Apple. Одновременно по всем параметрам, обеспечивая пользователю возмож-
Microsoft гарантировала уничтожение как конкурента опе- ность работы с документами, созданными в MS Word,
рационной системы Apple, созданной на основе NeXT Microsoft выпускает новую версию, которая имеет всего
(машины, как бы говорящей своим названием, что она не одно отличие от предыдущей — другой формат докумен-
IBM PC XT). Не по своей воле, но Аррlе сыграла опреде- та. И гонка продолжается.
лённую роль в фактической ликвидации языка Java (общая Высокая эффективность программ Microsoft — это миф
основа для разработки платформонезависимых приложе- о суперпрограммистах, работающих в фирме. Они просто
ний, выпущенная компанией Sun). пишут программы, используя недокументированные функ-
А чего стоит заключение соглашения между Microsoft и ции системы Windows и специальные библиотеки, как бы
провайдерами о снятии логотипа Netscape в обмен на вклю- обходясь без «программ-посредников» между их продук-
чение последних в список информационных каналов про- тами и Windows. А для всех остальных программистов это
дуктов Microsoft! Это ли не победа Ехрlorer над Netscape? тайна за семью печатями. Поэтому характеристики почто-
Не вкладывать труд и средства в доработку и победить вви- вой программы Outlook ничуть не выше, чем у её конку-
ду явного превосходства (как в 1995 г. Netscape победил рентов, просто она использует внутренние функции
NSCA Mosaic, Сеllо и другие web-навигаторы), а просто не Windows эффективнее.
дать возможности сравнить два продукта. Кроме корпорации Microsoft Билл Гейтс основал ком-
Каждая новая версия Windows требует у несчастных панию Corbis Corporation, занимающуюся разработкой
пользователей серьёзного усовершенствования их компью- цифрового архива произведений искусства и фотографий
теров. На память приходит знаменитая шутка: «На каждый из государственных и частных коллекций всего мира. Так-
наперёд заданный высокопроизводительный компьютер же он входит в правление фармацевтической компании
найдется Word, работающий на нём медленно». Однако при Icos Corporation, владеет акциями компании Darwin
этом Microsoft не обманывает покупателей: ничего им не Molecular, занимающейся генной инженерией, — подраз-
обещает, фактически никакой поддержки; неработающая делением другой британской фармацевтической корпора-
ОС обменивается (с доплатой) на новую, снова неработа- ции Chiroscience. Он вложил средства в компанию Teledesic,
ющую. И так до бесконечности... А ведь никому из автомо- работающую над осуществлением проекта по запуску на
билистов не придёт в голову купить машину, которая пое- низкую орбиту вокруг земного шара нескольких сотен спут-
дет только через месяц и тут же сломается. ников, способных обеспечить всемирную двухстороннюю
Борьба с пиратами, распространяющими и использу- высокоскоростную передачу данных.
ющими программные продукты Microsoft, не так уж и выгод- Билл Гейтс увлекается не только компьютерными техно-
на, как может показаться на словах. Дешёвые незаконные логиями, он интересуется биотехнологиями, много читает,
копии, как наркотик, втягивают миллионы граждан в исполь- а также любит играть в гольф и бридж. Гейтс III — великий
зование программ фирмы Microsoft. А остальная, честная специалист по маркетингу. Своё состояние (более 60 млрд
часть человечества вынуждена пользоваться именно этими долларов) он собрал сам и вошёл в историю как самый
продуктами, чтобы читать письма и документы, получае- молодой миллиардер.

453
КОМПЬЮТЕР XXI ВЕКА
КОМПЬЮТЕР И ЗДОРОВЬЕ

Компьютеры прочно заняли своё тивных воздействий на человека,


место и в доме, и в офисе. Они сдела- приносит вред его здоровью при не-
лись настолько обыденными, что не- правильном применении, может вы-
вольно забываются связанные с их звать профессиональные заболева-
использованием опасности. Как и лю- ния. Однако компьютер становится
бое достижение прогресса, будь то добрым, умным, неутомимым помощ-
автомобиль, самолёт, телевизор, ком- ником, если человек продумывает все
пьютер является источником нега- моменты общения с ним, соблюдает
правила техники безопасности, раз-
мышляет над научной организацией
труда, не нарушает санитарные нор-
мы, составленные специалистами.
Исследует эти проблемы эргономи-
ка (от греч. «эргон» — «работа» и «но-
мос» — «закон») — наука о взаимодей-
ствии человека и машины. Эргономика
занимается комплексным изучением
трудовой деятельности человека и
поэтому объединяет многие научные
дисциплины: физиологию, гигиену
труда, психологию и др. Учёные стре-
мятся найти пути снижения нагруз-
ки на организм человека, связанной
с работой на компьютере, участвуют
в создании совершенной и безопас-
ной техники. Среди их задач — орга-

454
Компьютер XXI века

низация рабочего места, профилак-


тика вредного воздействия компью- Наиболее чувствительными к воздействию компьютера являются
тера на человека. центральная и сердечно-сосудистая системы. Наблюдаются нару-
шения условно-рефлекторной деятельности, снижение биоэлек-
трической активности мозга, изменения межнейронных связей.
ВРЕДНЫЕ ИЗЛУЧЕНИЯ Возможны отклонения в работе эндокринной системы. Первым
симптомом недомогания может стать повышенная возбудимость,
ПРИ РАБОТЕ затем появляется физическая и нервно-психическая слабость. Для
ЗА КОМПЬЮТЕРОМ общей клинической картины хронического воздействия электро-
магнитного поля характерны головная боль, утомляемость, ухуд-
Компьютер — источник нескольких шение самочувствия, гипотония, брадикардия, изменение прово-
видов излучений и полей. Электрон- димости сердечной мышцы. Указанные явления могут быть слабо,
но-лучевая трубка монитора создаёт умеренно или явно выражены. Порой отмечаются незначитель-
ионизирующее (рентгеновское) из- ные и, как правило, нестойкие изменения в крови.
лучение. Однако в современных мо-
ниторах оно незначительно, так как
надёжно экранируется и сравнимо с зрительное утомление у пользовате-
естественным радиационным фоном, лей дисплеев, получившее общее на-
в чём можно легко убедиться с помо- звание «компьютерный зрительный
щью бытового радиометра. синдром» (англ. Computer Vision
Как и любой другой электропри- Syndrome, или CVS). Причин его воз-
бор, компьютер создаёт также элек- никновения несколько, и прежде все-
тромагнитное излучение. Когда ком- го сформировавшаяся за миллионы
пьютер включён, все входящие в него лет эволюции зрительная система че-
устройства (монитор, системный ловека, которая приспособлена для
блок, клавиатура, принтер, сканер восприятия объектов (природы, ри-
и т. д.) и вспомогательное электрообо- сунков, печатных текстов и т. п.) в от-
рудование (сетевые фильтры, блоки ражённом свете, а не для работы с дис-
бесперебойного питания) формиру- плеем. Изображение на дисплее
ют сложное электромагнитное поле. принципиально отличается от при-
Большинство исследований по вычных глазу объектов наблюдения:
влиянию электромагнитного излуче- оно светится, состоит из отдельных
ния свидетельствуют о его вреде для точек — пикселей, мерцает (точки с
здоровья. определённой частотой зажигаются
Кроме того, компьютер создаёт и гаснут), не соответствует естествен-
электростатическое поле. Оно возни- ным цветам.
кает в результате облучения экрана мо- При длительной беспрерывной ра-
нитора потоком заряженных частиц. боте за компьютером у глаз не быва-
Электростатическое поле способству- ет необходимых фаз расслабления,
ет оседанию пыли и аэрозольных ча- они напрягаются, работоспособность
стиц на лице, шее, руках, что может вы- снижается. Большую нагрузку орган
звать у людей, особо чувствительных
к подобному воздействию, негативные Защитный экран.
кожные реакции — сухость, аллергию.
Электростатическое поле влияет на
ионный состав воздуха. На поверхно-
сти кинескопа монитора возникает
положительный заряд, который ней-
трализует отрицательно заряженные
полезные ионы воздуха, что ухудшает
среду в помещении с компьютерами.

КОМПЬЮТЕР И ЗРЕНИЕ
Уже в первые годы компьютериза-
ции было отмечено специфическое

455
Информация и информатика

зрения испытывает при вводе инфор-


мации, так как пользователь вынуж-
ден часто переводить взгляд с экрана
на текст и клавиатуру, находящиеся
на разном расстоянии и по-разному
освещённые.
Признаками CVS являются сниже-
ние остроты зрения, замедленная пе-
рефокусировка с ближних предме-
тов на дальние и обратно, двоение
предметов, быстрая утомляемость
при чтении, чувство жжения в глазах,
ощущение «песка» под веками, покрас-
нение глаз, боли в области глазниц и
лба при движении глаз.
У части пользователей симптомы
CVS обнаруживаются через 2 ч непре-
рывной работы перед экраном, у боль-
шинства — через 4 ч и практически у
всех — через 6 ч. При этом считывание
информации с экрана считается ме-
нее нагрузочным, чем её ввод.

ЗАБОЛЕВАНИЯ
МЫШЦ И СУСТАВОВ мя частых, повторяющихся движений
кистей рук в неудобном положении
Врачи различают несколько синдро- сухожилия трутся о кости запястья
мов, которые встречаются у пользо- и связки. В результате сдавливания
вателей ЭВМ. нервов и сухожилий развивается
Один из них — синдром длитель- серьёзное недомогание. В начальной
ной статической нагрузки, его симп- стадии болезни её симптомы: дрожь,
томами являются боли в руках, шее, зуд и покалывание в пальцах — появ-
пояснице. При неудобной рабочей по- ляются только через несколько часов
зе мышцы ног, плеч, шеи и рук дли- после окончания работы на компью-
тельно пребывают в состоянии сокра- тере. Как правило, большинство лю-
щения. Поскольку мышечные ткани дей не связывают это со своей рабо-
подолгу не имеют возможности рас- той, что приводит к запущенным
слабиться, то в них ухудшается кро- случаям синдрома. Постепенно при-
воснабжение, нарушается обмен ве- соединяются онемение, боль и тя-
ществ, накапливаются продукты жесть в руках. В наиболее тяжёлой
распада. В результате мышцы нахо- форме запястный туннельный синд-
дятся в состоянии постоянной уста- ром диагностируется по мучительным
лости и со временем ослабевают. Это болям, лишающим человека трудоспо-
может привести к искривлению по- собности и требующим хирургичес-
звоночника и другим изменениям ске- кого вмешательства.
лета, а также перерождению мышеч-
ных тканей.
Другой синдром — так называ- КАК СОХРАНИТЬ
емый запястный туннельный синд-
ром, или синдром канала запястья. Его
ЗДОРОВЬЕ
возникновение связано со сдавлива-
нием срединного нерва руки сухожи- Профилактика профессиональных
лиями мышц, сгибающих пальцы, при заболеваний, связанных с работой за
длительной и неудобной для пользо- компьютером, основана на соответ-
вателя работе на клавиатуре. Во вре- ствии оборудования выработанным

456
Компьютер XXI века

стандартам и на соблюдении правиль-


ного режима труда.
Как правило, наибольший вред
здоровью пользователя наносят
устройства ввода-вывода: монитор,
клавиатура, мышь. Появляется множе-
ство различных стандартов на эколо-
гическую безопасность оборудования
персонального компьютера. Совре-
менный монитор должен соответст-
вовать общепринятым нормам без-
опасности и эргономике.
FCC Class B — этот стандарт раз-
работан Канадской федеральной
комиссией по коммуникациям для Монитор должен иметь возмож- Эргономичная
обеспечения приемлемой защиты ок- ность регулировки параметров изо- клавиатура.
ружающей среды от воздействия ра- бражения (яркость, контраст и т. д.).
диопомех в замкнутом пространст- Рекомендуется, чтобы при работе с
ве. Оборудование, соответствующее компьютером частота вертикальной
требованиям FCC Class B, не должно развёртки монитора была не ниже
мешать работе теле- и радиоаппара- 85 Гц. При этом пользователь пере-
туры. стаёт замечать мерцание изображе-
MPR-II, выпущенный Шведским на- ния, которое вызывает быстрое зри-
циональным департаментом стан- тельное переутомление.
дартов, налагает ограничения на излу- Для компьютерных устройств вво-
чения от компьютерных мониторов да (клавиатура и мышь) до сих пор не
и промышленной техники, использу- существует общепринятых и широко
емой в офисе. распространённых стандартов. Меж-
TCO-03 — стандарт безопасности ду тем многие производители данно-
компьютерных мониторов, вырабо- го оборудования, рекламируя свою
танный группой ТСО Development продукцию, описывают различные
(принадлежащей шведской Федерации конструктивные решения, повыша-
профсоюзов), распространяется на ющие эргономичность её использо-
электронно-лучевые и жидкокристал- вания: клавиатура с возможностью ре-
лические дисплеи. Для ЭЛТ-монито- гулировать расположение клавиш,
ров ТСО-03 устанавливает следующие мышь такой формы, которая умень-
требования: максимальная яркость — шает усталость кисти при длительной Логотип ТСО-03.
не менее 120 кд/м2; частота 85 Гц для работе, и другие устройства.
22-дюймовых мониторов должна под- В России также действуют санитар-
держиваться в разрешении 1600 × 1200. ные правила и нормы «Гигиенические
Для ЖК-мониторов разрешение долж-
но составлять не меньше 1024 × 768 для
15- и 16-дюймовых дисплеев, не мень-
ше 1280 × 1024 для дисплеев с диаго-
налью 17—19 дюймов и 1600 × 1200 для
21-дюймовых моделей. Максимальное
значение яркости должно достигать
150 кд/м2.
EPA Energy Star VESA DPMS (США) —
согласно этому стандарту, монитор
должен поддерживать три энергосбе-
регающих режима: ожидание (stand-
by), приостановку (suspend) и «сон»
(off). Такой монитор при долгом про-
стое компьютера переводится в соот-
ветствующий режим с низким энер-
гопотреблением. Монитор с ТСО.

457
Информация и информатика

Очень важна правильная органи-


зация рабочего места. В комнате,
УПРАЖНЕНИЯ ДЛЯ РАЗМИНКИ предназначенной для работы за ком-
пьютером, должно быть как естест-
Положите руку на край стола ладонью вниз. Взявшись за пальцы дру- венное, так и искусственное освеще-
гой рукой, отведите кисть назад и удерживайте в таком положении в ние. Поэтому расположение рабочих
течение 5 с. Повторите упражнение для другой руки. Слегка упритесь мест в подвальных помещениях не
рукой в стол, на 5 с напрягите пальцы и запястье. То же проделайте допускается. Лучше всего, если окна
другой рукой. Сильно сожмите пальцы в кулаки, затем распрямите их. выходят на север или северо-восток.
Сядьте на стул прямо, ноги твёрдо поставьте на пол (если стул на ко- Офисы необходимо оборудовать не
лёсиках, позаботьтесь о том, чтобы он оставался неподвижным). На- только отопительными приборами,
клонитесь как можно ниже, чтобы достать головой колени. Оставай- но и системами кондиционирования
тесь в таком положении 10 с, затем распрямитесь, напрягая при этом воздуха или эффективной вентиля-
мышцы ног. Повторите упражнение три раза. Многие держат на сто- цией. Стены и потолки следует окра-
ле резиновую эластичную игрушку или кольцо-эспандер и с их помо- шивать матовой краской (блестящие
щью время от времени разминают кисти рук. и тем более зеркальные поверхности
утомляют глаза и отвлекают от рабо-
ты). В помещениях ежедневно долж-
требования к видеодисплейным тер- на проводиться влажная уборка.
миналам, персональным электронно- Желательно, чтобы площадь рабо-
вычислительным машинам и органи- чего места составляла не менее 6 м2,
зации работ» СанПиН 2.2.2.542-96. а объём — 20 м3. Стол следует поста-
В части электромагнитных полей вить сбоку от окна так, чтобы свет па-
они соответствуют международным дал слева. Наилучшее освещение для
стандартам. Кроме того, этот доку- работы с компьютером — рассеян-
мент определяет режим труда и от- ный непрямой свет, который не даёт
дыха при работе за компьютером и бликов на экране.
требования к организации рабочего В поле зрения пользователя не
места. В частности, объём считывае- должно быть резких перепадов ярко-
мой с монитора информации не дол- сти, поэтому окна желательно закры-
жен превышать 60 000 знаков за сме- вать шторами либо жалюзи. Искусст-
ну, объём вводимой информации — венное же освещение должно быть
40 000 знаков, а суммарное время, общим и равномерным, однако ис-
проведённое за монитором, — не бо- пользование одних только настоль-
лее 6 ч. На протяжении рабочего дня ных ламп недопустимо.
через каждые 45—60 мин следует ус- Правильно организованное рабо-
траивать перерывы продолжитель- чее место — это лишь первый шаг к
ностью 10—20 мин, во время которых профилактике возможных заболева-
рекомендуется выполнять комплек- ний. Чтобы работа за компьютером не
сы физических упражнений. вредила здоровью, в процессе её необ-
ходимо постоянно следить за положе-
нием тела. Правильная осанка макси-
мально разгружает мышцы и позволяет
работать дольше, меньше уставая. Счи-
тается, что при правильной осанке уши
располагаются точно в плоскости плеч,
а плечи — над бёдрами. Голову следу-
ет держать ровно по отношению к пле-
чам. Когда вы смотрите вниз, голова
не должна наклоняться вперёд. Суту-
лость — положение, при котором ли-
ния плеч располагается не точно над
линией бёдер и под линией ушей, —
вызывает чрезмерную нагрузку на пле-
чевые сухожилия и мышцы плеча. Дли-
тельная работа в такой позе может
стать причиной заболевания.

458
Компьютер XXI века

НЕЙРОСЕТИ

Процесс мышления человека чрезвы-


чайно сложен и лишь частично поня-
тен современным учёным. Однако нау-
ка достигла определённых успехов в
познании устройства нервной систе-
мы человека. Структурной единицей
нервной системы человека является
нейрон — нервная клетка. Такая клет-
ка состоит из тела (сома с ядром) и
множества древовидных отростков —
дендритов и длинного аксона. Дендри-
ты служат в качестве входных каналов
для нервных импульсов от других ней-
ронов. Импульсы поступают в сому,
вызывая её специфическое возбужде-
ние, распространяющееся затем по Сотни миллиардов нейронов об-
выводному отростку — аксону. Соеди- разуют сложную систему, превосхо-
няются нейроны с помощью спе- дящую пока смелые мечты о супер-
циальных контактов — синапсов, в ко- ЭВМ.
торых разветвления аксона одного Первые опыты по моделированию
нейрона подходят очень близко (на таких систем, т. е. созданию искусст-
расстояние нескольких десятков ми- венных нейросетей, проводились ещё
кронов) к соме или дендритам друго- в середине XX в. Целью было не толь-
го нейрона. ко изучать функции мозга, но и попы-
Нейроны, размещающиеся в ре- таться их частично продублировать,
цепторах, воспринимают внешние используя искусственные нейросети.
раздражения, в сером веществе ство- Схемы соединения нейронов в сети
ла головного и спинного мозга — различны, но все сети представляют
управляют движениями человека собой многослойные пространствен-
(мышцами и железами), в мозге — свя- ные структуры.
зывают чувствительные и двигатель- В 1949 г. Д. Хэбб продемонстри-
ные нейроны. Последние образуют ровал обучение сети нейронов.
различные мозговые центры, где про- Позднее, в 60-х гг., группа исследова- Часть нейросистемы
исходит преобразование информа- телей, среди которых был Марвин человека.
ции, поступившей от внешних раздра-
жителей, в двигательные сигналы.
Как же работает эта система? В ней-
ронах происходят три основных про-
цесса: синаптическое возбуждение,
синаптическое торможение и возник-
новение нервных импульсов. Синап-
тические процессы обеспечиваются
особыми химическими веществами,
которые выделяются окончаниями од-
ного нейрона и взаимодействуют с
поверхностью другого. Синаптиче-
ское возбуждение вызывает ответную
реакцию нейрона и при достижении
определённого порога переходит в
нервный импульс, быстро распрост-
раняющийся по отросткам. Торможе-
ние, напротив, уменьшает общий уро-
вень возбудимости нейрона.

459
Информация и информатика

Минский, разработала сети, состоя-


щие из одного слоя искусственных
ИСКУССТВЕННЫЕ НЕЙРОННЫЕ СЕТИ нейронов. Сети использовали для ре-
шения разных задач, таких, как пред-
Нейросеть состоит из узлов (аналоги нейронов) и соединений (синап- сказание погоды, анализ электрокар-
тические связи). диограмм и создание искусственного
зрения. Впоследствии в работе «Пер-
септроны» Минский вместе с Пай-
пертом доказывал, что однослойные
сети в принципе не способны решить
многие простые задачи, в том числе
моделировать исключающее ИЛИ.
Подобные оценки оказались излиш-
не пессимистичными, немало из пе-
речисленных в книге задач решают-
ся сейчас многослойными сетями с
помощью набора стандартных про-
цедур.
В конце 80-х гг. интерес к нейрон-
ным сетям снова вырос. Существова-
ло уже много примеров обучения ней-
Vi — импульсы, вырабатываемые другими нейронами и поступившие на дендриты i, ронных сетей: одну сеть научили
ω i — вес дендритов. Импульс V распределяется между дендритами других нейро- переводить текст в фонетическое
нов с помощью ветвящегося аксона. представление, которое затем превра-
щалось в речь; другую — распознавать
В нейросети можно задавать и менять вес синаптических связей рукописные буквы. С использовани-
и значения порогов для обучения (и самообучения) сети. Такая схема ем искусственных нейросетей была
определяет пути прохождения возбуждения через сеть, формируя сконструирована система сжатия изо-
связи посылка — следствие. В сети существует входной (рецепторный) бражений.
слой, воспринимающий внешнее возбуждение, и выходной слой, оп- Основным методом обучения мно-
ределяющий результат решения задачи. Работа сети тактируется им- гослойных сетей является так назы-
пульсами для имитации и управления проходящим возбуждением. ваемое обратное распространение.
Сеть функционирует или в режиме обучения, или в режиме распозна- Однако даже этот метод не даёт ника-
вания (рабочий режим). ких гарантий, что сеть будет обучена
Как работает искусственная нейросеть? за конечное время и окажется лучше
Пусть создана сеть для распознавания текста. Входной слой вос- при повторном обучении.
принимает изображение, возбуждающее в некой конфигурации мно- Люди привыкли, что компьютеры
жество нейронов — рецепторов. Через некоторое количество так- не допускают ошибок, но искусствен-
тов окажется максимально возбуждён один из нейронов выходного ные нейросети, смоделированные на
слоя. Если на вход подан эталон знака, например буква А, то макси- компьютере, иногда будут их совер-
мально возбуждённый нейрон выходного слоя можно отметить как шать даже при правильном функцио-
образ буквы А, словно получен ответ: «Это буква А, я узнал её!». Ес- нировании. Нейронные сети не спо-
ли когда-нибудь потом снова будет введена буква А, возможно с ис- собны «объяснить», как они решают
кажениями, то, по логике, должен возбудиться тот же нейрон, но задачу. Внутреннее представление,
может и другой, что явится ошибочным поведением системы. Что- складывающееся в результате обуче-
бы «научить» систему, необходимо добиться максимального возбуж- ния, часто настолько сложно, что его
дения того же нейрона выходного слоя, по определённому алгорит- нельзя проанализировать. Человек
му изменив вес или пороги в сети на пути прохождения возбуждения также подчас не в силах объяснить,
так, чтобы заставить возбудиться нужный нейрон. как он узнал в толпе друга, которого
Путём последовательного предъявления множества эталонов и не видел многие годы. Экспертная си-
регулирования параметров сети и осуществляется её обучение. Оно стема прослеживает процесс рассуж-
заканчивается тогда, когда вероятность ошибки становится мала, дений в обратном порядке, так что мо-
что соответствовало заданным условиям. Предъявляя «обученной» жет проверить логичность.
сети различные буквы, можно быть уверенным, что при появлении Считают, что искусственные ней-
искажённой в определёной мере буквы она будет распознана. Сеть ронные сети заменят собой искусст-
фактически имитирует ассоциативное мышление. венный интеллект. Однако есть веро-
ятность, что они будут существовать

460
Компьютер XXI века

совместно в системах, где каждый под- ше времени, но качество результата


ход используется для решения тех за- повысится. Так, нейронная сеть реа-
дач, которым он лучше соответствует. гировала бы в большинстве случаев В известной игре
Распознавание образов часто требу- на внешнюю среду, а сложные случаи, «Creatures» (англ. «со-
ет быстрой реакции. Когда нервная когда вероятность ошибки велика, пе- здания»), в которой
система не в состоянии распознать редавались бы для решения эксперт- необходимо выращи-
новый объект, вопрос передаётся в ной системе. Комбинация этих двух вать, воспитывать и
высшие отделы мозга. Если потребу- систем была бы более эффективной обучать поколения
ется дополнительная информация, то и следовала модели, полученной в ре- смешных существ нор-
процесс поиска решения займёт боль- зультате биологической эволюции. нов, для моделирова-
ния поведения пер-
сонажей, реакции на
внешние раздражите-
НАНОТЕХНОЛОГИИ ли и обучения исполь-
зовались нейронные
сети.
ЧТО ТАКОЕ «НАНО» сколько микронов, которые незамет-
ны невооруженным глазом.
В современном научном языке при- При анализе крови человека лабо-
ставка «нано» служит для образова- ранты рассматривают образцы под
ния наименования дольных единиц микроскопом и в первую очередь
физических величин, равных одной подсчитывают количество красных
миллиардной исходных единиц. На- кровяных клеток, имеющих форму
пример, нанометр — это одна милли- дисков диаметром несколько микро-
ардная часть метра, т. е. нов.
А как часто сталкиваются с разме-
1 нанометр (нм) = рами меньше микрона? Все видели
= 0,000 000 001 м = 10–9 м. радугу на небе или в брызгах воды
фонтана. Цвета в радуге меняются от
Учёные и инженеры договорились красного до фиолетового. Физика
о точном значении этой приставки в учит, что они различаются длиной
1960 г., произведя её от слова «нанос» световой волны — от 0,44 мкм
(в переводе с греческого «карлик»), (красный) до 0,7 мкм
которое употребляется уже тысячи лет. (фиолетовый).
Соответственно под нанотехно- Как же представить
логиями понимают технологии, име- себе один нанометр?
ющие дело с чем-то карликовым, Надо изготовить ми-
очень маленьким, составляющим все- ниатюрный метал-
го лишь миллиардные доли чего-то, лический стерженёк
скажем миллиардные доли метра. длиной 1 мкм, поме-
С размером в 0,001 м, или милли- стить под микроскоп
метром, часто встречаются в повсе-
дневной жизни. Размер булавочной
головки чуть больше 1 мм. Но по срав-
нению с нанометром миллиметр ог-
ромен, он равен целому миллиону на-
нометров. Инженеры уже давно
привыкли иметь дело с тысячными
долями миллиметра — микрометра-
ми (мкм), или микронами:

1 мкм = 0,000 001 м =


= 10–6 м = 1000 нм.

Диаметр человеческого волоса —


1/20 мм, т. е. 50 мкм. Цветочная пыль-
ца состоит из пылинок размером не-

461
Информация и информатика

Таким образом, на стерженьке дли-


ной 1 мкм уместится всего несколько
Единица измерения микрон обозначается µm. Из-за того, что
тысяч слоёв атомов металла. После
вводить греческие буквы при наборе текстов на русском или
первого деления стерженька число
английском языке неудобно, наиболее употребительно неофи-
слоёв уменьшится примерно вдвое,
циальное обозначение um. Если у греческой буквы µ («мю») сте-
после второго — примерно вчетверо,
реть нижний хвостик, получится как раз буква латинского ал-
после десятого — примерно в 1 тыс.
фавита u.
раз, т. е. после десяти делений (если
бы удалось их проделать) длина стер-
женька стала бы около 1 нм и стерже-
нёк состоял бы всего из нескольких
(меньше десяти) слоёв металла. Сле-
Длина световой вол- довательно, нанометр — единица,
ны не так уж мала. На удобная для измерения объектов, со-
расстоянии, равном стоящих из небольшого числа атомов.
диаметру человече- Теперь вновь вернёмся к слову «на-
ского волоса, умеща- нотехнологии». На самом деле при-
ется всего лишь 100 ставка «нано» в этом слове подчёрки-
колебаний световой вает не размеры объектов, а их тип.
волны. Нанотехнологии нацелены на инди-
видуальную работу с отдельными ато-
мами.
Обычные технологии, например
обработка детали на токарном станке,
варка стекла или изготовление бетон-
ных конструкций, создают предметы,
т. е. собирают атомы в нужные скопле-
ния, манипулируя огромными плохо
Сканирующий
туннельный управляемыми группами атомов.
микроскоп. Нанотехнологии тесно связаны с
информатикой. Во-первых, к необхо-
и с помощью какого-нибудь хитро- димости создания нанотехнологий
умного приспособления разрезать пришли после постановки Р. Фейн-
пополам. Одну половинку выкинуть, маном в своём докладе задачи ком-
другую снова разрезать пополам. Воз- пактного хранения информации. Во-
можно ли, хотя бы теоретически, по- вторых, нанотехнологии обещают
вторить процедуру десять раз под- радикально изменить как инструмен-
ряд? Исходный стерженёк состоит из ты обработки информации (компью-
атомов, и после разрезания его раз- теры), так и методы их использования.
мер никак не станет меньше рассто- В-третьих, развитие нанотехнологий
яния между атомами. Для большин- невозможно без применения методов
ства металлов расстояние между информатики.
атомами составляет 0,1—0,7 нм.

ПЕРВЫЕ
ЛАБОРАТОРНЫЕ УСПЕХИ

Ещё философы Древней Греции до-


гадались, что вещество состоит из
атомов. Затем это было доказано тео-
ретически и экспериментально, но
ни один человек не мог поклясть-
ся: «Я видел атом!». Различить отдель-
ный атом с помощью какого-либо
оптического прибора в принципе
невозможно. Оптические приборы

462
Компьютер XXI века

работают со световыми колебаниями. а — расстояние


Их разрешающей способностью явля- между атомами.
ется расстояние между двумя объекта-
ми, на котором они ещё отличимы
друг от друга (расстояние не превы-
шает длины волны световых колеба-
ний). Длина волны видимого света
около 500 нм, что в тысячи раз превы-
шает расстояние между атомами. Для
«подглядывания» за атомами нужны
более частые колебания. С точки зре-
ния современной физики электрон не
только частица, но и волна, колебание.
Длина этой волны меньше расстояния несли на никелевую подложку 35 ато-
между атомами, посредством элек- мов ксенона, выложив из них назва-
тронных волн в микроскоп с «элек- ние своей компании.
тронным светом» можно увидеть от-
дельный атом (отличить его от других
атомов). В 80-х гг. создали такой мик- НЕИЗБЕЖНОСТЬ
роскоп, названный сканирующим
туннельным микроскопом (СТМ).
«РАЗДЕЛЕНИЯ ТРУДА»
Основная идея состоит в том, что- В НАНОТЕХНОЛОГИЯХ
бы в вакууме перемещать над поверх-
ностью твёрдого тела кончик острой Манипулируя отдельными атомами и
иглы, к которой приложено напряже- молекулами, в принципе можно созда-
ние. Если расстояние между образ- вать новые устройства разных разме- «Любой материаль-
цом и кончиком иглы достаточно ров. От микроскопических, неразли- ный предмет — это
мало, то электроны туннелируют (пе- чимых для невооружённого глаза, до всего лишь скопление
рескакивают) с острия иглы на обра- устройств планетарного масштаба, по атомов в пространст-
зец, образуя ток туннелирования. Во- величене превосходящих Землю. Да- ве. То, как эти атомы
дя иглой по образцу и измеряя ток, же самые крошечные устройства будут собраны в структуру,
исследователи получают возможность содержать огромное количество ато- определяет, что’ это
«нанести на карту» расположение ми- мов. Чтобы выполнить устройство с будет за предмет».
кроскопических (атомных размеров) помощью нанотехнологии, каждый
Станислав Лем
«холмов» и «долин» на поверхности атом придётся переместить на отве-
образца. дённое ему место. Мысленно прове-
В 1986 г. изобретатели СТМ были дём эксперимент. Для этого потре-
удостоены Нобелевской премии. Ска- буется простейшая фигура — кубик из
нирующий туннельный микроскоп, атомов одного типа. Сколько атомов
умещающийся (если без вакуумной и на какое расстояние придётся
камеры) на ладони, имеет разреше- переместить, чтобы собрать кубик
ние по вертикали детали размером в
0,1 A° , или, иначе говоря, одну десятую
диаметра атома водорода. Разреша-
ющая способность сканирующего
острия шириной всего в несколько
атомов допускает разрешение дета-
ли горизонтальной плоскости разме-
ром не более 2 A° . Учёным уже удалось
изготовить остриё шириной в один
атом. Наконечник иглы делается в
форме пирамиды, предпоследний и
последний слои состоят из трёх и од-
ного атомов соответственно.
СТМ позволяет не только видеть,
но и перемещать атомы. Например,
в 1980 г. сотрудники фирмы IBM на-

463
Информация и информатика

«ТАМ, В ГЛУБИНЕ...»

Ричард Фейнман.

В 1959 г. американский физик, будущий лауреат Но- атомами обычного металла. Иными словами, после
белевской премии Ричард Филлипс Фейнман высту- уменьшения наша точечка будет всё ещё содержать
пил перед Американским физическим обществом с около тысячи атомов. Значит, ей можно легко при-
докладом «Там, в глубине, полным-полно свободно- дать нужную форму в процессе фотогравировки и,
го места (Приглашение начать новое направление в без всякого сомнения, на булавочной головке най-
физике)». дётся достаточно места, чтобы нанести на неё со-
Нанотехнологии тесно связаны с информатикой держимое всей Британской энциклопедии».
по нескольким причинам. Исторически обсуждение Далее Фейнман заявил, что накопленную челове-
нанотехнологий началось с задачи компактного чеством информацию вполне можно уместить в не-
хранения информации. Применение нанотехнологий большой брошюре, и притом не в закодированном
обещает радикально изменить как компьютеры, так виде, а просто уменьшив в размере исходный мате-
и методы их применения. Развитие нанотехнологий риал (со всеми рисунками, репродукциями, таблицами
невозможно без применения методов информатики. и т. п.). Если же, продолжил учёный, хранить инфор-
Начинался доклад с неожиданного вопроса: мацию не в виде пропорционально уменьшенной ко-
можно ли записать все 24 тома Британской энцик- пии на поверхности вещества (булавочной головке),
лопедии на булавочной головке? а в закодированном виде внутри вещества, то резу-
Фейнман ответил на этот вопрос положительно. льтаты будут ещё более поразительны. Представим,
Чтобы понять его рассуждения, помимо сведений, что информация закодирована точками и тире, при-
входящих в школьную программу, нужно знать толь- чём точка изображена в виде атома одного металла,
ко, что расстояние между атомами булавочной го- а тире — в виде атома другого. Если хранить каждую
ловки, сделанной из обычного металла, составляет такую порцию информации внутри маленького куба
доли ангстрема (A ° — единица измерения длины, размером 5 x 5 x 5 атомов, то после несложного под-
равная 0,1 нм). счёта получится, что «вся информация, которую че-
«Размер булавочной головки составляет пример- ловечество собирало в книгах за всю свою историю,
но 1,5 мм. Если увеличить диаметр головки в 25 тыс. может быть помещена в кубик размером чуть мень-
раз, то её площадь станет примерно равна суммар- ше 0,1 мм — пылинку, едва различимую человеческим
ной площади всех страниц энциклопедии. Значит, взглядом».
всё, что нужно сделать, это научиться писать в В заключение доклада Фейнман сказал:«Физиче-
25 тыс. раз мельче. Возможно ли такое? Разрешаю- ские принципы, насколько я могу видеть, не содер-
щая способность глаза около 0,2 мм, что примерно жат запрета на возможность манипулировать пред-
равно диаметру точек, из которых складываются по- метами атом за атомом. Такое манипулирование не
лутоновые картинки. Если уменьшить подобную точ- нарушает никаких законов, в принципе оно возмож-
° в диаме-
ку в 25 тыс. раз, то получится область 80 A но; однако на практике это ещё не делалось, посколь-
тре, т. е. равная по размеру 32 расстояниям между ку мы слишком велики».

464
Компьютер XXI века

с ребром 5 мкм? 1 мкм — 1000 нано- метрам увеличатся в тысячу и милли-


метров, или 10 тыс. ангстрем. Если он раз соответственно, а число атомов
принять, что расстояние между сосед- возрастёт в 109 и 1018 раз.
ними атомами в кубике 0,5 A° , то чис- Следовательно, создание продук-
ло атомов на ребре кубика будет рав- ции в нанотехнологии возможно,
но 100 001, а общее число атомов в только когда «пункты сборки» распре-
кубике — 100 001 . 100 001 . 100 001 ≈ делены по всей поверхности (объё-
≈ 1015. му) создаваемого устройства и рабо-
Попробуем собрать кубик, исполь- тают параллельно.
зуя сканирующий туннельный мик- Чтобы представить такой парал-
роскоп. Предположим, что на пере- лелизм, вообразим повреждённый му-
мещение каждого атома понадобится равейник и его обитателей, занятых
одна секунда, тогда на всю сборку починкой. Толпы муравьёв работают
уйдёт около 30 млн лет. Такую техно- не мешая друг другу. По сравнению с
логию трудно назвать практически размером муравейника размер любо-
применимой. Два СТМ позволили бы го муравья крайне мал. Хотя отдель-
сделать эту работу вдвое быстрее, а де- ные муравьи трудятся относительно
сять СТМ, к сожалению, не удалось бы независимо, их совместная работа
задействовать одновременно — во- подчинена единой цели.
круг собираемого кубика они не раз-
местятся!
Чтобы сложить кубик за разумное ОСУЩЕСТВИМЫ ЛИ
время (например, за несколько ча-
сов, минут или секунд), нужно либо
НАНОТЕХНОЛОГИИ
повысить скорость перемещения ато-
мов, либо использовать большое ко- Пример со сборкой кубика наводит
личество одновременно работающих на грустные мысли. Неужели основ-
«сборщиков» (универсальные нано- ные физические принципы и законы
машины, или самоусовершенству- доказывают практическую неосуще-
ющиеся микророботы), которые ствимость нанотехнологий, подоб-
настолько миниатюрны, что не поме- но тому как принцип относительно-
шают друг другу. сти говорит о невозможности полёта
Во сколько раз надо ускорить пе- к ближайшей звезде на выходные,
ремещение атомов, чтобы один «сбор- а принцип сохранения энергии —
щик» выполнил всю работу за 10 с? о невозможности постройки вечно-
В этом случае он за 1 с должен пере- го двигателя?
мещать одну десятую от общего чис- Один из теоретиков нанотехноло-
ла атомов. Пусть каждый атом необ- гий, американский учёный Эрик Дрек-
ходимо передвинуть на расстояние слер, приводит следующий пример.
10 мкм, тогда за 1 с «сборщик» произ- Если бы человечество владело нано-
ведёт 1014 перемещений по 10 мкм, технологиями, медики могли бы со-
т. е. общее перемещение составит здать устройство размером в несколь-
1015 мкм = 109 м = 106 км > 300 000 км. ко микрон, состоящее из мешка, лап
Таким образом, за 1 с мельчайшие
сдвиги атомов, производимые «сбор-
щиком», в целом составят расстояние
1 млн километров . Чтобы подобного
достичь, он должен временами дви-
гаться в несколько раз быстрее ско-
рости света, что противоречит прин-
ципу относительности.
При создании устройств размера-
ми в миллиметры или метры по прин-
ципам нанотехнологии трудности усу-
губятся. Так, расстояния, на которые
придётся перемещать атомы, при пе-
реходе от микронов к миллиметрам и Эрик Дрекслер.

465
Информация и информатика

Любые самовоспроизводящиеся
объекты, будь то бактерии в человече-
ском теле, водоросли в пруду, сорняки
на вспаханном поле, закваска в тесте
или вирусы в компьютерной сети,
быстро размножаются, преобра-
зуя окружающую среду часто не-
желательным для человека или
даже катастрофическим об-
разом. Одна из таких ката-
строф описана в известной
немецкой сказке «Горшок ка-
ши», когда горшочек всё ва-
рил и варил кашу, покрыв в
конце концов ею весь город.
Но действительность может
оказаться страшнее любой сказки. Учё-
ные, разрабатывающие подходы к
нанотехнологиям, уже сейчас задумы-
ваются над опасностью выхода из-под
с присосками и хобота. Его вводили контроля самовоспроизводящихся
бы в кровь человека, и устройство оты- (или даже самоусовершенствующих-
скивало бы микробы, присасывалось ся) микророботов. Гипотетическая ка-
к ним и через хобот впрыскивало ан- тастрофа получила название «серая
тибиотик, запасённый в мешке. Ле- слизь» — так обозначают неконтро-
чить многие болезни стало бы легче. лируемый процесс переработки поч-
Но откуда известно, что нанотех- вы, воды, воздуха микроскопически-
нологии, в отличие от вечного двига- ми роботами, при котором Земля
теля, вполне возможны? Реально ли покрывается неисчислимой массой
создание «карликовых» устройств, не «сборщиков».
противоречит ли это каким-либо фи- Подобное может произойти бук-
зическим законам? Ответим на во- вально за несколько дней. Представь-
прос, рассмотрев капельку крови че- те себе выброшенного волной на
ловека под микроскопом. В крови песчаный морской берег самовос-
плавают и охотятся за микробами по производящегося робота размером
сути точно такие же «устройства», ко- 10 мкм. Пусть он состоит из атомов
торые называются антителами. Они кремния, кислорода, водорода, азота,
появляются в организме по генети- углерода (и некоторых металлов, со-
ческому коду (точный план), шаг за ли которых растворены в морской
шагом, молекула за молекулой. Всё воде). При попадании на солнечный
живое на Земле, от бактерии и про- свет микроробот начинает самовос-
стейшего гриба до человека и сек- производиться (при условии, что ря-
войи, создано с помощью процессов, дом есть запас нужных атомов). Если
манипулирующих небольшими груп- процесс «клонирования» занимает
пами атомов — аминокислотами и полчаса, то к концу первого дня на
белками. То есть в каком-то смысле пляже вырастет 20 поколений робо-
можно считать, что нанотехнологии тов общей численностью около мил-
уже работают в живой природе. К на- лиона штук и общим объёмом 1 мм3.
стоящему времени на принципах на- К концу второго дня объём их соста-
нотехнологий разработаны конст- вит 1 дм3, к концу третьего — 1000 м3,
рукции из сотен и даже тысяч атомов, а к концу четвёртого дня, если хватит
но среди них пока ещё нет ни одной, песка, — 1 км3. Весь пляж превратит-
сравнимой по сложности с живой ся в «серую слизь».
клеткой. Однако само существование Теоретики нанотехнологий уже
жизни и биологических процессов сейчас начали вырабатывать принци-
доказывает практическую осущест- пы устройства микророботов-«сбор-
вимость нанотехнологий. щиков», позволяющие избежать ката-

466
Компьютер XXI века

строфы «серой слизи». Эти принци- Микроскопическая «подводная лод-


пы похожи на знаменитые законы ро- ка», плавающая в крови человека и спо-
бототехники, сочинённые писателем- собная транспортировать кислород
фантастом А. Азимовым. Только они из лёгких в ткани и углекислый газ —
не выдуманы писателями, а изложены обратно. Если полстакана таких искус-
учёными для практических целей. ственных кровяных телец ввести че-
Принцип 1. «Сборщик» должен на- ловеку в кровь, то он сможет обходить-
чинать самовоспроизводство только ся без воздуха несколько часов.
по команде извне. Нанотехнологии немыслимы без
Принцип 2. Запрещается разраба- компьютеров, коммуникаций, про-
тывать процессы сборки, идущие с вы- граммирования и других элементов
делением энергии. информатики. Роботы-«сборщики»
Принцип 3. Для воспроизводства будут получать и обрабатывать ин-
должны быть необходимы вещества, формацию извне, а также обмени-
не встречающиеся в природе. ваться информацией друг с другом.
Мощности передатчиков и чувстви- Айзек Азимов.
тельности приёмников микроробо-
СМЕЛЫЕ ПРОГНОЗЫ тов хватит только для связи на ко-
роткие расстояния, так что роботы,
Уже найдено много интереснейших скорее всего, станут ретранслировать
способов применения нанотехноло- информацию, образуя коммуникаци-
гий, и количество прогнозов увели- онные сети. Микророботов и про-
чивается с каждым днём. Приведём граммы для них придётся создавать
только три описания технических на самой современной технике: сна-
устройств завтрашнего дня. чала на обычных электронных ком-
Механический нанокомпьютер, по- пьютерах, а впоследствии и на нано-
добный компьютеру Бэббиджа, спо- компьютерах.
собный работать с частотами в сотни
гигагерц. Этот компьютер будет состо-
ять из мельчайших деталей, каждая из УВИДИТ ЛИ СЕГОДНЯШНЕЕ
которых образована всего нескольки-
ми тысячами атомов.
ПОКОЛЕНИЕ
Сверхпрочные саморемонтируе- РЕЗУЛЬТАТЫ ВНЕДРЕНИЯ
мые материалы, позволяющие постро-
ить башню с лифтом для подъёма НАНОТЕХНОЛОГИЙ
полезных грузов в космос. По соеди-
нённым углеродным трубкам в стенах Практическое применение нано-
такой башни должны ползать «ремонт- технологий не за горами. Сегодня за
ники», обнаруживая и устраняя по- 4 тыс. долларов продаётся 500-
вреждения. страничный отчёт, в кото-
ром для бизнесменов

467
Информация и информатика

жет молекулы вместе. Привязывая молекулу за молеку-


НАНОРОБОТЫ лой к собираемому куску, машина собирает всё большую
и большую структуру, в то же время ведётся полный кон-
Систематическое изложение идей нанотехнологии было троль за тем, как упорядочены атомы. Это есть ключевое
опубликовано в середине 80-х гг. XX в. Э. Дрекслером в умение, которым не обладают химики. Подобно рибосо-
книге «Машины творения». Основная идея заключалась мам, такие наномашины смогут работать под управлени-
в разработке и массовом производстве специальных ро- ем молекулярных лент».
ботов-«сборщиков», способных по заданной программе После того как с помощью простейших белковых ма-
собирать новые конструкции, в том числе и самих себя. шин будут построены сложные, а затем ещё более слож-
Человек сначала использовал простейшие инструменты ные, удастся создать первые универсальные «сборщики».
для создания более сложных, а затем после их усовершен- «...Это второе поколение наномашин, построенное из
ствования возникали технологии, позволяющие выпускать чего-то большего, чем только белки. Некоторые новые на-
автомобили и самолёты, компьютеры и телевизоры и мно- номашины смогут служить как усовершенствованные уст-
гие другие полезные вещи. Так и в нанотехнологиях при- ройства для сборки молекулярных структур. Устойчивые к
дётся создать несколько поколений универсальных нано- кислоте или вакууму, замораживанию или нагреву, в зави-
инструментов, пока, наконец, с их помощью можно будет симости от цели использования ферментоподобные маши-
произвести что-то полезное. ны второго поколения будут применять в качестве инстру-
Дрекслер считает, что первые поколения наноинст- ментов почти каждую из химических молекул, они смогут
рументов станут копировать конструкции живой приро- связать атомы для получения практически любой устойчи-
ды: «...гибкая, программируемая белковая машина схва- вой структуры. Поскольку "сборщики" позволят нам раз-
тит большую молекулу (объект работы), в то время как мещать атомы почти любым разумным образом, то мы смо-
маленькая молекула будет установлена именно напротив жем построить почти всё, что угодно, что не противоречит
правильного места. Подобно ферменту, она тогда свя- законам природы. В частности, и новые "сборщики"».

и государственных деятелей даются ние нанотехнологий произойдёт уже


рекомендации по инвестициям в на- в 10-х гг. XXI в., а спустя ещё десятиле-
нотехнологии. Согласно этому отчё- тие нанотехнологии образуют замет-
ту, первое промышленное примене- ный сектор в мировой экономике.

БУДУЩЕЕ ВЫЧИСЛИТЕЛЬНЫХ МАШИН

Аббревиатура ЭВМ расшифровывает- гола to compute, что означает «вычис-


ся как электронная вычислительная лять». Для решения вычислительных
машина, а английское слово compu- задач разрабатывались специализи-
ter (давно вошедшее в русскую речь рованные ЭВМ. Самыми успешными
как синоним ЭВМ) произошло от гла- из них в течение многих лет остава-

468
Компьютер XXI века

лись суперкомпьютеры Cray, которые


выпускала американская компания
Вещи, на которые возникает массовый спрос, начинают выпус-
Cray Research.
кать в большом количестве, они быстро дешевеют, а их качест-
Первый суперкомпьютер Cray-1 в
во улучшается. Одно из самых массовых технических изделий
1976 г. был установлен в лаборатории
современной цивилизации — универсальный микропроцессор
Лос-Аламос Министерства энергети-
для персонального компьютера. Такой микропроцессор стоит не-
ки США (ответственного за атомное
сколько сотен долларов и выпускается тиражами десятки мил-
оружие). Этот суперкомпьютер обо-
лионов штук в год.
шёлся налогоплательщикам в 8,8 млн
долларов, мог выполнять 160 млн
операций в секунду с 64-разрядными
плавающими числами и хранить в па- ропроцессоров для них) — миллио-
мяти миллион таких чисел. Интеграль- нами и десятками миллионов.
ные схемы в компьютере делались по Специализированных интеграль-
специальной технологии (с использо- ных схем на основе арсенида галлия
ванием дорогого арсенида галлия). Cray выпускали намного меньше, чем тра- Основатель фирмы
достигал пика производительности диционных микросхем на основе Cray Research, её глав-
при выполнении операций не с отдель- окислов кремния. Поэтому рост про- ный идеолог и конст-
ными числами, а с наборами чисел — изводительности микропроцессоров руктор — гениальный
векторами. Всё программное обеспе- для суперкомпьютеров Cray значитель- инженер и бизнесмен
чение на этом компьютере, даже сам но уступал росту, предсказанному за- Сеймур Крэй (погиб в
язык программирования, было моди- коном Мура, и составлял около 10 % 1996 г. в результате
фицировано для достижения рекорд- в год. Хотя в период появления первых автокатастрофы в
ной производительности в вычисли- персональных ЭВМ, в частности в возрасте 71 года).
тельных задачах. 1980 г., их производительность была
Производительность 160 Мфлопс несравнимо меньше производитель-
(миллион операций с плавающей за- ности одного процессора суперЭВМ,
пятой) в 1976 г. считалась феноме- темп её роста был существенно выше,
нальным техническим достижением. и к 1995 г. производительность мик-
Но с точки зрения отношения стои- ропроцессора персональной ЭВМ,
мость/производительность Cray-1 не измеренная на эталонной задаче,
был чем-то выдающимся. Продуктив- сравнялась с производительностью
ность 1 млн операций в секунду обхо- микропроцессора суперЭВМ.
дилась покупателям Cray-1 в 55 тыс. Компания Cray уловила эту тенден-
долларов. Мини-компьютеры эпохи цию и с 1993 г. начала выпускать су-
Cray в пересчёте на 1 млн операций перЭВМ с обычными кремниевыми
имели примерно такую же стоимость. микропроцессорами массовых на-
Именно это экономическое обстоя- стольных ЭВМ. К 1998 г. из 500 экс-
тельство и определило последующее плуатируемых в мире суперЭВМ в 65 %
вымирание динозавров компьютер- компьютеров использовали массо-
ной эволюции — специализирован- вые микропроцессоры, ещё в 25 % —
ных суперкомпьютеров. специализированные кремниевые
Спустя несколько лет появились микропроцессоры, и лишь 10 % соста-
первые персональные компьютеры. вили ветераны, в которых применя-
Поначалу никто из математиков и ин- ют арсенид галлия.
женеров, занимавшихся вычислитель-
ными задачами, не воспринимал но-
вые игрушки для взрослых всерьёз.
В 1981 г. никому и в голову не прихо-
дило сравнивать Cray-1 по вычисли-
тельной мощности с микропроцессо-
рами Intel, которые использовались в
первых моделях персональных ком-
пьютеров компании IBM. Однако ти-
ражи суперкомпьютеров измерялись
десятками и сотнями экземпляров, Гордон Мур (слева) и
а тиражи персональных ЭВМ (и мик- Сеймур Крэй.

469
Информация и информатика

ЗАКОН МУРА

В апреле 1965 г. Гордон Мур, один Предположим, некий изготови-


из основателей современной мик- тель некоего компонента решил
роэлектроники, опубликовал в разработать его новую версию. Бу-
журнале «Электроника» любопыт- дем считать, что он наметил это
ный прогноз. Сравнив производи- сделать за полтора года. В начале
тельность трёх поколений интег- работы необходимо решить, какой
ральных микросхем на основе должна быть производительность
окислов кремния, он пришёл к сле- новой версии к моменту выпуска.
дующему выводу: сложность и Это крайне ответственное решение:
производительность интегральных если производительность будет
микросхем будут удваиваться каж- слишком мала для процессоров, ко-
дые 18 месяцев. В частности, Мур торые появятся на рынке через пол-
утверждал, что к 1975 г. появятся тора года, компоненты никто не ку-
микросхемы, насчитывающие око- пит и изготовитель понесёт убытки.
ло 65 тыс. элементов. Гордон Мур. А если запланировать излишне вы-
Десять лет спустя Мур в одной сокую производительность, компо-
из своих статей отметил, что данный прогноз оправ- ненты окажутся дороже, чем у конкурентов, правиль-
дался с точностью, которой он и сам не ожидал. Здесь но угадавших будущее процессоров, и изделия опять
же учёный предположил, что его предсказание будет же не станут покупать. Но разработчик знает, что за-
действовать и в последующие годы, и привёл техни- кон Мура действует уже много лет и поэтому смело
ческие доводы. После выхода статьи почитатели Му- его использует: он считает, что за 18 месяцев произ-
ра назвали его прогноз законом Мура. Хотя этот за- водительность доступных для потребителя микропро-
кон относится ко всем интегральным схемам на основе цессоров удвоится.
кремния, наибольшую известность получил частный Теперь рассмотрим ситуацию с точки зрения изго-
случай, который касается микропроцессоров. Фор- товителя микропроцессора. Если запланировать рост
мулируется он так: производительность микропроцес- производительности выше, чем предполагает закон Му-
сора удваивается каждые 18 месяцев. Действитель- ра, лишняя производительность «пропадёт», так как из-
но, закон Мура подтверждался в течение многих лет, готовители компонентов не будут на неё рассчитывать.
и специалисты считают, что он будет актуален по мень- А если поступить наоборот, то он проиграет кон-
шей мере до 2012 г. курентам, которые будут руководствоваться законом
Сам Гордон Мур в 1975 г. и позже предлагал тех- Мура. Вот почему единственно правильная линия по-
нические обоснования собственно закона. Однако эти ведения и для разработчиков микропроцессоров, и
объяснения нельзя назвать исчерпывающими. Эконо- для разработчиков компонентов персонального ком-
мисты и социологи отнесли закон Мура к так называ- пьютера — развиваться в соответствии с законом Му-
емым самосбывающимся пророчествовам и самовы- ра. Не быстрее и не медленнее.
полняющимся законам, т. е. к законам, которые Теперь стоит сделать маленькое, но важное заме-
выполняются именно потому, что все их знают и все чание. Изготовитель микропроцессоров, который по
в них верят. техническим причинам не сможет более придержи-
Вот как экономисты объясняют, почему закон Му- ваться закона Мура, непременно разорится. Эта же
ра продолжает действовать в течение столь долгого печальная участь ждёт и тех, кто не имеет финансо-
времени. Производительность микропроцессора пер- вых возможностей следовать данному закону.
сонального компьютера сама по себе не очень важна Теоретически максимальный рост производитель-
для потребителя: его интересует, на что способен ком- ности зависит от того, какие средства разработчик в
пьютер в целом. Кроме микропроцессора в персональ- состоянии вложить в создание новых моделей мик-
ном компьютере много других компонентов. Если их ропроцессора. Чем больше тираж микропроцессора
производительность меньше производительности ми- и доходы от продаж, тем бо′льшие суммы могут быть
кропроцессора, то производительность последнего выделены на новые разработки. И наоборот, при не-
«пропадает», её нельзя использовать в полной мере. больших тиражах микропроцессора и соответствен-
Если же производительность компонентов больше но скромных доходах изготовитель не может себе поз-
производительности микропроцессора, «лишняя» про- волить серьёзные вложения, и как следствие темпы
изводительность компонентов также «пропадает», ибо роста производительности микропроцессора данно-
не может быть использована микропроцессором. го типа невелики.

470
Компьютер XXI века

УСПЕХИ ИНТЕГРАЛЬНЫХ ТЕХНОЛОГИЙ

Качество кристалла можно охарактеризовать тремя ров, расположенных на одном кристалле, достигнет
параметрами: 10 миллиардов.
• проектная норма — технологический размер из- В конце прошлого века для полупроводниковой
меряется в микрометрах (миллионная часть метра); промышленности была типична вертикальная модель
этот показатель определяет плотность размещения организации: полный цикл производства, включа-
элементов на кристалле; ющий все технологические операции, проходил на
• число транзисторов (или вентилей) на кристал- одном предприятии. Высокая стоимость таких про-
ле определяет логическую сложность кристалла; изводств потребовала перейти к более гибкой гори-
• тактовая частота измеряется в мегагерцах и ги- зонтальной специализации. Как самостоятельные зве-
гагерцах и определяет быстродействие кристалла, нья выделились автоматизированное проектирование
фактически максимально возможное количество пе- интегральных схем, изготовление фотошаблонов, из-
реключений вентиля в секунду. готовление интегральных схем на пластине, тести-
Для 1999 г. минимальные проектные нормы бы- рование и др.
ли равны 0,18 мк, максимальный размер кристалла Продвижение в область субмикронных проект-
интегральной схемы — 25 х 35 мм, максимальное чис- ных норм отрицательно влияет на долговечность но-
ло транзисторов на чипе — 21 млн, тактовая часто- вых продуктов: срок их жизни непрерывно сокраща-
та — 1,2 Ггц, максимальное число уровней металли- ется. Скоро нынешний двухгодичный «жизненный
зации — 7, минимальное напряжение питания – 1,5 В, цикл» сожмётся до 9 и менее месяцев. В связи с этим
максимальный диаметр пластины — 300 мм. на первый план выходит проблема ускорения на всех

Год 1989 1992 1995 1998 2001 2004 2007

Технологические размеры (мкм) 0,7 0,5 0,35 0,25 0,13 0,10 0,08
Число транзисторов на кристалле (млн) 2,5 5 10 21 46 110 500
Рабочая частота (МГц) 100 175 300 600 1500 3500 7000

Последние 30 лет развития полупроводникового стадиях — от разработки до конечного продукта. Ес-


производства характеризуются увеличением: ли нынешние тенденции сохранятся и в ближайшем
• числа транзисторов на кристалле в 4 раза каж- будущем, то новые разработки будут попросту невы-
дые 3 года; годны экономически.
• диаметра пластин в 2 раза каждые 15 лет;
• площади кристалла в 2,3 раза каждые 6 лет;
• стоимости производства в 2 раза каждые 3 года
и уменьшением минимальных проектных норм в 2 ра-
за каждые 5 лет.
Однако все ориентиры, как правило, требуют кор-
ректировки. Так, прогноз 90-х гг., представленный в
таблице, не соответствует действительному нынеш-
нему состоянию, например, по частоте микропроцес-
соров.
Степень совершенства интегральной технологии
определяется тем, какие кристаллы можно с её помо-
щью изготовить. Ныне, в начале XXI столетия, уже вы-
пускается запоминающее устройство объёмом 1 Гбит
с технологическим размером 0,15 мкм.
Новое промышленное изделие — гигачип, которое
принадлежит к семейству КМОП СБИС, с технологи-
ческим размером 0,07 мкм обладает памятью 8 Гбит
и содержит сотню миллиардов транзисторов. По
прогнозам фирмы Intel, к 2100 году число транзисто-

471
Информация и информатика

Разработчики американской про-


граммы ASCI (Accelerated Strategic
ПРОЕКТНЫЕ НОРМЫ Computing Initiative — «ускоренная
стратегическая компьютерная ини-
Один из основных показателей для микропроцессоров и про- циатива») по развитию суперЭВМ для
изводящих их предприятий — проектные нормы. Каждая опе- Министерства энергетики США ис-
рация технологического цикла оказывает влияние на производ- пользовали в суперЭВМ микропроцес-
ство, однако главные ограничения на выпускаемые интегральные соры для настольных ЭВМ. Програм-
схемы накладывает фотолитография. Проектными нормами при ма успешно выполнялась, и к 2000 г.
этом являются минимально допустимые размеры между эле- была введена в эксплуатацию самая
ментами рисунка фотошаблона интегральной схемы. Все осталь- производительная ЭВМ в мире — ASCI
ные операции не должны испортить эту «картину». Так, согласно White (разработка компании IBM) про-
стандарту, при совмещении фотошаблона и пластины несовпа- изводительностью около 7 Терафлопс
дение не может превышать половину проектной нормы. (триллион операций с плавающей
Основной размер интегральной схемы — расстояние между запятой). Эта суперЭВМ содержала
истоком и стоком транзистора. Если посмотреть на фотогра- около 10 тыс. микропроцессоров с
фию, то это расстояние примерно равно ширине затвора, кото- пиковой производительностью око-
рый, собственно, и перекрывает разрыв между истоком и сто- ло 1 Гфлопс (миллиард операций с
ком, и оно определяет частоту и энергопотребление интегральной плавающей запятой) каждый.
схемы. Тем временем в Японии работали
Второй по важности размер — величина контактной площад- над микропроцессором для вычисли-
ки на истоке или на стоке, образующей в проекции квадрат, сво- тельных задач.
его рода дно колодца, который впоследствии заполняется воль- В 2000 г. такой микропроцессор по-
фрамом и выходит на первый уровень металла для осуществления казал на эталонной задаче производи-
внешних соединений. тельность около 10 Гфлопс, а в 2002 г.
Оба размера примерно равны, и их называют проектными японская суперЭВМ Earth Simulator
нормами. компании NEC заняла первое место в
списке суперЭВМ, показав на тесте
производительность около 35 Тфлопс
и «обыграв» предыдущего рекордсмена
(ASCI White) более чем в пять раз.
СуперЭВМ Earth Simulator предна-
значена для моделирования климати-
ческих изменений на основе данных,
которые поступают со спутников. Вы-
сокая производительность компьюте-
ра достигнута за счёт применения спе-
циально созданного микропроцессора
NEC Vector; производительность око-
ло 8 Гфлопс. Тем самым векторные ми-
кропроцессоры снова взяли верх над
микропроцессорами общего назначе-
ния.В Earth Simulator использовано
свыше 5 тыс. процессоров, она зани-
мает площадь трёх теннисных кортов
(50 × 65 м) и использует кабели общей
длиной 2900 км.
Ещё одного компьютерного «мон-
стра» в 2004 г. выпустила компания
IBM (по заказу правительства США).
Специализированная суперЭВМ Blue
Срез кристалла с двумя слоями металлизации. Чёрный слой на нижнем уров- Gene установила рекорд производи-
не образован истоками и стоками комбинированной структуры из двух тран-
зисторов (слева направо): исток 1 — сток 1, над ними затвор, далее исток 2
тельности 135,3 Терафлопс. Эта элект-
(совпадающий со стоком1) — сток 2, над ними ещё один затвор. На истоке 1 ронно-вычислительная машина стала
и стоке 2 находятся колодцы, которые выходят на первый слой металла. Вы- в миллион раз производительнее, чем
ше второй слой металлизации
массовый персональный компьютер
2005 г. выпуска.

472
Компьютер XXI века

КВАНТОВЫЕ КОМПЬЮТЕРЫ

Как известно, вычислительные маши- ходить путь в графе могло бы помочь


ны бывают не только цифровые, но и разлагать числа на множители.
аналоговые. В аналоговых машинах На обычной цифровой машине
вычисление напрямую моделируется можно достаточно быстро моделиро-
некоторым физическим процессом. вать законы классической механики,
Например, можно составить цепь из а моделирование квантовых процес-
конденсаторов, сопротивлений и ка- сов либо невозможно, либо требует
тушек индуктивности и измерять за- очень долгих вычислений. Следова-
висимость напряжения на каком-то тельно, если бы квантовый компью-
сопротивлении от времени. Таким об- тер умел быстро решать какую-то уни-
разом, чтобы найти решение диффе- версальную задачу, то его можно было
ренциального уравнения, нужно лишь бы использовать для решения многих
подобрать цепь, где напряжение под- задач, непосильных для современных
чиняется как раз этому уравнению. цифровых вычислительных машин.
В цифровых машинах то же самое Эту идею воплотил американский Питер Шор.
дифференциальное уравнение реша- учёный Питер Шор, описав вообра-
ется совсем по-другому: численные жаемую машину, которую можно ис-
значения хранятся в виде набора би- пользовать для быстрого разложения
тов, с которыми выполняются ариф- больших чисел на простые множите-
метические операции. ли. Про задачу разложения на множи-
Постепенно аналоговые машины тели не знают, является ли она уни-
были вытеснены цифровыми. Это версальной, но она достаточно важна
произошло потому, что аналоговые сама по себе. Дело в том, что различ-
машины решают задачи какого-то ные системы шифрования, широко
определённого класса. Цифровые же используемые в практике, основаны
более универсальны. Одна и та же ци- на том, что большие числа расклады-
фровая машина может выполнять са- вать на множители трудно. Если спо-
мые разные вычисления, стоит толь- соб разложения будет найден, то су-
ко заменить программу. При этом ществующие системы шифрования
проигрыш в скорости компенсиро-
вался точностью вычислений. Ино-
гда считают, что по этой же причине
компакт-диски заняли место грампла-
стинок.
Идея квантового компьютера сно-
ва возвращает человечество к анало-
говым машинам. При этом важны два
обстоятельства.
Современная теория сложности вы-
числений показала, что некоторые за-
дачи оказываются «универсальными»
в том смысле, что к ним сводится нео-
жиданно много других задач. Напри-
мер, существуют так называемые NP-
полные задачи. Одна из них (задача о
гамильтоновом пути) проверка того,
найдётся ли в данном графе путь, про-
ходящий через все вершины по одно-
му разу. В настоящее время не извест-
но никакого быстрого алгоритма
решения этой задачи. Зато доказано,
что, если бы такой алгоритм сущест-
вовал, многие другие задачи тоже ре-
шались бы быстро. Тогда умение на-

473
Информация и информатика

станут непригодными. Неудивитель- реализации подобных алгоритмов


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

КОМПЬЮТЕР 2010 ГОДА

К прогнозу, какой компьютер станет тивной и долговременной памяти,


массовым в 2010 г., можно подойти с компоновку компьютера, тип и харак-
Ваш домашний ком- двух позиций. Одна из них предпола- теристики монитора, средства связи
пьютер для вас пред- гает акцент на технических парамет- и скорость обмена при использова-
ставляет смысл жиз- рах. Надо угадать производительность нии сети Интернет и многое другое.
ни, если его стоимость (тактовую частоту) процессора, вы- При бурном развитии электрони-
выше цены новых «жи- пускающую фирму, объёмы опера- ки стать таким прорицателем крайне
гулей».

474
Компьютер XXI века

сложно, даже если воспользоваться


законом Мура (см. дополнительный
очерк «Закон Мура»).
Другой подход — описать круг за-
дач и набор функций компьютера, ко-
торых ещё нет, но которые могут по-
явиться в ближайшее десятилетие.
Сейчас уже мало говорят про поколе-
ния ЭВМ, хотя после четвёртого долж-
но было идти пятое (в качестве шутки
можно считать процессор Pentium
его представителем).
Как и ранее, многие проблемы, ре-
шения которых ждали от систем ис-
кусственного интеллекта, остаются в
стадии исследования.
Так, пока не получается научить
компьютеры «мыслить» подобно чело-
веку, часто принимающему быстрые
решения на основании интуиции, не
базируясь на жёстких логических пра- живать работоспособность такой си-
вилах и выводах. Если будущие ЭВМ стемы не каждому под силу. Речь идёт
удастся вооружить «подсознательной в первую очередь о непрофессиональ- Противники систем
логикой», то машины окажутся в состо- ных пользователях вычислительной искусственного ин-
янии заменить живых экспертов во техники. Таким людям нет смысла теллекта шутят, что
многих областях человеческой дея- приобретать универсальный компью- искусственный интел-
тельности. А знания, накопленные од- тер, им гораздо нужнее, чтобы куплен- лект необходим тог-
ной такой системой, легко сможет по- ный прибор был хорошо приспособ- да, когда не хватает
лучить (например, по сети Интернет) лен для решения конкретных задач. естественного.
другой компьютер, чтобы использо- В 80-х и 90-х гг. XX в. активно велись
вать их при принятии решений. исследования и даже появлялись бо-
В последнее время идёт активный лее или менее успешные разработки
процесс слияния компьютера, средств
связи и бытовых приборов в единый
набор. Портативность, энергопотреб-
ление, надёжность, объём производ-
ства — вот характеристики, по кото-
рым будут оцениваться новые изделия
электронной промышленности. Даль-
нейший прогресс связан с создани-
ем новых систем, размещённых в
одной интегральной схеме и включа-
ющих как сам микропроцессор и его
окружение, так и программное обес-
печение.
Можно предположить, что произ-
водство универсальных компьютеров
начнёт сокращаться, а им на смену
придут интегрированные приборы,
решающие конкретный спектр задач
своего владельца: сотовый телефон
плюс органайзер плюс фотокамера —
так называемый смартфон, к этому
можно добавить web-телевизор и др.
Современные компьютеры достаточ-
но сложны, и, несмотря на героиче-
ские усилия разработчиков, поддер-

475
Информация и информатика

ЭВМ, способных воспринимать го- Как показывает неумолимая стати-


лосовые команды человека. При этом стика, время жизни персонального
Вы находитесь в машина должна была не только выпол- компьютера в среднем не превышает
авангарде информа- нять широкий спектр таких команд, трёх лет. При этом компьютер оста-
ционного прогресса, но и «на слух» вводить текст, работая ётся ещё вполне работоспособным,
если кожух вашего в качестве секретаря. Как легко стало однако морально устаревает, и про-
компьютера никогда бы тогда писать статьи для энцикло- изводители оборудования и про-
не закрепляется вин- педий! Комбинация речевого ввода с граммного обеспечения предлагают
тами, чтобы не терять уже существующей технологией син- пользователям всё новые и новые
время на их выкручи- тезированной речи даёт возможность ЭВМ. Вложенные в домашний ком-
вание при очередном вместо утомительного нажимания на пьютер средства теряются наполови-
upgrade. клавиши вести с компьютером увле- ну примерно через два года эксплуа-
кательный разговор. тации. Продать за бесценок технику
Компьютеры наконец-то займут жалко, но, как правило, её можно ме-
ведущее место в здравоохранении. нять не целиком, а по частям, каждый
Крошечные ЭВМ смогут управлять ме- раз получая улучшенное качество.
ханическими органами, заменяющи- Этот процесс называют upgrade.
ми повреждённые органы человека, Замена в машине практически
например попавшего в аварию или всех деталей (процессора, памяти,
просто состарившегося. Компьюте- дисков) позволяет экономить около
ры станут таким же привычным ат- 150—250 долларов по сравнению с
рибутом, каким ныне являются очки, покупкой нового компьютера. При
и без этого маленького помощника наличии у компании 2 тыс. машин та-
больной будет так же некомфортно кая экономия существенна. Однако
себя чувствовать, как и страдающий не надо заблуждаться: upgrade не бес-
Перефразируя Шек- слабым зрением — без очков. Карман- пределен, и в итоге полученный в ре-
спира, можно ска- ный компьютер проинформирует зультате многих усовершенствова-
зать: «Менять или не владельца о статьях в журналах, со- ний компьютер станет уступать
менять — вот в чём общит о погоде в мире, позвонит в ав- новым, только что разработанным.
вопрос» (подразуме- тосервис, закажет билеты на поезд; Каждый компонент персонального
вается компьютер и он сумеет также покупать и продавать компьютера имеет свои чёткие гра-
прочая техника). акции, проводить операции по фи- ницы использования. Наиболее ши-
нансовым счетам (вовремя платить роки они пока у дисководов для дискет
налоги) и др. 3,5 дюйма. Фактически они претерпе-

476
Компьютер XXI века

ли изменения лишь однажды, когда при покупке самой современной вер-


формат 720 кбайт был заменён на сии операционной системы можно
1,44 Мбайт. В остальном дисководы обнаружить, что часть оборудования,
при необходимости могли кочевать приобретённого всего год назад, уже
с компьютера на компьютер. А к наи- не поддерживается производителем,
меньшим долгожителям относится т. е. не будет работать в данной ОС.
одна из самых дорогих частей персо- Не исключён даже сговор между про-
нальных ЭВМ — микропроцессор. изводителями программного обес-
Производители программного печения и аппаратуры.
обеспечения вовлекают пользовате- Кроме того, малый срок службы со-
лей ЭВМ в бесконечную гонку за но- временных ЭВМ существенно пони-
вым качеством. Часто очередные зил уровень качества компьютерных
новинки, будь то операционные си- компонентов, особенно имеющих ме-
стемы или программы для обработ- ханические части. Если внимательно
ки изображений, практически не изучить внутренности современных
добавляют в свой обширный набор приводов CD ROM некоторых извест-
функций ничего существенного, од- ных фирм, нетрудно понять, почему
нако вынуждают не только приобре- они не могут работать больше двух
сти последнюю версию, но и зна- лет, а то и просто не выдерживают га-
чительно обновить компьютер. Так, рантийного срока.

477
ПЕРЕДАЧА ИНФОРМАЦИИ
И КОМПЬЮТЕРНЫЕ СЕТИ
ПЕРЕДАЧА ИНФОРМАЦИИ
НА БОЛЬШИЕ РАССТОЯНИЯ

Потребность в обмене информацией ложив ухо к земле; с помощью сиг-


появилась в глубокой древности. нальных костров производили дис-
О приближении врага узнавали, при- танционный обмен новостями. После
возникновения письменности инфор-
мация на большие расстояния стала
передаваться по почте. Если вначале
такая связь имела разовый характер,
то уже в Древней Греции, Персии,
Древнем Египте, Китае и Римской им-
перии существовала регулярная го-
сударственная почта. Как правило,
сообщения передавались пешими
и конными гонцами по принципу эс-
тафеты. В Средние века в Европе по-
лучила развитие негосударственная
почта: монастырская и университет-
ская. Иногда она за плату доставляла
сообщения и частным лицам. Разви-
тие торговли было немыслимо без су-
ществования почтового сообщения
между городами.

480
Информация и человек

На Руси в X в. существовал повоз —


повинность населения предоставлять
лошадей с повозками для княжеских
гонцов. Организованная в XIII в. спе-
циальная служба для пересылки пи-
сем — ямская гоньба просуществовала
до второй половины XIX в. С учре-
ждением Почтового департамента
в 1782 г. ямские дворы стали называть
почтовыми станциями.
Переписка велась не только внутри
России, но и с зарубежными страна-
ми. Во второй половине XVII в. по-
явились почтовые маршруты из Моск-
вы в Ригу и Вильно. При этом письмо
находилось в пути более 10 дней.
Во второй половине XX в. в США насчитывалось 32 тыс. поч-
Россия одной из первых стран
товых предприятий, в Великобритании — 25 тыс., в Японии —
в мире в 1837 г. для перевозки почты
20 тыс., во Франции — 18,7 тыс.
стала использовать железнодорожное
сообщение. В 1843 г. создана город-
ская почта в Петербурге, в 1845 г. —
в Москве. ставляли почту на расстояние более
Романтическую страницу в исто- 3 тыс. километров в течение десяти
рии почты вписала знаменитая аме- дней. В 1878 г. заключена
риканская почтовая служба «Пони- Появление в начале XIX в. более Всемирная почтовая
экспресс», организованная в начале быстрых средств доставки почтовой конвенция, регулиру-
60-х гг. XIX в., ещё до постройки же- корреспонденции — паровоза и па- ющая обмен коррес-
лезной дороги с запада на восток рохода, а в начале XX в. — самолёта понденцией между
страны, когда доставка почты была не значительно ускорило пересылку от- 22 развитыми страна-
только срочным, но и опасным делом. правлений. Практически до конца ми мира.
Первое регулярное почтовое сооб- XX в., независимо от изобретения теле-
щение осуществлялось между города- графа (1832 г.), телефона (1876 г.) и ра-
ми Сент-Джозеф (штат Миссури) и Са- дио (1895 г.), почта оставалась самым
краменто (штат Калифорния). Работа массовым и дешёвым видом связи.
конной почты шла под девизом «Поч- С созданием новых скоростных
Почтовые службы
та должна быть доставлена при лю- (компьютерных) средств коммуника- связи начала прошло-
бых обстоятельствах». Курьеры до- ции почта и в XXI в. не перестанет го века.

481
Информация и информатика

пользоваться спросом, потому что за редать информацию практически


считанные секунды можно будет пе- в любую точку мира.

ПЕРЕДАЧА ИНФОРМАЦИИ
МЕЖДУ КОМПЬЮТЕРАМИ

Современный прогресс человечест- онных пультах дистанционного управ-


ва связан в первую очередь с глобаль- ления); и современный оптоволокон-
Публичная демонст- ной информатизацией всего миро- ный кабель, по которому передаются
рация возможностей вого сообщества. За период с1970 г. световые сигналы, генерируемые ми-
сети Арпанет (прооб- построены сотни национальных и кролазером; и обычная телефонная
раза Интернета) в ок- международных компьютерных се- сеть. По этим каналам пересылают це-
тябре 1972 г. вызва- тей. Благодаря этому в большинстве лые пакеты информации.
ла особый интерес стран обеспечивается повсеместное Независимо от того, как соединены
к методу коммутации внедрение информационных тех- между собой компьютеры — с помо-
пакетов, и это спо- нологий и доступ к Интернету. щью проводов, радиоканала, опто-
собствовало его даль- Переход к межкомпьютерному вза- волоконного кабеля, передача ин-
нейшему развитию. имодействию (компьютерным се- формации на большие расстояния
тям) характеризует качественный осуществляется не напрямую, а через
скачок в передаче информации, обес- группы компьютеров или других вспо-
печивающий удалённое взаимодей- могательных устройств.
ствие компьютеров и совместное ис- В технологии передачи данных ис-
пользование ресурсов компьютера пользуют два принципиально разных
всеми пользователями сети. метода — коммутации каналов и ком-
Для передачи данных компьютеры мутации пакетов.
применяют самые разнообразные При первом методе сначала уста-
физические каналы. Это и традицион- навливается весь путь соединения —
ный электрический кабель (несколь- от отправителя до получателя. После
ко металлических проводников, ино- этого возвращённый пакет извещает:
Оборудование сети гда экранированных); и радиосвязь, можно начать передачу данных, все
Механико-
математического через ретрансляторы, спутники связи; каналы пути готовы. По завершении
факультета МГУ. и инфракрасные лучи (как в телевизи- передачи указанный путь может быть
разорван.
Достоинство метода состоит в
простоте алгоритма и возможности
обмениваться как данными, так и
речью в цифровом виде.
При втором методе сообщение
первоначально делится на меньшие
пакеты, которые нумеруют, снабжа-
ют адресами (от кого и кому), и они
сами прокладывают себе путь по се-
ти независимыми маршрутами. Сеть
при этом также испытывает более
равномерную нагрузку. Данный ме-
тод обеспечивает бо′ льшую надёж-
ность доставки информации (при
разрыве сети в пути потеряются не
все пакеты). Однако реализация ме-
тода коммутации пакетов связана со
значительными затратами, особенно
в узлах коммутации (в них пакет мо-
жет изменить маршрут, выбрав но-

482
Информация и человек

вый), на обработку и хранение каж-


дого пакета информации. Правда, это
Institute of Electrical and Electronics Engineers (IEEE) — профессио-
компенсируется удобством передачи
нальная организация (США), определяющая стандарты, связан-
информации между компьютерами,
ные с сетями и другими аспектами электронных коммуникаций.
подключёнными к разным по скоро-
Группа IEEE 802.X содержит описание сетевых спецификаций,
сти каналам.
а также стандарты, рекомендациии и нформационные докумен-
ты для сетей и телекоммуникаций.
ПРОТОКОЛ ПЕРЕДАЧИ
Широкое распространение различ- Уровень 4 — транспортный реа-
ных моделей компьютеров в 70-х гг. лизует процедуры установления со-
ХХ в. породило не только проблему единения, поддержания и разрыва (за-
совместимости компьютеров по про- вершения) соединения.
граммному обеспечению, но и проб- Уровень 5 — сеансовый отвечает за
лему их взаимодействия (передачи проведение сеансов обмена данными
информации). между машинами, в том числе за про-
Решение нашлось — в середине 70- должение обмена после длительного
х гг. была создана «Эталонная модель сбоя связи.
взаимодействия открытых систем» Уровень 6 — уровень представле-
(OSI). Свойство открытости обеспе- ния обеспечивает преобразование
чивает взаимодействие разнотипных данных: кодирование, компрессию
компьютеров между собой при точ- и т. п.
ном выполнении в программном Уровень 7 — прикладной предо-
обеспечении компьютера универ- ставляет доступ программных при-
сальных соглашений, правил, назы- ложений в сеть: перенос файлов
ваемых протоколами. (FTP — протокол переноса файлов),
Модель OSI разработана Междуна- обмен почтовыми сообщениями
родной организацией по стандартам (X.400 — электронная почта, SMTP —
(International Standardization Organi- простой протокол почтового обме-
zation — ISO), регламентирующей ком- на), пользовательский доступ к уда-
пьютерное оборудование и передачу лённому компьютеру (Telnet — про-
информации по сети. OSI представля- токол обмена с терминалом) и пр.
ет собой семиуровневую сетевую мо- Уровни протоколов надстроены
дель программного и аппаратного один над другим. Более высокий уро-
обеспечения. вень использует функции более низ-
Уровень 1 — физический описы- кого и предоставляет свои возмож-
вает, как получаются пакеты данных ности следующему уровню в схеме.
от высшего, канального, уровня, как Поэтому иногда уровни протоколов
их преобразуют в оптические или передачи данных называют стеком
электрические сигналы, в поток нулей протоколов.
и единиц. Здесь же находятся сведе-
ния о физической среде: типах кабе-
лей и разъёмах, разводке контактов
в разъёмах, схеме кодирования сиг-
налов и об известном стандарте IEEE
802.3 — Ethernet.
Уровень 2 — канальный обеспечи-
вает создание, передачу и приём групп
данных при прямом соединении по
каналу связи. Он обрабатывает запро-
сы следующего, сетевого, уровня, ис-
пользуя сервис физического уровня
для приёма и передачи пакетов.
Уровень 3 — сетевой обеспечива-
ет выбор маршрута перемещения па-
кетов через сеть.

483
Информация и информатика

МОДЕМ

Тенденция развития современных


средств телекоммуникации — предста-
влять аналоговую информацию (звук,
изображение) в цифровом виде; так
появились цифровые CD, цифровая
фотография и т. п.
Существующие телефонные линии
не приспособлены для передачи ци-
фровой информации. Приходится
сначала преобразовывать информа-
цию из цифровой в аналоговую фор-
му, затем передавать её в таком виде
по телефонной линии и на другом ПОДКЛЮЧЕНИЕ
конце линии выполнять обратное
преобразование. Этим и занимается
К ВСЕМИРНОЙ СЕТИ:
модем, объединяющий в себе два ло- ПРОТОКОЛЫ UUCP И PPP
гических устройства: модулятор, т. е.
преобразователь из цифровой в ана- Задолго до появления Всемирной па-
логовую форму, и демодулятор — об- утины люди пользовались модемами
ратный преобразователь. для общения друг с другом. Прежде
Современные модемы теоретиче- всего, модем позволял работать с элек-
ски могут обеспечивать скорость пе- тронной почтой. Для этого применял-
редачи порядка 50 кбит/с. Правда, ся протокол UUCP.
эксперименты на реальных телефон- Это протокол передачи данных
ных сетях показывают, что такая ско- между двумя компьютерами, который
рость достижима очень редко и ста- был разработан в системе UNIX. UUCP
бильная связь, особенно в России, в основном используется для перекач-
осуществима обычно на скорости в ки электронной почты с компьютера,
два раза ниже. При более высокой подключённого к Интернету, на до-
скорости соединения происходят машний компьютер пользователя
многочисленные ошибки и беско- и обратно. На персональных компью-
нечная повторная передача сбойных терах аналогично работает програм-
пакетов, так что реальная скорость ма UUPC (протокол для PC), которая
передачи резко падает либо связь во- с помощью модема звонит по теле-
Встроенный модем обще рвётся. Причина этого кроется фону основному компьютеру, высту-
ноутбука. в устройстве телефонной сети. пающему в роли почтового сервера,
устанавливает UUCP-соединение и пе-
реносит электронную почту на пер-
сональный компьютер и обратно. По-
сле этого соединение разрывается, так
что протокол UUCP занимает теле-
фонную линию совсем ненадолго.
При чтении и подготовке почты теле-
фонная линия остаётся свободной.
UUCP-почта довольно удобна и
не требует значительных ресурсов,
позволяя сотням пользователей рабо-
тать с почтой, не мешая друг другу,
при всего одной телефонной линии.
Тем не менее в последнее время про-
токол UUCP применяется всё реже
и реже. Связано это с возросшей по-
пулярностью Всемирной паутины. Со-
временные провайдеры обеспечива-

484
Информация и человек

ют непосредственное подключение
через модем к Интернету, что автома-
тически даёт возможность пользовать- ISDN И МОБИЛЬНЫЕ ТЕЛЕФОННЫЕ СЕТИ
ся электронной почтой и всеми оста-
льными услугами, существующими Чтобы избавиться от недостатков существующих телефонных ли-
в Интернете. ний, был разработан новый стандарт телефонных сетей — ISDN, т. е.
Для подключения к Интернету че- интегрированные сервисные цифровые сети (Integrated Service Digital
рез модем имеется два протокола: SLIP Networks). ISDN позволяют передавать как обычный звук, так и ком-
и PPP. В начале XXI в. протокол SLIP пьютерные данные в цифровом виде; скорость передачи равна 64
устарел, и почти все провайдеры под- кбит/с. Во время разговора звук преобразуется в цифровую форму
держивают протокол РРР. и в таком виде передаётся по линии, т. е. происходит преобразова-
PPP позволяет на время соединения ние, обратное тому, которое выполняет модем. К сожалению, ISDN
с сервером через модем сделать пер- в сфере телекоммуникаций были встречены весьма прохладно. Во-
сональный компьютер полноценным первых, для их развития требуются крупные финансовые вложения,
узлом сети: такому компьютеру даётся но большинство пользователей не идут на это, работая по старинке,
Интернет-адрес, он может принимать с помощью обычного модема.
и посылать пакеты в формате исполь- Во-вторых, скорость передачи, которую обеспечивают ISDN, не-
зуемого в сети Интернет-протокола. достаточна для современных компьютеров. Она лишь незначитель-
Недостаток один: занята телефонная но превышает скорость работы современного модема в качествен-
линия. Платить, как правило, прихо- ной телефонной сети (хотя, конечно, надёжность ISDN неизмеримо
дится за использованное время, а не за выше).
объём переданной информации. На начало XXI в. в России ISDN практически отсутствовали. Од-
Скорость и надёжность передачи нако сотовые телефонные сети быстро распространяются. Протоко-
информации по модему невысоки лы, применяемые в мобильных сетях, весьма удобны для цифровой
и совершенно неудовлетворительны передачи данных между компьютерами. Поэтому подключение к Ин-
для современных компьютерных се- тернету через сотовый телефон становится доступнее и дешевле.
тей. Тем не менее огромным досто-
инством модема является то, что он
разрешает использовать уже сущест-
вующие телефонные линии, не дожи-
даясь создания инфраструктуры ком-
пьютерных сетей.
Возможно, «настоящие» компью-
терные сети скоро станут таким же
обычным явлением, как телефонные
сети. Уже сейчас в крупных городах
многие дома подключены к Интерне-
ту с помощью современных средств,
таких, как оптоволоконные линии.
Когда появятся подобные сети, модем
наконец займёт своё место в ряду ус-
таревших и достаточно курьёзных тех-
нических устройств — именно таким
нам представляется сейчас устройст-
во ввода с перфокарт, которое ещё 25
Модемы ноутбуков
лет назад было неотъемлемой частью величиной с кредит-
любой ЭВМ. ную карточку.

КАК РАБОТАЕТ МОДЕМ

При установке соединения два моде- и выборе коммуникационного прото-


ма автоматически «договариваются» кола. Более быстрый модем может свя-
между собой о максимально возмож- заться с медленным, применив умень-
ной для обоих скорости передачи шенную скорость передачи.

485
Информация и информатика

Если динамик модема вклю-


чён, то человек в этот момент
Один хакер, будучи слышит шипение и свист раз-
в гостях у друга- про- ной частоты. Модем, устанав-
граммиста, видит лю- ливающий соединение, пред-
бимца дома — огром- лагает сначала протокол,
ного рыжего кота. в котором указывается мак-
И спрашивает прия- симальная скорость передачи,
теля: со сжатием и коррекцией оши-
— Как зовут котяру? бок. Если второй модем не может
— Зиксель. (Zyxel — применить этот протокол (напри-
известная фирма, вы- мер, из-за низкого качества телефон-
пускающая модемы. ного соединения), то первый модем
— Прим.ред.) меняет его на более простой, со сни-
— Опа-на! — восхища- женной скоростью передачи или во-
ется гость. А почему? обще без сжатия данных. Таким об- не исказил-
— Смотри, — отвеча- разом, первый модем перебирает все ся ли пакет при передаче, и при не-
ет хозяин, — АТDP!.. поддерживаемые им протоколы, по- обходимости запросить повторную
— Шшшшшш! — ши- ка не найдёт приемлемый для обоих передачу.
пит кот. модемов. Впрочем, обычно модему Модем может использовать коды,
— Во! Законнектился! запрещено «опускаться» до самого исправляющие ошибки, а также сжа-
14 400! примитивного протокола без кор- тие данных. Идея кодов состоит в том,
рекции данных, которые в обычных что к каждому байту добавляются до-
телефонных сетях приводят к тому, полнительные биты, дающие возмож-
что даже одно короткое слово невоз- ность при искажении одного бита од-
можно передать без ошибки. нозначно восстановить исходный
Протокол описывает способы пе- байт. И хотя длина сообщения при
редачи байтов по телефонной линии: этом увеличивается, в большинстве
тип модуляции аналогового сигнала, случаев не приходится повторять
несущую частоту, дополнительные передачу искажённых пакетов. Это
служебные биты, а также как байты особенно важно при неустойчивой
объединяются в пакеты, форматы па- связи, а телефонные линии крайне не-
кетов, порядок переповтора переда- надёжны.
чи в случае искажения пакета и т. п. Сжатие данных применяется для
Каждый пакет содержит кроме самих упаковки содержимого сообщений,
передаваемых байтов дополнитель- что в ряде случаев существенно
ную информацию, включающую, уменьшает их размер. Правда, при пе-
в частности, контрольную сумму. редаче уже упакованных данных, та-
Контрольная сумма позволяет при- ких, как картинки в формате JPEG или
нимающему устройству проверить, ZIP-файл, дополнительное сжатие
практически ничего не даёт. Сжатие
данных может использоваться совме-
стно с кодами, исправляющими ошиб-
ки: сначала данные упаковываются,
а затем каждый байт упакованного со-
общения передаётся с помощью ко-
да, исправляющего ошибки.
В настоящее время существует
множество коммуникационных про-
токолов, они имеют свои обозначе-
ния: MNP 4, MNP 5, V42b, V.90 и т. п. Ес-
ли самые первые модемы передавали
лишь отдельные байты, не используя
никаких протоколов высокого уров-
ня, то со временем скорость переда-
чи менялась от нескольких сотен до
56 тыс. бит/с.

486
Информация и человек

ПРОГРАММИРОВАНИЕ
МОДЕМА Информация передаётся модемом в виде последовательности
байтов (групп по 8 бит). К каждому байту добавляются один или
несколько служебных битов (старт-бит, стоп-бит). Байты могут
Большинство современных модемов
посылаться по отдельности либо объединяться в пакеты, причём
относится к Hayes-совместимым (по
для каждого пакета сообщается контрольная сумма. При несо-
названию фирмы Hayes). Устройство
впадении её передача пакета повторяется.
такого модема в упрощённом виде вы-
глядит следующим образом. В компью-
тере имеется коммуникационный
порт, через который можно переда- В режиме данных модем пересы-
вать байты в модем и принимать бай- лает все байты, передаваемые ему че-
ты от модема. При этом передаваемые рез коммуникационный порт, удалён-
и принимаемые байты образуют два ному модему.
независимых потока, что позволяет В любой операционной системе
в любой момент пересылать байты че- имеется специальная программа «тер-
рез порт и считывать их из порта. минал», позволяющая пользователю
Модем может находиться в одном напрямую общаться с модемом, напри-
из двух режимов — в режиме команд мер, с помощью AT-команд. В системе
или в режиме данных. В режиме ко- MS Windows такая программа назы-
манд модем интерпретирует отправ- вается Hypertrm. После установки сое-
ленные ему через порт байты как ко- динения с удалённым модемом все
манды. Эти команды либо меняют символы, набираемые на клавиатуре,
внутреннее состояние модема (т. е. со- пересылаются удалённому компьюте-
держимое его внутренних регистров), ру; обратно, все символы, выводимые
либо заставляют модем выполнить не- удалённым компьютером на экран,
которое действие. Любая команда на- пересылаются через модем терми-
чинается с двух символов AT (от англ. нальной программе и отображаются
attention — «внимание») и заканчива- в её окне.
ется символом перевода строки. На- Так, терминальная программа даёт
пример: возможность превратить домашний
• ATL3 — «установи максимальную компьютер в терминал (экран +
громкость встроенного динамика»; клавиатура) и работать на удалённом
• AT S0 = 0 — «запрещено отвечать компьютере, не выходя из дома. Через
Скриншот
на приходящие звонки»; неё можно даже переслать файл, терминальной
• AT S0 = 2 — «сними трубку после используя специальный протокол программы.
двух звонков»;
• ATZ — «инициализация модема».
Таких AT-команд несколько десят-
ков, с их помощью происходит обще-
ние компьютера с модемом. Наиболее
распространённая команда — это
команда набора телефонного номера:

AT DP 839-17-86,

здесь D (от англ. Dial) — «набирать но-


мер»; P (от англ. Pulse) — «импульс».
В России принят импульсный набор
номера, а при тональном наборе ис-
пользуется префикс DT.
В режиме команд модем сообщает
компьютеру результат выполнения
каждой команды. Коды результата пе-
редаются от модема компьютеру точ-
но так же, как и данные, принимаемые
от удалённого модема.

487
Информация и информатика

Z-Modem. При этом протокол Z-Mo- нальная программа передаёт содер-


dem запускается на удалённом ком- жимое файла байт за байтом так же, как
пьютере в режиме приёма, а терми- и коды клавиш при наборе команд.

КАКИЕ БЫВАЮТ КОМПЬЮТЕРНЫЕ СЕТИ

Сети можно разделить на классы в ния, объединяющие от 2 до 300 ком-


соответствии с величиной. пьютеров, которые принадлежат обыч-
Небольшие сети, но одной организации (или одной се-
в пределах мье), называются локальными
одного вычислительными сетями. Сети меж-
зда- ду учреждениями в пределах города,
связывающие много локальных вычис-
лительных сетей, называются город-
скими — MAN (Metropolitan Area
Network). Глобальные сети — WAN
(Worldwide Area Network) объединя-

Телефонная
линия

Hub

Hub

Другая
локальная
Сервер сеть

Схема фрагмента
локальной сети.

488
Информация и человек

ют сотни, тысячи узлов во многих стра- ная организация по стандартизации)


нах мира. разработал стандарт 10BaseT. Данный
Локальная сеть создаётся для раци- стандарт изменил саму природу ло-
онального использования компью- кальных сетей: стала использоваться
терного оборудования и эффектив- неэкранированная витая пара.
ной работы сотрудников. В настоящее Раньше между всеми машинами,
время трудно представить себе фир- связанными в локальную сеть, прокла-
му или даже квартиру, где при нали- дывался единый коаксиальный провод
чии хотя бы двух компьютеров они не (очень похожий на антенный телеви-
были бы соединены в сеть. Сеть поз- зионный). Если он обрывался, то из
воляет пересылать файл с одной ма- строя выходила вся сеть. А когда в ре-
шины на другую, хранить совместный зультате аварии на провод попадало
архив (как правило, компьютеры не- высокое напряжение (хотя бы 220 В),
равноценны, и у какого-то из них дис- испорченными оказывались все ком-
ковое пространство больше) и делать пьютеры, находящиеся в сети. Такой
распечатки. провод называли тонкий Ethernet, в от-
В офисе обычно устанавливаются личие от толстого Ethernet, который
один сервер (для печати и хранения
данных) и рабочие станции для сотруд-
ников, один-два модема для выхода в
Интернет (или прямое кабельное со-
единение), для получения и отправки
электронной почты, факсов и элек-
тронных платежей, несколько сетевых
принтеров, внутренняя АТС на десятки
телефонных номеров. Организовывать
переписку сотрудников внутри локаль-
ной сети вполне разумно — это, по
крайней мере, упрощает документо-
оборот. Дома ограничиваются настоль-
ным сервером с большими дисками, с Hub и тонкий Ethernet.
принтером и сканером и одной-двумя
машинами «послабее» (возможно да-
же, это ноутбуки, с которыми хозяева
ходят на работу и частенько приносят
работу на дом). Наличие пишущих CD
ROMов при передаче достаточно боль-
шого объёма информации является ма-
лым подспорьем, так как современные
ноутбуки «облегчаются» за счёт отсут-
ствия всякой периферии, а гнездо для
подключения витой пары есть практи- Толстый Ethernet.
чески везде. (В качестве среды переда-
чи в локальных сетях преимуществен-
но употребляется неэкранированная
витая пара — похожая на обычные
провода, свитые парами.)
Применение наиболее популярно-
го однотипного оборудования с одно-
типными протоколами для связывания
компьютеров на основе технологии
Ethernet упрощает интеграцию в сеть
новых машин. Хотя Ethernet появилась
в начале 80-х гг. XX столетия, однако
широко применять данную техноло-
гию стали только в конце 80-х гг., ког-
да Комитет IEEE 802.3 (Международ- Hub и витая пара.

489
Информация и информатика

может использоваться для выхода в го- Hub напоминали работу телефони-


родскую информационную сеть. стки, он осуществлял коммутацию
Хотя наиболее широ- MAN и WAN — территориально машин для передачи пакетов между
ко распространена распределённые сети, в них удалён- ними. Более сложные Hub могли од-
именно технология ные точки (локальные сети) объеди- новременно осуществлять передачу
Ethernet, стоит упомя- няются с помощью скоростных сразу между несколькими парами ма-
нуть и другие прото- оптоволоконных каналов связи. Во- шин.
колы (и оборудова- локонно-оптические кабели сегодня Если машины рассредоточены по
ние), например Token внедряются повсюду, уверенно вы- зданию, то нерационально использо-
ring. тесняя своих медных предшествен- вать один Hub (даже если машин в се-
ников. ти мало), так как прокладка проводов
Стандарт 10BaseT определил ис- иногда весьма трудоёмка. Проблему
пользование технологии «звезда», легко решить, разместив по Hub в каж-
когда любой компьютер подключал- дой комнате и связав стоящие в ней
ся к прибору, называемому Hub, ко- машины, а все Hub объединить затем
торый позволял присоединить 8, 16 с главным центральным Hub. Для до-
или 32 компьютера одновременно. ма, когда надо связать всего две маши-
Получалось, что Hub — центр звезды, ны, Hub не нужен, достаточно специ-
а компьютеры — её лучи. Действия ального провода.
При описании сети используется
термин «топология сети». Топология
описывает физическое размещение
компьютеров, кабелей, Hub и других
компонентов локальной сети. Топо-
логия сети в значительной степени
влияет на такие характеристики, как
производительность, стандарт обору-
дования, стоимость монтажа, затраты
на её поддержку, ремонтопригод-
ность, надёжность и т. п.
Компьютерные сети различаются
по типу: одноранговые и типа «кли-
ент—сервер». Одноранговая сеть
построена на равноправных ком-
пьютерах, каждый из них может ис-
пользовать ресурсы другого. В сетях
с большим количеством пользовате-
лей нежелательно, чтобы все пользо-
ватели получали доступ ко всем ком-

Схема фрагмента
распределённой сети
(WAN, MAN).

490
Информация и человек

пьютерам сети. Именно поэтому од-


норанговые сети больше подходят
для небольших групп, работающих СЕТЕВАЯ ОС
над одним проектом.
Более популярны сети типа «кли- Когда стоимость винчестеров была велика и устанавливать их на каж-
ент — сервер». При разделении про- дый компьютер было нерентабельно, использовались сетевые опера-
грамм на клиентскую и серверную ционные системы. Подобные системы умели соединить несколько
части удаётся лучше использовать персональных компьютеров, обеспечив совместное использование
производительность настольных небольшого количества данных и основных приложений. Загрузка
компьютеров, которые нерациональ- операционной системы осуществлялась с центральной машины. Се-
но применять в качестве простого тевые ОС напоминали центры коллективного пользования, когда тер-
терминала. Такой подход даёт воз- миналы подключены к одной машине. В качестве терминалов высту-
можность перенести приложения с пали персональные компьютеры, да и «интеллект» терминалов был
главных компьютеров — мэйнфрей- существенно выше, потому что программы выполнялись не на цент-
мов (англ. mainframe) в системы, ос- ральной машине, а на компьютере пользователя. Наиболее успешно
нованные на локальных сетях. Про- сетевые ОС применялись при обучении в университетах, так как, с
грамма, исполняемая на машине одной стороны, студенту не требуется особенно больших компью-
пользователя, меньше нагружает сеть терных ресурсов, с другой — сетевой ОС удобно управлять. Сегодня
передачей данных. Так, программы- сетевые операционные системы должны делать всё: работать со ста-
навигаторы Интернета, например рыми файловыми системами и одновременно обрабатывать прило-
Internet Explorer, не беспокоят сеть, жения «клиент — сервер». Самой распространённой сетевой ОС яв-
пока человек разглядывает страни- ляется Novell Netware.
цы, загруженные из сети.

ТЕХНОЛОГИЯ БЕСПРОВОДНОЙ СВЯЗИ

ПЕРЕДАЧА ИНФОРМАЦИИ
БЕЗ ПРОВОДОВ. РАДИО Диполь Герца (вибра-
тор Герца), — простей-
До 1920 г. в радиосвязи применялись шая антенна, которую
волны длиной от сотен метров до де- использовал Генрих
сятков километров. В 1922 г. радио- Герц в 1888 г. в своих
любители открыли свойство корот- опытах. Она состояла
ких (несколько десятков метров) волн, из медного стержня
распространявшихся на любые рас- с металлическими ша-
стояния благодаря отражению от рами, в разрыв кото-
верхних слоев атмосферы. Такие вол- рого включалась так
ны стали основным средством даль- называемая катушка
ней радиосвязи. Румкорфа. Электри-
В 30-х гг. XX в. были освоены ме- ческие колебания в
тровые, а в 40-х гг. — дециметровые диполе возбуждались
и сантиметровые волны, распрост- с помощью единст-
раняющиеся в зоне прямой видимо- венного известного в
сти; радиус действия связи на этих то время источника
волнах ограничивался 40—50 км. Од- электрических коле-
нако ширина частотного диапазона баний - искрового
коротких волн (от 30 МГц до 30 ГГц) разряда. Поэтому пе-
в 1 тыс. раз больше ширины частот- редатчики, основан-
ных диапазонов волн длиннее 10 м. ные на этом методе,
То есть на этих частотах можно пе- получили название ис-
редавать огромные потоки инфор- кровых.
мации и организовывать многока-
нальную связь.

491
Информация и информатика

ЦИФРОВАЯ РАДИОСВЯЗЬ
НА ПУТИ К РАДИО На принципах радиосвязи основыва-
ются и методы передачи голоса (и лю-
Ещё в 80-х гг. XIX в. американский изобретатель Томас Эдисон бой другой информации) в сотовой
проводил опыты с радиосвязью и даже получил патент. В 1886— телефонной связи.
1889 гг. немецкий физик Генрих Герц экспериментально доказал Как разделить общий широкий ра-
существование электромагнитных волн и создал искровый излу- диоканал при передаче информации?
чатель электромагнитных волн. В 1895 г. русский физик и элект- Можно поступить очень просто: ис-
ротехник Александр Степанович Попов изобрёл электрическую пользуемый диапазон разбить на рав-
связь без проводов (радиосвязь). 7 мая 1895 г. Попов продемон- ные части так, чтобы в выделенной
стрировал первый в мире радиоприёмник. В 1897 г. итальянский полосе помещался весь спектр переда-
радиотехник Гульельмо Маркони сконструировал аналогичный ап- ваемой информации. Если это голос
парат. В том же году он зарегистрировал Компанию беспроводно- телефонного абонента, то каждому
го телеграфирования и сигнализации в Англии, а в 1899 г. — в абоненту достаточно 10 кГц, превыша-
США. В декабре 1901 г. Маркони осуществил радиотелеграфную ющие спектр человеческой речи. Что-
передачу через Атлантический океан. бы передача разговоров одного або-
нента не мешала остальным, нужно
оставить солидный запас.
Малая дальность распространения В первых сетях радиосвязи исполь-
и узкая направленность сигнала поз- зовался шаг 50 кГц, а затем его удалось
Чтобы одна радиопе- воляют использовать одни и те же дли- уменьшить до 25 кГц. В аналоговых
редача не мешала ос- ны волн в близко расположенных системах сотовой связи применён
тальным, требовались пунктах без взаимных помех. множественный доступ с разделени-
учёт и распределение Передача на значительные рассто- ем частот, или частотное разделение
частот радиовещания. яния осуществляется путём много- каналов — FDMA (англ. Frequency
По решению радио- кратной ретрансляции в так называ- Division Multiple Access). Технически
конференции 1927 г. емых линиях радиорелейной связи возможно уменьшить шаг до 6—8 кГц,
запрещалось при- или с помощью спутников, находя- правда с использованием цифровых
менение искровых щихся на высоте около 40 тыс. км над методов сжатия звука. Уменьшать до
радиопередатчиков, Землёй. бесконечности данную величину не-
которые вещали в В 1953 г. была разработана аппа- реально, потому что из-за близости
широкой полосе час- ратура радиорелейной связи «Стрела- частот возникают сильные искаже-
тот (их оставили толь- М», которая передавала 24 телефон- ния. Для FDMA предел уже достигнут.
ко для передачи сиг- ных разговора одновременно, а Все остальные методы относятся к
налов SOS, чтобы несколькими годами позже её смени- цифровой радиосвязи, которая более
увеличить вероят- ла радиорелейная станция Р-60/120, устойчива к помехам, её проще коди-
ность приёма). обеспечившая до 120 телефонных ровать, шифровать. Голос абонента
каналов. даже проходит дискретизацию, пре-
образовываясь в цифровое представ-
ление, и в таком виде передаётся в
эфир.
Наиболее популярный метод циф-
ровой радиосвязи — временное раз-
деление каналов, TDMA (англ. Time
Division Multiple Access). В общей ши-
рокой полосе частот, выделенной для
радиосети, применить этот метод в
чистом виде не удаётся. Например, в
сотовой сети GSM, самой популярной
в Европе, используют комбинирован-
ное частотное и временное разделе-
ние каналов (FDMA+TDMA). Сначала
методом FDMA общую полосу 25 МГц
делят на каналы по 200 кГц, а уже за-
Сотовые телефоны тем групповой канал — на восемь
CDMA и GSM. пользовательских каналов методом

492
Информация и человек

TDMA. Для каждого разговора (экви- Хотя создаётся впечатление, что


валентного ширине 25 кГц) выделя- общая потенциальная пропускная
ется маленький квант времени, в те- способность радиосети CDMA снижа- Д. В. Агеев известен
чение которого по каналу передаётся ется, на самом деле реальная эффек- также как основатель
его информация, в следующий мо- тивность систем CDMA оказывается радиотехнического
мент — информация другого разго- даже выше, чем у TDMA. В CDMA нет факультета Горьков-
вора и так далее, по кругу. Причем потерь на разделение диапазона, ког- ского политехничес-
один и тот же разговор может не обя- да надо сохранять некоторый запас кого института, од-
зательно передаваться по одному ка- между близко расположенными ка- ной из самых сильных
налу. На станции полученные куски налами. При специальных методах в мире школ радио-
«разбирают» по абонентам и «склеи- помехоустойчивого кодирования на- электроники.
вают» в непрерывный разговор. ряду с улучшением качества связи по-
Можно ожидать, что в скором вре- путно осуществляется перераспреде-
мени затраты на полосу на одного ление общего ресурса полосы между
абонента снизятся до 4 кГц. В амери- разговорами в пользу более активно
канском стандарте IS-54 с похожими говорящего. Правда, приёмники CDMA
методами кодирования затраты на значительно сложнее аналогичных
полосу оказываются в три раза ниже, приёмников TDMA.
чем в GSM.
Существуют ещё системы цифро-
вой радиосвязи с кодовым разделени- СОТОВЫЙ ИНТЕРНЕТ
ем каналов, или CDMA (англ. Code
Division Multiple Access). Каждый канал С помощью сотовой связи можно не
занимает всю выделенную полосу ча- только разговаривать, но и пользо-
стот и поэтому создаёт помеху для ос- ваться Интернетом. К сотовому теле-
тальных. Казалось бы, это лишь усугуб- фону можно подключить модем, но
ляет проблему. Однако представим необходимо учитывать, что модем ис-
себе ресторан, в котором за столика- пользует аналоговые методы переда-
ми сидят люди, одновременно говоря- чи цифрового сигнала. А сотовая
Д.В.Агеев.
щие на разных языках. Чужая речь при связь, как правило, цифровая. Кроме
этом мало мешает отдельному разго- того, сотовая связь предназначена для
вору, так как беседующие из общего передачи голоса или нескоростной
шума выделяют только понятные им цифровой информации: факса, SMS —
слова родного языка. Примерно на тех коротких текстовых сообщений.
же принципах основаны и сети CDMA. Реальные скорости передачи данных
В 1935 г. аспирант Ленинградско- по модему не превышают 10 кбит/с.
го электротехнического института Конечно, это не совсем удовлетворяет
Дмитрий Васильевич Агеев написал запросы человека, часто пользующе-
статью «Основы теории линейной се- гося Интернетом. На таких скоростях
лекции». В ней он показал, что два ра- можно только получать электронную
диосигнала, занимающие одну поло- почту, да и то малого объёма.
су радиочастот и совпадающие по В сети GSM был найден выход — Интернет доступен
времени, могут быть разделены и при- система пакетной передачи данных с сотового телефона.
няты приёмником, если в приёмнике по сети сотовой связи, или GPRS (англ.
заложена информация о форме пере- General Packet Radio Service). При этом
даваемого сигнала.
Идея очень понравилась военным,
так как при этой технологии передача
информации лучше всего защищена
от прослушивания. Например, аме-
риканцы использовали кодовое раз-
деление сигналов для радиосвязи в
военной авиации. Впервые такие воз-
можности были продемонстрирова-
ны в 1989 г. американской компани-
ей Qualcomm, которая и разработала
стандарт CDMA для сотовой связи.

493
Информация и информатика

методе информация собирается в па-


Устройство кеты и передаётся в эфир, заполняя
безпроводной связи
Bluetooth. «пустоты» между передачей голоса.
Если при обычной передаче данных
с помощью модема сначала устанав-
ливается соединение и лишь после
этого начинается передача данных,
Стандарт CDMA-2000 то при пакетной передаче соедине-
предоставляет высо- ние есть всегда, пока доступна сото-
коскоростной метод вая сеть, ведь телефон включён.
передачи данных (в При пакетной передаче данных
том числе доступ в Ин- радиоканал занят только в процессе
тернет) со скоростью передачи информации, пока по не-
порядка 150 кбит/с. му идёт пакет. Поэтому оплата взи-
мается за так называемый трафик,
т. е. за объём переданной и получен-
ной информации, а не за время сое- (Special Interest Group) для разработ-
динения. ки нового стандарта беспроводной
GPRS может обеспечивать ско- связи, названного Bluetooth, что в пе-
рость передачи данных до 107 кбит/с реводе с английского означает «си-
и даже выше. Это вполне приемлемо незубый».
и даже превышает аналогичные воз- Стандарт Bluetooth использует ча-
Синезубый — прозви- можности обычной телефонной ли- стоты 2,4 — 2,48 ГГц в так называе-
ще датского короля нии при использовании модема. GPRS мом диапазоне ISM (англ. Industry,
Харальда (около 890 так называемого первого поколения Science and Medicine — «промышлен-
— около 940), полу- позволяет передавать информацию ный, научный и медицинский»), для
ченное им за тёмный со скоростью до 13,4 кбит/с и прини- этого не требуется специальной ли-
передний зуб. Ха- мать со скоростью до 40,2 кбит/сек. цензии, в отличие от сотовой связи.
ральд вошёл в исто- Скорость передачи данных может до-
рию как великий за- стигать 720 кбит/с. Стандарт предпо-
воеватель и человек, БЕЗ ПРОВОДОВ лагал поддерживать связь на рассто-
принесший Дании янии не более 10 м, однако в первые
христианство. В начале 1998 г. пять компаний — годы XXI в. были выпущены микро-
Ericsson, Nokia , IBM, Intel и Toshiba — схемы, позволившие увеличить рас-
сформировали рабочую группу SIG стояние до 100 м.

494
Информация и человек

Излучение такой частоты способ-


но обходить препятствия, поэтому
устройства не обязательно должны ЧТО С ЧЕМ СОЕДИНЯТЬ
находиться в зоне прямой видимос-
ти. Как только Bluetooth-устройства Это традиционный вопрос покупателя персонального компью-
оказываются в пределах досягаемо- тера. Если компьютер состоит из двух больших коробок — мо-
сти, сразу происходит соединение, нитора и системного блока, то, по крайней мере, есть шнур,
причём стандарт допускает широко- соединяющий их друг с другом. Для мыши и клавиатуры, ес-
вещание. ли они не используют радио- или инфракрасную связь для пе-
То, что ISM не лицензируется, яв- редачи, нужна ещё пара проводов. Кроме того, провода к уси-
ляется не только достоинством, но и лителю или колонкам, чтобы машина воспроизводила музыку;
недостатком. В данном диапазоне ра- провод к телевизору, чтобы смотреть DVD-диски не с мони-
ботают также различные медицин- тора, а с экрана. Если нравятся компьютерные игры, то для
ские приборы, бытовая техника и про- подключения 3D-очков (или шлема) и руля с педалями также
чее, что может привести к конфликту требуются провода. А ещё принтер, сканер, модем (когда он
между ними. Во избежание этого внешний), витая пара для локальной сети... Если же компью-
Bluetooth действует по принципу скач- тер применяется для оцифровки и обработки звука или ви-
кообразной перестройки частоты део, то в проводах может запутаться и профессионал.
(1600 скачков в секунду). Новая час- Конечно, разработчики вычислительной техники задумы-
тота выбирается генератором случай- вались о foolproof («защита от дурака»), чтобы пользователь не
ных чисел, что позволяет освободить испортил компьютер, неверно подключив провода. Поэтому
нужные другим устройствам частоты. разнотипные соединения компьютера имеют разные по форме
Благодаря технологии Bluetooth разъёмы. Провода надо не только правильно подсоединить, но
абонент сотовой связи может исполь- и аккуратно проложить, чтобы случайно не выдернуть из ма-
зовать беспроводный наушник с ми- шины и т. п.
крофоном и разговаривать, пока те- Той же «болезнью» страдают и дорогие музыкальные цент-
лефон с таким же модулем лежит ры, и видеомагнитофоны. А если нужно подключить DVD-пле-
где-то в комнате. Предполагается, что ер, пару видеомагнитофонов, караоке-центр к одному телеви-
Bluetooth будет интегрирован в мо- зору? Простое присоединение всех выходов к одному входу не
бильные телефоны, компьютеры и поможет, так как сигналы различных устройств будут мешать
другие устройства, применяющие друг другу. В этом случае не обойтись без специального комму-
беспроводную связь. тационного устройства.
Более совершенно устроены стиральная машина и холодиль-
ник, так как у них всего один шнур — сетевой. Но неизвестно,
ПО СЕКРЕТУ ВСЕМУ что произойдёт, если стиральную машину подсоединят к до-
машней информационной сети, а холодильник — к Интернету.
СВЕТУ… Нельзя ли использовать единственный сетевой (по-русски
«сеть» — это и система питания, и информационная связь, в от-
Безпроводные технологии также личие от английского языка, где power — «силовая сеть», а net-
имеют ахиллесову пяту. Проблема work — «информационная сеть») шнур и для передачи энергии,
лежит на поверхности: раз инфор- и как информационный канал, благо сеть уже проложена по до-
мация передается без проводов, то му?
соответственно она не защищена от Линия электропередачи — одна из наиболее сложных сред
прослушивания. Правда разработчики для передачи информации. Изначально электрическая сеть
пытаются решить и эту проблему — предназначена для передачи электрической энергии низкой
методами шифрования передаваемой частоты (50 Гц), на которую воздействуют сильные помехи от
информации. Казалось бы существую- промышленных потребителей электрической энергии. Если
щая техника шифровки сообщений использовать электрическую сеть для передачи информации
избавила потребителя от «лишних в городских информационных сетях, то могут возникнуть про-
ушей» (см. статью «Современная крип- блемы из-за сильного затухания сигнала и высокого уровня
тография»). Однако допущенные помех. К тому же электропередача не должна ухудшать энер-
ошибки при разработке безпровод- госнабжение, когда закодированная информация накладыва-
ных средств связи, обнаруженные ха- ется на частоту силовой сети.
керами, ставят под удар не только кон- Такие системы разработаны и уже существуют, но их по-
кретное оборудование и конкретных всеместное внедрение невыгодно экономически (по сравне-
пользователей (чей разговор подслу- нию с беспроводной связью).
шан), но и всю отрасль вцелом.

495
Информация и информатика

Так произошло и с Bluetooth, самой популярного беспроводного протоко-


популярной технологией беспровод- ла. «Предложенный нами метод атаки
ной связи XXI века. позволяет взломать любой сеанс обме-
Некий законопослушный гражда- на данными между двумя Bluetooth-
нин Великобритании, Олли Уайтхауз устройствами, даже если это не первая
в апреле 2004 года продемонстрировал связь между ними», - пояснил Янив
методику взлома Bluetooth-устройств. Шакед. Им удалось искусственно
При процедуре соединения двух таких инициировать процедуру первого сое-
устройств при помощи вспомога- динения Bluetooth-устройств. Подслу-
тельного оборудования хакер получал шивающее устройство «вмешивалось»
возможность перехватить идентифи- в контакт, «выдавая» себя за другое,
кационную информацию, которой посылалось «жертве» сообщение о том,
обмениваются партнеры. При первом что ключ якобы забыт. «Умное»
соединении на устройствах требуется устройство, в соответствии с протоко-
набрать одинаковый четырехсимволь- лом аннулировало старый ключ и
ный PIN-код. Использую специальные начинало процедуру первого соеди-
Bluetooth-алгоритмы, перебрав при- нения вновь. Дальше хакер действовал
мерно 10 тысяч вариантов хакер на- по вышеописанной схеме Олли Уйат-
ходил тот самый PIN-код. Далее, так хауза.
PIN-код используется для генерации Для отправки ложного сообщения
специального 128-битного защищен- о «потере» ключа хакеру потребовался
ного ключа, фактически получал в рас- только чужой идентификатор, которые
поряжения этот самый «защищенный» направо и налево автоматически
ключ. Таким образом, весь последую- рассылают все Bluetooth-устройства в
щий зашифрованный «разговор» этих пределах зоны действия.
двух устройств для хакера становился Процедура вычисления защищен-
открытой книгой. ного 128-битного ключа после уста-
Однако, это не принесло особого новления контакта на компьютере
вреда индустрии Bluetooth связи, так класса Pentium IV занимает всего 0,06
как в случае, если первый «контакт» был секунды.
установлен вне пределов досягаемости «Это - катастрофа не только в
хакера, дальнейший обмен данными теории, но и на практике», - поделился
между устройствами риска не пред- впечатлениями Брюс Шнайер, эксперт
ставлял. по системам безопасности из г. Маун-
Но рано успокоились разработчики тин-Вью, Калифорния.
Bluetooth. Весной 2005 года два граж- Фактически абсолютно все Blue-
данина Израиля Авишай Вул и Янив tooth-устройства стали уязвимы после
Шакед из университета Тель-Авива этой демонстрации.
предложили новый, усовершенство- Даже малый (порядка десяти
ванный и «красивый» метод взлома метров) радиус действия Bluetooth-
устройств не спасет от хакеров. С по-
мощью узконаправленных антенн
хакеры научились производить «даль-
ний взлом», мировой рекорд такого
взлома летом 2005 года превысил рас-
стояние в 1 км.

КОГДА ЭТО КОНЧИТСЯ?


Одна из причин слияния старых
технологий связи — быстрый рост
рынка беспроводной связи и комму-
никаций (сотовые телефоны, спутни-
ковая связь).
В скором времени количество при-
боров, которым требуется беспровод-

496
Информация и человек

Телефон-зеркальце.

ная связь, настолько возрастёт, что сно- перспективы по многократному уве-


ва встанет вопрос, как в заданном ди- личению этой скорости.
апазоне частот разместить конечное В системах CDMA для передачи си- Технология ближай-
число каналов. То есть, если использу- гналов используются радиоканалы с шего будущего носит
емые частотные ресурсы окажутся ис- шириной полосы частот в 1,25 МГц, а имя EV-DO (англ. Evo-
черпанными, придётся забираться всё повышение скоростных характерис- lution — Data Only)
выше и выше по частотной лестнице... тик может быть достигнуто путем па- (Эволюция, только
Но тут наряду с элементарной раллельного использования несколь- данных), а формально
проблемой радиосвязи (электромаг- ких (до трех и более) радиоканалов. звучит так: IMT-MC-
нитная энергия быстрее затухает, на- Поэтому в названии технологии сло- 1x-EV-DO.
пример во время дождя или при по- восочетание “Multi-Carrier” — много-
вышенной влажности) может частотная. Но, как всегда, оказалось,
возникнуть и другая: насколько вред- что можно использовать «внутренние
ным окажется влияние сверхвысоких резервы», лишь за счет усовершенст-
частот на организм человека. вования системы кодирования и
Тогда, пожалуй, человечество вспо- модуляции сигналов были достигнуты
мнит о добрых старых проводах. желаемые скорости передачи данных,
до 153,6 Кбит/с. Этот факт получил
свое отражение в названии: 1x — один
МОЛЧАНИЕ — ЗОЛОТО радиоканал.
А при использовании 3-х радио-
(НОВЫЕ ГОРИЗОНТЫ каналов можно добиться максималь-
ПЕРЕДАЧИ ДАННЫХ) ной скорости передачи данных до
2,4 Мбит/с (IMT-MC-1x-EV-DO) и до
О чем было нельзя мечтать вчера - 5,2 Мбит/с в стандарте IMT-MC-1x-EV-
стало реальностью сегодня. Компания DV (англ. Evolution - DataVoice, эво-
со звучным названием «Сонет», предо- люция данные и речь).
ставлявшая услуги мобильной телефо- Но при реальном тестировании
нии стандарта CDMA, фактически первых терминалов (так теперь ува-
перестала существовать в первых годах жительно называют телефоны с высо- Аббревиатура IMT-
XXI века. Вероятно, перспективней- коскоростным доступом в Интернет) MC обозначает груп-
шая технология была вытеснена с реальная скорость передачи данных пу стандартов сото-
рынка GSM-операторами. Но на ее мес- оказалась в районе 25 Кбайт/с, что зна- вой связи (англ.
те, подобно волшебной птице Феникс, чительно ниже заявленного пятнад- International Mobile
появилась более совершенная техно- цатикратного увеличения и примерно Telecom-munications-
логия - CDMA-2000, развитие преды- соответствует EDGE — аналогичному Multi-Carrier), разра-
дущего стандарт CDMA, основанного эволюционному развитию GPRS. Ве- ботанных Междуна-
на тех же принципах функциониро- роятнее всего мешают разговоры або- родным Институтом
вания. Однако новая технология не нентов, нещадно эксплуатирующие Электросвязи (ITU).
только предоставляла возможность радиоканалы сотовой связи. Сам собой
обмена данными на скоростях порядка напрашивается лозунг текущего мо-
150 Кбит/с, но и не менее радужные мента: «Молчание — золото!».

497
ИНТЕРНЕТ
ЗАРОЖДЕНИЕ, РАЗВИТИЕ И УСТРОЙСТВО ИНТЕРНЕТА

20 октября 1969 г. профессор Леонард ходящийся в Станфорде, команду LOG.


Клейнрок из Калифорнийского уни- Удалось переслать только две буквы,
верситета в Лос-Анджелесе попытал- на букве G система дала сбой. В даль-
ся со своего компьютера связаться нейшем из этой попытки связать меж-
с компьютером исследовательского ду собой две машины выросла гло-
центра в Станфорде и передать пер- бальная компьютерная сеть, известная
вое в истории электронное послание. сейчас как Интернет. Этому предше-
Это было даже не письмо — Клейнрок ствовала длинная цепочка событий,
собирался передать на компьютер, на- а 20 октября можно считать днём рож-
дения Интернета.

ИСТОРИЯ СОЗДАНИЯ
ИНТЕРНЕТА

История знает немало случаев, когда


открытия и изобретения впоследст-
вии использовались не в тех целях,
для которых предназначались. Так,
например, появился коньяк. Голланд-
ские купцы, чтобы снизить таможен-
ную пошлину, перегоняли вино пе-
ред отправкой из Франции, уменьшая
его объём, а у себя на родине снова
Леонард Клейнрок. разбавляли его. И лишь много лет спу-

498
Интернет

стя французы обнаружили, как может теров и TCP/IP был принят в качестве
быть хорош винный спирт, высто- стандарта. В то же время появились
явшийся в дубовых бочках. С Интер- настольные рабочие станции с опе-
нетом произошла похожая история. рационной системой UNIX, оснащён-
Сразу после окончания Второй ной встроенными средствами для со-
мировой войны США вступили в про- единения с сетью, которая стала
тивостояние со своим недавним со- называться Интернет.
юзником — Советским Союзом. К се- К 1986 г. Национальным фондом
редине 50-х гг. обе стороны обладали науки США (National Science Foun-
ядерным и даже термоядерным ору- dation — NSF) была создана опорная
жием и вели разработки ракетных сеть для соединения его шести супер-
носителей для него. В русле этого компьютерных центров. Сеть осно-
противостояния по приказу прези- вывалась на протоколе TCP/IP. Ско-
дента Эйзенхауэра при Министерст- рость передачи данных по каналам
ве обороны США было создано составила 56 кбит/с. В дальнейшем
Агентство передовых исследований к этой сети начали подключаться уни-
(Advanced Research Projects Agency — верситеты.
ARPA). В 1989 г. число хостов, т. е. ком-
Агентство сосредоточило свои ис- пьютеров, подключённых к Интер-
следования на задачах военного при- нету, превысило 100 тыс. Интернет
менения компьютерных технологий. стал использоваться не только в го-
Главной задачей исследований стало сударственных и учебно-научных це-
создание компьютерной сети, кото- лях — к нему подключилась ком-
рая была бы устойчива к повреждению мерческая сеть MCI Mail. К этому
её отдельных участков, например времени Сеть уже перешагнула гра-
при ракетно-ядерной атаке против- ницы Соединённых Штатов, в неё во-
ника. В 1967 г. был готов проект по- шли Австралия, Великобритания, Гер-
строения такой сети, получившей на- мания, Израиль, Италия, Нидерланды,
звание ARPANET (Advanced Research Новая Зеландия и Япония. В начале
Projects Agency NETwork), а в 1969 г. 90-х гг. Россия и страны Восточной
первыми узлами сети стали компью- Европы также подключились к Сети,
теры калифорнийских университетов которую теперь можно было назвать
в Лос-Анджелесе и Санта-Барбаре, всемирной.
Станфордского исследовательского В 1991 г. Тим Бернерс-Ли, сотруд-
центра и Университета штата Юта. ник лаборатории физики элементар-
В 1971 г. к сети были подключены уже ных частиц Европейского центра
23 компьютера, в 1973 г. — осуществ- ядерных исследований в Женеве
лены первые международные подклю- (CERN), разработал систему World
чения. Wide Web (WWW), и началась новая
По мере роста сети ARPANET вста- страница в истории Интернета (см.
ла проблема, как связать отдельные се- статью «World Wide Web»). Тим Бернерс-Ли.
ти, использующие различные методы
передачи информации, между собой.
Для этого необходимо было разрабо- КТО УПРАВЛЯЕТ
тать специальный протокол, т. е. набор
правил, которые определяли бы поря-
ИНТЕРНЕТОМ
док обмена данными между различны-
ми программами, причём работающи- Интернет составляют соединённые
ми на различных компьютерных между собой магистральные сети,
платформах. В 1974 г. такой протокол иначе называемые опорными (back-
был создан. Он включал правила нала- bone). Сети среднего уровня, регио-
живания и поддержания связи в сети, нальные, подсоединяются к высоко-
указания, как обрабатывать и переда- скоростной опорной сети. Каждая из
вать данные по сети. Этот протокол сетей отвечает за трафик (объём
назвали TCP/IP. информации), который циркулиру-
К середине 80-х гг. к сети уже были ет внутри неё, и маршрутизирует (на-
подключены около тысячи компью- правляет) его, как считает нужным.

499
Передача информации

Каждая сеть несёт ответственность за вует несколько рабочих групп специ-


соединение с сетью более высокого алистов. Одна — инженеры (Internet
уровня, сама отвечает за своё финан- Engineering Task Force — IETF) — от-
сирование, устанавливает собствен- вечает за разработку стандартов для
ные административные процедуры. протоколов и архитектуры Интер-
Таким образом, не существует едино- нета. Другая — исследователи (Internet
го поставщика сетевых услуг, но все Research Task Force — IRTF) — концен-
сети считаются полноправными ча- трируется на развитии технологий
стями Интернета. будущего. Подразделение по реагиро-
Интернет в целом не контролиру- ванию на чрезвычайные ситуации
ется какими-либо корпорациями, фи- (Computer Emergency Response Team —
нансово-промышленными группами CERT) специализируется на вопро-
или государственными организация- сах безопасности Сети, оно коорди-
ми. Он функционирует как единая си- нирует действия, направленные на
стема и развивается благодаря согла- защиту информации. За систему рас-
сованным усилиям международного пределения адресного пространства
сообщества. Однако для поддержания Интернета отвечает международная
единых стандартов, координации организация ICANN (The Internet
действий региональных и националь- Corporation for Assigned Names and
ных сетей, являющихся частями Ин- Numbers ).
тернета, для объединения усилий при
разработке новых технологий и ре-
шения других важных для жизни се- КАК УСТРОЕН ИНТЕРНЕТ
тевого сообщества задач создан ряд
организаций. Если попытаться представить, как ра-
Координирует развитие мировой ботает Интернет, то сначала напраши-
сети Собщество Интернета (Internet вается аналогия с телефонной сетью.
Society — ISOC). ISOC — это междуна- И то и другое — средства электронной
родная общественная организация, связи. И в том и в другом случае про-
ставящая своей целью содействие гло- исходит соединение и передаётся ин-
бальному информационному обмену формация. Многие подключаются
через Интернет. ISOC назначает Ко- к Интернету именно по телефону. Су-
миссию по архитектуре Интернета щественное различие состоит в прин-
(Internet Architecture Board — IAB), от- ципе использования сети.
ветственную за техническое руковод- Телефонная сеть — это сеть с ком-
ство. IAB координирует исследование мутацией каналов. Канал выделяется
и развитие протоколов Интернета, на время соединения двух абонентов
устанавливает правила присвоения и не может быть использован боль-
сетевых адресов. В рамках IAB сущест- ше никем, даже если никакой инфор-
мации не передаётся, например оба
собеседника молчат. Интернет поль-
зуется каналами связи более эффек-
тивно, это сеть с коммутацией паке-
тов. Информация разбивается на
порции — пакеты, которые пересы-
лают, как письма по почте. При этом
канал используется для множества
соединений одновременно. Различ-
ные участки Интернета связываются
с помощью системы «маршрутизато-
ров» — компьютеров, которые анали-
зируют заголовки пакетов и решают,
какому узлу, находящемуся на пути
к месту назначения, переправить тот
или иной пакет. Они также выбирают
альтернативные маршруты, если ука-
занное сетевое соединение прервётся.

500
Интернет

Это происходит примерно так же,


как с обычными письмами. Отправи-
тель вкладывает письмо в конверт, пи-
шет на нём адрес получателя и отпра-
вителя, наклеивает марку... Почтовая
служба при доставке корреспонден-
ции следует определённым правилам,
и точно так же существуют правила
(протоколы), регламентирующие по-
рядок работы Интернета.
За доставку пакетов и адресацию
отвечает протокол Интернета (Inter- с Интернетом и операционной сис-
net Protocol — IP). Размер пакета дан- темой UNIX, то в дальнейшем он на-
ных, согласно IP, может быть от 1 до шёл более широкое применение. Он
1500 байт. К пакету прикладывается стал основным протоколом и в ло-
необходимая информация о пункте кальных сетях.
назначения. Каждому компьютеру,
подключённому к Интернету, при-
сваивается уникальный адрес — IP- ДОМЕНЫ —
адрес. Он состоит из четырёх чисел
(байтов) от 0 до 255, отделённых друг
ИМЕНА В ИНТЕРНЕТЕ
от друга точками, например
62.3.250.189 или 193.20.1.147. Интернет не стал бы такой удобной
Между тем протокол IP не даёт га- информационной средой, если бы
рантии, что из-за каких-либо непола- приходилось пользоваться одними
док пакет не может быть потерян. только цифровыми адресами. Они хо-
Также он не гарантирует, что будет со- роши при непосредственном взаимо-
блюдаться последовательность достав- действии компьютеров, но для людей
ки пакетов. В большинстве случаев объ- предпочтительнее имена. Эта пробле-
ём пересылаемой по сети информации ма обозначилась ещё в годы станов-
превышает 1500 байт. Решает эти про- ления Интернета. Тогда всем вхо-
блемы протокол управления переда- дящим в сеть компьютерам были
чей — TCP (Transmission Control присвоены собственные имена. В ка-
Protocol). Программное обеспечение честве имён выбирали простые сло-
протокола TCP на стороне отправите- ва, каждое из которых обязательно
ля разбивает информацию на пакеты
и присваивает каждому из них поряд-
ковый номер. В пункте назначения TCP
собирает пакеты и располагает их в со-
ответствии с нумерацией. Если каких-
то частей недостаёт, протокол требует
повторной передачи. После размеще-
ния всей информации в правильном
порядке эти данные передаются при-
кладной программе. Помимо этого
TCP проверяет контрольную сумму па-
кета — сумму всех его байтов, вычис-
ленную по специальной формуле. Ес-
ли контрольная сумма не совпадает,
значит, пакет доставлен с искажения-
ми, и будет запрошена повторная пе-
редача.
Надёжность работы на любой плат-
форме, простота и доступность про-
токола TCP/IP определили его успех.
И если раньше TCP/IP считался про-
токолом исключительно для работы

501
Передача информации

в сеть новый компьютер, он не обязан


ни у кого спрашивать разрешения. Всё,
что от него требуется, — это правиль-
но внести соответствующую запись
в базу данных на сервере имён свое-
го домена.
Домены самого верхнего уровня
существуют с момента введения DNS
в начале 80-х гг. Изначально в США
были созданы домены gov (правитель-
ственные учреждения), mil (военные
учреждения), com (коммерческие ор-
должно было быть уникальным. Под- ганизации), edu (учебные заведения),
ключаемый к сети компьютер регис- net (сетевые организации), org (про-
Названия доменов в трировался в Сетевом центре инфор- чие организации). Эта кодировка пе-
именах отделяют друг мации (Network Information Center — решла и в XXI в. Когда к Интернету
от друга точками, на- NIC). Данные обо всех компьютерах подключились сети других стран, в их
пример gmk.pp.ru, заносили в специальный файл, кото- ведение были отданы собственные до-
burleson.rtp.epa.gov, рый регулярно рассылался по сети. мены. В соответствии с международ-
www.infomir.ru, Тогда при обращении к какому-либо ным стандартом принята двухбуквен-
abcd.abdn.ac.uk. компьютеру по имени система про- ная кодировка государств. Позже
В имени может быть сматривала этот список и вычисляла появился домен int (международные
любое число наиме- IP-адрес. Вскоре Интернет сильно раз- организации).
нований доменов, но росся, и файл со списком имён достиг В 2000 г. ICANN приняла решение
больше пяти, как пра- таких размеров, что его стало невоз- о введении семи новых доменов
вило, не встречается. можно оперативно рассылать; регис- верхнего уровня. Домен aero закреп-
трация уникальных имён усложни- лён за авиалиниями, аэропортами
лась, поиск замедлился. Для решения и системами бронирования билетов;
этой проблемы была введена домен- name предназначен для личного ис-
ная система имён (Domain Name Sys- пользования; biz — для сайтов ком-
tem — DNS), используемая и поныне. мерческих организаций; coop — для
Сущность DNS состоит в том, что деловых союзов; info — для инфор-
ответственность за присвоение имён мационных проектов; museum — для
возлагается на различные группы музеев. За Североатлантическим бло-
пользователей, контролирующих ту ком НАТО закреплён домен nato. Ев-
или иную область Интернета — домен росоюз для своих сетевых проектов
(domain — «область»). планирует использовать домен eu.
Доменное имя, в отличие от циф- Все программы, работающие на
рового, разбирается слева направо. компьютерах, подключённых к Ин-
Самым первым обычно стоит имя тернету, используют доменную сис-
компьютера, имеющего IP-адрес, да- тему имён. Каждый раз при обраще-
лее следует имя домена, в который нии к тому или иному компьютеру по
входит этот компьютер, потом идёт имени происходит преобразование
имя более крупного домена и т. д. Ес- запроса в IP-адрес. Компьютер может
ли владелец домена решит включить знать адрес, если он есть в его базе
данных или если этот адрес ранее уже
запрашивался и хранится в кэш-па-
мяти компьютера. Если компьютер не
В адресе www.InfoMir.ru www — это имя компьютера (вероят-
знает адреса, тогда он запрашивает
но, на нём установлен www-сервер), входящего в сеть компа-
у сервера имён своего домена адрес
нии «ИнфоМир» (имя домена группы — InfoMir), ru — наимено-
сервера имён соответствующего до-
вание национального домена Российской Федерации.В адресе
мена, а если тот неизвестен, то запра-
alpha.math.msu.su первым стоит имя компьютера в сети механи-
шивает адрес сервера имён более вы-
ко-математического факультета (math) Московского государст-
сокого уровня и т. д.
венного университета (msu — Moscow State University), входя-
При работе с доменной системой
щего в домен su — наследство Советского Союза.
имён следует помнить, что части до-
менного имени сообщают только

502
Интернет

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

ДОСТУП В ИНТЕРНЕТ

Интернет настолько вошёл в быт


и стал доступен почти любому чело-
Если модем поддерживает протокол V34, скорость передачи дан-
веку, что уже воспринимается неис-
ных не выше 28,8 кбит/с. Если модем поддерживает протокол
кушёнными пользователями как
V34+, скорость передачи не выше 33,6 кбит/с. Если модем под-
часть компьютера. Нередко торговцы
держивает протокол V90, то скорость передачи может дости-
сталкиваются с такими вопросами
гать 57,6 кбит/с.
покупателей: «А этот компьютер с Ин-
тернетом?», «Где у него Интернет?».
Но, увы, Интернет находится не вну-
три компьютера. Компьютер лишь ральные сети, которые в конечном счё-
средство для доступа в Интернет. те и образуют Интернет.
Практически все современные Способы доступа к Интернету отли-
операционные системы позволяют чаются схемами подключения, линия-
работать с Интернетом, иначе го- ми связи и протоколами, которые
воря, в них встроена поддержка про- определяют различные услуги, предо-
токола TCP/IP. Компьютер с такой ставляемые сетью. Чем больше возмож-
системой готов к тому, чтобы под- ностей предоставляет способ доступа,
ключиться к Интернету, стать его час- чем он быстрее, тем и дороже.
тью. Кроме того, он должен быть ос-
нащён модемом или сетевой картой.
Эти устройства, как правило, уже на- DIAL UP
ходятся в компьютере, но иногда их
необходимо приобретать отдельно. В начале XXI в. наиболее широко рас-
пространён коммутируемый доступ
в Интернет по телефонным линиям
ПОДКЛЮЧЕНИЕ (dial up). На момент соединения
компьютер становится частью
К ИНТЕРНЕТУ.
ВИДЫ ДОСТУПА
Доступ к Интернету предоставляют
специальные организации, которые
называются провайдерами (Internet
service provider — «поставщик услуг Ин-
тернета»). Компьютерная сеть провай-
дера постоянно подключена к Интер-
нету. Для этого арендуют выделенные
скоростные каналы связи или прокла-
дывают собственные. Сети провайде-
ров соединяются в опорные, магист-

503
Передача информации

с провайдером. А это не всегда одно


и то же. Дело в том, что в силу различ-
ных причин связь провайдера с ком-
пьютерной сетью иногда преры-
вается или вовсе отсутствует. Как
правило, работа ночью и в выходные
дни дешевле. Иногда провайдеры на-
значают абонентскую плату и предо-
ставляют неограниченный по вре-
мени доступ. Хорошие провайдеры
предлагают бесплатный тестовый до-
ступ, чтобы клиенты могли ознако-
миться с качеством связи.
Модемный доступ имеет ряд не-
достатков. Телефонные линии изна-
чально не предназначались для пе-
редачи цифровых данных, поэтому
их использование в этих целях свя-
зано с некоторыми ограничениями
и неудобствами. Максимальная ско-
рость передачи данных по телефон-
ным линиям составляет 56 кбит/с.
В реальности она значительно ниже,
так как зависит от качества телефон-
ных проводов и возможностей АТС
(автоматической телефонной стан-
ции). К тому же для соединения с Ин-
тернетом необходимо предваритель-
но дозвониться до провайдера по
телефонной линии (а это порой
длится часами, если количество кли-
ентов провайдера значительно пре-
вышает число модемных входов).
Низкое качество телефонных линий
не позволяет модемам долго удержи-
вать надёжную связь. В результате
прерванного соединения теряются
данные, которые приходится скачи-
вать заново.
Внешний (вверху) и Интернета и получает доступ ко всем
внутренний модемы. его ресурсам. Коммутируемый доступ
использует специальный протокол
РРР (Point-to-Point Protocol — «прото-
кол связи компьютер — компьютер»).
Для этого вида доступа необходим мо-
дем — специальное устройство пре-
образования цифровых данных в ана-
логовый сигнал телефонной линии
и обратно.
Провайдеры, предоставляющие
модемный доступ dial up, обычно
предлагают различные схемы опла-
ты своих услуг (так называемые та-
рифные планы). Они назначают це-
ну по времени связи с Интернетом.
Фактически же оплата рассчитыва-
ется по времени телефонной связи

504
Интернет

Абонентская плата за доступ по выделенной линии зависит от


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

сти передачи данных стоимость по-


лученной информации в среднем
оказывается ниже, чем при доступе
через модем.
Кроме доступа с помощью модема
и по выделенным волоконно-оптиче-
ским линиям провайдеры предлагают
подключение по беспроводным кана-
ДОСТУП лам связи — с помощью радиомостов,
через спутники связи. При «спутнико-
ПО ВЫДЕЛЕННОЙ ЛИНИИ вом» доступе к компьютеру подклю-
чают параболическую спутниковую
Многих активных пользователей Ин- антенну-тарелку и преобразователь
тернета уже не устраивает скорость данных подобный тому, какой приме-
передачи данных через модем, осо- няют для спутникового телевидения.
бенно если за это нужно платить до- Искусственный спутник Земли, свя-
полнительные деньги (пользователю занный с Интернет-провайдером, мо-
приходится оплачивать услуги не жет передавать пользователю данные
только провайдера, но и телефонной на довольно высокой скорости (до
сети, часто тоже повремённо). Кроме 45 Мбит/с). Запросы и команды при
того, телефон может понадобиться этом способе доступа пользователь
и для обычных разговоров. Поэтому передаёт через обычный модем.
на смену доступу dial up приходят дру- Ещё один из наиболее перспектив-
гие, более совершенные способы под- ных и активно развивающихся спосо-
ключения. Например, арендуется вы- бов подключения к Интернету — ADSL
деленный канал связи с большой (Asymmetric Digital Subscriber Line). Эта
пропускной способностью (один из аббревиатура расшифровывается как
вариантов — волоконно-оптическая
линия). Пропускная способность вы-
деленной линии, как правило, не ни-
же 64 кбит/с. В этом случае можно
подключить к Интернету даже не-
сколько компьютеров — локальную
сеть. Каждый из компьютеров такой
сети становится полноправным участ-
ником Интернета.
Подключение к Интернету по
выделенному каналу имеет ряд пре-
имуществ по сравнению с модемным
доступом по телефонной линии. Вы-
деленный канал для передачи данных
рассчитан на круглосуточную беспе-
ребойную работу (не нужно дозвани-
ваться до провайдера) на высоких
скоростях (например, 100 Мбит/с).
При этом телефонная линия остаёт-
ся свободной. За счёт высокой скоро-

505
Передача информации

КАНАЛЫ СВЯЗИ

Компьютеры, подключённые к Интернету, соединены между собой


с помощью каналов связи. Каналы характеризуются пропускной спо-
собностью, т. е. количеством информации, которую можно передать
по каналу в единицу времени. Единица измерения пропускной спо-
собности — бит/с.
Пропускная способность различных каналов связи может состав-
лять от нескольких килобитов в секунду до сотни мегабит в секунду.
Пропускная способность канала бывает средней и гарантированной.
Средняя пропускная способность измеряется в среднем за опреде-
лённый промежуток времени. Гарантированной пропускной спос-
обностью называют минимальную пропускную способность, которую
обеспечивает канал в наименее благоприятных условиях.
Пропускная способность — основная характеристика любого ка-
нала, по ней судят о его приемлемости для использования.
В зависимости от типа передаваемых сигналов различают цифро- «асимметричная цифровая абонент-
вые и аналоговые каналы. Цифровой канал имеет цифровой (импульс- ская линия». Название подчёркивает
ный) сигнал на входе и выходе. Напротив, на вход аналогового канала изначально заложенное в этой техно-
поступает непрерывный сигнал, и с его выхода также снимается непре- логии различие скоростей обмена
рывный сигнал. Параметры сигналов тоже могут быть непрерывными данными в направлениях к пользова-
или принимать только дискретные значения. Сигналы могут содержать телю и обратно. Асимметричность
информацию либо в каждый момент времени (непрерывные во време- скорости передачи вводится специ-
ни, аналоговые сигналы), либо только в определённые, дискретные мо- ально: пользователь обычно загружа-
менты времени (цифровые, дискретные, импульсные сигналы). Циф- ет большой объём информации из
ровыми являются каналы системы ISDN, каналы типа Т1/Е1 и многие Интернета на свой компьютер, а в об-
другие. В начале XXI в. цифровые каналы стали активно вытеснять ана- ратном направлении идут или толь-
логовые, перед которыми они обладают рядом преимуществ. ко запросы, или поток существенно
Аналоговые каналы (например, телефонные линии) просты в реа- меньшего объёма. В начале XXI в. ADSL
лизации, но подвержены влиянию помех и обладают малой пропуск- обеспечивает входящую скорость до
ной способностью (несколько десятков килобайт в секунду). При пе- 8 Мбит/с и исходящую — 1 Мбит/с.
редаче данных на входе и выходе аналогового канала должно Подключение осуществляется по теле-
находиться устройство, которое преобразовывало бы цифровые дан- фонной линии, на концах которой ус-
ные в аналоговые сигналы и наоборот. тановлено специальное оборудова-
Каналы также делятся на коммутируемые и выделенные. Комму- ние. По линии может одновременно
тируемые каналы предоставляются потребителям на время соедине- осуществляться и обычная телефон-
ния по их требованию. Обычные телефонные аппараты используют ная связь, и работа в Интернете.
коммутируемые каналы. Кроме того, коммутируемые каналы предостав- Это возможно потому, что для пе-
ляет цифровая сеть с интеграцией служб (ISDN — Integrated Services редачи данных используется диапазон
Digital Network). Выделенный канал работает по-другому: соединение частот, находящийся выше уровня
в этом случае постоянное, в любой момент позволяет передать дан- различимости человеческого голоса
ные от одного компьютера к другому. Выделенные каналы отличают- (4 кГц). Экономически это выгодно:
ся от коммутируемых высокой скоростью передачи (до десятков ме- не нужно прокладывать отдельный ка-
габит в секунду). Их качество выше качества коммутируемых каналов, бель, а используются существующие
потому что не зависит от состояния коммутационной аппаратуры на телефонные линии. К большинству
телефонных станциях. вновь строящихся домов выделенные
По физическому устройству каналы бывают электрические про- каналы для связи с Интернетом подве-
водные, оптические и беспроводные. Проводные каналы представля- дены так же, как и электрические про-
ют собой электрический кабель, часто сложной конструкции. Во всех вода, водопровод и канализация. Это
таких каналах передача данных происходит при помощи электричес- особенно актуально в связи с расши-
ких импульсов. В оптических каналах связи применяют световоды, сиг- ряющимися возможностями подклю-
нал же передаётся при помощи лазеров. Беспроводные — спутнико- чения к Интернету не только персо-
вые каналы, радиоканалы действуют по тому же принципу, что и радио нальных компьютеров, но и других
и телевидение. бытовых устройств, например конди-
ционера или микроволновой печи.

506
Интернет

КАКОЙ КАНАЛ ВЫБРАТЬ?

Когда стоимость винчестеров была велика и устанав- выше, потому что программы выполнялись не на цен-
ливать их на каждый компьютер было нерентабель- тральной машине, а на компьютере пользователя.
но, использовались сетевые операционные системы. Наиболее успешно сетевые ОС применялись при
Подобные системы умели соединить несколько пер- обучении в университетах, так как, с одной стороны,
сональных компьютеров, обеспечив совместное ис- студенту не требуется особенно больших компьютер-
пользование небольшого количества данных и основ- ных ресурсов, с другой — сетевой ОС удобно управ-
ных приложений. Загрузка операционной системы лять. Сегодня сетевые операционные системы долж-
осуществлялась с центральной машины. Сетевые ОС ны делать всё: работать со старыми файловыми
напоминали центры коллективного пользования, ког- системами и одновременно обрабатывать приложе-
да терминалы подключены к одной машине. В каче- ния клиент — сервер.
стве терминалов выступали персональные компьюте- Самой распространённой сетевой ОС является
ры, да и «интеллект» терминалов был существенно Novell Netware.

КЛАССИЧЕСКИЕ СЕРВИСЫ ИНТЕРНЕТА

Образ Интернета в массовом созна-


нии прочно ассоциируется со стра-
ничками Всемирной паутины — World
Wide Web. Но когда-то ситуация бы-
ла совершенно иной.
Интернет первоначально был со-
здан как компонент информацион-
но-командной системы Вооружённых
сил и разведывательной службы США.
Затем стал инструментом в руках
гражданских учёных, специалистов
в области компьютерных сетей. Надо
сказать, инструментом не таким удоб-
ным, как сейчас.
Кстати, и набор сервисов, которые
теперь принято называть классиче-
скими (удалённый доступ, пересыл-
ка файлов и электронная почта), был
разработан ещё в середине 70-х гг.
XX в.

УДАЛЁННЫЙ ДОСТУП
Когда-то компьютеры имели большие
размеры и стояли в специальных ма-
шинных залах. Терминалы — дисплеи
с клавиатурой, позволяющие работать
на компьютере, обычно располагались
в другом помещении. Дисплеи были
алфавитно-цифровые, поэтому диалог
с компьютером заключался во вводе
символьных команд, реагируя на ко-
торые машина печатала на экране

507
Передача информации

Программа удалённого доступа на-


зывается TELNET (teletype network).
Она хорошо опробована и широко
распространена. TELNET позволяет
пользователю входить в любой доступ-
ный компьютер сети, как бы далеко он
ни находился, и работать на нём как
с удалённого терминала, сменяя ката-
логи, просматривая файлы, запуская
программы.
ТELNET состоит из двух взаимодей-
ствующих между собой компонентов:
клиента и сервера.
Программа-клиент выполняется на
компьютере, посылающем запрос на
соединение. Она должна установить
сетевое соединение с требуемым ком-
пьютером, принять от пользователя
входные данные в любой удобной
форме, привести эти данные к стан-
дартному формату и послать их сер-
веру; затем принять от сервера выход-
ные данные в стандартном формате;
переформатировать полученные вы-
ответ — соответствующие данные. ходные данные для отображения их
При создании системы удалённого до- на дисплее пользователя.
ступа был сохранён этот способ диа- Программа-сервер выполняется на
лога с компьютером. компьютере, предоставляющем запра-

РАБОТА ПРОГРАММЫ TELNET

Для того чтобы войти в удалённый компьютер, поль- open имя — установить соединение с указанным
зователь вводит команду компьютером;
telnet имя_компьютера. set — установить различные параметры соедине-
Когда соединение произойдёт, удалённая систе- ния; например, команда set echo включает и выклю-
ма запросит входное имя (Login:) и пароль (Password:). чает локальное эхо, set escape символ объявляет
Для окончания сеанса работы и отключения от уда- указанный символ escape-символом. Смена escape-
лённой системы пользователь должен ввести коман- символа бывает полезна для соединения с несколь-
ду logout, и соединение будет прервано. кими удалёнными компьютерами. Например, при вхо-
Программа TELNET позволяет переходить из ре- де в одну удалённую систему через другую и нажатии
жима работы в удалённой системе в командный ре- используемого по умолчанию Ctrl-] будет разорвана
жим. Это происходит при вводе так называемой связь с обеими системами, даже если этого не тре-
escape-последовательности (но не клавиши Esc!), ко- бовалось;
торая сообщается при соединении. Обычно это со- display — выдать рабочие параметры сеанса;
вместное нажатие клавиш Ctrl и Esc. Кроме того, в ко- status — показать информацию о состоянии со-
мандный режим можно войти, введя команду telnet единения;
без указания имени компьютера. z — перевести соединение с удалённой системой
в фоновый режим.
Основные команды TELNET При нажатии клавиши Enter происходит возврат
(именно КОМАНДНОГО режима!): из командного режима.
(В режиме работы в удалённой системе вы рабо-
? — вывести список команд; таете непосредственно на удалённом компьютере,
close — закрыть текущее соединение; а командный режим просто изменяет различные па-
quit — выйти из программы TELNET; раметры сеанса связи.)

508
Интернет

шиваемую услугу, в фоновом режиме. графически защищённый протокол


Она ожидает запроса на свои услуги и основанная на нём программа SSH
и по мере поступления обслуживает (Secure Shell).
его, передавая результаты программе-
клиенту в стандартном формате. Ес-
ли программа-сервер не активизиро- ПЕРЕДАЧА ФАЙЛОВ
вана, услуга удалённого доступа будет
невозможна. Программа для работы в удалённой
Программа-сервер и программа- системе TELNET может действитель-
клиент обмениваются данными на но очень многое, но она не позволя-
основе набора правил (протокола). ет перемещать файлы с одного ком-
Точное следование протоколу позво- пьютера на другой. Для этой цели
ляет устанавливать соединение и про- существует программа FTP, получив-
водить сеанс связи между компьюте- шая своё название от одноимённого
рами независимо от их статуса; это прикладного протокола (File Transfer
может быть как персональный ком- Protocol — «протокол передачи фай-
пьютер, так и рабочая станция или лов»).
сервер. Операционные системы на FTP позволяет пересылать данные
связывающихся компьютерах также файлов либо как двоичную информа-
могут быть различными. цию, либо как текст; переходить из ди-
Удалённый доступ как один из ба- ректории в директорию, просматри-
зовых сервисов Интернета не мог не вать содержимое этих директорий,
попасть под прицел злоумышленни- файлов; пересылать и одиночные
ков. Оказалось, что данные пользова- файлы, и группы файлов, а также це-
теля передаются по протоколу TELNET ликом директории вместе со всеми
«открытым текстом» и могут быть вложенными на любую глубину под-
«подслушаны». Чтобы решить эту директориями. Программа FTP, так же
проблему, в конце XX в. для удалённо- как и TELNET, состоит из FTP-серве-
го доступа были разработаны крипто- ра, выполняющегося на удалённом

РАБОТА ПРОГРАММЫ FTP

Чтобы соединиться с удалённым компьютером по про- бом пересылаются архивы, исполняемые файлы, изо-
токолу FTP, необходимо ввести команду бражения и т. п.;
ftp имя_компьютера. get файл1 файл2 — переслать из удалённой си-
При этом происходит соединение с указанным стемы файл1, создав на компьютере пользователя
компьютером. После этого на удалённом компьюте- (локальном) его копию с именем файл2. Если вто-
ре следует ввести входное имя пользователя и пароль. рой параметр не указывать, то в локальной систе-
Основные команды FTP: ме будет создан файл с оригинальным именем.
quit — выйти из FTP; По команде get файл указанный файл будет выве-
dir файл — просмотреть содержимое каталога ден на экран;
на удалённом компьютере, в качестве параметра мож- put файл1 файл2 — производит действие, обрат-
но указать имя файла или имя группы файлов с ис- ное действию команды get, т. е. пересылает файл в уда-
пользованием универсальных символов * или ?; лённую систему из локальной;
cd каталог — сменить каталог в удалённой систе- delete файл — стереть указанный файл в удалён-
ме. Имена каталогов отделяются косой чертой /; ес- ной системе;
ли имя каталога начинается с косой черты, то позици- hash — выводить символ # после пересылки каж-
онирование осуществляется относительно корневого дого блока данных. Это полезно при пересылке боль-
каталога. Для перехода на один уровень выше следу- ших файлов, так как позволяет убедиться, что данные
ет ввести команду cd .. или cdup; действительно перемещаются. Для отмены этого ре-
binary — включить двоичный режим передачи жима следует дать команду hash повторно.
файлов. При этом все байты пересылаются без каких- help — показать полный список доступных команд
либо преобразований или сокращений. Таким спосо- FTP.

509
Передача информации

ЭЛЕКТРОННАЯ ПОЧТА
Электронная почта (E-mail — Electronic
mail, от англ. мail — «почта») — наибо-
лее естественное и легко осваиваемое
приложение, поскольку для неё допу-
стима прямая аналогия с обычной
почтой. С её помощью пользователь
может посылать сообщения, получать
их в собственный электронный поч-
товый ящик, отправлять ответы своим
корреспондентам автоматически по
тем адресам, откуда пришли письма,
рассылать копии своего письма сразу
нескольким получателям, переправ-
лять полученное сообщение по друго-
му адресу.
Каждому пользователю электрон-
ной почты присваивается уникальный
почтовый адрес, который обычно
образуют присоединением имени
пользователя к имени его компьюте-
ра. Имя пользователя и имя компью-
тера разделяет специальный символ
«@» (изначально выбранный как не
встречающийся в именах и фамилиях),
компьютере в фоновом режиме, и который называется «эт коммерче-
программы-клиента. При использо- ское» (at). Например, если пользова-
вании протокола FTP между соединя- тель имеет входное имя frederick на
ющимися компьютерами открывает- компьютере ickenham.com, то его элек-
ся два канала: один для передачи тронный адрес будет иметь такой вид:
команд, другой для передачи данных. frederick@ickenham.com.
Для использования электронной
почты на компьютере устанавливают
почтовый сервер и виртуальный «поч-
АНОНИМНЫЙ FTP товый ящик», доступный только его
владельцу. Все приходящие письма
Одной из важнейших возможностей, предоставляемых прото- складываются туда и ждут момента,
колом FTP, является анонимный FTP, позволяющий сделать те когда пользователь прочитает их при
или иные файлы доступными всему сетевому сообществу. Ано- помощи специальной программы-
нимный FTP не требует от пользователя регистрации на компью- клиента. В этой же программе поль-
тере, где установлен этот сервис. Для анонимного входа исполь- зователь может подготовить своё
зуется специально зарезервированное имя Аnonymous. На письмо и послать его. Тогда програм-
анонимных FTP-серверах можно найти самую разную информа- ма-клиент передаст это письмо про-
цию. Это всевозможные драйверы, общедоступное программ- грамме-серверу, которая и отправит
ное обеспечение для разнообразных операционных систем, ар- его по сети адресату.
хивы компьютерных компаний, которые помещают на свои Электронное письмо, так же как
серверы обновлённые и демонстрационные версии своих про- и обычное, содержит адрес получате-
граммных продуктов, а также дополнения к документации или ля, адрес отправителя, на нём есть
сообщения об обнаруженных ошибках. Там можно найти разно- «штампы отделений связи» — имена
образную документацию, библиотеки компьютерных изображе- компьютеров, через которые прошло
ний, карты, схемы, репродукции картин, коллекции фотографий, письмо, прежде чем добраться до ад-
различные тексты: Библию, Коран, Тору, романы, научную фан- ресата. Также в письме есть заголовок
тастику и чёрную магию, исторические документы, прогнозы по- (Subject) — строка текста, позволя-
годы, гороскопы и кулинарные рецепты; наконец, файлы с му- ющая облегчить получателю класси-
зыкой и кинофильмами, видеоклипы. фикацию писем, определить их сроч-
ность и необходимость немедленного

510
Интернет

ОСОБЕННОСТИ «ЭЛЕКТРОННОГО» СТИЛЯ ПИСЬМА

Большинство пользователей тяготеют к неформальному стилю обще-


ния и придерживаются принятых в электронном мире традиций. К ним
относятся разнообразные сокращения. Вот некоторые из них:
IMHO — in my humble opinion — по моему скромному мнению;
FYI — for your information — для вашего сведения;
ASAP — as soon as posible — как можно скорее;
NC — no comment — без комментариев;
BTW — by the way — кстати;
THX — thanks — спасибо.
Придать эмоциональную окраску текстовым посланиям можно, ис-
пользуя стилизованные изображения мимики человеческого лица —
смайлики (smile — «улыбка»). Идея состоит в том, что на обычные сим-
волы надо смотреть под углом 90°:
:-) — улыбка;
;-) — хитрая улыбка с подмигиванием;
:-( — хмурая физиономия;
:-> — саркастическая физиономия;
:-O — поражён.

саться на интересующие группы.


Подписка будет сохраняться при всех
ответа. Современные почтовые про- последующих сеансах связи. Разме- Вам следует чаще
граммы-клиенты имеют удобный ин- щённые в конференции сообщения проводить время в
терфейс в форме меню и диалогов, принято называть статьями (articles). кругу семьи, если ва-
а также всё необходимое для хранения Существует несколько тысяч групп ши домашние вызы-
полученных и отправленных писем. новостей, поэтому конференции вают вас на обед по
Кроме того, они позволяют прикре- Usenet организованы по иерархиче- электронной почте.
пить к письму, имеющему обычный скому принципу. Изначально было
текстовый вид, картинку или любой создано семь категорий, лежащих
другой файл. В действительности в основе этой иерархии:
такой файл будет закодирован в по- • comp — вычислительная техни-
следовательность букв и включён в ка, информатика, программное обес-
письмо, но программа получателя печение и смежные области;
Телеконференция,
автоматически раскодирует его. • sci — научно-исследовательская посвящённая группе
У каждого почтового клиента есть деятельность; «Дип Пёпл».
адресная книга — список наиболее ча-
сто используемых адресов.

ТЕЛЕКОНФЕРЕНЦИИ
Система телеконференций — распре-
делённая виртуальная сеть Usenet —
позволяет участвовать в открытых дис-
куссиях, даёт возможность читать и по-
сылать сообщения в группы новостей.
Обычно провайдеры наряду с элек-
тронной почтой предоставляют до-
ступ к своему серверу новостей. Под-
ключившись к серверу, необходимо
загрузить полный список групп, кото-
рый он поддерживает, затем подпи-

511
Передача информации

ИЗОБРЕТЕНИЕ ЭЛЕКТРОННОЙ ПОЧТЫ

Почти все изобретения последних столетий имеют авто- реписки в электронную фор-
ра. Так, в 1807 г. американец Роберт Фултон построил му, так что его сотрудникам
первый пароход, в 1903 г. американцы же братья Орвилл волей-неволей пришлось по-
и Уилбер Райт подняли в воздух первый в мире самолёт. следовать примеру босса.
Изобретатель электронной почты также известен. Это Распространение элек-
профессор Рэй Томлинсон, тоже американец. тронной почты резко воз-
Когда в 1971 г. Томлинсон сделал своё гениальное изо- росло в середине 80-х гг.
бретение, он работал в компании BBN, создававшей сеть прошлого века, когда появи-
ARPANET (сеть Управления перспективных исследований лись первые персональные
Министерства обороны США) — прототип современного компьютеры: круг её пользо-
Интернета. Электронную почту он создал без ведома ру- вателей пополнился за счёт
ководства, просто ради собственного интереса. В её ос- частных лиц. К этому же пе-
нову легла уже имевшаяся программа передачи текстовых риоду относится и создание Рэй Томлинсон.
сообщений, которую использовали программисты и иссле- первой массовой почтовой
дователи, работавшие на компьютерах фирмы DeC. программы Eudora с удобным графическим интерфейсом.
Но с помощью этой программы сообщениями могли обме- В настоящее время практически все пользователи Ин-
ниваться только пользователи одного компьютера. Том- тернета имеют как минимум один, а нередко и несколь-
линсону оставалось предусмотреть возможность пересыл- ко почтовых адресов. По оценкам аналитиков, в 2004 г.
ки сообщений на другие компьютеры, и, слегка изменив электронной почтой пользовалось более половины жи-
протокол передачи данных, он получил первую версию телей США, ежедневно через Интернет пересылалось
почтовой программы. около 16 млрд электронных писем.
Для тестирования программы Томлинсон воспользовал- А в Российской Федера-
ся двумя компьютерами, стоявшими в его комнате и соеди- ции пользуются элек-
нёнными посредством сети. Первое сообщение по элек- тронной почтой более
тронной почте он послал самому себе. По воспоминаниям 15 млн человек.
Томлинсона, оно состояло из набора заглавных букв, рас- Сам Рэй Томлинсон
положенных в верхней части клавиатуры, — что-то вроде не получил от сво-
QWERTYUIOP. его грандиозного
Создав первую в мире почтовую программу, Томлин- изобретения ника-
сон показал её другим сотрудникам и попросил их нико- кой материальной
му о ней не рассказывать, ибо опасался, что начальство выгоды. Он по-
будет упрекать его в пренебрежении своими служебны- прежнему работает
ми обязанностями. Но впоследствии электронной почтой в компании BBN, зани-
стал пользоваться его шеф Ларри Робертс. Через некото- мается новыми научными
рое время он перевёл основную часть своей деловой пе- разработками.

• soc — социальные вопросы Круг тем, обсуждаемых при помо-


и проблемы культуры различных на- щи телеконференций, необычайно
родов; обширен и разнообразен и включа-
• news — сетевые новости, в част- ет в себя практически все стороны
ности о самой системе новостей; жизни человека. Вот лишь несколь-
Преимущества элект- • rec — всевозможные хобби и раз- ко названий групп новостей:
ронной почты налицо. влечения; • alt.music.deep-purple — поклонни-
Она экономит время • talk — разговоры на любые темы, ки британской рок-группы «Дип Пёпл»;
в отличие от обычной дискуссии по спорным вопросам; • alt.fan.wodehouse — место обще-
почты, которую аме- • misc — всё остальное. ния почитателей американского пи-
риканцы — активные Впоследствии была организована сателя Пэлема Грэнвилла Вудхауза;
пользователи Е-mail категория alt — самая большая и по- • comp.lang.fortran — дискуссия по
назвали «улиточной» пулярная. В неё вошли конференции вопросам языка программирования
(snail mail). по альтернативным тематикам, т. е. FORTRAN;
всё, что не попало ни в одну из семи • sci.bio.paleontology — конферен-
вышеперечисленных категорий. ция палеонтологов;

512
Интернет

• rес.arts.tv.uk.comedy — для люби-


телей английских телевизионных ко-
медий;
• rec.pets.cats — любители кошек;
• soc.culture.armenian — проблемы
армян по всему миру.
В связи с возросшей популярнос-
тью и повсеместным распростране-
нием World Wide Web были созданы
средства для работы с системой кон-
ференций через web-страницы.

WORLD WIDE WEB

Интернет сделал возможным свобод-


ный обмен информацией, невзирая
Идея гипертекста состоит в том, что его документы (страницы
на границы и расстояния. К началу
текста) можно просматривать в произвольном порядке, а не по-
90-х гг. ХХ в. в глобальной сети бы-
следовательно, как это принято при чтении книг. В гипертекс-
ли накоплены огромные объёмы раз-
те выделены особые места — ссылки. Они могут сразу привес-
нообразной информации. Однако
ти читателя к нужным разделам, рисункам, описаниям. Благодаря
эти ресурсы были доступны в основ-
этому процесс чтения становится принципиально иным: гипер-
ном узкому кругу специалистов, ко-
текст можно просматривать многими различными путями, и чи-
торым приходилось пользоваться
татель сам выбирает тот путь просмотра, который ему наибо-
программами, ориентированными
лее удобен. В качестве примера гипертекста можно привести
лишь на пересылку файлов, работу
энциклопедию.
в режиме удалённого терминала
и обмен сообщениями. Ситуация из-
менилась с появлением и распрост-
ранением World Wide Web (WWW). верситет, клуб, магазин или журнал
World Wide Web — это глобальная будет иметь свой сайт, а вокруг этой
распределённая информационная системы вырастет целая индустрия.
гипертекстовая мультимедийная си- Сейчас WWW позволяет людям бро-
стема. Она позволила связать в еди- нировать места в отелях и билеты на
ное целое информацию, хранящу- поезд, знакомиться с научными иссле-
юся в разных компьютерах по всему дованиями, читать газеты, напечатан-
миру. ные в разных странах, и узнавать по-
Начало WWW было положено году на другой стороне планеты.
в 1989 г., когда британский програм- В основе технологии WWW лежат
мист Тим Бернерс-Ли из Европейско- три составные части: язык гипертек-
го центра ядерных исследований стовой разметки HTML (HyperText
в Женеве (CERN) начал работу по со- Markup Language), универсальный
зданию информационной системы, способ адресации ресурсов в сети URL
которая должна была объединить всё (Uniform Resource Locator) и прото-
множество информационных ресур- кол обмена гипертекстовой инфор-
сов CERN (базы данных научных от- мацией НТТР (HyperText Transfer
чётов и результатов экспериментов, Protocol).
компьютерную документацию, спис-
ки почтовых адресов, наборы данных
и т. п.). Гипертекстовая технология HTML
должна была позволить легко перехо-
дить от одного документа к другому. В 1986 г. Международная организация
Создавая World Wide Web, Тим Бер- по стандартизации (ISO) приняла стан-
нерс-Ли едва ли мог представить, что дарт обобщённого метаязыка Standard
вскоре почти каждая компания, уни- Generalized Markup Language (SGML), Тим Бернерс-Ли.

513
Передача информации

в тело документа и хранятся в виде


особых текстовых фраз, называемых
Разработкой и утверждением стандарта языка HTML занима-
тегами.
ется некоммерческая международная организация World Wide
Гипертекстовый язык дополняет
Web Consortium (W3C); в начале XXI в. широкое распростране-
система единообразной адресации
ние получила четвёртая версия языка HTML.
документов. Поскольку в WWW ста-
ли доступны ресурсы различного ро-
да, для обращения к ним прежде при-
ходилось применять специфическое
программное обеспечение. Со вре-
менем эта задача упростилась, и сей-
час требуется указать всего лишь
адрес, а также вид сервера, т. е. про-
токол.

HTTP
Система WWW построена по тради-
ционной схеме клиент — сервер. Вза-
имодействие между сервером WWW
и клиентской программой осуществ-
ляется по протоколу передачи гипер-
текста HTTP.
В процессе взаимодействия кли-
ент может запросить встроенную гра-
фику, принять и передать её парамет-
ры, получить новый адрес ресурса
в сети и т. д.
Работа в WWW не ограничивается
Скриншот главной позволяющего строить системы логи- только получением уже готовых фай-
страницы сайта ческой структурной разметки любых лов с документами. Клиенту также пре-
www.crx.ru.
разновидностей текстов. Управляющие доставляется возможность запуска про-
коды, вносимые в текст при такой раз- грамм на сервере. При этом данные,
метке, лишь задавали его логическую выдаваемые этими программами, вы-
структуру, т. е. создавали ссылки от до- сылаются клиенту в виде документов.
кумента к документу и не несли ника- Так организована, например, работа че-
кой информации о внешнем виде до- рез WWW с системами поиска инфор-
кумента. мации и любыми интерактивными про-
Разработчики WWW выбрали SGML граммами и системами, где требуется
в качестве основы для языка разметки диалог с пользователем. Стандарт, по ко-
гипертекстовых документов. Этот язык торому осуществляются запрос на ис-
был назван HyperText Markup Language полнение программ и передача резуль-
(HTML). татов клиенту, называется Common
В отличие от прообраза, в котором Gateway Interface (CGI).
гипертекстовые ссылки хранились
в отдельных файлах специального
формата, в HTML гипертекстовые ДОМАШНЯЯ СТРАНИЦА,
ссылки, в том числе и управляющие
внешним видом документа, внедрены
САЙТ

Информация в системе WWW орга-


низована в виде страниц. Любой чело-
Наиболее часто URL используется для ссылок на страницы WWW: век, имеющий доступ к Интернету, мо-
http://www.thehighwaystar.com, жет разместить любую информацию
http://www.infomir.ru/KuMir/updates.html. в сети. К этой информации будет
иметь доступ весь мир. Обычно поль-

514
Интернет

зователи размещают информацию


о себе на сервере своего провайдера
или на серверах своих компаний. Та- ПЕРВЫЙ САЙТ
кой способ предоставления информа-
ции называется домашней страницей В декабре 1991 г. американ-
(англ. home page). Также существуют ский физик Пол Кунз из
серверы, бесплатно предоставляющие Станфордского университе-
место под страницу. Адрес домашней та создал первый сайт для си-
страницы выглядит, например, так: стемы World Wide Web, ко-
www.infomir.ru/~agl. торый открыл учёным из
Страницы системы WWW, находя- любой части света доступ
щиеся на одном сервере и объединён- к научным трудам универси-
ные по смыслу, образуют сайт (англ. тетского центра. В то время
site — «место», «участок»). Чаще всего в базе данных университета
сайты — это представительства ком- содержалось 200 тыс. ссылок
паний в Интернете. Также сайты име- на статьи, и к ней обращались
ют государственные структуры, обще- тысячи пользователей из 40
ственные организации, те или иные стран мира. Но нужна была
информационные проекты. Частный технология, которая могла бы
пользователь Интернета тоже может упростить и ускорить про-
организовать свой сайт. Адреса сайтов, цесс поиска и получения
в отличие от домашних страниц, вы- необходимой информации.
глядят, как правило, так: www.ds.ru. Именно для этого и приго- Пол Кунз.
дился сайт Кунза.
В январе 1992 г. Тим Бернерс-Ли продемонстрировал этот сайт на
ВОЙНА БРАУЗЕРОВ конференции во Франции, где присутствовало более 200 физиков из
разных стран. Сначала он рассказал о системе WWW, а затем показал,
Как и в системах удалённого доступа как с её помощью можно связаться с заокеанским сайтом Кунза в США.
(TELNET) и передачи файлов (FTP), Успех превзошёл все ожидания. Участники конференции были просто
в World Wide Web существуют про- поражены тем, насколько просто и удобно можно получить нужную ин-
граммы-клиенты, работающие на формацию.
компьютере пользователя. Это так Оформление сайта Кунза состояло из трёх строк текста и двух ссы-
называемые программы просмотра лок: одна на «записную книжку» с номерами телефонов и адресами
гипертекстовых документов, или бра- электронной почты, другая на базу научных статей.
узеры (от англ. to browse — «рассма-
тривать»). Самые первые браузеры
имели текстовый интерфейс, похо- Окно браузера Mosaic.
жий на командную строку DOS.
В начале 1993 г. в Национальном цен-
тре суперкомпьютерных программ
(NCSA) Иллинойсского университе-
та группой программистов под руко-
водством Марка Андриссена был
создан браузер Mosaic. Для того вре-
мени это была единственная профес-
сионально написанная программа
с удобным для пользователя графи-
ческим интерфейсом, работающая
на различных компьютерных плат-
формах. Mosaic сразу стала пользо-
ваться огромным успехом и принес-
ла своим создателям всемирную
славу.
В 1994 г. разработчики Mosaic
создали компанию Netscape Commu-
nications, и вскоре она выпустила
первый коммерческий браузер —

515
Передача информации

более 90 %. В третьей версии Netscape


Navigator появились поддержка языка
Java, встроенный язык сценариев
JavaScript, возможность разбивки ок-
на на кадры и другие новшества.
В 1995 г. на рынок браузеров,
где господство Netscape, казалось,
не оставляло шансов конкурентам,
вступила корпорация Microsoft. Дол-
гое время эта компания, привыкшая
монопольно владеть своим сектором
рынка, недооценивала перспективы
Интернета и не собиралась как-либо
участвовать в его развитии. Однако не-
вероятный взлёт Netscape заставил ру-
ководство компании изменить своё
мнение. Сначала трудно было пове-
рить, что браузер Microsoft Internet
Explorer, который тогда не представ-
лял собой ничего выдающегося, смо-
жет составить конкуренцию Netscape.
Окно браузера Netscape Navigator, который сразу же Тем не менее выпущенная летом
Netscape завоевал фантастическую популяр- 1996 г. третья версия Internet Explorer,
Communicator.
ность. Чтобы закрепить за собой лиди- которая обладала оригинальным
рующее положение в этой сфере и привлекательным интерфейсом, по-
и привлечь новых пользователей, немногу стала теснить Netscape
Netscape вводила в HTML новые усо- Navigator.
вершенствования, призванные улуч- Решающим моментом в войне бра-
шать внешний вид документа и расши- узеров стал выпуск операционной
рять возможности форматирования. системы Microsoft Windows 98 со
Новая версия языка поддерживалась встроенными средствами доступа
только браузером Navigator. Такая по- к Интернету и очередной версией бра-
литика принесла Netscape ещё боль- узера Internet Explorer, являющегося
ший успех — какое-то время доля ныне наиболее используемым в мире.
Сайт, открытый
в браузере Internet Netscape Navigator в общем числе всех
Explorer. используемых браузеров составляла
ВЕБ-ДИЗАЙН
Рост WWW совпал с повсеместным
распространением графических бра-
узеров. Создатели сайтов с самого
начала стали пользоваться всеми име-
ющимися возможностями по оформ-
лению представляемой информации.
Родилась новая отрасль деятельно-
сти — веб-дизайн.
В широком смысле веб-дизайн —
это оформление веб-страниц. Он иг-
рает такую же роль для сайта, как вёр-
стка и полиграфический дизайн для
книжного издания. Под веб-дизайном
можно понимать не только создание
графических элементов для сайта,
но и проектирование всей его струк-
туры, т. е. создание сайта целиком.
Разработчику веб-дизайна необхо-
димо знать стандарт HTML.

516
Интернет

Гипертекстовый документ — это Допустимо (и желательно) приме-


совокупность элементов, каждый из нять такие параметры, как ширина
которых окружён тегами. По своему (widht=), высота (height=) и описание Вам надо серьёзно
значению теги близки к скобкам (alt=) рисунка, а также его выравни- задуматься об отды-
begin — end («начало — конец») в язы- вание (align). Автоматически рисунок хе, если вы представ-
ках программирования, которые за- выравнивается по нижнему краю со- ляете свою жену, как
дают области действия команд. Теги провождающего его текcта. www.mylady.home.wife.
определяют область действия правил, Сам гипертекстовый документ
по которым интерпретируются текс- можно представить как один боль-
товые элементы документа. Например, шой элемент с именем «HTML». Он
тег <I> определяет область отображе- состоит из двух частей: заголовка
ния курсива. Текст на языке HTML: документа и тела документа, где со-
держится отображаемый на экране
Этот текст <I>набран курсивом.</I> текст.

Текст, отображаемый программой <HTML>


просмотра: <HEAD>
Заголовок документа
Этот текст набран курсивом. </HEAD>
<BODY>
В примере текст, который должен Тело документа
быть выделен курсивом, ограничен </BODY>
тегом начала стиля <I> и тегом конца </HTML>
стиля </I> . Конструкция перед
содержанием текстового элемента Форматирование происходит ав-
называется тегом начала элемента томатически в процессе вывода до-
и записывается так: <имя_элемента кумента на экран. Разбивка на стро-
список_ параметров>. Конструкция, рас- ки зависит от ширины окна вывода,
положенная после содержания эле- текущего размера шрифта, возмож-
мента, называется тегом конца эле- ностей экрана и т. п., однако сущест-
мента и записывается в таком виде: вует тег принудительного перевода
</имя_элемента>. строки <BR>. Или, например, исполь-
Для записи гипертекстовых ссылок зуя команду <HR>, можно разделить
в системе WWW используется URL. текст горизонтальной чертой. Чтобы
Например, отобразить заранее подготовленный
текст, выключив форматирование
ссылка на <A HREF= http://www. программы просмотра, используют
infomir.ru/press.html> пресс-релиз
фонда ИнфоМир.</А>
В этом примере элемент А (от англ.
anchor — «якорь») использует параметр
HREF, который обозначает гипертекс-
товую ссылку (Hypertext REFerence),
для записи в форме URL. Данная ссыл-
ка указывает на файл press.html, храня-
щийся на сервере www.infomir.ru, до-
ступ к которому осуществляется по
протоколу передачи гипертекста HTTP.
Как правило, ссылки выделяются под-
чёркиванием, а при наведении на них
указатель меняет форму (например,
указующий перст вместо стрелки).
Встраивание в документ рисунков
осуществляется похожим тегом:

<IMG SRC=URL_рисунка>.

517
Передача информации

специальную пару тегов <pre> ... </pre>. нению сразу во всех документах, где
Есть теги для выделения текста жир- он используется.
ным шрифтом, курсивом, подчёрки- Полное описание языка HTML 4
ванием. Для более сложного форма- (включая CSS-стили) — это многостра-
тирования применяются обычные ничный документ. Однако есть более
и упорядоченные списки, таблицы, лёгкий способ овладения языком ги-
кадры. Существует возможность со- пертекстов — все программы просмо-
здать стиль для отдельных слов или тра обладают возможностью показа
предложений и документа в целом из- исходного кода WWW-страницы, по-
менения этого стиля приведут к изме- этому можно учиться на примерах.

МАСШТАБЫ СЕТИ ИНТЕРНЕТ

Когда в 1969 г. были проведены пер-


вые эксперименты по объединению
компьютеров в глобальную сеть, про-
образ сети Интернет, в неё входило все-
го три компьютера. Однако Интернет
непрерывно растёт. Его масштабы
определяют, подсчитывая число ком-
пьютеров, подключённых к сети. На
графике приведены данные организа-
ции Internet Software Consortium.
Если количество компьютеров
подсчитать достаточно легко, то оце-

Рост числа компьютеров, нить число пользователей Интерне-


подключенных к Интернету в мире. та удаётся лишь приблизительно. Дей-
ствительно, один человек может иметь
доступ к Интернету с нескольких ком-
пьютеров, и, наоборот, один компью-
тер может предоставлять доступ к се-
ти многим пользователям.
В 1996 г., по усреднённым данным,
доступ к Сети имели около 50 млн че-
ловек. В 1999 г. их количество увели-
чилось до 200 млн, а к 2005 г. достиг-
ло миллиарда. Большинство из них
(185 млн) — пользователи из США
(60 % населения страны). В Велико-
британии 33 млн человек посещают
Интернет, в Японии — 78 млн, в Ки-
тае — 99 млн, в Германии 42 млн, в Ка-
наде — 20 млн.
2005

В России в 2005 г., по данным


1981

фонда «Общественное мнение», на-


считывалось более 17 млн пользо-
213
235
562
1 024
1 961
5 089
28 174
56 000
159 000
313 000
535 000
727 000
1 313 000
2 217 000
4 852 000
9 472 000
16 146 000
29 670 000
43 230 000
72 398 092
109 574 429
147 344 723
171 638 297
233 101 481
317 646 084

вателей Интернета, из них 10,3 млн


посещают Интернет не реже одного
раза в неделю. Резкий рост популяр-
ности Интернета был связан с появ-
лением Всемирной паутины — WWW.

518
Интернет

В 1993 г. насчитывалось около 130 2005—2006 гг. число пользовате-


WWW-сайтов, в 1994 г. 9 тыс. (тогда лей Интернета превысило 1 млрд.
их ещё можно было сосчитать), в Их количество будет постепенно
1996 г. их число перешагнуло рубеж приближаться к числу людей, поль-
в 100 тыс., а в 1997 г. — в 200 тыс. зующихся телефоном, телевизором,
Подсчитать точное количество водопроводом...
сайтов, появившихся к 2005 г., невоз- Число подключений к Интернету
можно; по разным оценкам, оно также будет расти. И не только за счёт
составляет от нескольких десятков компьютеров, но и других бытовых
миллионов до почти миллиарда. устройств, таких, как холодильник,
Число их страниц — около 8 млрд. или кондиционер, которыми можно
Есть оценка специалистов, что в будет управлять через Интернет.

КОММЕРЦИЯ В ИНТЕРНЕТЕ

На протяжении всей истории челове-


чества бизнес почти всегда ставил се-
Электронная коммерция — это набор технических и организа-
бе на службу вновь изобретённые тех-
ционных форм ведения коммерческой деятельности и соверше-
нологии вне зависимости от целей,
ния сделок с использованием Интернета как средства взаимо-
для которых они были созданы. Так
действия с партнёрами, банками, поставщиками и потребителями
обстояло дело и с железными дорога-
товаров и услуг.
ми, и с телеграфом. Так стало и с Ин-
тернетом, который разрабатывался для
решения научных и военных задач.
Когда распространение Интернета до- мощью электронных систем и Интер-
стигло определённого уровня, на него нета, а не путём прямых контактов,
обратили внимание коммерсанты. можно смело причислять к сфере
Уже в середине 80-х гг. ХХ в. появи- электронной коммерции.
лись компании, предоставляющие Как правило, в системах электрон-
платный доступ к электронной поч- ной коммерции присутствуют все эта-
те, а с развитием системы World Wide пы совершения сделки: поиск требу- Скриншот со страницы
Web — полноценный доступ в Интер- емой продукции или услуг, уточнение интернет-магазина
издательства
нет. Таким образом, возникла само- деталей сделки, оплата, получение (до- «Мир Энциклопедий
стоятельная отрасль экономики, ко- ставка) заказа. Аванта+».
торая поддерживает и обслуживает
Интернет, обеспечивает доступ к не-
му пользователей.
Помимо бизнеса, который осуще-
ствляет собственно поддержку Ин-
тернета и оказывает пользователям
сопутствующие услуги, такие, как web-
дизайн, Интернет взаимодействует
и с традиционным бизнесом, являясь
одним из его инструментов. В обиход
вошло понятие электронной коммер-
ции (e-commerce).

ВИДЫ ЭЛЕКТРОННОЙ
КОММЕРЦИИ

Любые деловые операции, при кото-


рых участники взаимодействуют с по-

519
Передача информации

нете осуществляется в сфере отно-


шений business-to-business (B2B). Ти-
САЙТ eBay.com пичным примером B2B является вза-
имодействие крупных компаний
Это огромная система аукционной торговли в Интернете, с поставщиками. Некоторые компа-
пользователи которой могут продавать и покупать различ- нии в сфере высоких технологий не
ные вещи: антиквариат, игрушки, монеты, компьютеры, мар- только закупают через Интернет поч-
ки, памятные знаки, открытки и ювелирные изделия. Каждый ти все необходимые комплектующие,
день сайт посещают десятки тысяч человек. Система рассчи- но и осуществляют большинство про-
тана в основном на индивидуальных пользователей, а не на даж. Технологии B2B развиваются
фирмы. Ежедневно выставляется до полумиллиона лотов в не- весьма динамично. Многие крупней-
скольких тысячах категорий. Например, введя в окно поис- шие мировые корпорации планиру-
ка запрос, можно получить список более чем из тысячи на- ют в будущем полностью перевести
именований товаров, связанных с творчеством легендарной в электронную форму все взаимоот-
рок-группы Deep Purple: компакт-диски, винилове пластинки, ношения с поставщиками.
плакаты, футболки, автографы самих музыкантов и т. п. Однако наиболее распространён-
За счёт чего владельцы eBay получают доходы? Продав- ная модель электронного бизнеса —
цы оплачивают размещение информации о своих товарах на business-to-consumer (B2C). Это хоро-
сайте, а покупатели посещают его, чтобы приобрести инте- шо известные Интернет-магазины,
ресующие их предметы. Каждый товар обычно выставляется электронные каталоги, столы заказов
на несколько дней. При совершении сделки владельцы eBay и представительства компаний в Ин-
выставляют продавцу счёт на определённый процент от про- тернете. В первых Интернет-магази-
дажной цены. При этом не требуется складов для хранения нах (наиболее известный из них —
товаров, не нужно арендовать торговые помещения, как на Amazon.com) продавались книги, про-
обычных аукционах, нет необходимости нанимать людей для граммное обеспечение, компьютер-
их проведения. В сущности, eBay — это огромный посредник, ные комплектующие, аудиозаписи
основное достояние которого — репутация и популярность. (CD) и видеофильмы (VHS и DVD).
Если нужно продать или купить что-то более или менее ред- Впоследствии посетители стали при-
кое, то стоит в первую очередь зайти на eВay.com. Рассказы- обретать и более дорогие товары, на-
вают, что основатель Пьер Омидьяр создал этот сайт по прось- пример антиквариат, произведения
бе жены, желавшей пополнить свою коллекцию редких искусства, ювелирные изделия, ме-
игрушек, которые нельзя было купить в магазинах. бель, предметы роскоши. Покупате-
ли отдают предпочтение тем товарам,
характеристики которых обычно из-
вестны им заранее. Часто достаточно
знать имя производителя, чтобы при-
нять решение о покупке. А вот приоб-
ретение деликатесов или одежды
и обуви без примерки требует от по-
купателя определённой смелости.
С другой стороны, посещение сай-
та Интернет-магазина не может вос-
создать тех ощущений, которые воз-
никают у человека при посещении
реального магазина, во время прогулок
по торговым залам, при разглядыва-
нии и выборе товаров. Интернет-мага-
зин не может дать и чувства мгновен-
ного удовлетворения от обладания
только что приобретённым товаром.
Электронные коммерческие кон-
такты между частными лицами назы-
Электронную коммерцию приня- ваются consumer-to-consumer (C2C).
то разделять по типам отношений, ус- Типичный пример — электронный
танавливаемых в процессе сделки. аукцион, на котором одни частные ли-
В настоящее время наибольший ца выставляют на продажу различные
объём торговых операций в Интер- предметы, предназначенные для по-

520
Интернет

Интернет-магазин
представляет собой
коммерческую орга-
низацию, осуществ-
ляющую контакт с
потребителем через
сайт, на котором вы-
ставлены предложе-
ния товаров или ус-
луг и предусмотрена
возможность их за-
каза посетителями,
находящимися непо-
средственно в Сети.

купки другими частными лицами. видно, что в Сети легче продавать ком-
Один из наиболее известных и посе- пактные, удобные для транспортиров-
щаемых электронных аукционов — ки товары, чем тяжёлые и громоздкие,
eBay.com. осложняющие доставку.
Оплата товаров и услуг, пред- Идеально соответствуют возмож-
ложенных в Интернете, осуществ- ностям сетевой торговли товары, кото-
ляется самыми разными способами: рые можно доставить покупателю че-
наличными, наложенным платежом рез Интернет. Наиболее очевидным
при получении товара по почте, бан- примером таких товаров является про-
ковским переводом, почтовым пере- граммное обеспечение. Книги и газе-
водом, кредитной картой. Последний ты также могут приходить к заказчи-
способ наиболее быстрый, однако по- кам в электронном виде. В общем, всё,
купатели часто справедливо опаса- что может быть оцифровано, в том
ются передавать через Интернет рек-
визиты своих кредитных карт, боясь,
что данные могут быть похищены из
Сети злоумышленниками. Эти опасе-
ния являются одним из препятствий
для осуществления электронной тор-
говли. Чтобы преодолеть их, откры-
вают специальные «электронные»
счета, которые не сопряжены со счё-
том на кредитной карте. Важно так-
же условие повышения безопаснос-
ти электронных платежей.

КАКИЕ ТОВАРЫ
ЛУЧШЕ ВСЕГО
ПРОДАВАТЬ ЧЕРЕЗ СЕТЬ
Как показали исследования, с помо-
щью Интернета чаще всего покупают-
ся товары текущего потребления. До-
рогие, давно планируемые покупки
делаются здесь значительно реже. Вви-
ду особенностей доставки заказов оче-

521
Передача информации

числе музыка, графические изобра- Кроме того, значительное влияние


жения, видеоматериалы, оптимально на развитие электронной коммерции
Вам немедленно следу- для продажи в Сети. С конца 90-х гг. оказывает то обстоятельство, что мо-
ет пойти на вечеринку, XX в. растёт популярность продажи бильные телефоны и другие бытовые
если в Интернете у вас через Интернет авиабилетов, турис- электронные устройства начинают ос-
друзей больше, чем в тических, биржевых, страховых и бан- нащаться средствами подключения
реальной жизни. ковских услуг. к Интернету, нарушая тем самым мо-
Тем не менее многие предприим- нополию персональных компьютеров.
чивые сетевые торговцы утверждают, По оценкам западных экспертов,
что не существует такого товара, ко- реклама на телевидении и радио при-
торый нельзя было бы продать при носит пока более ощутимый резуль-
помощи Интернета. тат, чем реклама в Интернете, однако
Интернет по тем же показателям уже
«победил» печатные средства инфор-
ПЕРСПЕКТИВЫ мации — газеты и журналы.
Экономические возможности элек-
И ПРЕИМУЩЕСТВА тронной коммерции гораздо шире,
ЭЛЕКТРОННОЙ чем кажется на первый взгляд. Пре-
имущества электронной коммерции
КОММЕРЦИИ заключаются не только в сокращении
расходов на информирование поку-
В перспективе электронный бизнес пателей о предоставляемых услугах
может не только создать серьёзную и устранении ненужных посредников.
конкуренцию традиционным каналам Продажа книг через Интернет, напри-
сбыта товаров, но даже полностью их мер, позволяет избавиться от огром-
вытеснить. Бурное развитие инфор- ных книжных магазинов — на серве-
мационных технологий постоянно со- ре Amazon.com заказы передаются
здаёт новые возможности. Наиболее непосредственно на оптовый склад.
существенными являются увеличение Существенное достоинство элек-
скорости передачи данных в Интер- тронной торговли в том, что продавец
нете и возможность передачи боль- обычно вначале получает деньги от по-
ших объёмов информации. купателя, а уже потом рассчитывается
С появлением широкополосных ка- со своим поставщиком, в то время как
налов связи и подключением к ним всё в обычной торговле всё происходит
большего числа индивидуальных поль- наоборот. Таким образом, отсутствует
зователей в первое десятилетие XXI в. необходимость привлечения большо-
ожидается ускоренное развитие элек- го оборотного капитала.
тронной коммерции. У электронной коммерции имеют-
ся и другие экономические преимуще-
ства. Например, покупатель выбирает
наиболее подходящую цену. Цены го-
раздо проще сравнивать, нажимая на
клавишу «мышки», чем обходя пешком
бесконечную череду магазинов. Пред-
положительно Интернет таким обра-
зом будет препятствовать искусствен-
ному завышению цен.
Интернет удобен и с точки зрения
развития бизнеса. С помощью всего од-
ного сайта можно осуществлять опе-
рации по всему миру: нужно только со-
здать надёжно функционирующую
систему, в каждый момент готовую к ис-
полнению заказов посетителей сайта.
Можно расширять бизнес до любых
масштабов, невзирая на территориаль-
ную удалённость клиентуры и разни-

522
Интернет

цу часовых поясов. Интернет также тика электронной публикации книж-


позволяет создавать объединения ных новинок подрывает бизнес не
пользователей и проводить для них только розничным торговцам, но
специальные аукционы, которые не- и оптовикам и даже издателям. Такая
возможны вне Сети. же ситуация и с продажей аудиозапи-
Весьма серьёзным является вторже- сей: меломаны могут получать через
ние Интернета в сферу традиционных Сеть высококачественные копии по-
интересов туристических компаний. следних музыкальных новинок.
Отдыхающие начинают бронировать Максимальное воздействие на об-
и выкупать авиабилеты через Интер- щество Интернет, как и всякая техно-
нет непосредственно у авиакомпаний, логическая революция, окажет тогда,
таким же образом они заказывают когда с его помощью возникнут и ши-
и оплачивают номера в гостиницах, роко распространятся абсолютно но-
минуя турагентства. вые товары и услуги, а существующие
Активно наступает Интернет и на обретут качественно новое воплоще-
позиции торговцев книгами: многие ние. Борьба между традиционными
оптовики занялись розничной тор- и электронными формами коммерции
говлей, а всё расширяющаяся прак- только начинается.

ПОИСК В ИНТЕРНЕТЕ

ЧТО МОЖНО НАЙТИ Таким образом, в Интернете есть


всё. Задача пользователя состоит в том,
В ИНТЕРНЕТЕ? чтобы найти желаемую информацию.
Современный Интернет можно пред-
Объём информации, содержащейся ставить как библиотеку, книги в кото-
в Интернете и, в частности, в его рой расположены без какого бы то ни
олицетворении — системе World было порядка; нет ни единой системы
Wide Web, не поддаётся измерению. каталогов и классификаторов, ни биб-
Можно лишь оценить его порядок. лиотекарей. Посетители «библиотеки»
По всей вероятности, он составляет время от времени добавляют новые то-
несколько десятков или даже сотен ма или безвозвратно забирают их.
терабайтов (миллионов миллионов
байтов). Это информация самого раз-
ного характера и направления.
В Интернете можно найти самые
свежие новости — политические, куль-
турные, экономические; научную, тех-
ническую, образовательную и спра-
вочную информацию абсолютно
любого рода; рекламу разнообразных
товаров и услуг. Это и ресурсы, посвя-
щённые культуре и искусству: литера-
туре, живописи, театру, кино, телеви-
дению.
Кроме того, в Интернете находят-
ся десятки и сотни тысяч развлека-
тельных сайтов различной тематики:
юмор, игры, путешествия, спорт. Каж-
дый день в Интернете появляется
порядка миллиона новых WWW-
страниц, но при этом некоторое ко-
личество существующих страниц бес-
следно исчезает.

523
Передача информации

обойти все ссылки. Отправные точки


стали прообразом современных ката-
логов ресурсов Интернета.
Каталоги ресурсов подобны спра-
вочникам, содержащим систематизи-
рованные ссылки на сайты. Ссылки
объединяются в группы по определён-
ным признакам, как правило по тема-
тике. Каждая группа может иметь не-
сколько уровней, т. е. каталоги имеют
древовидную структуру. Кроме того,
каталоги обеспечивают разнообраз-
ный дополнительный сервис: поиск
по ключевым словам, списки послед-
них поступлений, списки наиболее
интересных из них. Ссылки в катало-
ги вносят администраторы, которые
стараются сделать свои коллекции
Окно Yahoo! Для того чтобы извлечь полезную наиболее полными, включающими
информацию из Интернета, нужно все доступные ресурсы на каждую те-
знать, где и как вести поиск. Этой про- му. Также ссылки на свои ресурсы
блемой люди озаботились почти од- предлагают и владельцы. Админист-
новременно с началом широкого рас- раторы каталога проверяют ссылку
пространения WWW. Тогда появились и вносят её в соответствующий раздел.
первые каталоги ресурсов и поиско- Старейший каталог ресурсов Yahoo!
вые системы. (www.yahoo.com) состоит из 14 ос-
новных разделов:
• Arts & Humanities (искусство и гума-
КАТАЛОГИ РЕСУРСОВ нитарные науки);
• Business & Economy (бизнес и эко-
В начале 90-х гг. XX в., когда серверы номика);
WWW ещё можно было сосчитать, су- • Computers & Internet (компьютеры
ществовали так называемые отправ- и Интернет);
ные точки (starting point). Это были • Education (образование);
страницы, на которых перечислялись • Entertainment (развлечения);
ссылки на все WWW-серверы, сгруп- • Government (ресурсы правительст-
пированные по тематическому либо ва США);
географическому признаку. Например, • Health (здоровье);
«Все WWW-серверы по биохимии» • News & Media (новости и СМИ);
или «Все WWW-серверы Финляндии». • Recreation & Sports (отдых и спорт);
(Сейчас вместо термина «WWW-сер- • Reference (справочная информа-
вер» чаще говорят «сайт».) Таким об- ция);
разом, открыв нужную отправную точ- • Regional (ресурсы по регионам);
ку, можно было последовательно • Science (естественные науки);
• Social Science (общественные науки);
• Society & Culture (общество и куль-
тура).
Чаще всего адрес сайта соответствует названию компании или
Поиск с помощью каталога ресур-
тематике. Если обратиться по ссылке www.имя_компании. com,
сов выглядит следующим образом:
то с довольно большой вероятностью откроется сайт именно
пользователь определяет, к какой те-
этой компании. Например, www.adobe.com — сайт корпорации
ме относится разыскиваемая инфор-
Adobe, а www.cnn.com — сайт медиакомпании CNN. Если иско-
мация; передвигаясь в глубь по дереву,
мая компания не американская, можно попробовать добавить
находит в каталоге соответствующий
обозначение национального домена — например, www.infomir.ru —
раздел; обходит все страницы, пере-
адрес сайта фонда «ИнфоМир», а www.ferrari.it принадлежит
численные в разделе.
итальянскому концерну Ferrari.
Например, надо найти информа-
цию о кошках породы корниш рекс.

524
Интернет

ссылки. В связи с постоянным обнов-


лением информации поисковые сис-
темы регулярно возвращаются через
определённый срок к уже изученным
страницам, чтобы обнаружить и заре-
гистрировать изменения. Все прочи-
танные страницы индексируются, т. е.
создаётся специализированная база
данных, в которой записаны все ис-
следованные системой сайты. Кроме
того, владельцы сайтов могут самосто-
ятельно добавить в поисковые систе-
мы ссылки на них.
При поступлении запроса от поль-
зователя машина поиска просматри-
вает свой индекс и выдаёт список
страниц в Интернете, которые соот-
ветствуют критериям поиска. Най-
денные документы, как правило, упо-
рядочиваются в зависимости от
местоположения ключевых слов
(в заголовке, в начале текста), часто-
ты их появления в тексте и других ха-
рактеристик.
Тогда можно, постепенно углубляясь, Существует множество сайтов, пред-
перейти в раздел Science > Biology > назначенных для поиска. Одни из них
Zoology > Animals, Insects, and Pets > пользуются собственным индексом,
Mammals > Cats > Breeds > Cornish Rex. другие, называемые метапоисковыми,
Если же надо найти, кто продаёт котят их не имеют, а собирают и упорядочи-
этой породы, поможет раздел Business вают результаты из множества других
and Economy > Shopping and Services > поисковых узлов. Несмотря на схожий
Animals > Cats > Breeders > Cornish Rex. принцип работы, поисковые системы
К удобству применения каталогов различаются по языкам запроса, зонам
ресурсов относится то, что, если поиска, глубине поиска внутри доку-
пользователю известна тема искомо- мента, методам упорядочивания и при-
го документа, он будет исследовать оритетам, поэтому применение раз-
соответствующую ветвь каталога, ных поисковых систем даёт различные
не отвлекаясь на посторонние, не от- результаты. Старейшие поисковые си-
носящиеся к делу документы. стемы — Lycos (www.lycos.com) и Окно поисковой
Однако объём каталога ограничен AltaVista (www.altavista.com). системы AltaVista.
возможностями его администраторов
и их субъективностью в выборе мате-
риала. Кроме того, тематику искомого
документа не всегда можно сформули-
ровать в пределах классификации ка-
талога. В этом случае на помощь при-
ходят поисковые системы.

ПОИСКОВЫЕ СИСТЕМЫ
Действие поисковых систем заключа-
ется в постоянном, последовательном
изучении всех сайтов Интернета, до-
ступных данной системе поиска, а так-
же всех тех страниц, на которые есть

525
Передача информации

Приступая к поиску, пользователь


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

БУДУЩЕЕ ПОИСКА
Объём накопленной информации
Окно поисковой К достоинствам поисковых систем увеличивается с каждым годом. Хотя
системы Google. можно отнести исследование ими ог- долгое время его рост был экспонен-
ромного объёма информации и её пе- циальным, тем не менее объём по-
риодическую актуализацию. Однако лезной информации в Интернете,
при этом не учитываются документы, которая может быть потреблена поль-
не содержащие ключевых слов, а, с дру- зователями, и объём информации, ко-
гой стороны, в списке содержится торую там можно разместить, скорее
много не относящейся к делу инфор- всего, конечны. Поэтому от механиз-
мации, отсеивание которой занимает мов поиска требуется постоянное по-
немалое время. вышение эффективности, увеличе-

КАК ИСКАТЬ

Поиск по любому из слов


В результате поиска составляется список всех страниц, Сложный поиск
содержащих любое из ключевых слов. Нередко число Многие сайты поисковых систем оснащены дополнитель-
совпадений при таком поиске огромно. Однако если ными функциями поиска. Вот некоторые из них.
поисковый узел хорошо сортирует результаты по тема- Поиск с использованием языка запросов. Позволяет
тике, то нужную страницу можно найти в верхней час- строить запрос с использованием логических операторов
ти списка. Поиск по любому слову может быть удобен И, ИЛИ, НЕ; включать или исключать слова или фразы.
в случаях, когда пользователь не уверен в ключевых Поиск с использованием категорий. Индексирован-
словах. ные страницы упорядоченно хранятся в многоуровневом
каталоге категорий. Можно просто просмотреть каталог
Поиск по всем словам категорий в поисках нужных материалов или дойти до
В этом режиме поиска формируется список всех стра- определённого уровня и затем провести поиск в рамках
ниц, содержащих все ключевые слова в любом поряд- выбранной категории. Таким образом поисковая систе-
ке. При этом сохраняется вероятность получения ре- ма объединяется с каталогом ресурсов.
зультатов, не соответствующих теме. Поиск среди обнаруженных страниц. Если найдено
много страниц, то, добавив ещё одно ключевое слово по-
Поиск точно по фразе вторим поиск. Во многих поисковых системах есть более
В этом режиме поиска составляется список всех стра- быстрая функция поиска среди найденного.
ниц, содержащих фразу, точно совпадающую с ключе- Точная настройка параметров поиска. Можно указать
вой; знаки препинания игнорируются. В список не попа- язык, ограничиться сайтами в определённом домене, про-
дают те страницы, которые посвящены нужной теме, вести поиск только по заголовкам, просмотреть лишь сай-
но в строке поиска описываются с использованием дру- ты, информация на которых была обновлена в течение
гих фраз. Даже в этом режиме поиска возможны лож- определённого периода, или показать страницы, на ко-
ные результаты. торых существуют ссылки на заданную страницу.

526
Интернет

ние мощности вычислительных ре- то расположенные в Сети, стали недо-


сурсов. ступны. Это открывает новые рубежи
Но совершенно необязательно, для поиска — археология (раскопки
что та информация, которая была утраченной информации) в Интер-
найдена вчера, сегодня останется на нете. Частные лица и организации
том же месте и не будет уничтожена. пытались организовать хранение аб-
Уже сейчас многие материалы, когда- солютно всего в Интернете, что при

ГДЕ ИСКАТЬ

Google (www.google.com) AltaVista (www.altavista.com)


Самая быстрая и самая большая поисковая система. Про- Одна из старейших поисковых систем. Предоставляет
индексировано более 8 млрд страниц (из них полностью — расширенный круг критериев поиска: например, в разде-
около половины, остальные представлены только в ви- ле Advanced search есть выбор отрезка времени, к кото-
де адреса и текста ссылки). Имеется возможность выбо- рому относится дата создания или изменения ресурса,
ра языка интерфейса. Можно включать или исключать поддержка 25 языков; имеется возможность выдачи од-
результаты с определённых сайтов или доменов. В от- ного результата на сайт (это сужает круг поиска без ущер-
личие от большинства поисковых систем Google также ба для качества).
оценивает популярность ресурса по количеству ссылок,
ведущих к нему с других страниц. Кроме того, здесь со- Yahoo! (www.yahoo.com)
держится архив с возможностью поиска по всем теле- Один из первых каталогов ресурсов в Интернете.
конференциям системы USENET за последние 20 лет и На Yahoo! составлен большой структурированный каталог
поиск изображений. категорий. Сначала поиск осуществляется в них, потом
в собственном архиве, потом — с использованием поис-
Yandex (www.yandex.ru) ковой системы. Поиск в категориях даёт хорошие ре-
Наверное, лучшая из поисковых систем отечественного зультаты: их немного и соответствие критериям наибо-
производства. Завоевала популярность умением прово- лее полное. Помимо стандартного набора функций
дить качественный поиск с учётом словоформ русского позволяет отбирать ресурсы по дате, поддерживает воз-
языка. Индексирует в основном русскоязычные ресур- можность постановки знака «*» вместо любой последо-
сы, при этом по возможностям не уступает зарубежным вательности символов в ключевых словах.
системам. Поиск можно осуществлять точно по слову
или по любым его словоформам с ограничением по да- Рамблер (www.rambler.ru)
те, с указанием сайта или его поддиректории. Можно Одна из первых русских поисковых систем. Кроме стан-
вести поиск с учётом так называемого индекса цитиру- дартных возможностей поиска на сайте имеется рейтинг-
емости, задавать язык документа. каталог ресурсов.

527
Передача информации

существующем развитии техники те- ностей будущих поисковых систем бу-


оретически возможно, но пока ещё дет возможность предоставления ин-
дорого. Ожидается, что с появлением формации по нечётко сформулиро-
нанотехнологий задача будет реше- ванным запросам. Например, поиск
на. А пока всё, что может заинтересо- изображений. Современные поиско-
вать, надо сразу копировать себе на вые системы не умеют находить изо-
компьютер. бражение по его описанию, а пытают-
Ещё одна проблема состоит в том, ся сделать это по контексту или даже
что пользователям бывает сложно просто по имени файла. Поисковой
сформулировать, что же именно они системе будущего достаточно будет
хотят найти. Таким образом, можно сказать: «Найди фотографию девушки,
предположить, что одной из особен- похожей на рафаэлевскую Мадонну».

«ЭЛЕКТРОННОЕ ПРАВИТЕЛЬСТВО»

Технологии, привнесённые появлени- государственных органов и прави-


ем Интернета, не обошли ни одну из тельства. Это правительственные про-
Идея создать «Элект- сторон человеческой жизни и на рубе- граммы, направленные на улучшение
ронное правительст- же XXI в. добрались и до государства. обслуживания населения, в частнос-
во» зародилась в К счастью, «Электронное пра- ти социальные электронные карты
1999 г., когда был от- вительство» (англ. E-Government) и дистанционное образование.
крыт всеевропейский не имеет ничего общего с излюблен- «Электронное правительство» по
проект Government ным будущим фантастов, в котором замыслу создаётся прежде всего
Online. Он объединил компьютерный супермозг захватыва- в помощь гражданам. Благодаря ком-
правительства более ет Землю и устанавливает тиранию ро- муникации, предоставляемой Интер-
20 стран. Основной ботов, угнетая и планомерно истреб- нетом, «Электронное правительство»
целью этого проекта ляя несчастное человечество, как это стремится обеспечить политическую
является совместное происходило в фильме «Терминатор». гласность, сократить до минимума чи-
сотрудничество по «Электронное правительство» — новничью волокиту и бюрократизм,
установке прямого это не компьютерная система авто- долгие и подчас бесполезные походы
электронного сервиса матизированного управления. «Элек- по государственным органам. Важней-
(англ. On-Line) между тронное правительство» — набор Ин- шей частью всех предлагаемых услуг
правительством, граж- тернет-сайтов и открытых баз данных «Электронного правительства» явля-
данами и бизнесом. ется предоставление информации на-
селению: ежедневные новости и юри-
дические консультации, базы данных
по законодательству.
На сайтах правительственных орга-
нов созданы группы телеконферен-
ций. Это способ вовлечения населе-
ния в политические дискуссии, участие
в политической жизни страны, так как
высказанные на конференциях мне-
ния граждан внимательно изучаются
и анализируются соответствующими
правительственными службами. Мож-
но сказать, что граждане участвуют
в политической жизни, не выходя из
дому.
Электронное заявление и налого-
вая декларация могут быть отправле-
ны по Сети из любой точки планеты.
Несомненно, это гораздо удобнее, чем
лично посещать чиновников, налого-

528
Интернет

вых инспекторов, посылать письма Очередей можно


по почте. избежать!
Правда, традиционно письма от-
правляются в рукописном или пе-
чатном виде, а не электронном: «напи-
санного пером не вырубишь топором».
Гражданин доверяет бумаге, почте, уве-
домлению о вручении корреспонден-
ции. Посланную бумагу не выбросишь!
Но средства доставки электронной
почты также могут гарантировать по-
лучение и регистрацию электронных
писем, причём более надёжно и опе- нято к рассмотрению и зарегистри-
ративно, чем почта или секретариат, ровано. Используя этот код, нетрудно
регистрирующий письма граждан. проследить всю историю прошения.
А законодательство приравняет элек- Часто, получив «визу» чиновника,
тронное письмо к обычному обраще- приходится отправляться в другой
нию граждан. Более того, гражданину государственный орган за следу-
не потребуется обзванивать инстан- ющей. One-Stop Service и решает эту
ции, узнавая, как продвигается его де- проблему. Письма граждан пересы-
ло. Это можно «увидеть» через Интер- лаются между чиновниками и даже
нет с помощью своего компьютера. различными департаментами в элек-
Средства доставки электронной тронном виде. Гражданин получит
корреспонденции кажутся более уяз- официальный ответ по E-mail, кото-
вимыми — легко похитить конфи- рый имеет статус такого же докумен-
денциальную информацию. К Сети, та, как и бумага с печатями.
как и к телефонной линии, может кто Последний год XX века ознамено-
угодно подключиться и «подслушать» вался рождением «Электронного пра-
линию, украсть информацию, узнать, вительства». До полного успеха ещё
например, о доходах гражданина. Од- далеко. Требуется принять соответст-
нако при передаче секретных дан- вующие юридические акты, тем более
ных применяются алгоритмы шиф- что в разных странах уровень разви-
рования. При этом если преступник тия средств коммуникаций (Интер-
и сумеет «подслушать» линию пере- нет) и обеспечение департаментов
дачи, он всё равно не сможет извлечь правительств соответствующими про-
никакой полезной информации из граммными системами (системы учё-
шифрованного сообщения. Это бу- та и делопроизводства, базы данных)
дет просто абракадабра, и налоговая и компьютерами различены. Одной
декларация не попадёт в руки зло- из ведущих стран в этой сфере явля-
умышленника. ется Австрия.
Важным принципом электронных
услуг будущего является One-Stop
Service, который позволит обсудить
просьбу гражданина на разных бю-
рократических уровнях порой без
участия самого гражданина. Не по-
требуется сбора подписей на проше-
нии, хождения по инстанциям. Всего
лишь достаточно подать электрон-
ное заявление по E-mail, и «бумага»
сама пройдёт по всем уровням управ-
ления. В идеале гражданин сможет
проконтролировать прохождение бу-
маги прямо из дому. Каждое обраще-
ние получает уникальный номер. Этот
номер-код пересылается граждани-
ну с сообщением, что его письмо при-

529
Передача информации

ФЕДЕРАЛЬНАЯ ЦЕЛЕВАЯ Успех программы будет означать


в первую очередь, что органы власти
ПРОГРАММА (ФЦП) всех уровней станут более доступны-
«ЭЛЕКТРОННАЯ РОССИЯ ми для граждан, а их деятельность —
более прозрачной и эффективной.
2002—2010» Прозрачности планируется достичь
за счёт обязательной электронной
К сожалению, Россия в области ис- публикации и создания баз данных по
пользования Интернет-технологий всем документам, не имеющим стату-
занимает далеко не лидирующее по- са секретных, эффективности — за
ложение. По данным исследований счёт перевода в электронную форму
международных организаций на значительных объёмов документо-
1999 г., она является единственной оборота.
страной в мире, где количество ком- Для того чтобы при помощи ин-
пьютеров в школах сокращается. Ме- формационных технологий прибли-
нее 2 % школ имеют локальные сети, зить российскую систему образова-
и лишь 1,5 % образовательных учреж- ния к стандартам развитых стран
дений обладают доступом в глобаль- Запада, разрабатывается программа
ную сеть Интернет. «Развитие единой образовательной
ФЦП — своеобразная попытка информационной среды на 2002—
прорваться в «цифровое будущее», 2006 гг.». Эта программа предусматри-
которое для развитых стран уже вает, в частности, компьютеризацию
сделалось реальностью. школ и распространение Интернет-

ВИРТУАЛЬНОЕ ОБРАЗОВАНИЕ В ЕВРОПЕ

С 2001/02 учебного года началась усиленная компьюте- Первопроходцами в области новой информации в Ав-
ризация австрийских школ всех уровней (начальная и сред- стрии являются Экономический университет Вены, Уни-
няя школы, гимназия, школа с профессиональным укло- верситет Кеплера в городе Линце. В Университете Вены
ном). Муниципалитет Вены выделил около 17 млн долларов более 30 % студентов записались на обучение и семина-
для 400 школ на приобретение персональных компьюте- ры через Интернет. (В Австрии приём в высшие учебные
ров и программного обеспечения и использование Интер- заведения проводится по окончании гимназии без всту-
нета. пительных экзаменов.)
Министерство образования Австрии планирует широ- Открытый университет Каталонии (Испания) увеличил
кое внедрение в школах переносных компьютеров, кото- количество своих web-студентов с 400 человек в 1995 г.
рые должны в ближайшем будущем заменить учебники, до 20 тыс. в 2000 г. Университет в городе Хагене (Герма-
тетради, ручки и другие вспомогательные средства обу- ния) в течение 26 лет держит первенство в виртуальном
чения. образовании и насчитывает в настоящее время более
В целом на компьютерную модернизацию австрийских 60 тыс. студентов, из которых 10 тыс. учатся с помощью
школ, приобретение различного оборудования и обеспе- Интернета.
чение свободного доступа в Интернет, а также на повыше- Хорошим примером дистанционного обучения явля-
ние квалификации учителей будет потрачено около 70 млн ется Открытый университет Милтона Кейнса в Велико-
долларов. В университетах предполагается, что все студен- британии, который насчитывает 200 тыс. web-студентов
ты будут иметь личные компьютеры для работы на лекци- во всём мире; с 1992 г. открыт его филиал в Вене. Сту-
ях и семинарах. Осенью 2001 г. ведущие провайдеры Ин- денты Открытого университета общаются с преподавате-
тернета предложили специальные расценки для студентов, лями через Интернет, а также изучают учебный матери-
которые хотят установить дома свободный доступ в Ин- ал, представленный на CD ROM. Каждые шесть недель
тернет. учащиеся встречаются в аудиториях для совместных за-
Уже ставший нормой виртуальный мир позволит уп- нятий, а раз в год проходят совместную практику.
ростить бюрократические процедуры образования и из- В Университете Милтона Кейнса разработан и введён
бавиться от всевозможных проволочек: безбумажного ад- учебный курс «Т171», призванный заменить традицион-
министрирования, записи на семинары, контрольных работ, ные формы преподавания. Обучение в его рамках проис-
экзаменов, видеоконференций, on-line-консультаций у пре- ходит через Интернет; каждый студент поддерживает по-
подавателей и профессоров. стоянный контакт со своим преподавателем по E-mail.

530
Интернет

технологий. На её реализацию пред- мационных услуг и программного


полагается выделить в 2002—2006 гг. обеспечения увеличатся к 2010 г.
56 млрд рублей. в пять-шесть раз.
Каждый второй компьютер под- Компьютеризация федеральных
ключат к Интернету, будет создана ведомств также позволит получить не-
единая база данных, ежегодно плани- который эффект. До 65 % межведом-
руется готовить 25 тыс. специалистов ственного оборота будет осуществ-
с высшим образованием и 60 тыс. — ляться безбумажным способом.
со средним. Все высшие учебные за-
ведения намечается подключить к
Сети к концу 2005 г., все школы —
к 2010 г. В России один компьютер «E-AUSTRIA В ЕВРОПЕ»
приходится на 500 школьников, в Ев-
ропе — на 15. К концу 2005 г. предпо- 14 апреля 2000 г. правительство Австрии опубликовало программу
лагается увеличить в школе количест- «E-Austria in E-Europe», реализация которой была расчитана на
во компьютеров до одного на каждых пять лет. Основой проекта являлись электронное образование и «Эле-
80 школьников. ктронное правительство». Для того чтобы пользоваться услугами
Кроме того, остро стоит проблема «Электронного правительства», нужно уметь не только писать и чи-
пропускной способности каналов. Её тать, но и обращаться с компьютером. Поэтому правительство
необходимо повысить до 256 кбит/с, Австрии уделяет столь пристальное внимание вопросам образова-
иначе повсеместное подключение ния старшего поколения.
к Интернету будет лишено смысла. 26 сентября 2000 г. правительство внесло проект «Виртуальный
«Электронная Россия» — это 3 млрд рынок Австрии». В Интернете предоставлен свободный доступ по-
долларов на десять лет. «Единая об- лучения информации в таких областях, как политика, управление,
разовательная информационная право, экономика, техника, окружающая среда, образование.
среда», параллельная с ФЦП програм- В 2003 г. каждый австриец получил пластиковую карточку, ко-
ма, — это 2 млрд долларов на пять лет. торая заменяет собой полисы социальной и медицинской страховок
В результате реализации программы, (электронная карточка гражданина; англ. chipcard); разработка этих
как показывают расчёты, до 2006 г. тем- карт являлась одним из центральных пунктов проекта. Австрия здесь
пы роста отечественного производст- не одинока. В большинстве стран Европы также создаются электрон-
ва в сфере информационно-коммуни- ные карточки граждан.
кационных технологий достигнут Полноценный ввод услуг «Электронного правительства» подразуме-
15—25 % в год. Объёмы рынка инфор- вает достаточно высокие требования к работникам соответствующих
государственных служб. Надо быть не только специалистом в соб-
ственной области, но и в совершенстве владеть компьютером и про-
граммным обеспечением, которое используется в определённом
департаменте. Все работники государственных служб должны по-
лучить ECDL (англ. European Computer Driving Licence) — сертифи-
кат, подтверждающий умение работать на компьютере. Для этого
проводят экзамены; не сдавшие их не будут допущены к занимае-
мой ими должности. Каждый должен обладать компьютерной гра-
мотностью. Поэтому любой гражданин может при желании полу-
чить сертификат ECDL.
В конце 2001 г. был начат пилот-проект по представлению нало-
говых деклараций и налогообложению в режиме On-Line. Министер-
ство финансов предоставило свободный доступ к системе всем авст-
рийским гражданам. Большинство различных документов (паспорт,
водительское удостоверение и т. д.) оформляются через Cеть уже
с 2004 г. В 2005 г. должно быть обеспечено предоставление всех мыс-
лимых услуг населению через Cеть.
Для пользования услугами One Stop Service необходимо обеспе-
чить широкий свободный доступ к Интернету всем гражданам стра-
ны (дома и на работе). Для тех же, кто не имеет доступа к Интерне-
ту, будут созданы открытые компьютерные терминалы. Параллельно
развиваются программы для инвалидов. Так, например, в настоящее
время разрабатывается проект по ECDL для слепых.

531
Передача информации

*** грамотности не только чиновников


и студентов, но и всех слоёв общест-
Революционные изменения в «Элек- ва независимо от социального поло-
тронном правительстве» не достигли жения, образования и возраста.
своего возможного потенциала. Пра- Смогут ли наши пожилые люди так
вительственные должностные лица же легко управляться с электронной
обязаны внедрять современные тех- почтой и пластиковыми карточками,
нологии и сделать доступным поль- как и молодые? Наверняка нет. Возник-
зование Интернетом для каждого нет опасность дальнейшего расслое-
гражданина. Однако повсеместное ис- ния общества. И, возможно, появятся
пользование современных информа- люди, которые по объективным при-
ционных технологий подразумевает чинам не смогут овладеть всей совре-
высокий уровень компьютерной менной премудростью Интернета.

ЭЛЕКТРОННЫЕ БИБЛИОТЕКИ

Идея замены настоящих печатных из- библиотеки? Сколько это стоит? Как
даний на электронные витала в возду- читать? Проще ответить на последний
хе давно. Её многократно описывали вопрос — с монитора компьютера. Од-
писатели-фантасты. В первый приезд нако многим компьютер надоедает за
в Москву в 90-х гг. XX века президента рабочий день. Кроме того, такое чте-
фирмы Apple Джона Скалли на его ние неудобно; во-первых, устают гла-
лекции в МГУ даже показывался футу- за, во-вторых, нельзя читать в метро
ристический рекламный ролик, где на- или в автобусе.
ряду с тогда ещё не существующей Поэтому альтернативой является
трёхмерной графикой демонстриро- использование электронных запис-
вались электронные говорящие книж- ных книжек — PocketPC, PDA (Perso-
ки, предназначенные для обучения не- nal Digital Assistant — «персональный
грамотных. цифровой помощник»), карманного
Но для внедрения идеи электрон- размера и весящих менее 200 г. На та-
ных библиотек надо знать, где взять кой малютке без труда умещается
Алан Кей. и как получить электронные книги? несколько сотен книг. В них также
Как стать абонентом электронной можно хранить телефонную книгу,

532
Интернет

В 1968 г. Алан Кай, разработал DynaBook — первый портатив-


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

турных произведений, за остальные


же книги он платил (средняя цена со-
ставляла 10—25 долларов).
Rocket eBook (фирмы NuvoMedia;
вес около 600 г, дисплей 11,5 x 7,5 см)
стоит меньше, чем SoftBook Reader.
Батарей хватает более чем на сутки,
а объём памяти чуть более 3 тыс. стра-
электронную почту, небольшие базы ниц текста. В комплекте Rocket eBook
данных, электронные таблицы, игры покупатель в подарок получал «Алису
и т. п. Естественно, что практически в Стране Чудес» и Random House
любой из этих «ручных» компьютеров Webster’s eDictionary объёмом 75 тыс.
можно подключить к Интернету. слов.
В конце XX в. выпускались устрой- В XXI в. электронные книжки (уст-
ства, которые уже можно назвать элек- ройства для чтения) совершенствуются
тронными книгами. В США разработ- почти ежедневно, и, что естественно ,
ка специального оборудования для стоимость загрузки электронной кни-
чтения электронных книг совмещена ги из Интернет-магазина обходится
с платным подключением к электрон- дешевле, чем покупка обычной. При-
ному книжному магазину. SoftBook обретённые по Сети книги, как пра-
Reader (фирмы SoftBook Press) — не- вило, имеют защиту от копирования,
что похожее на ноутбук (вес — 1,3 кг, которая порой столь неудобна, что за-
размер экрана — 20 × 15 см) с облож- трудняет или вообще делает невоз-
кой из натуральной кожи. можным чтение книги.
Стоимость электронной книги
с двухгодичной подпиской на услу-
ги книжного магазина SoftBookstore
(20 долларов в месяц) обходилась
в несколько сотен долларов. Книжки
хватает на хранение более 5 тыс. стра-
ниц текста, а батарей — на пять часов
чтения. Каждый покупатель бесплат-
но получал 100 классических литера-

533
Передача информации

Поэтому формат электронного


текста был выбран самым простым,
В 1965 г. Теодор Нельсон, выпускник Гарварда, придумал тер-
(кодировка ASCII), чтобы на любой
мин «гипертекст», основу хранилища мировой литературы в про-
компьютерной платформе его удава-
екте Xanadu. Цель проекта состояла в организации доступа к
лось прочитать.
электронным книжным хранилищам. При этом не ущемлялись
Проект явно ждало большое буду-
авторские права и действовала система начисления авторского
щее, но процесс шёл медленно, к на-
гонорара. Фактически это был прообраз электронного книжно-
чалу 90-х гг. накопилось всего не-
го магазина. В 1988 г. Xanadu получил финансирование у Джо-
сколько сотен текстов. Развитие
на Уокера, основателя Autodesk. Но в 1992 г. с появлением Все-
Интернета принесло «Проекту» не
мирной паутины проект фактически был предан забвению.
только читателей, но и армию набор-
щиков-добровольцев. Существенно
подешевела стоимость магнитных но-
В 1971 г. профессор Иллинойсско- сителей информации. Количество
го университета (США) Майкл Харт текстов стало стремительно расти.
создал «Проект Гутенберг». Однако проект, базирующийся на
У компьютера Xerox Sigma V (ла- бесплатной рабочей силе, преду-
боратории Material Research) час ма- сматривал своей задачей популяриза-
шинного времени стоил более 70 дол- цию лишь классических произведе-
ларов США. Однако такая дорогая ний. Поэтому особенно актуально
машина отнюдь не всегда была за- было точное соответствие текстов
гружена работой. И тогда Майкл Харт оригиналу.
предложил способ хранения, переда- «Мы ставим своей задачей выпус-
чи и поиска того, что находится в её кать электронные тексты, которые
«библиотеках», в то время, когда на были бы на 99,9 % точны в глазах
ней не проводятся вычисления. большинства читателей», — писал
Основной тезис, на котором бази- профессор Харт.
Теодор Нельсон. руется «Проект Гутенберг», — всё, вве- Тем не менее «Проект Гутенберг»
дённое в компьютер, можно скопи- позволил множеству государствен-
ровать неограниченное число раз. ных школ в разных странах мира
Автор назвал эту способность репли- пополнить их библиотеки несколь-
кационной технологией (англ. repli- кими тысячами классических произ-
cator technology). Любой человек, где ведений.
Иоганн Гутенберг — бы он ни находился, может скопиро- Одна из проблем, стоящая перед
немецкий изобрета- вать себе электронную книгу (вклю- всеми компьютерными библиотека-
тель книгопечатания
(слева). чая картинки, звук — всё, что сохра- ми (подобные проекты существуют
Майкл Харт (справа). нено в машине). и в других странах мира), — копи-

534
Интернет

райт, представляющий подчас от-


нюдь не авторское право, а узурпацию
В прямом смысле понятие «авторское право» (англ. copyright) оз-
права на копирование авторской ра-
начает «право на создание копий». Упрощённо говоря, автор-
боты. Это и волнует сегодня Майкла
ское право фактически сводится к праву копирования, которое
Харта.
принадлежит владельцу авторских прав, а не тому лицу, кото-
Увеличение сроков, в течение ко-
рое приобрело экземпляр охраняемого законом об авторских
торых авторское произведение не
правах продукта.
является публичным достоянием
(первоначально 14 лет, потом — 28 и,
наконец, совсем недавно — 70 лет
в США), не может не наводить на гру- библиотек. Если так пойдёт и дальше,
стные мысли. Ужесточение копирай- вскоре вся информация может по-
та вообще ставит под сомнение суще- пасть под копирайт на срок дольше
ствование электронных публичных человеческой жизни.

ИНТЕРНЕТ И ОБЩЕСТВО

Значительные открытия и изобрете- ИНТЕРНЕТ И ТЕЛЕВИДЕНИЕ


ния серьёзно влияют на общество
и неотвратимо меняют его облик. С каждым новым изобретением свя-
Таковы, например, изобретение ко- зывают определённые перемены.
леса, книгопечатания, железной до- С появлением фотографии говори-
роги, электричества, телевидения, ли, что она заменит живопись; кине-
компьютера. Одни из них человече- матограф грозил вытеснить театр.
ство оценило сразу, понимание того, В своё время полагали, что телеви-
что означают другие, пришло по про- дение займёт место радио, но этого
шествии века. не произошло. Не такова ли ситуация
Интернет стал, пожалуй, одним из и с Интернетом?
самых ярких изобретений XX столе- Результаты социологических ис-
тия. Из технологического явления он следований показали, что из тех оп-
быстро превратился в явление соци- рошенных, кто имееет домашний до-
альное. Создание глобальной ком- ступ в Интернет, примерно одна треть Скриншот
демонстрирует
пьютерной сети без преувеличения предпочитает проводить время в Се- открытие одного
можно приравнять к мировой рево- ти, а не перед экраном телевизора. окна поверх другого.
люции.
Интернет — планетарная струк-
тура, развивающаяся не по дням,
а буквально по минутам. Это самое
удобное и дешёвое средство распро-
странения информации любого типа,
будь то обыкновенный текст, изо-
бражения или же аудио- и видеоин-
формация.
Если ещё не так давно персональ-
ный компьютер использовался для вы-
числений и работы с документами,
то сейчас, кроме того, он служит сред-
ством коммуникации между людьми,
инструментом, с помощью которого
можно получить доступ к любой ин-
формации со всего мира и даже вести
бизнес. Вне всяких сомнений, рано
или поздно Интернет придёт в каж-
дый дом.

535
Передача информации

УТРО 2010 ГОДА В ИНТЕРНЕТЕ

Что привнесли современные информационные тех- зы данных. У соседа база стояла без охранной сиг-
нологии в нашу жизнь? Прежде всего, они объеди- нализации, и ночью её «угнали». Общественность
нили человечество в сообщество, имя которому — требует введения информационной смертной казни:
Интернет. И не беда, что не все ещё пользуются ус- отключения бандитов от Сети и лишения «логинов».
лугами глобальной компьютерной сети. Приход Ин- Папа вспоминает, как было спокойно всего десять
тернета в каждый дом, в каждую семью не за гора- лет тому назад: ну грабили, ну угоняли автомобили,
ми. Это дело всего нескольких лет. Как же это будет? а теперь нападают в киберпространстве. Отнимают
Давайте немного пофантазируем. все деньги и стирают файлы. Автомобили и сами лю-
Обычный город России. Обычная семья. Папа, ди теперь никому не интересны. Прежних преступ-
мама, двое детей. Отец работает ведущим инжене- лений больше нет. Мама качает головой, дети обе-
ром на заводе, мать — модельер. Дочь учится в уни- щают не ходить в Сети поздно поодиночке и никому
верситете. Сын ходит в школу и без ума от компью- не открывать «файрвол».
теров. Мама заканчивает завтрак и уходит в комнату,
Утро. Семья просыпается. Первым, как положе- где находится её рабочее место. Здесь она занима-
но, встаёт папа. И сразу за газету. Но он не спуска- ется проектированием новых моделей одежды. Ма-
ется к почтовому ящику и не выходит к киоску, а бе- ма включает компьютер. Что нового в мире моды?
рёт плоский экран и читает утренние новости. Щёлк, Читает почту с заказами. Отвечает на письма. Бесе-
папа касается пальцем экрана. Просматривает сле- дует с заказчиками. Разглядывает голографическую
дующую страницу. Щёлк. Другая газета. Страницы трёхмерную модель платья из новой французской
мелькают одна за другой. Щёлк. Подбор новостей коллекции. А вот выкройка её собственной модели
о его любимом заводе. Просмотрев электронную га- на экране. Мама даёт команду машине: «Собираем».
зету, папа просто сворачивает её трубочкой и кла- Вот так будет выглядеть модель в готовом виде. Чуть
дёт в карман пижамы. подправим форму рукава, изменим выкройку. Мама
А вот и мама, ей к 9.00 на работу. Она торопит- делает пассы руками, и модель на глазах меняется.
ся. У детей в комнате появляется её голографиче- Спереди, сбоку. Изменим материал, цвет. Всё гото-
ское изображение. Она зовёт на кухню. во. Можно шить. Это то, что она хотела. А вот и за-
Все завтракают. И одновременно смотрят ново- казчик появляется на экране. Торопит. Мама его ус-
сти по WEB-TV — Интернет-телевизору. На экране покаивает.
размером во всю стену помимо основной передачи Заказчик из Индии смотрит на трёхмерную мо-
все важные новости сообщаются бегущей строкой, дель платья у себя в кабинете. Он очень доволен.
в углу — прогноз погоды и разнообразные реклам- Каждый говорит на своём родном языке, автомати-
ные вставки. Они уже не прерывают передачу, а ти- ческий перевод вполне сносный. Договорились об
хо «висят» в верхнем углу телевизора. Новости не ра- оплате. Вот и деньги поступили на мамин счёт, пря-
дуют. Растёт киберпреступность. Воруют программы мо по Сети. Выкройку она отправила в Индию. Там
и базы данных. С экрана диктор опять рассказывает и сошьют. Ура, заказ выполнен. Мама свободна.
про банду, которая совершает разбойные нападения Сын с утра уже в Интернете. Делает задание.
на домашние компьютеры, уничтожает семейные ба- Ищет кино, по которому надо писать сочинение (за-

536
Интернет

метьте: не книгу, а кинофильм). Нашёл. Бежит к па- Папа за компьютером. Обдумывает чертежи. Он
пе. Говорит, что это недорого. Это задали в школе. в отпуске, но всё равно не может не работать. Ис-
Папа соглашается. Оплачивает фильм — прямо че- правил чертёж. Запустил расчёты модели. Вроде всё
рез Интернет. Сын радостно сгружает его по Сети. хорошо. Вдруг экстренный звонок с завода по Ин-
И садится смотреть. тернет-телефону. Звонит директор. Срочно требу-
Его 18-летняя сестра рассылает со своего ком- ется консультация. Папа присоединяется к телекон-
пьютера звуковые письма через Интернет. Это удоб- ференции руководства завода и обсуждает со всеми
но, когда посылаешь письма сразу трём поклонни- участниками важную проблему. Прошло полчаса.
кам. И свои новые фотографии добавила к письмам... Проблема разрешилась.
Изучать предмет римское право так скучно. Ни те- Папа идёт к сыну и застаёт того за игрой. Ока-
бе картинок интересных, ни фильмов. Другое дело — зывается, к кинофильму прилагалась бесплатная иг-
разглядывание новых каталогов косметики. Отмеча- ра. Это и было истинной целью ребёнка. Папа недо-
ет, что её интересует, и заказывает через Сеть. Ско- волен. Сын наказан. Ему грозит отправка на природу
ро пришлют по почте. Попутно через анонимный чат с отключением от Сети. На неделю.
общается с такими же юнцами, только изображает Входит довольная мама. Она сообщает, что вы-
из себя 60-летнюю матрону, утешающую несчастных полнила заказ и хочет с мужем и детьми съездить на
в любви парней. Это её чрезвычайно забавляет. неделю к морю. Семья у компьютера. Срочный за-
Но она даже не предполагает, что из пяти человек, каз билетов, номеров в гостинице, такси. Семья на-
участвующих в дискуссии о любви, только одному чинает быстро собираться. Приезжает такси. Все на
18 лет. Двоим уже глубоко за 50, а ещё двоим не улице. Садятся в машину и сразу включают свои пор-
стукнуло и 14. Смешная вещь — чат. Здесь каждый тативные компьютеры. Они снова в Сети.
может предстать тем, кем ему сегодня больше всего Солнце в зените. День продолжается. День 2010
хочется быть. года в Интернете.

537
Передача информации

Причём среди молодёжи таких поч- разрешением, используемые в изда-


ти половина. Находятся в Интернете тельских системах, громоздки и до-
и одновременно смотрят телевизор вольно дороги. Во-вторых, не до кон-
10 % опрошенных. ца разработаны авторские права на
Можно ли говорить о том, что Ин- электронные публикации. В любом
тернет окончательно заменит телеви- случае только автор может опреде-
дение? Пока ещё до этого далеко. Да и лять условия распространения соб-
в дальнейшем это вряд ли произойдёт, ственного произведения. Поэтому
так как надо учитывать, что получе- должна быть надёжная защита от не-
ние информации из Сети связано санкционированного копирования.
с тратами времени, с определёнными В конце XX в. известные писате-
усилиями и вниманием. В то же вре- ли американец Стивен Кинг и англи-
Стивен Кинг. мя одним из приятных достоинств те- чанин Фредерик Форсайт публико-
левидения является то, что человек, вали свои очередные бестселлеры
придя домой и опустившись в кресло, исключительно в электронном виде,
расслабляется и смотрит, что ему по- ведь чтобы загрузить книги через
казывают по телевизору. Хотя уже Интернет, нужно было заплатить чи-
сейчас некоторые телевизионные ка- сто символическую сумму. Возмож-
налы предлагают свои программы в но, со временем на бумаге будут вы-
Сети… пускать только какие-то особенные
издания, подарочные или коллекци-
онные.
ИНТЕРНЕТ И КНИГИ Преимущества электронных книг
очевидны: быстрота доставки (не на-
Есть предположение, что Интернет до идти в магазин или библиотеку),
вытеснит и заменит книги. Сейчас малый объём (многотомное собра-
этому препятствует ряд факторов. Во- ние сочинений умещается на мини-
первых, отсутствие комфорта при атюрном диске), удобный поиск по
Фредерик Форсайт. чтении книг с монитора компьюте- тексту. Немаловажно, что снижение
ра. И хотя портативные устройства доли бумажных изданий позволит
для чтения электронных текстов уже сохранить леса от вырубки.
существуют (нет никаких сомнений
в том, что они должны быть именно
Информационное
портативными), разрешение их эк- ИНТЕРНЕТ И СМИ
окно обновляется ранов явно недостаточно. Специали-
ежеминутно. зированные же мониторы с высоким В СМИ технологии, предоставляемые
Интернетом, получили максимально
эффективное развитие и примене-
ние. Это объясняется несколькими
причинами, одна из них — оператив-
ность. Помимо автора над подготов-
кой телепередачи работают опера-
торы, звукорежиссёры, осветители,
редакторы, монтажёры и многие дру-
гие. Над газетной статьёй — автор,
редактор, корректор, художник, её
надо напечатать и доставить читате-
лю. При этом проходит немало вре-
мени. В Интернете же информация
размещается в считанные минуты
и доставляется читателю прямо на
рабочее место. В отличие от газет
и журналов материалы в Интернете
всегда актуальны и могут обновлять-
ся в реальном времени (минималь-
ный срок обновления информации
в газете — один день). Стоимость раз-

538
Интернет

мещения электронной версии газеты


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

ИНТЕРНЕТ И ЗАКОН
С развитием компьютерных и теле- лении уйти от реальности путём по-
коммуникационных технологий, и стоянной фиксации внимания на Ин-
Интернета в частности, появилась так тернете, это сопровождается разви-
называемая киберпреступность: не- тием интенсивных эмоций. Данный
санкционированный доступ к ком- процесс настолько захватывает чело-
пьютерной информации; умышлен- века, что начинает управлять его жиз-
ное нарушение работы web-сайтов; нью. Интернет заменяет дружбу, лю-
финансовые махинации в Интерне- бовь; поглощает время, силы, энергию
те; нарушения авторских прав; рас- и эмоции.
пространение вирусов; пропаганда
человеконенавистнических идео-
логий. ИНТЕРНЕТ
В современном уголовном зако-
нодательстве практически любого
И ПОЛИТИЧЕСКАЯ ЖИЗНЬ
государства совершение преступле-
ния с использованием технических Всего за несколько лет Интернет из уз-
средств (а Сеть и компьютер — тех- коспециальный компьютерной среды
нические средства) является отягча- развился в мощное информационное
ющим обстоятельством, увеличива- пространство. Сеть выступает как сред-
ющим наказание. ство общения, обмена информацией,
служит своеобразной трибуной для
политической пропаганды. Первым
ИНТЕРНЕТ-ЗАВИСИМОСТЬ
Интернет — это уникальное средство
для расширения контактов, но оно не ПРОГРАММИСТ СМЕНИЛ ФАМИЛИЮ
может заменить полноценное чело- НА НАЗВАНИЕ СВОЕГО САЙТА
веческое общение. Люди, сильно ув-
лекающиеся Интернетом, иногда те- Израильского программиста Томера Крисси не устраивала соб-
ряют грань реальности. Это приводит ственная фамилия. Фамилии, по его мнению, являются архаиз-
к Интернет-зависимости, или аддик- мом и имеют только историческую ценность. Томеру хотелось,
ции, которая представляет серьёзную чтобы в том, как его зовут, был какой-то смысл. Приложив не-
угрозу для здоровья (физического которые усилия, он сумел получить новый паспорт на имя То-
и психического). Человек становится мер.com.
беспомощным перед своим пристра- Теперь, утверждает программист, ему достаточно предста-
стием: волевые усилия ослабевают виться, чтобы собеседник понял, что у Томера есть собствен-
и не дают возможности противосто- ный сайт, где можно найти о нём всю необходимую информа-
ять зависимости. цию. Кроме того, такая фамилия подходит ему как нельзя лучше:
Значительный ущерб наносится некоторое время назад он страдал от Интернет-зависимости
межличностным отношениям. Пове- и проводил в Сети около 12 часов в сутки.
дение зависимых выражается в стрем-

539
Передача информации

сайтом российской политической


КАК ИНТЕРНЕТ ЗАТРАГИВАЕТ САМЫЕ РАЗНЫЕ партии в Интернете стал DS.ru, откры-
тый в 1996 г. службой информации
СТОРОНЫ ЖИЗНИ. ВИРТУАЛЬНОЕ КЛАДБИЩЕ
партии «Демократический союз».
Осенью 1999 г. парламентские
Свои услуги родственникам усопших предлагает первое вир- выборы вызвали значительную акти-
туальное кладбище в Интернете — сайт www.pazeterna.com.ar, визацию политической деятельности
его открыл аргентинец Хорхе Луис Кальвильони. Заказчики в Интернете. Практически все партии
могут увековечить память о близких, выбрать памятник, вен- и движения постарались открыть соб-
ки и цветы, разместить на виртуальных могилах фотографии, ственные страницы в Сети. Тогда же
видео- или аудиозаписи, некрологи. По желанию родных до- впервые появились специальные ин-
ступ посторонних к могиле свободен либо закрыт. Однако формационные ресурсы, освещающие
эта услуга платная, стоимость её составляет 70 долларов в год. ход предвыборных кампаний и резуль-
таты выборов. На некоторых из них
размещались сенсационные матери-
алы о той или иной политической си-
ле. Политические скандалы, потрясав-
шие страну с экранов телевизоров
и страниц печатных изданий, продол-
жались и в Интернете.
Наличие собственного сайта ста-
ло непременным атрибутом полити-
ческого имиджа. Собственные сайты
имеют, в частности, Правительство
РФ — www.government.gov.ru., Госу-
дарственная дума — www.duma.ru.,
Президент РФ — president.kremlin.ru.

СВОБОДА СЛОВА И ЦЕНЗУРА В ИНТЕРНЕТЕ

ИНТЕРНЕТ к Сети, мгновенно устанавливать связь


с людьми по всему миру. Интернет
И СВОБОДА СЛОВА преодолевает государственные грани-
цы и устраняет барьеры на пути пото-
Свобода слова — основа демократи- ка информации. Эта технология не
ческого общества, это основное пра- только глобальна — она отдаёт кон-
во человека и фундамент всех свобод. троль над созданием и распростране-
С появлением Интернета методы по- нием информации в руки отдельных
лучения и распространения инфор- людей.
мации радикально изменились. В от-
личие от прежних средств передачи
информации Интернет позволяет каж-
дому, у кого есть компьютер и доступ

Каждый человек имеет право на свободу убеждений и на сво-


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

Всеобщая декларация прав человека, статья 19

540
Интернет

«Тот, кто готов посту-


питься вечной свобо-
дой во имя сиюми-
нутной безопасности,
не достоин ни свобо-
ды, ни безопасности».

Бенджамин
Франклин

Под свободой слова в Интернете ЦЕНЗУРА И ИНТЕРНЕТ


следует понимать, что никакие госу-
дарственные органы не должны регу- Цензура существует с давних времён,
лировать содержание информацион- в Западной Европе она появилась в
ных ресурсов. XV в. С начала формирования госу-
Среди основных прав человека дарства идёт борьба между властью
есть право на доступ ко всем прояв- и обществом, которое стремится быть
лениям знаний, творческой мысли независимым, высказывать свои оцен-
и интеллектуальной активности, ки, критиковать политику властей.
а также право на публичное высказы- В разные исторические периоды
вание собственных взглядов. Любой цензуру использовали сначала Цер-
человек имеет право разместить на ковь, затем монархи, государственная
личном компьютере произвольную власть. В демократических государст-
информацию и предоставить право вах, где права человека самоценны,
пользования ею любому желающему, попытки их ограничения неизменно
если распространение такой инфор- наталкиваются на протест граждан.
мации не запрещено международ- Появление Интернета с его анархич-
ным законодательством или законо- ной структурой усложнило пробле- Бенджамин
дательством его страны (законы мы цензуры. Благодаря децентрализо- Франклин.
охраняют государственную тайну, за- ванному характеру Интернета многие
прещают разжигание социальной,
расовой, национальной и религиоз-
ной розни). Причём для этого не тре-
1. Каждому гарантируется свобода мысли и слова.
буются разрешительные либо уведо-
2. Не допускается пропаганда или агитация, возбуждающаю
мительные документы или процедуры
социальную, расовую, национальную или религиозную ненависть
в отличие от радио- или телевизион-
и вражду. Запрещается пропаганда социального, расового, на-
ного вещания. Любое посягательство
ционального, религиозного или языкового превосходства.
на эти права со стороны других лю-
3. Никто не может быть принуждён к выражению своих мне-
дей, организаций или государства —
ний и убеждений или отказу от них.
вмешательство в личную жизнь и сво-
4. Каждый имеет право свободно искать, получать, переда-
боду творчества граждан.
вать, производить и распространять информацию любым закон-
Всеобщий и беспрепятственный
ным способом. Перечень сведений, составляющих государст-
доступ к информации является бла-
венную тайну, определяется федеральным законом.
гом, поскольку владение и умелое
5. Гарантируется свобода массовой информации. Цензура
пользование информацией разви-
запрещается.
вают экономическую, социальную
и культурную интеграцию, способ- Конституция Российской Федерации, статья 29
ствуют установлению демократиче-
ских ценностей.

541
Передача информации

литическими группами для публич-


ного распространения своей идео-
логии, а также доступность или рас-
пространение опасной информации
о наркотиках, способах самоубийст-
ва и т. п. С точки зрения обществен-
ной морали (а в большинстве случа-
ев и законодателя) распространение
подобных материалов в Интернете
расценивается как зло.
Когда издателем способен стать
каждый, право распространять инфор-
мацию приобретает новый смысл.
Уникальные возможности Интернета
соответствуют понятию «независимо
от государственных границ», фигури-
рующему в важнейших международ-
ных документах о правах человека.
средства контроля со стороны госу- Меры властей по контролю за Ин-
дарства оказываются неэффективны- тернетом противоречат нормам меж-
ми и даже бесполезными, так как в дународного права. Цензура, осуще-
распоряжении пользователей име- ствляемая в одной стране, в другой
ются многочисленные способы их может привести к прямому наруше-
обойти. нию права личности распространять
Причинами возникновения цен- информацию.
зуры в Интернете стали угроза наци- Реакцией на угрозу появления цен-
ональной безопасности и безопас- зуры в Интернете стало немедленное
ности крупных корпораций в связи создание сетевых объединений. «Меж-
с действиями хакеров; распростра- дународное движение за свободу
нение информации непристойного в Интернете» (Global Internet Liberty
характера; посягательство на интел- Campaign) — это самая крупная орга-
лектуальную собственность; исполь- низация, которая объединяет 45 ор-
зование Сети экстремистскими по- ганизаций, пропагандирующих сво-
боду слова и доступа к информации
по всему миру. Другой пример — меж-
дународное сетевое объединение
УПРАВЛЕНИЕ ИНТЕРНЕТОМ «Репортёры без границ» (Reporteurs
sans frontiers), выступающее против
Первые попытки регулировать содержание Интернета совпали по вре- любого ограничения доступа к ресур-
мени с его стремительным внедрением в жизнь общества. Уже в 1995 г. сам Интернета.
был обнародован Акт о пристойности коммуникаций США. Этот зако- По мнению членов подобных ор-
нодательный акт приравнивал неприличные материалы, посылаемые ганизаций, всё, что можно осудить
с помощью Интернета, к противозаконным и определял меру наказа- с моральной точки зрения, необя-
ния от штрафа (до 10 тыс. долларов) до лишения свободы (на срок до зательно должно осуждаться и зако-
двух лет). Особо запрещалось осознанное использование интерактив- ном. Они стремятся донести до обще-
ной компьютерной службы для пересылки или показа любых оскорби- ственности такую мысль: бороться
тельных по своей сути материалов лицам моложе 18 лет. Акт был при- с преступностью следует, не вводя
нят 1 февраля 1996 г. и подписан президентом Клинтоном 8 февраля. цензуру в Интернете, а искореняя
В тот же день группа организаций, возглавляемая Американским сою- непосредственные источники пре-
зом в защиту гражданских прав, получившая название «Коалиция граж- ступлений. Интернет — одно из важ-
дан за права в Интернете», обратилась в Верховный суд США с иском нейших средств коммуникации в со-
о неконституционности данного акта. В Интернете была развёрнута временном мире и в принципе не
широкомасштабная кампания по защите свободы слова против цензу- должен подвергаться цензуре.
ры. Суд признал акт неконституционным, как противоречащий первой Вопрос свободы доступа к Интер-
поправке к Конституции США, которая запрещает издавать законы, нету довольно сложен с этической
ограничивающие свободу слова. точки зрения. Каждый человек име-
ет право оградить себя и своих детей

542
Интернет

Цензура (от лат. cen-


seo — «оцениваю») —
система государствен-
ного надзора за печа-
тью и средствами мас-
совой информации.

от нежелательной, на его взгляд, ин-


формации, и он может жёстко «филь-
тровать» на личном компьютере всё, ЗАПРЕТ НА ИНТЕРНЕТ
что ему заблагорассудится. Но толь-
ко на собственном. Если кому-то ка- Международная организация «Репортёры без границ» распространила
кой-либо сайт и не нравится, пусть список стран — врагов Интернета, в которых значительно ограничива-
не смотрит его сам, не разрешает ют или вовсе запрещают своим гражданам свободный доступ в Интер-
смотреть детям, но не требует отме- нет под предлогом защиты от распространения разрушительных идей
ны для всех. и ради гарантии безопасности национального единства. Среди них —
В демократических странах зако- Азербайджан, Белоруссия, Вьетнам, Ирак, Иран, Казахстан, Киргизия,
нодатель не может ввести цензуру Китай, Куба, Ливия, Саудовская Аравия, Северная Корея, Сирия, Судан,
(в США это запрещается первой по- Таджикистан, Туркмения, Тунис и Узбекистан.
правкой к конституции, в России — Руководитель Северной Кореи Ким Чен Ир, желая, чтобы его го-
статьёй 29.5 конституции). Однако сударство оставалось закрытым для всего остального мира, принял
провайдеры, будучи частными ком- решение о запрете Интернета. Единственный сайт, на котором режим
мерческими структурами, имеют пра- ведёт официальную пропаганду, зарегистрирован в Японии.
во распоряжаться принадлежащим им Кубинский лидер Фидель Кастро считает Интернет инструментом,
дисковым пространством и каналами который капитализм использует для манипулирования общественным
связи в соответствии со своими пред- мнением. На Кубе доступ в Интернет разрешён только иностранным
почтениями, т. е. осуществлять кон- туристам или функционерам компартии.
троль над материалами, передаваемы- Как Древний Китай был отгорожен от мира Великой стеной, так
ми по их информационным каналам. компьютерные сети современного социалистического Китая отде-
Все недовольные клиенты могут по- лены от Всемирной паутины, а подключения и трафик контролиру-
дыскать себе других провайдеров. ются государством. Созданы специальные полицейские подраз-
Но государство не должно каким-то деления, специализирующиеся на преследовании авторов
образом фильтровать частную ин- антикоммунистических и антиправительственных статей, опубли-
формацию, какими бы общественны- кованных в Интернете. Инакомыслие в Сети карается длительны-
ми интересами оно ни пыталось это ми сроками заключения.
оправдать, потому что свобода сло- В Белоруссии требуется регистрация средств доступа к Интерне-
ва — наивысшая ценность цивилизо- ту (модемов) в органах внутренних дел.
ванного общества.

543
ЗАЩИТА ИНФОРМАЦИИ
АВТОРСКОЕ ПРАВО В ЦИФРОВОЙ ВЕК

АВТОРСКОЕ ПРАВО Независимо от формы своего выраже-


В России действует И КОМПЬЮТЕРИЗАЦИЯ ния программы и базы данных защи-
Закон РФ от 23 сентя- щаются так же, как и произведения ли-
бря 1992 г. «О право- тературы. Кроме того, в компьютерных
вой охране программ Компьютеры так стремительно во- программах используются другие объ-
для электронных вы- рвались в жизнь человека, а новые екты авторского права: произведения
числительных машин информационные технологии столь литературы, изобразительного искус-
и баз данных». быстро развивались, что сначала за- ства, кинематографии, музыкальные
конодатели оказались к этому непод- произведения.
готовленными. Некоторое время ос- В отличие от материальной соб-
тавалось неясным, какую правовую ственности объекты интеллектуаль-
охрану предоставить компьютерным ной собственности, в том числе и
программам. Однако было очевидно, компьютерные программы, покупа-
что защита необходима, чтобы обес- тели могут использовать лишь на осо-
печить должное развитие компью- бых условиях, устанавливаемых ав-
терной индустрии. тором. При этом в собственность
В настоящее время компьютерные покупателя переходит только носи-
В России авторское программы (редакторы, компилято- тель информации, например ком-
право регулируется ры, базы данных) приобрели значе- пакт-диск, на котором программа
Законом РФ от 9 ию- ние товарной продукции. Например, записана. Однако покупатель впра-
ля 1993 г. «Об автор- база данных — это объективная фор- ве без согласия правообладателя и
ском праве и смеж- ма представления и организации со- без выплаты ему дополнительного
ных правах». вокупности данных (статьи, расчёты вознаграждения изготовлять копии
и пр.), систематизированных таким программы при условии, что они
образом, чтобы они могли быть най- предназначены исключительно для
дены и обработаны с помощью ЭВМ. архивных целей.

544
Защита информации

АВТОРСКОЕ ПРАВО
И ИНТЕРНЕТ Закон определяет программу как объективную форму представ-
ления совокупности данных и команд, предназначенных для
функционирования электронно-вычислительных машин (ЭВМ)
Развитие новых информационных
и других компьютерных устройств с целью получения опреде-
технологий положило начало про-
лённого результата, включая подготовительные материалы, по-
цессу перевода всей информации в
лученные в ходе её разработки, и порождаемые ею аудиовизу-
цифровой вид, а появление и повсеме-
альные отображения.
стное развитие Интернета, облегчив-
шее копирование и распространение

ЧТО ТАКОЕ АВТОРСКОЕ ПРАВО

Авторское право — это часть гражданского права, кото- • право на публичное исполнение;
рая регулирует порядок использования произведений • право на передачу в эфир;
литературы, науки и искусства. Объектами авторского • право на сообщение для всеобщего сведения по ка-
права признаются также программы для компьютеров и белю (т. е. передавать произведение, включая показ, ис-
электронные базы данных. полнение или передачу в эфир, для всеобщего сведения
Охраняемое произведение должно быть результатом по кабелю, проводам или с помощью других аналогич-
творческого труда, продуктом интеллектуальной деятель- ных средств);
ности человека, оригинальным, отмеченным индивиду- • право на доведение до всеобщего сведения (т. е.
альностью автора. Результаты интеллектуальной деятель- сообщать произведение таким образом, при котором
ности называют интеллектуальной собственностью. любое лицо может иметь доступ к нему в интерактивном
Субъектами авторского права, т. е. лицами, облада- режиме из любого места и в любое время по своему
ющими исключительным правом на произведение, счи- выбору).
таются прежде всего авторы произведений. Правообла- Авторское право действует в течение всей жизни ав-
дателями также могут быть различные компании, тора и 70 лет после его смерти. По истечении срока охра-
приобретающие право на коммерческое использование ны произведение переходит в общественное достояние,
произведения, или наследники автора. его можно использовать, не спрашивая разрешения. Пра-
Авторские права делятся на личные неимуществен- во авторства, право на имя и право на защиту репутации
ные и имущественные права. Из неимущественных прав автора охраняются бессрочно.
автору принадлежат
• право авторства — право признаваться автором про-
изведения;
• право на имя — право использовать или разрешать
использовать произведение под именем автора или его
псевдонимом;
• право на обнародование — право обнародовать или
разрешать обнародовать произведение в любой форме;
• право на защиту репутации автора, право на защи-
ту произведения, включая его название, от всякого иска-
жения или иного посягательства, способного нанести
ущерб чести и достоинству автора.
Личные неимущественные права принадлежат авто-
ру независимо от его имущественных прав и сохраняют-
ся за ним, например, даже в случае передачи исключи-
тельных прав на публикацию произведения.
К имущественным правам автора относятся
• право на воспроизведение;
• право на распространение;
• право на переработку;
• право на импорт;
• право на перевод;
• право па публичный показ;

545
Передача информации

ИЗ ИСТОРИИ АВТОРСКОГО ПРАВА

История авторского права началась с изобретения


книгопечатания, благодаря которому стало возмож-
ным механическое размножение произведения вмес-
то переписывания его от руки. Сначала охрана автор-
ского права предоставлялась в форме привилегий,
выдаваемых королями. В 1557 г. английская короле-
ва Мария Тюдор издала указ о том, что одна из бри-
танских типографских гильдий наделяется монополи-
ей на книгопечатание и книготорговлю в стране.
Согласно данному указу, книготорговец, принадле-
жащий к этой гильдии, купивший книгу у автора и за-
регистрировавший её в специальном реестре, стано-
вился владельцем права на печатание.
11 января 1709 г. в британской палате общин был
заслушан проект закона «О поощрении образования
путём закрепления за автором или приобретателями
копий печатных книг прав на последние на время,
устанавливаемое отныне». 10 апреля 1710 г. проект
стал первым законодательным актом об авторском
праве. В историю он вошёл под названием «Статут
королевы Анны». Закон предоставил авторам право-
вую охрану на их произведения на 14 лет; при жиз-
ни автора она могла быть продлена ещё на 14 лет.

Королева Анна Стюарт.

Первым многосторонним международным согла-


шением, которое касалось авторских прав, была при-
нятая в 1886 г. постоянная Бернская конвенция об ох-
ране литературных и художественных произведений.
В 1952 г. была принята вторая основная междуна-
родная конвенция — «Всемирная конвенция об автор-
ском праве».
Особенностью авторского права в России являлась
тесная связь с цензурным законодательством. Первым
авторским законом в России стал Цензурный устав
(1828 г.). Он содержал специальную главу «О сочини-
телях и издателях книг», предоставлявшую автору ис-
ключительные права на собственные произведения на
протяжении его жизни и наследникам — на 25 лет пос-
ле смерти автора. В 1830 г. вступил в действие ещё
один закон — «Положение о правах сочинителей,
Королева Мария I Тюдор. переводчиков и издателей».

546
Защита информации

ОТВЕТСТВЕННОСТЬ ЗА НАРУШЕНИЕ АВТОРСКОГО ПРАВА

Российское законодательство отвечает всем принципам Согласно статье 146 Уголовного кодекса РФ, незакон-
международных соглашений об авторском праве. Оно ное использование объектов авторского права, а равно
включает разнообразные формы его защиты. За наруше- присвоение авторства, если эти деяния причинили круп-
ние авторских прав наступает гражданская, уголовная и ный ущерб, наказываются штрафом в размере от 200 до
административная ответственность. 400 МРОТ, либо в размере заработной платы или иного до-
Экземпляры произведения или программы, изготов- хода осуждённого за период от двух до четырёх месяцев,
ление или распространение которых влечёт за собой на- либо обязательными работами на срок от 180 до 240 часов,
рушение авторских прав, называются по закону контра- либо лишением свободы на срок до двух лет.
фактными (от фр. contrefac, on — «подделка»). В обиходе
же часто употребляется термин «пиратская копия» (от
англ. piracy — «нарушение авторского права»). Обладате-
ли авторских прав могут обратиться за защитой в суд и
вправе требовать от нарушителя признания прав автора;
восстановления положения, существовавшего до нару-
шения права, и прекращения действий, нарушающих пра-
во или создающих угрозу его нарушения; возмещения
убытков, включая упущенную выгоду; взыскания дохода,
полученного нарушителем вследствие нарушения автор-
ских и смежных прав; выплаты компенсации в сумме от
10 до 50 тыс. минимальных размеров оплаты труда
(МРОТ). Контрафактные экземпляры произведений под-
лежат конфискации и уничтожению.
В соответствии со статьёй 7.12 Кодекса Российской
Федерации об административных правонарушениях не-
законное использование контрафактных экземпляров вле-
чёт наложение на граждан административного штрафа в
размере от 15 до 20 МРОТ. Диски с контрафактной продукцией.

информации, только заострило про- охраняется. Это не так: авторское пра-


блемы охраны авторских прав. Совре- во на произведение или программу
менное законодательство отражает возникает в силу их создания. Про-
эти изменения и охраняет объекты ставлять знак  не обязательно.
авторского права в любой форме. Так, • Авторское право не нарушается,
произведение, размещённое в Интер- если нарушитель не извлекает прибы-
нете, отвечает всем признакам объек- ли. Это опять неверно: использование
та авторского права: оно, во-первых, произведения без согласия автора — Каждому гарантиру-
является результатом творческой де- нарушение в любом случае. ется свобода литера-
ятельности независимо от назначе- • Произведения, размещённые в турного, художест-
ния и достоинства произведения, Интернете, являются общественным венного, научного,
а также от способа его выражения; достоянием. Однако произведение пе- технического и дру-
во-вторых, закреплено в объективной реходит в общественное достояние гих видов творчест-
форме — в письменной форме (текс- только по истечении срока охраны ва, преподавания.
товые файлы и web-страницы) и в или если автор явно выразил такое же- Интеллектуальная
форме изображений. Вместе с тем ши- лание. собственность охра-
рокая доступность Интернета поро- • Размещение чужого произведе- няется законом.
дила ряд распространённых заблуж- ния в Интернете считается личным
Конституция
дений относительно авторского права использованием. Это не так: доведение Российской
на материалы, размещённые в систе- произведения до всеобщего сведения Федерации,
ме World Wide Web. относится к исключительным правам статья 44-1
• Если не проставлен знак уведом- автора.
ления об авторском праве (буква «с» в Лёгкость копирования объектов
окружности — ), то произведение не авторского права вынуждает законо-

547
Передача информации

Copyright Act — DMCA). DMCA преду-


сматривает гражданское и уголовное
преследование субъектов, наруша-
ющих авторские права, в том числе и
в Интернете. Согласно этому закону,
люди, предоставляющие информа-
цию о том, как нарушить авторское
право, а также проектирующие и со-
здающие инструменты для взлома за-
щиты авторского права, могут быть
задержаны и предстать перед судом
точно так же, как и те, кто незаконно
использует защищённые авторским
правом материалы. Подобные DMCA
законы, предусматривающие ответ-
дателей усиливать их защиту. В 1998 г. ственность за обход технических
конгресс США принял закон «О защи- средств защиты от копирования, при-
те авторских прав в цифровом тыся- няты как в странах Евросоюза, так и в
челетии» (англ. Digital Millennium Российской Федерации.

COPYRIGHT И «COPYLEFT»

Сегодня каждый человек, имеющий ная индивидуальная лицензия силь-


дело с компьютерами, слышал про но ограничивает права покупателя:
свободно распространяемую опера- • позволяет устанавливать данную
ционную систему Linux. Многие зна- программу только на одном компью-
ют и о её создателе (точнее, основа- тере;
теле) — Линусе Торнвальде. Но не всем • разрешает сделать лишь одну ре-
известно о знаменитом предшествен- зервную копию программы;
нике Линуса Торнвальда — Ричарде • запрещает другому человеку ра-
Столмене, заложившем много лет на- ботать с программой даже на том ком-
зад философскую, юридическую и со- пьютере, где программа законно уста-
лидную техническую базу, на которой новлена;
и расцвёл Linux. • запрещает исправлять ошибки в
В 70-х гг. XX в., когда Ричард Стол- программе или даже изучать коды
Линус Торнвальд. мен работал преподавателем и про- программы с целью найти источник
граммистом в знаменитом Массачу- ошибки.
сетсском технологическом институте, «Проект GNU» (рекурсивная аббре-
он был в группе специалистов, кото- виатура GNU’s Not UNIX. — Прим. ред.)
рая использовала исключительно сво- зарождён в 1983 г. как способ возвра-
бодное программное обеспечение. щения духа сотрудничества, который
Сам Столмен активно проповедовал преобладал в сообществе пользовате-
следующее: интеллектуальные дости- лей компьютеров в ранние годы, чтобы
жения, включая исходные тексты ком- сделать сотрудничество снова возмож-
пьютерных программ, должны быть ным, удалив препятствия, создаваемые
В самом прямом доступны всему человечеству для ис- владельцами закрытого программно-
смысле понятие «ав- пользования, копирования, исправле- го обеспечения», — пишет в своём
торское право», или ния ошибок, развития, полной пере- манифесте Ричард Столмен. Под по-
«copyright», означает делки и т. д. кровительством Массачусетсского тех-
«право создания ко- В те годы, как и сейчас, большин- нологического института он органи-
пий». ство программ являлось собственно- зовал некоммерческое объединение
стью отдельных компаний. Для закон- Free Software Foundation (Общество
ного использования таких программ поддержки свободно распространя-
нужно было купить лицензию. Обыч- емого программного обеспечения).

548
Защита информации

Для реализации его идеи в первую


очередь требовалась операционная
HURD — рекурсивная аббревиатура: HIRD of UNIX-Replacing
система, под управлением которой
Daemons, где HIRD — аббревиатура от HURD of Interfaces
это программное обеспечение нача-
Representing Depth. Перевести эту рекурсивную аббревиатуру
ло бы функционировать. У Столмена
(в соответствии с традициями GNU) на русский язык практиче-
не было никаких сомнений: ОС долж-
ски невозможно. Знакомые с английским могут попытаться сде-
на быть совместима с UNIX. Кроме
лать это сами. (Подсказка: словом daemons в мире UNIX приня-
того, операционная система и все ин-
то называть программы-серверы.)
струменты (компьютерные програм-
мы) должны быть свободно распро-
страняемыми. Первой программой
проекта GNU оказался текстовый ре- то того чтобы делать программное
дактор GNU Emacs, что вполне есте- обеспечение GNU общественным до-
ственно, ведь, чтобы написать про- стоянием, мы выпускаем его под “copy-
грамму, нужен редактор. Программа left”... Сopyleft — это такое правило,
быстро стала популярной, и у проек- что при распространении програм-
та появились приверженцы. мы вы не можете добавлять ограниче-
К 1990 г. коллекция программ GNU ния, отбирающие у людей основные
включала все основные компоненты свободы», — пишет Столмен.
операционной системы, кроме ядра. Проблема свободного программ-
Основным ядром, под управлением ко- ного обеспечения заключается не
торого работает коллекция программ только в свободе самого программно-
GNU, стало ядро Linux. Работы над яд- го обеспечения, но и в свободе доку-
ром HURD ведутся до сих пор. ментации к нему.
Большинство программистов се- «Критерий свободного руководст-
годня согласны с тем, что создание ва во многом такой же, как и критерий
Linux без использования результатов свободной программы... Повторное
Free Software Foundation было бы не- распространение (в том числе коммер-
выполнимо. Какой из результатов ос- ческое) должно быть разрешено, что-
новополагающий, мнения разделятся: бы руководство могло сопутствовать
часть скажет: «Разумеется, главное — каждой копии программы, в интерак-
это компилятор», а другая часть возра- тивной форме или на бумаге. Разреше-
зит: «Нет, это разработанная Столме- ние на внесение изменений также иг-
ном лицензия». Лицензия называется рает решающую роль».
GNU Public License, сокращённо GPL, Как правило, даже свободно рас- Ричард Столмен.
и суть её весьма проста. Предположим, пространяемое программное обес-
что автор X создал программу Y и хо- печение часто имеет закрытую до-
чет подарить её всему человечеству, кументацию, которую запрещено
сделав свободно распространяемой. копировать, изменять, распростра-
Если X говорит: «Все могут использо- нять. Идеально, чтобы документация
вать мою программу и делать с ней что к свободно распространяемому про-
угодно», то возможно следующее: зло- граммному обеспечению также рас-
умышленник незначительно меняет пространялась под лицензией GNU
программу Y и превращает её в про- Public License.
грамму Z, объявляя своей собственно- Неправильно думать, что свобод-
стью. GNU-лицензия запрещает такую но распространяемое программное
ситуацию. Согласно этой лицензии, пе- обеспечение всегда копируется бес-
ределка GNU-программ разрешена, платно. Свобода и означает, что мож-
только если в результате переделки бу- но получить копию как бесплатно, так
дет снова получена GNU-программа. и заплатив. Просто существуют тыся-
«Цель проекта GNU — дать всем чи способов получения свободно рас-
пользователям свободу распростра- пространяемого программного обес-
нять и изменять программное обес- печения, среди них указан и способ
печение GNU. Если бы посредник мог бесплатного получения. То же отно-
убрать свободу, у нас, возможно, бы- сится и к документации.
ло бы много пользователей, но у них Однако вот вопрос: зачем платить,
не было бы свободы. Поэтому, вмес- если можно получить бесплатно?

549
Передача информации

ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ

Офис современной компании


представляет собой наполненные
электроникой помещения, где кон-
фиденциальная информация нахо-
дится на бумаге, на компьютерах,
передаётся по телефону, факсу, обра-
батывается, записывается и воспро-
изводится на магнитофонах, дикто-
фонах, видеомагнитофонах, наконец,
просто содержится в разговорах. Су-
ществует множество угроз нанесения
ущерба системам обработки инфор-
мации. В первую очередь он может
быть вызван стихийными, природны-
ми явлениями, не зависящими от че-
ловека: пожаром, наводнением, зем-
летрясением и ударом молнии...
Более широк и опасен тот ущерб,
который связан с человеческой дея-
тельностью:
• неумышленный ущерб, вызыва-
емый ошибками в проектировании,
в действиях обслуживающего персо-
нала, программном обеспечении, слу-
С интенсивным развитием компью- чайными сбоями в работе средств вы-
терных и информационных техно- числительной техники и линий связи,
логий неизмеримо возросла важ- энергоснабжения, ошибками пользо-
ность защиты информации. Давно вателей, воздействием на аппаратуру
известно, что информация бывает электромагнитных полей;
настоящим сокровищем. Именно по- • умышленный ущерб, обусловлен-
этому часто много усилий затрачи- ный несанкционированными дейст-
вается как на её охрану, так и на её виями обслуживающего персонала и
получение. Информацию нужно за- доступом к информации посторон-
щищать в тех случаях, когда есть опа- них лиц.
сения, что она станет доступной для Последствиями могут быть унич-
посторонних, которые могут обра- тожение, разрушение информации, а
тить её во вред законному пользова- также искажение, подделка, утечка, ко-
телю. В таких случаях говорят о кон- пирование и т. п.
фиденциальной информации. Как и все серьёзные мероприятия,
защита информации должна осуще-
ствляться комплексно, т. е. для получе-
ния наилучших результатов все виды
защиты информации нужно объеди-
нить. Комплексная система защиты
информации, включает:
• организационную защиту, т.е.
специальные мероприятия — от со-
браний до разработки планов и орга-
низации отделов по защите информа-
ции от НСД (несанкционированный
доступ);
• программно-аппаратную защи-
ту, компьютерные системы и про-
граммы;

550
Защита информации

• инженерно-техническую защи-
ту: камеры видеонаблюдения, интел-
лектуальные замки, ограничивающие ОШИБКИ И АВАРИИ
доступ в секретные помещения (к кон-
фиденциальной информации) посто-
ронних;
• законодательную защиту.
В России действует Федеральный
закон «Об информации, информати-
зации и защите информации» от 20
февраля 1995 г. Закон определяет ин-
формацию как сведения о лицах,
предметах, фактах, событиях, явле-
ниях и процессах независимо от фор-
мы их представления. Он регулирует
отношения, возникающие при фор-
мировании и использовании инфор-
мационных ресурсов на основе со-
здания, сбора, обработки, накопления, Ошибки и сбои в программном обеспечении так же опасны, как
хранения, поиска, распространения и компьютерные преступления. Услышав про очередной скан-
информации; создании и использо- дал, всегда хочется спросить, это ошибка или диверсия?
вании информационных технологий В столице Венесуэлы Каракасе Верховный суд отложил про-
и средств их обеспечения; защите ведение выборов в мае 2000 г. из-за ошибки в компьютерной
информации, прав субъектов, участ- системе.
вующих в информационных процес- 17 июня 2000 г. в Великобритании произошёл крупный сбой
сах и информатизации. Закон опре- в системе авиаперелётов. В течение дня поломка была ликви-
деляет, что защите подлежит любая дирована, но тысячам людей пришлось ночевать в аэропортах,
документированная информация, не- менять время вылета. Отрадно, что все они остались в живых
правомерное обращение с которой и сбой не привёл к авариям в воздухе.
может нанести ущерб её собственни- Из-за неполадок, случившихся в операционной системе ком-
ку, владельцу, пользователю и иному пьютера австралийской телефонной компании Telstra, 76 тыс.
лицу. Закон запрещает сбор, хране- абонентов не могли звонить по своим аппаратам.
ние, использование и распростране- В millennium после установки недостаточно отлаженной ком-
ние информации о частной жизни, пьютерной системы в Northeastern University (Северо-Восточ-
информации, нарушающей личную ный университет), США, было принято на 600 студентов (25%)
тайну, семейную тайну, тайну пере- больше, чем предполагалось. Руководство университета не зна-
писки, телефонных переговоров, поч- ло, что делать с лишними зачисленными абитуриентами.
товых сообщений граждан без их Беркли Банк заявил, что в результате установки более со-
согласия, кроме как на основании су- вершенного программного обеспечения нарушилась работа
дебного решения. Также защищается банка через Интернет, так как некоторые клиенты получили
право на доступ к открытой инфор- доступ к чужим счетам.
мации. Резервный банк Австралии отправил 64 клиентам инфор-
мацию о 0,5%-ном плановом увеличении процентной ставки
на 6 мин раньше срока, и за это время биржевые брокеры ухит-
рились продать долговых обязательств и векселей на сумму
3 млрд австралийских долларов, составив целые состояния на
этой ошибке.
Были и просто курьёзные случаи. Две женщины носили
одно и то же имя — Белинда Ли Перри и родились в один
день, 7 января 1969 г. Такое совпадение гарантировало им
постоянную путаницу. Регулярно одна Белинда обнаружива-
ла, что её данные в страховом полисе, банковских карточках
заменены другими. Единственный положительный момент во
всей этой истории состоит в том, что женщины подружились.
Как видно, имя и дата рождения не подходят на роль уникаль-
ного идентификатора.

551
Передача информации

Уголовным кодексом РФ преду- грамм или внесение изменений в су-


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

ВИРУСЫ

Цифровой век несёт не только осво- Интересно отметить, что такое опре-
бождение людей от громоздких вы- деление довольно точно описывает
числений, автоматизацию всего, что компьютерный вирус, но под него
можно автоматизировать, но и свои подпадает ещё множество других
проблемы и заботы. Одной из таких программ.
проблем нашего времени являются Например, операционные систе-
компьютерные вирусы. Здесь всё как мы PC-DOS или MS-DOS и им подоб-
в жизни — есть свои болезни и свои ные могут создавать свои копии. А в
доктора. Windows работает множество частей
Компьтерный вирус — это про- системы, о которых пользователь да-
грамма, работающая на ЭВМ без ведо- же не догадывается. Что касается вре-
ма пользователя, наносящая обычно да, то любая программа, имеющая в сво-
вред компьютеру, как обычный ви- ём коде ошибки, способна нанести
рус — человеку, и способная созда- вашему компьютеру и хранящейся в
вать свои копии на доступных носи- ней информации большой урон.
телях информации (дисках, дискетах). Вирусы начали представлять серьёз-
ную угрозу для компьютера где-то в
70—80-х гг. XX в. Авторы вирусов,
ВИРУСЫ, КОТОРЫЕ пользуясь для создания новых «элек-
тронных приветов» различными недо-
МЫ ВЫБИРАЕМ работками в операционных системах
компьютеров, наплодили огромное
количество разной «заразы». Порой
здравомыслящему человеку трудно су-
дить о движущих ими мотивах. Кто-
то просто проводил эксперименты,
кто-то желал славы поджигателя-Ге-
рострата, кто-то всего лишь учился
программированию.
Предыстория компьютерных ви-
русов начинается с появлением ЭВМ
в учебных заведениях. Именно там
талантливые студенты-программи-
сты писали программы, которые «во-
евали» между собой за ресурсы ком-
пьютера — память, место на диске и
Структура мозаично- даже за такой фактор, как процессор-
го вируса, вторгнув-
шегося в биологиче- ное время — миллисекунды, отпущен-
скую клетку. ные процессору для решения одной

552
Защита информации

задачи перед переключением на сле- лидерами продаж. Позднее центр про-


дующую. изводства вирусов смещается ближе к
Первым нашумевшим вирусом стал Азии, а ещё позже центр как таковой Скорее всего, ваш
так называемый вирус Морриса, ко- исчезает. Причина тому — развитие компьютер поразил
торый был написан в США и там же Интернета, который фактически сти- вирус, если Windows
парализовал на длительный срок боль- рает границы. вывел надпись: «Ваши
шое количество компьютеров в госу- Вирусы можно классифицировать руки ввели неверную
дарственных учреждениях. по-разному: команду и будут ам-
С появлением персональных ком- • по способу размножения. Виру- путированы».
пьютеров вирусы начали расти как сы поражают исполняемые файлы,
грибы после дождя. Этому способст- почтовые программы, даже файлы с
вовали растущая популярность пер- документами. Современные текстовые
сональных ЭВМ и несовершенство редакторы имеют свои встроенные
программных средств для них. средства создания надстроек и допол-
Географию развития «вирусопи- нений. Этими средствами можно поль-
сательства» можно легко проследить зоваться не только для дополнитель-
во времени: ного удобства в работе, но и для
• США, Европа — начало 80-х гг.; создания вредоносных программ;
• Болгария, Индия — середина • по способу действия. Вирус мо-
80-х гг.; жет проявляться по-разному, спектр его
• Россия (тогда ещё СССР) — ко- действий — от демонстрации звуковых
нец 80-х гг.; и визуальных эффектов до тихого сти-
• Китай, Тайвань, другие страны рания данных на компьютере-жертве;
Азии — начало и середина 90-х гг.
Итак, вирусы появлялись там, где
вспыхивал очередной бум информа-
тизации общества. Вначале Америка, ИСТОРИЯ ОДНОГО ВИРУСА
потом Европа, затем Азия... Время дей-
ствия — 80—90-е гг. XX в. 2 ноября 1988 г. Роберт Моррис-младший,
В Россию первые вирусы завози- аспирант факультета информатики Кор-
лись вместе с бывшими в употреб- неллского университета, с помощью напи-
лении компьютерами из стран с санного им вируса инфицировал большое
развитой экономикой. Потом ком- количество компьютеров, подключённых
пьютеры стали покупаться в Болга- к Интернету.
рии и Индии, где они «заражались» Для своего распространения вирус
порой уже на заводах (очевидно, по использовал некоторые дефекты стандарт-
незнанию). ной операционной системы UNIX, уста-
Вскоре в России появились свои «ав- новленной на многих системах, а также
торы» вирусов. Несмотря на то что механизм доступа к удалённым компью-
множество людей просто «сдирали» терам в локальных сетях.
код программ друг у друга, русский Вирус состоял из двух частей — глав-
бум вирусописательства был одним из ной программы и программы, обеспечи-
самых страшных для остального ми- вающей его распространение. Главная
ра. Традиционно хорошая подготовка программа после запуска на очередной Роберт Моррис-
русских программистов, а также их машине собирала информацию отно- младший.
своеобразное чувство юмора вводили сительно других компьютеров в сети, с
западные компании, которые специа- которыми та имеет связь. Затем производилась пересылка програм-
лизировались на «отлове» вирусов, в мы распространения на эти машины, где она запускалась и обеспе-
состояние лёгкого помешательства. Но чивала пересылку и компиляцию остальной части вируса. Затем весь
в то же время в России появляются оте- процесс повторялся.
чественные разработки антивирусных Наиболее заметным эффектом при распространении вируса была
программ. Несомненно, они во мно- непрерывно возраставшая загруженность поражённых вирусом ма-
гом превосходят зарубежные аналоги, шин. По истечении определённого времени некоторые компьютеры
так как именно российские програм- оказались настолько загруженными распространением копий вируса,
мисты являются одними из самых та- что не были способны выполнять никакой полезной работы; другие
лантливых в мире. Их разработки от- машины исчерпывали свою память, и их приходилось перезагружать.
мечены во многих странах и являются

553
Передача информации

• по уровню наносимого вреда. Ви- Помимо этого, вирус может запи-


русы могут быть как безобидными, так сать себя в специальную область на
и весьма опасными. диске — загрузочный сектор. Это поз-
Компьютерная программа — это волит ему активизироваться, когда
набор инструкций для ЭВМ. Она хра- пользователь включит компьютер и
нится на постоянном носителе ин- начнётся загрузка системы с жёстко-
формации, а при запуске находится в го диска. Такой способ был популярен
оперативной памяти компьютера. Ви- в то время, когда компьютер надо бы-
рус, как уже было сказано, тоже про- ло загружать с дискет. Вообще, загру-
грамма. Её задача в первую очередь — зочные вирусы не получили такого
изменить как можно больше про- большого распространения, как фай-
грамм на ЭВМ таким образом, чтобы ловые.
они содержали в себе дополнение в Вирусы, которые поражают фай-
виде самого вируса. лы с программами, называются фай-
Заражение происходит следующим ловыми. Те же, которые «пишут себя»
образом: пользователь запускает на в загрузочный сектор, — загрузочны-
своём компьютере программу, уже со- ми. А «монстры», поражающие и фай-
держащую вирус. Это может быть про- лы, и загрузочный сектор, называют-
грамма, «скачанная» из Интернета или ся файлово-загрузочными.
переписанная у знакомого. Перед за- Как правило, вирусы имеют очень
грузкой самой программы или после маленький размер и пользуются не
неё вирус активизируется и начинает описанными в инструкциях к про-
работу. Сценарий его работы пример- граммам и специальной литературе
но таков: возможностями операционной систе-
1) найти все доступные для зара- мы. Это позволяет им поражать фай-
жения программы на ЭВМ; лы быстро и незаметно. Некоторые
2) дописать себя в начало или в ко- вирусы могут «маскироваться» — при-
нец программы; нимать вид запутанного и бессмыс-
3) провести разрушительные дей- ленного кода, который не понимает
ствия, если настала «критическая» да- большинство антивирусных про-
та (тот день, в который вирус наносит грамм и который способен сам изме-
«удар»); нять себя в процессе работы. Такие
4) если дата не настала, то, возмож- «изделия» называются полиморфами.
но, сделать какую-нибудь «мелкую» па- Развитие Интернета сильно по-
кость, например зашифровать неболь- влияло на скорость распространения
шой участок жёсткого диска ЭВМ. вирусов. Кроме этого, вирусы приоб-
А когда пользователь запустит рели совершенно новые качества —
«свою» программу, которая была у не- они получили возможность исполь-
го на ЭВМ до заражения и теперь со- зовать Интернет и локальные ком-
держит в себе вирус, весь сценарий пьютерные сети для переноса себя
повторится. на другие машины и для связи со

554
Защита информации

своими «создателями». Очень часто


распространители вирусов пользу-
ются для заражения компьютеров- САМЫЙ ИЗВЕСТНЫЙ «ТРОЯНЕЦ»
жертв оригинальными трюками.
Эти приёмы затрагивают слабости Самым нашумевшим «троянцем» стал, пожалуй, BackOrifice, имевший
человека — его интерес к «запретно- наибольший «успех» в 1997—1998 гг. Название его можно перевести
му плоду», т. е. бесплатным пиратским как «Чёрный ход». Эта программа была задумана как система удалён-
программам, «крэкам» и тому подоб- ного управления компьютером и позволяла делать буквально ВСЁ —
ным соблазнам Всемирной сети. Схе- начиная от выдвигания лотка дисковода CD ROM до изъятия инфор-
ма действия этих программ такова: мации из видеокамеры, подключённой к компьютеру-жертве, или за-
пользователь находит на просторах писи звуков через микрофон. Небольшие изменения в коде BackOrifice
Интернета некую программу, су- позволили пользоваться им в неблаговидных целях, незаметно подса-
лящую ему бесплатный доступ к сай- живая вирус на компьютеры-жертвы.
там или, например, предлагающую Авторы программы даже не предполагали, что их детище произ-
взломать защиту популярного про- ведёт столько шума. Они создали лишь инструмент для удалённого
граммного продукта. Он скачивает управления компьютером, но вскоре их программа стала настоящей
её на свой компьютер и запускает. напастью для пользователей Интернета. Пользователи пересылали
Всё, дело сделано. Программа сооб- друг другу файлы, к которым был «приклеен» BackOrifice, и при запу-
щает, что не может запуститься по ске вложенной в письмо программы вместе с ней запускался и
той или иной причине, а сама «под- BackOrifice. Он маскировался под безобидный процесс в системе,
саживает» на компьютер пользовате- и пользователь не мог обнаружить его без помощи специальных
ля вирус. Или, например, вам прихо- антивирусных программ.
дит письмо от незнакомого человека,
который желает познакомиться и
предлагает посмотреть фотографии, «троянцы», ориентированы на работу
приложенные к письму. Только вот через Интернет. «Черви» переезжают
почему-то фотографии оказывают- с компьютера на компьютер по сети,
ся исполняемыми файлами... Такой и основной вред, который они причи-
приём позволит злоумышленнику няют, — это чрезмерное использова-
или вообще всем желающим полу- ние ресурсов компьютеров-жертв и
чить доступ к компьютеру жертвы и каналов Интернета. Пример компью-
добыть из него любую информацию. терного «червя» — вирус Морриса.
Как правило, эти программы исполь- Вирусы представляют реальную
зуются для получения паролей досту- опасность для современных персо-
па в Интернет. Эта разновидность ви- нальных компьютеров. Если 5—7 лет
русов называется «троянцем» или
«троянским конём».
Помимо программ-«троянцев» су-
ществует такая разновидность виру-
сов, как «черви». Эти программы, как и

555
Передача информации

фирмы, выставив на обозрение доку-


менты, не предназначенные для по-
Вы платите только за операционную систему! Ошибки, недоработ-
сторонних глаз. А если, например,
ки и «дыры» в защите — совершенно бесплатно, т. е. даром!
представить, что такой вирус попа-
дёт в компьютер, связанный с деятель-
Для удалённого управления чужим компьютером совершенно необя-
ностью военных или государствен-
зательно подсаживать на него «троянского коня», рискуя быть заме-
ных организаций?
ченным. Современные операционные системы громоздки и уязвимы,
Убытки, наносимые компьютерны-
и, к сожалению, количество ошибок и «дыр» в защите от версии к вер-
ми вирусами, на Западе оцениваются
сии не снижается. Последние версии популярного браузера Internet
в сотни миллионов долларов.
Explorer, входящего в состав ОС Windows, любезно предоставляют
Как же защититься от компьютер-
доступ к компьютеру пользователя без его ведома через просматри-
ного вируса? Для этого существуют
ваемые им web-страницы. То есть во время просмотра web-сайта поль-
программы, называемые антивиру-
зователю на компьютер может быть передан код, при исполнении ко-
сами.
торого будет создана возможность запустить ЛЮБУЮ программу на
Работает такая программа следу-
его компьютере.
ющим образом. Она «знает» о том, как
«выглядит» вирус. То есть имеет в сво-
ей базе данных фрагменты программ-
назад основной целью автора вируса вирусов. Базу данных можно регу-
был просто вывод из строя компью- лярно пополнять, добавляя в неё
тера жертвы, то в начале XXI в. виру- «образцы» новых вирусов. При запу-
сы нацелены главным образом на то, ске антивирус ищет в файлах на ва-
чтобы незаметно украсть у вас какую- шем компьютере похожие фрагмен-
то информацию и предоставить по- ты и, если находит, пытается провести
сторонним доступ к вашей ЭВМ. Ко- процедуру «лечения».
нечно, не последнюю роль в истории «Лечение» происходит так: антиви-
компьютерных вирусов сыграло раз- рус пытается вычистить ваши файлы,
витие Интернета. Число каналов рас- просто удаляя «критические» куски
пространения вирусов значительно вируса, а затем устраняет последствия
возросло — это и электронная почта, работы вируса, например восстанав-
и пиратские сайты, и даже просто до- ливает испорченную информацию.
кументы. Вирус, который похищает Существуют также программы-мо-
информацию, может серьёзно «под- ниторы, которые постоянно находят-
мочить» репутацию коммерческой ся в памяти ЭВМ и отслеживают все
критические моменты и подозритель-
ные действия — запуск программ, по-
пытки записи в критически важные
системные файлы и т. д.
Но уповать на совершенство про-
грамм-антивирусов нельзя. Для того
чтобы не подцепить какую-нибудь
«инфекцию», нужно придерживаться
простых правил:
• не давайте работать на вашем
компьютере посторонним;
• пользуйтесь легальным про-
граммным обеспечением. Порой в пи-
ратских копиях обнаруживаются це-
лые коллекции «троянцев»;
• получив почту от незнакомых лю-
дей, убедитесь, что с письмом не «при-
ехал» какой-нибудь «довесок» в виде
исполняемого файла;
• не скачивайте из Интернета про-
граммы без разбору, даже если они
обещают вам 300%-ное увеличение
работоспособности вашего компью-

556
Защита информации

тера. Лучше поищите информацию о


них на сайтах с обзорами программ.
Кто же является автором вирусов?
Злодеи, мечтающие завоевать мир?
Специальные отделы фирм, которые
занимаются борьбой с конкурентами?
Диверсанты? Обычно нет. Авторами
часто становятся студенты вузов, по-
рой даже школьники старших классов.
Что движет этими людьми? В первую
очередь научный интерес. Авторам
любопытны все стороны компьютер-
ной жизни, но они не всегда понима-
ют, какой вред могут нанести своими
действиями...
Порой они сами не подозревают, и дальше, алгоритмы тоже будут совер-
что их детище вырвалось на свободу шенствоваться, поиск вирусов и «лече-
и зажило собственной жизнью. ние» станут эффективнее.
В Уголовном кодексе РФ существу- Что касается вирусов, то здесь
ет статья, под которую подпадают дей- ситуация сложнее, хотя некоторые
ствия авторов вирусов — создание и прогнозы сделать всё-таки можно.
распространение вредоносных про- Во-первых, мир переживёт ещё не од-
грамм для ЭВМ. Так что, если автор ну волну «вирусописательства». Во-
«попался», ему грозит тюремное за- вторых, для вирусов открывается
ключение. большое поле деятельности, и целью
Какие же перспективы на ближай- их уже стали не только домашние и
шее время у компьютерных вирусов офисные ЭВМ, но и карманные ком-
и антивирусных программ? пьютеры, а также сотовые телефоны
С антивирусами ситуация вполне и прочие сложные электронные при-
ясна: они будут совершенствоваться боры, в которых есть процессор.

ТЕСТОВОЕ ПРОНИКНОВЕНИЕ

«Я положил перед сидевшим молча уязвима изнутри. Ко мне обратились,


президентом компании технологию чтобы проверить, что может украсть
изготовления самого важного из про- целенаправленно действующий ин-
дуктов. Президент продолжал мол- формационный вор.
чать, когда на его стол лёг развёрну- На работу в компании мне отвели
тый план всех разработок компании. три дня. Я украл всё...»
Президент откинулся на спинку крес- Так начинается рассказ Айрэ Вин-
ла, когда к стопке добавились доку- клера, автора книги «Корпоративный
менты, описывающие переговоры о шпионаж», одного из самых извест-
многомиллионном судебном про- ных экспертов в области информа-
цессе. Наконец, президент промол- ционной безопасности, основателя
вил: "Мы должны благодарить Бога, и президента Internet Security Advisors
что вы не работаете на наших кон- Group (ISAG, примерный перевод
курентов". «группа экспертов по безопасности в
Я украл всё это и ещё кое-что, Интернете»), непревзойдённого спе-
будучи временным работником. Ду- циалиста в тестовом проникновении.
маете, речь идёт о компании с пло- Он описывает методы шпионажа, Айрэ Винклер.
хой службой безопасности? Едва ли. которые обнаруживают брешь в си-
Внешняя защита организована пре- стеме безопасности.
восходно, однако в руководстве по- Информация любой корпорации
дозревали, что компания может быть тщательно охраняется. При этом

557
Передача информации

Итак, в шпионаже против корпо-


рации Винклер применил пять видов
атак:
• поиск по открытым источникам;
• маскарад;
• превышение прав доступа;
• хакерство штатного сотрудника;
• внутренняя координация дейст-
вий внешних сообщников.

ПОИСК ПО ОТКРЫТЫМ
ИСТОЧНИКАМ

Прежде всего необходимо доскональ-


но ознакомиться с объектом атак. Уди-
вительно, какое огромное количество
сведений можно просто почерпнуть
из Интернета: узнать о разработках
компании, прочитать научные статьи
об этих исследованиях. На сайте
компании, как правило, указаны име-
на руководителей, её финансовое
средства защиты подчас сопостави- положение, множество общей инфор-
мы со средствами, применяемыми в мации о компании и её корпоратив-
Форт-Ноксе. Прямой взлом, подоб- ной философии. Иногда удаётся вы-
ный тем, что показывают в кинофиль- яснить имена ведущих специалистов.
мах, практически исключён. Никакой Обычный поиск по названию компа-
серьёзной службе безопасности не нии в группах новостей Интернета
придёт в голову использовать послед- может принести удивительные сюр-
нюю версию Windows на компьюте- призы. Айрэ Винклер узнал не только
рах корпорации, имеющих выход в всё вышеперечисленное, но и нашёл
Интернет. Оставленные открытыми имена многих сотрудников компании.
«калитки» в подобных несерьёзных Письма сотрудников в компьютерные
операционных системах не требуют группы новостей дали информацию
никаких специальных средств для об аппаратной и программной среде
взлома. Надо просто войти. А список компании, а письма в прочие группы
«дыр» постоянно обновляется, и лю- помогли узнать о личных интересах
бой желающий может получить его в авторов.
Интернете.
Другое дело — операционные си-
стемы, сертифицированные спе- МАСКАРАД
циальными комиссиями по опре-
делённым классам безопасности. Шпион должен быть артистом, при-
В США, Европе и России они обозна- чём хороший шпион — вдвойне ар-
чаются по-разному, однако требова- тистом, чтобы не провести десяток
ния, предъявляемые к ним, одинако- лет в тюрьме в случае разоблачения.
Усиленно охраняемое во высоки. Человеку свойственно с подозрени-
хранилище золотого Но есть ещё один метод, самый ем относиться к чужакам и принимать
запаса США Форт- изощрённый — взлом изнутри. Для с распростёртыми объятиями тех, кто
Нокс находится поч- этого нужно провести определённую работает с ним в одной корпорации.
ти в центре военного работу. Маскарад начался с изготовления
городка с тем же на- При шпионаже используются аб- визитных карточек (в качестве образ-
званием. солютно все доступные методы, или ца использовалась подлинная визит-
атаки, — как технические, так и не- ная карточка сотрудника компании),
технические. правда, должность была изменена: из

558
Защита информации

мелкого временного работника шпи- тов, но и добавил его в список рассыл-


он превратился в сотрудника инфор- ки протоколов.
мационной безопасности. Подобные беседы с другими веду-
Только поступление на времен- щими сотрудниками компании допол-
ную работу обошлось без маскарада, нили информацию. Маскарад поисти-
но тем не менее бланки временного не приносит богатый урожай, однако
служащего заполнялись ложной ин- не стоит забывать и про случайность.
формацией: поддельные номер со- Среди полученной конфиденциаль-
циального страхования, адрес и те- ной информации значился секретный
лефон. документ с указанием директории и
У каждого шпиона свой стиль. Но пароля для доступа. Рядом с секретным
удачно выбранная должность позво- документом стоимостью больше мил-
ляет творить чудеса. Винклер приду- лиарда долларов в том же каталоге на-
мал легенду о защите информации ходились и другие, описывающие ещё
компании. Исследователю, работав- две важные разработки компании. Ес-
шему над важнейшим проектом, он тественно, документы были тут же ско-
сказал, что недавно принят в штат и пированы.
что ему поручено выяснить, какая
часть проекта наиболее нуждается в
защите и где хранится соответству- ПРЕВЫШЕНИЕ
ющая информация. Тот посоветовал
обратиться к руководителю проекта.
ПРАВ ДОСТУПА
Айрэ Винклер так и сделал. Встретив-
шись с руководителем проекта и вру- Как правило, в офисе компании ис-
чив ему визитную карточку, он по- пользуется более слабая защита ком-
просил объяснить, какая информация пьютеров, чем от взлома извне. Напри-
является критичной и кто имеет к ней мер, дистанционно нельзя проникнуть
доступ. Ему ответили, что важнейшая в конфиденциальную сеть компании,
информация — сведения об изготов- так как она просто может быть не под-
лении продуктов компании, и пока- соединена к внешним каналам связи.
зали основной источник этих сведе- Однако внутри компании шпиону
ний — копии протоколов заседаний удастся взломать компьютер сотруд-
проектной группы и перечень сотруд- ника, если он подберёт пароль. Часто
ников, получающих эти протоколы. работники компании не утруждают
Руководитель проекта не только сде- себя придумыванием более или менее
лал для шпиона копии всех докумен- сложных паролей, в основном они

559
Передача информации

ну использовать собственный ноут-


бук, заранее подготовленный для ха-
керства. В Интернете чрезвычайно
много хакерских инструментов, по-
могающих «взламывать» системы, ис-
пользуя бреши, выявленные сканером
(хакерская программа). Шпиону до-
статочно в своём кабинете отключить
офисный компьютер от сети Ethernet
и подсоединить ноутбук.
Сканер напускают на компьюте-
ры компании, и если обновление
средств защиты хоть немного отста-
ёт от выявленных «дыр» в системе, о
которых открыто сообщается в Ин-
тернете, то судьба таких машин пред-
решена. Иногда шпиону даже удаёт-
ся получить права суперпользователя.
Кадр из фильма используют имена собственные: Barbie, В любом случае брешь позволит ско-
«Крепкий орешек». Ken, Starwars и т. п. пировать на хакерский ноутбук сек-
Имея пароль, легко получить до- ретную информацию со взломанных
ступ к конфиденциальной и даже се- машин. Затем наступает пора подбо-
кретной информации, хранящейся в ра паролей.
машине высокопоставленного сотруд-
ника.
При шпионаже важна любая ме- ВНУТРЕННЯЯ
лочь . Отсутствие замка на двери од-
ного из ведущих сотрудников или
КООРДИНАЦИЯ ДЕЙСТВИЙ
разбросанные по столу дискеты с над- ВНЕШНИХ СООБЩНИКОВ
писью: «Отчёты компании» — дают
почву для создания примитивного пла- Если у шпиона есть внешняя поддерж-
на хищения. ка, то соответствующая команда спо-
Шпион работает как уборщик, собна взломать внешнюю сеть ком-
ищет незапертые кабинеты, шкафы и пании. Для этого требуются входное
ящики. Его интересуют мусорные кор- имя, пароль и номер телефона для мо-
зины (там могут быть записки с си- демного доступа. Обычно сотрудни-
стемными паролями), компьютеры, ки компании имеют такой доступ. Эту
на которых не выполнена процедура информацию можно передать, на-
завершения сеанса (иногда просто вы- пример, по телефону или даже по-
ключают монитор, оставляя включён- слать с курьером.
ным системный блок). Если шпион вдобавок обладает
Винклеру повезло. Оставленный списком входных имён и паролей со-
компьютер с сохранёнными элек- трудников компании, то сообщники
тронными письмами позволил ско- могут проникнуть практически во все
пировать основной график разрабо- компьютерные системы компании.
ток — один из самых секретных Средства удалённого доступа, спро-
документов компании. ектированные для защиты от несанк-
ционированного доступа, не смогут
остановить авторизованных пользо-
ХАКЕРСТВО ШТАТНОГО вателей.
Для того чтобы не выдать себя,
СОТРУДНИКА шпион не покидает компанию. По-
этому действия хакеров-сообщников
При современном уровне развития бросают тень на честных сотрудни-
вычислительной техники перенос- ков компании.
ные компьютеры стали действитель- Айрэ Винклер за три дня добыл
но миниатюрны. Это позволяет шпио- более 300 Мбайт секретных данных.

560
Защита информации

У него в руках оказалась детальная ин- шире. Можно, например, установить


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

ХАКЕРЫ

«Теперь это наш мир! Мир электрони- ный компьютерами, нестандартно


ки и коммуникаций, мир красоты ско- мыслящий, ведущий замкнутый образ
рости передачи данных. Для нас не су- жизни, малообщительный (практиче- Британское Минис-
ществует национальности, цвета кожи ски нет друзей), окружающие счита- терство гражданской
и религиозных предрассудков. Вы раз- ют его тихоней. Он хорошо знает ма- авиации указало на
вязываете войны, убиваете, лжёте и пы- тематику и физику, редко занимается ряд случаев, когда
таетесь запудрить нам мозги, говоря, спортом, и вся жизнь его — это Ком- радиохакеры внедря-
что всё это для нашего блага, а в итоге пьютер, в школе, в университете, на лись в систему кон-
преступники — это мы! Да, я преступ- работе и дома. троля за полётами и
ник! Меня толкает на преступление моя Кинематограф подарил нам, по давали неправиль-
любознательность. Я — ХАКЕР, и это крайней мере, два замечательных ные инструкции. Ко-
мой манифест! Вы можете поймать ме- фильма о хакерах — «Военные игры» личество таких про-
ня, но всех НАС вам не переловить» (из (War Games) режиссёра Джона Бэдэма исшествий растёт:
«Манифеста хакера»). (John Badham) и «Хакеры» (Hackers) в 1988 г. — 3,
Кто же такие хакеры? Это слово режиссёра Айэйна Софтли (Iain Softley). в 1999 г. — 18,
прочно вошло в обиход всего за деся- В первом фильме американский в 2000 г. — 20.
ток лет. школьник, играющий на персональ-
Словарь даёт следующее толкова- ном компьютере в видеоигру «Всеоб-
ние английского глагола to hack: щая ядерная война», неожиданно под-
• рубить, разрубать, кромсать, раз- ключается к компьютерной системе
бивать на куски; Пентагона (военное ведомство США).
• тесать, обтёсывать, делать зарубку, Война на экране чуть не обратилась в
зазубривать; реальность...
• использовать на нудной, тяжелой
работе;
• использовать в качестве литера-
турного подёнщика.
Хакерами называют людей, вирту-
озно владеющих компьютерными тех-
нологиями, программистов-профес-
сионалов, специалистов по взлому
компьютерных сетей и операцион-
ных систем. Вообще, в этом слове за-
ложена идеология целого поколения,
его стиль жизни и философия.
Вот типичный портрет хакера. Это
молодой человек от 15 до 35 лет, Кадр из фильма
всерьёз, до сумасшествия, увлечён- «Хакеры».

561
Передача информации

уязвима с точки зрения безопасности


и стабильности работы. Первыми та-
кие ошибки и недоработки в програм-
мах обычно находят хакеры и, как
правило, сообщают о найденных не-
поладках производителям.
То же самое относится к web-сай-
там. Сотни сайтов в Интернете еже-
дневно исследуются хакерами с це-
лью выявления брешей в защите.
В шутку говорят, что хакер — это
человек, умеющий нажимать нужные
клавиши в определённом порядке.
Поэтому иногда хакеров путают с
В «Хакерах» действие происходит обычными студентами, которые, вос-
в Нью-Йорке. Родители двенадцати- пользовавшись программами для
летнего компьютерного гения ошт- взлома (их полным-полно в Интер-
рафованы на крупную сумму, а сам он нете), проникают на сайты универ-
осуждён на семь лет условно, т. е. без ситетов, благотворительных органи-
заключения в тюрьму, за заброску ви- заций, школ и портят их себе на
русов в полторы тысячи локальных потеху. Такие сайты наиболее уязви-
компьютерных сетей и панику на мы в плане безопасности, поскольку
бирже Уолл-стрит. Ему запрещено не содержат секретных материалов
пользоваться компьютером и теле- и поддерживаются бесплатно. К со-
фоном до 18 лет. В новой школе он жалению, такие хулиганские взломы
знакомится с компанией таких же ха- чрезвычайно часты в Интернете. Но
керов. Один из них случайно прони- подобный вандализм имеет мало об-
кает в сеть крупнейшей корпорации щего с хакерством, хотя компьютер-
и переписывает файлы, разоблача- ные хулиганы гордо именуют себя
ющие главу службы компьютерной таковыми. Если взять ружьё и начать
безопасности, который использовал для интереса стрелять по прохожим,
вирус-«червь» для кражи миллионов то всё равно не станешь суперменом.
долларов. Вор, узнав об этом, решил Вообще, хакерская деятельность с
обвинить в грабеже хакеров, но все точки зрения закона трактуется не
хакеры мира объединились с помо- всегда однозначно. С одной стороны,
щью Интернета и начали войну с ци- в международном законодательстве
ничным злодеем... существуют статьи, которые предус-
В реальной жизни хакеры часто ра- матривают не самый маленький срок
ботают программистами или специ- тюремного заключения за незакон-
алистами по компьютерной технике ное проникновение в компьютерные
в больших и маленьких фирмах. Нет системы и базы данных. Конечно, ха-
такой профессии — хакер. Скорее это кер, получивший доступ к конфиден-
состояние души и образ мысли. В дет- циальной информации без ведома
стве многие ломают игрушки для то-
го, чтобы понять, что находится у них
внутри. Но дети вырастают, и вместо
игрушек у некоторых из них в руках
оказываются компьютер и новейшая
операционная система. Любопытст-
во толкает их разобрать «по винти-
кам» программу и сам компьютер, изу-
чать и что-то улучшать. И порой из
этого выходит что-нибудь по-насто-
ящему полезное.
Современные операционные си-
стемы весьма сложны и громоздки,
а чем сложнее система, тем более она

562
Защита информации

«НЕЗАПЕРТЫЕ ДВЕРИ»

Хакерами пугают многих, но порой воровство возможно


не благодаря суперинтеллекту молодых программистов,
а просто из-за «незапертых дверей».
В конце 1999 г. 19-летний русский хакер проник на
web-сайт CD Universe, Интернет-магазина, специализи-
рующегося на продаже музыкальных дисков, и завладел
сведениями о 300 тыс. кредитных карточек покупателей
этой компании. Он потребовал 100 тыс. долларов, но, по-
лучив отказ, начал публиковать на своём сайте информа-
цию о 25 тыс. кредиток. Правда, эту электронную стра-
ницу закрыли, и всё же некоторыми данными успели
воспользоваться посторонние люди.
В 2000 г. ФБР арестовало 18-летнего Рафаэля Грея, ко- В России хакеры ухитрились попасть в компьютерные
торый взломал девять Интернет-магазинов и похитил ин- системы, принадлежащие Газпрому — российской газо-
формацию о 26 тыс. кредитных карт в США, Канаде, Таи- вой монополии. Согласно данным Министерства внутрен-
ланде, Японии и Британии. (Кстати, одна из кредиток них дел России, им удалось взять под контроль систему
принадлежала Биллу Гейтсу, «королю» Microsoft.) Своим по- потока газа в трубопроводах.
ступком он хотел показать, насколько не защищены сайты.

властей или владельцев, является пре- наверное, нельзя обвинять хакера в


ступником. Но, с другой стороны, ес- преступлении.
ли эта информация просто лежит «на Конечно, как в реальной жизни су- В Германии однажды
поверхности» и каждый, кто хоть не- ществуют преступники, так и в ком- был пойман хакер, ра-
много знаком с устройством опера- пьютерном мире имеются свои нару- ботавший в банке. Он
ционной системы и web-сервера, шители законов. Объектами их атак написал программу,
может с лёгкостью получить к ней до- становятся банки различного масшта- которая переводила
ступ, то можно ли судить человека ба, биржи, Интернет-магазины. А по- на его денежный счёт
за это? Или такой пример: после про- скольку закон един для всех и нару- доли пфеннигов (мел-
ведения взлома хакер оповещает о шать его нельзя даже гениям, любое кая монета немецкой
существующей «дыре» в защите про- противозаконное деяние хакеров бу- валюты, имевшая хож-
граммы владельцев, тем самым фак- дет раскрыто, а виновный — наказан. дение до введения
тически «закрывая» её. В этом случае, По крайней мере, хочется в это верить. евро), остававшиеся
после начисления про-
центов вкладчикам.
За год на его счету
КОМПЬЮТЕРНЫЕ ПРЕСТУПЛЕНИЯ скопилась довольно
крупная сумма.

Убытки от компьютерных ошибок и Сообщения об информационных


преступлений огромны. преступлениях отрывочны. Пожалуй,
По данным Американского нацио- никто в мире не имеет сегодня полной
нального центра информации по ком- картины нарушений безопасности ин-
пьютерной преступности, только за формации. Всего (по самым скром-
один год она нанесла американским ным подсчётам) ежегодные потери от
фирмам убытки в размере 500 млн компьютерной преступности в Евро-
долларов. В Германии компьютерная пе и Америке составляют несколько де-
мафия похищает за год около 2 млрд сятков миллиардов долларов. Понятно,
евро. В конце XX в. во Франции ана- что пострадавшие государственные и
логичные потери достигли 1 млрд коммерческие структуры не очень
франков в год. Количество подобных склонны афишировать «эффектив-
преступлений ежегодно увеличивает- ность» своих систем защиты и послед-
ся на 30—40%. ствия, причинённые нападениями.

563
Передача информации

Поэтому случаи преступлений стано- Способны ли развитые страны ока-


вятся достоянием гласности далеко не зать отпор этому бичу XXI в.?
всегда. Но и те факты, которые извест- Администрация президента США
ны, производят сильное впечатление. в 2000 г. предложила национальный
И не зря Подкомитет ООН по преступ- план по борьбе с киберпреступлени-
ности ставит эту проблему в один ряд ями. Был создан новый Институт по
с терроризмом и наркотиками. защите информационных инфра-

ПРЕДНАМЕРЕННОЕ ВРЕДИТЕЛЬСТВО

Компьютерные преступления наносят подчас непо-


правимый вред компаниям и государственным струк-
турам. Уволенные или озлобленные системные адми-
нистраторы и программисты бывают опаснее, чем
профессиональные шпионы конкурентов.
35-летний компьютерный оператор лишил свое-
го работодателя полумиллиона фунтов стерлингов.
Не будучи удовлетворён условиями работы и разме-
рами вознаграждения, он просто отсоединил несколь-
ко кабелей от центрального сервера компании. По-
сле отключения кабелей компьютерная система стала
периодически давать сбои, и только вызванный ква-
лифицированный специалист смог обнаружить ди-
версию. Адвокат обвиняемого пытался доказать, что
его подзащитный сошёл с ума от работы, однако су-
дья приговорил вредителя к тюремному заключению.
В результате злонамеренных действий служащих
одной компании, вероятно тоже недовольных на- Европейский союз в 2000 г. выдвинул обвинения
чальством, на открытый сайт в Интернете попала против компании Microsoft, обвинив её в том, что опе-
конфиденциальная информация о счетах дилеров рационные системы серии Windows 2000 построены
компании, включая номера банковских счетов и кре- таким образом, что могут устойчиво работать исклю-
дитных карточек. Сведения были закрыты лишь спу- чительно с продукцией Microsoft. Это, естественно,
стя несколько часов. Кто знает, сколько преступни- не только ущемляет интересы других компаний
ков успели воспользоваться этой информацией. (Microsoft на европейском рынке получает до четвер-
Нередко так ведут себя не только люди, но и це- ти своих ежегодных доходов), но и наносит ущерб ко-
лые компании. Подобные действия могут являться нечным пользователям, заставляя их приобретать лишь
основой нечистоплотной борьбы с конкурентами. продукты названной компании.

564
Защита информации

ПРОМЫШЛЕННЫЙ ШПИОНАЖ

В XXI столетии Европейский парламент снова обратил вни-


мание на американский спутник ECHELON, управляемый
спецслужбами США, Великобритании, Австралии, Кана-
ды и Новой Зеландии. Спутник способен перехватывать
сигналы телефона, факса, электронной почты по всему ми-
ру и предназначен для борьбы с терроризмом и другими
опасностями, угрожающими США и союзникам. Однако
существует подозрение, что спутник используется также
и для коммерческого шпионажа против бизнеса единой
Европы в пользу США. Европейский парламент намерен
выяснить, насколько это соответствует истине.
Ещё пример. Подразделение компании Johnson &
Johnson, производящее продукты для диабетиков, было
обвинено в поощрении промышленного шпионажа. Clouseau» и «Columbo» сотрудникам, добывшим наиболь-
Основанием послужило присуждение премий «Inspector шее количество сведений о конкурентах.

структур, а финансирование научных информации криминального или тер-


исследований в этой области превы- рористического содержания. Эта си-
сило 600 млн долларов. В том же году стема позволила выявить и раскрыть В борьбе с компью-
ФБР увеличило штат на 150 специа- около сотни преступлений. терными преступле-
листов по компьютерам и юристов Правительство Великобритании ниями Европейская
для предотвращения преступлений в заявило, что Национальная служба комиссия предлагает
Интернете. В свою очередь конгресс по криминальным преступлениям привлекать Интер-
выделил ФБР 38 млн долларов на эти должна создать специальную коман- пол, ведь компьютер-
расходы. ду для борьбы с Интернет-преступ- ная преступность не
ФБР использует современную си- лениями, такими, как обман, отмыва- имеет ни националь-
стему автоматизированного просмо- ние денег, нелегальные азартные ности, ни границ.
тра электронной почты на наличие игры, порнография.

ПИРАТЫ

Как известно, программное обеспече- тически — это поддержка произво-


ние можно приобрести двумя путями. дителя программ, во втором — до-
Способ первый — купить лицензи- ступность.
онную версию у представителя ком- Можно долго рассуждать о досто-
пании-производителя и пользовать- инствах легальных копий программ,
ся всеми возможностями такого но и здесь имеются некоторые нюан-
приобретения: поддержкой, обнов- сы, на которые стоит обратить вни-
лениями. Кроме того, сознание, что мание.
он обладает легальной копией про- Посмотрим на всё с точки зрения
граммы, даёт пользователю уверен- конкретного потребителя.
ность в качестве продукта. Некто привёз домой вожделенную
Способ второй — поехать на бли- «коробочку», в которой хранятся один
жайший рынок, где торгуют дисками или несколько дисков с программой,
с программами, и купить их в любом инструкции, реклама других программ
количестве по цене порядка двух и т. д. Он убеждён, что при покупке
долларов за диск. продавец даёт гарантию работоспо-
Каждый из способов имеет свои собности продукта, особенно если он
достоинства. В первом случае теоре- дорогой. Остаётся только вставить

565
Передача информации

питания. Или корпус. Или коврик для


мыши явно не того оттенка. Как стран-
но, а продавец не предупредил, да и
на коробочке ничего такого не напи-
сано... А коробочка вскрыта, вернуть
не получится. Можно, конечно, пооб-
щаться с представителями фирмы, но
надежды, что это поможет, почти нет,
так как личные проблемы пользова-
теля никого не интересуют.
• «Ждите новой версии нашей за-
мечательной программы». Сколько
ждать? И сколько платить за обновле-
ние? Где гарантии того, что новая вер-
сия их замечательной программы за-
работает как надо?
Главное «оружие» легальных ко-
пий — их поддержка производителем
(по крайней мере, эти самые произ-
водители хотят, чтобы все так дума-
ли). Но порой российские реалии не
Выдержка из диск в компьютер и запустить про- дают ею воспользоваться, потому что:
лицензии ПО фирмы грамму установки... • её просто нет, так как фирма-
Microsoft
(фотография Первое, что покупатель увидит, — представитель только продаёт товар,
с экрана). это так называемое лицензионное а поддержкой занимается какое-ни-
соглашение, в котором сказано, что будь европейское бюро где-нибудь в
программа распространяется по прин- далёком Дублине;
ципу As is — «как есть», со всеми ошиб- • поддержка платная. Точнее, сна-
ками и недоработками. То есть если в чала она, конечно, бесплатная, а вот
результате работы программы у поль- потом может быть всё что угодно. То
зователя что-то сломается или пропа- есть первые два звонка в службу
дут данные на компьютере, то попыт- поддержки будут бесплатными, а за
ка возместить ущерб через суд или остальные — кругленькая сумма.
иным способом вряд ли приведёт к ка- Получается, что разрекламирован-
ким-либо результатам. Отлично! Так ная поддержка программного обес-
за что же заплачена немалая сумма? печения — порой лишь миф и трюк
Допустим, у пользователя останет- для привлечения покупателя.
ся сознание того, что руку помощи Утверждается, что легальные по-
протянет служба поддержки. купки программ поддерживают инду-
Но вот программа установлена, и стрию программного обеспечения.
тут обнаруживается: что-то идёт не Так ли это?
так. Самое время обратиться в службу Представим себе ситуацию, что
поддержки... А там отвечают (можно пиратов, взломщиков программ, рас-
просто выбрать один из вариантов): пространителей нелегальных копий
• «Установите Service Pack (заплат- просто нет. Замечательно! А теперь
ку)». Хорошо, что есть соединение с предположим, что покупатель смог
Интернетом, пусть даже по телефону. «наскрести» 500 долларов на компью-
Конечно, три часа на скачивание этой тер, а вот на программы денег не оста-
«заплатки» — просто ничто, хотя ро- лось. Точнее, остались, конечно, но
дители, сестра, жена (нужное подчерк- те программы, которые нужны для то-
нуть) будут слегка недовольны тем, го, чтобы пользоваться компьютером,
что телефон занят продолжительное а не вести «войну» с настройками всю
время. Плюс ещё два часа в случае пло- оставшуюся жизнь, стоят значитель-
хой связи. Плюс ещё три, если файл но дороже.
«приехал» с ошибкой. И так далее. Компьютер желают иметь многие,
• «Ваше "железо" несовместимо с и вся ситуация говорит о том, что если
нашей программой». Например, блок бы не было бесплатных пиратских ко-

566
Защита информации

пий, то тот информационный ажио-


таж, который переживают Россия и
другие страны с тяжёлым прошлым и
не менее сложным настоящим, мог бы
и не состояться. События, вероятно,
развивались бы совсем по-другому.
Компьютер не стал бы частью жизни
обычного современного человека, а
оставался уделом специалистов. И ко-
нечно, все продавцы легального про-
граммного обеспечения продавали бы
что-нибудь другое. Например, пылесо-
сы или сантехнику.
Как ни странно, Россия занимает не
первое место по количеству пиратских
копий программ. Лидером в этом от-
ношении является Китай (70 % рынка).
Получается замкнутый круг. Потен-
циальный покупатель фирменного
продукта на начальном этапе чаще все-
го пользуется программой благодаря
пиратам, благо крупные фирмы не
препятствуют этому, а производитель
несёт убытки тоже благодаря пиратам. ность — это целый мир. Мир со свои-
Решение этой проблемы — в созда- ми законами и правилами. Он живёт
нии благоприятных условий для про- собственной жизнью, его обитатели
даж легальных копий. Так, если бы рождаются и умирают, сталкиваются
лицензионная программа стоила не с действительностью и продолжают
200 долларов, а, например, 2, то пира- заниматься привычным ремеслом.
там, возможно, невыгодно было бы Россия в этом смысле не исключе-
продавать всё это из-под полы. Сейчас ние. Здесь компьютерное пиратство
функции удешевления программ вы- приобрело совершенно особые фор-
полняют как раз пираты, а крупные мы, хотя бы потому, что в торговлю
фирмы пока что находятся в раздумь- нелегальным программным обеспе-
ях о том, как с этими пиратами бороть- чением вовлечены гигантские силы,
ся, вместо того чтобы самим создать и, что печально, деятельность эта
информационный ажиотаж, снизив
цены на программное обеспечение.
Вопрос о компьютерном пират-
стве поднимается в средствах мас-
совой информации уже давно —
примерно с того времени, когда ком-
пьютер появился в домах, а носите-
ли данных стали достаточно дешё-
выми, т. е. с начала 80-х гг. Тема эта
затрагивается во множестве изданий,
начиная от детского «Хакера» (новое
воплощение «Мурзилки» и «Весёлых
картинок» для поколения MTV) и
заканчивая изданием для интеллек-
туальной элиты — журналом «Ком-
пьютерра». В каких-то публикациях
пираты выглядят бравыми молод-
цами из кино про хакеров, а в каких-
то — воплощением вселенского зла.
Но ведь они в первую очередь люди,
такие же, как мы. Пиратская деятель-

567
Передача информации

платить порой немалые деньги? Бла-


годетелями в этом случае являются пи-
ПИРАТСКИЙ СЛОВАРЬ ратские группы, или группировки, как
их называют непримиримые против-
Warez. Происходит от слова software. То самое, вокруг чего и ники пиратов.
идёт вся пиратская «жизнь». Так называют любое коммерче- Группа — это некое неформаль-
ское, закрытое, недоступное программное обеспечение, кото- ное сообщество людей, как правило
рое было получено нелегальными способами и позднее взло- молодых и талантливых. Кто же туда
мано, изменено или дополнено каким-то образом. входит?
Scene. Сцена. Это волшебное слово для всех людей, так или Organiser (пишется именно так,
иначе связанных с компьютерным андеграундом. Существует а не Organizer). Человек, с которого на-
warez-сцена, cracking-сцена, demo-сцена и т. д. Сцену можно чинается группа. Он находит осталь-
охарактеризовать как некую взаимосвязь событий, людей, ком- ных, формирует цели и задачи груп-
пьютеров и программ. Это и конкретное место, где происхо- пы. Некое подобие менеджера или
дит подобное взаимодействие, и вся та деятельность, в кото- начальника. Можно сказать, отец род-
рую вовлечены люди этого круга. В общем, сцена — это сцена. ной для членов группы, так как без не-
Crack. Программа, производящая изменения в другой про- го «в товарищах согласья нет» и рабо-
грамме с целью получения нужного эффекта. та не движется.
Key, Keygen. Ключ. Это уникальная последовательность сим- Cracker. Наверное, второй по важ-
волов, позволяющая использовать некое программное обес- ности человек в группе. Он владеет
печение в полном объёме или просто использовать. Keygen — технологиями reverse engineering (до-
это программа для генерации ключей. Очень удобная вещь. словный перевод — «обратное про-
NFO. Файл с описанием продукта группы, составленный по ектирование») и может изменять и
определённым правилам. снимать защиту в коммерческих про-
Release. Релиз. Конечный продукт работы группы. Программ- граммах.
ное обеспечение, ранее закрытое, а теперь всем доступное. Supplier. Член группы, который
обеспечивает её материалом — све-
жими версиями программ, у которых
можно снять защиту, новыми играми
и т. д. Supplier может работать продав-
цом программного обеспечения или
иметь контакты с производителями
либо тестерами программ.
Courier. Курьер. Рабочая лошадка.
Один из тех, кто отвечает за имидж
группы на сцене. Он несёт ответствен-
ность за своевременное появление ре-
лиза на серверах для дальнейшего рас-
пространения.
Trader. Тот, кто ведёт обмен све-
жим «софтом» с другими группами
или частными лицами.
Людей, которые осуществляют од-
ни и те же функции, может быть не-
сколько; в то же время и один человек
может исполнять несколько обязанно-
стей. Всё зависит от размера группы.
подпадает под влияние криминальных Взаимоотношения в группе, как
структур всевозможных уровней. Пе- правило, неформальные. Случается,
чально потому, что люди, связанные с что участники группы даже не знают
компьютерным андеграундом, — это друг друга лично, а общаются исклю-
целое сообщество со своей культурой чительно по электронной почте или
и идеологией. IRC (Internet Relay Chat). Очень часто
Как же появляются взломанные группа имеет свой собственный IRC-
программы и программы с бесплат- канал. Такой способ общения ни-
ными ключами, за которые при нор- сколько не ухудшает общей продук-
мальном положении вещей нужно тивности работы.

568
Защита информации

Как рождается релиз? Организатор


выбирает направление деятельности
(релиз игр, мультимедиа-программ
или, например, офисных приложе-
ний). Так, группа CLASS специализи-
руется исключительно на игрушках,
а RADIUM — на музыкальных програм-
мах. Supplier добывает свежую версию
программы, cracker снимает защиту.
Далее программа тестируется, упако-
вывается по неким правилам, в част-
ности, необходимо, чтобы некоторые
фрагменты были заархивированы для
удобства загрузки из Интернета. Обя-
зательно пишется NFO-файл. В нём по-
рой присутствует логотип группы, вы-
полненный в жанре ASCII Art (новый
вид искусства, возникший в результа-
те популяризации компьютера, — ри-
сование на экране ЭВМ с помощью
символов, предназначенных для вы-
вода текста), а также имеются краткое
описание продукта, псевдонимы со-
здателей релиза, инструкция по уста- ценность. Более того, действительно
новке, информация о группе и какие- хорошая работа будет отмечена та-
нибудь новости. Очень часто релиз кой строчкой в NFO: If you like this pro-
сопровождается небольшим роликом, gramm, buy it! — «Если тебе нравится
выполненным в жанре demo — эф- эта программа, купи её!». В истории
фекты и музыка в реальном времени компьютерного пиратства даже был
плюс некие сведения о группе, приве- беспрецедентный случай, когда груп-
ты и название релиза. После этого па LAXITY отказалась от взлома но-
трейдеры и курьеры распространяют вых версий Bleem! (эмулятор Sony
релиз на серверах для общего доступа. PlayStation), так как посчитала про-
Стоп! А где же выгода? Коммерче- грамму слишком хорошей, чтобы ли-
ской прибыли здесь нет. Что же полу- шать автора возможности получения
чает команда? Наверное, в первую оче- гонораров за неё. Это говорит само
редь моральное удовлетворение. Имя за себя. Лучшие должны получать при-
на сцене, почёт. Снятие особо слож- быль. Аутсайдеры — думать, как стать
ной защиты (точнее, её корректное лучше.
снятие) даёт много очков группе. Это Почему пираты порой обращают-
означает, что релизы группы будут ся к пользователям с воззванием ку-
чрезвычайно популярны и она полу- пить оригинал программы? Во-пер-
чит хорошую репутацию. вых, считают, что автор заслуживает
Какие программы являются пред- поддержки. А во-вторых, понимают,
метом внимания для групп? Популяр- что если автор не получит причита-
ные. Именно популярные. Те, которые ющихся ему денег, то, возможно, пол-
представляют хоть какую-то ценность, ностью прекратит работу над новы-
выражаемую не в деньгах, а в пригод- ми версиями. И что самое странное,
ности для работы. всё это — и пиратство, и благородст-
Оценка, данная пиратами тому или во — сосуществует и работает.
иному продукту, дорогого стоит. Пи- Чем западные пираты отличаются
раты, как правило, являются профес- от российских? Наверное, мотивами.
сионалами в области компьютерных У первых сильны традиции — они ло-
технологий, и их мнение — одно из мают ради самого процесса; уровень
самых авторитетных. Если програм- жизни на Западе выше, и пользователь
ма попала в руки пиратов, это озна- может позволить себе платить за нуж-
чает, что она уже представляет некую ное ему программное обеспечение.

569
Передача информации

Российская сцена, точнее, её тради-


ции молоды, и ломка осуществляется
именно с целью последующего бес-
платного использования. Но резуль-
таты те же — рост надёжности защи-
ты ПО, бесплатная реклама хороших
программ, выработка вкуса у массо-
вого пользователя.
Не надо смотреть на пиратство как
на абсолютное зло. У медали две сто-
роны. Крупным фирмам стоит реально
оценивать российский рынок. Напри-
мер, издатели игр уже делают это, про-
давая специальные, удешевлённые вер-
сии игр в России. Будем надеяться, что
другие производители возьмут с них
пример и повернутся лицом к конеч-
ным пользователям, а не к каким-то
«крупным клиентам», фигурирующим
в отчётах менеджеров по продажам.

Выдержка из прайс-
листа ПО фирмы
Microsoft
(фотография ШИФРОВАНИЕ ИНФОРМАЦИИ
с экрана).

Поиски надёжных способов секрет- Цезарь (102 или 100—44 до н. э.) ис-
ной передачи и хранения информа- пользовал его для тайной переписки.
ции корнями уходят далеко в прош- В шифре Цезаря каждая буква исход-
лое. Шифрование текстов — одна из ного сообщения сдвигается в алфа-
самых любимых игр в истории чело- вите на фиксированное число пози-
вечества. Шифры использовались в ций вперёд, при необходимости
военных целях, для передачи секрет- переходя циклически на начало ал-
ных сообщений между друзьями, для фавита. Сам Цезарь использовал сдвиг
хранения тайного знания и в сотнях на три позиции. В этом случае сооб-
других случаев. щение
Первые зашифрованные сооб-
щения использовались ещё в Древнем ВОЗВРАЩАЙТЕСЬ В РИМ
Египте. Способ шифрования был
очень прост, сейчас он называется ши- шифруется так:
фрование простой подстановкой.
Каждый иероглиф исходного сооб- ЕСКЕУГЬГМХИФЯ Е УЛП
щения заменялся на другой иероглиф
в зашифрованном сообщении. Соот- Здесь буква В шифруется буквой Е,
ветствие иероглифов было взаимно отстоящей от буквы В на три позиции,
однозначно, и, чтобы прочитать за- буква О — буквой С и так далее (счита-
шифрованное сообщение, требова- ется, что буквы Ё в алфавите нет). По-
лось выполнить обратную замену. следняя буква алфавита Я шифрова-
лась бы при этом методе как В . Для
расшифровки сообщения нужно сде-
ШИФР ЦЕЗАРЯ лать сдвиг на три позиции назад.
Шифр Цезаря определяется вели-
Примером наиболее простого шиф- чиной сдвига. Поскольку число раз-
ра, относящегося к группе шифров личных сдвигов на единицу меньше,
простой подстановки, является шифр чем число букв алфавита, разгадыва-
Цезаря. По свидетельству древнерим- ние шифра Цезаря не представляет
Гай Юлий Цезарь. ского историка Светония, Гай Юлий особого труда. Достаточно перебрать

570
Защита информации

всевозможные величины сдвига — от ответствующие буквы во всём тексте


1 до 31 в случае русского алфавита. и быстро приближает к разгадке все-
Сообщение будет расшифровано, как го шифра. Шерлок Холмс владел и до-
только получится осмысленный текст. полнительной информацией, облег-
чившей задачу разгадывания шифра:
он знал, что послания предназначе-
ШИФРОВАНИЕ ПРОСТОЙ ны женщине по имени Илси, а пись-
ма в большинстве случаев начинают-
ПОДСТАНОВКОЙ ся с имени того, кому они адресованы.
Таким образом, он сразу стал облада-
Более сложным является метод про- телем трёх букв. Затем Шерлок Холмс Кадр из кинофильма
стой подстановки, при котором каж- угадал слово «приходи», и дальнейшее «Приключения
Шерлока Холмса
дая буква исходного сообщения ко- не составило особого труда. и доктора Ватсона».
дируется другим знаком, заданным
таблицей кодировки.
Верхняя строка таблицы содержит ЧАСТОТНЫЙ
все буквы алфавита. В нижней строке
таблицы можно произвести любую
АНАЛИЗ ТЕКСТА
перестановку букв алфавита; каждой
такой перестановке соответствует оп- Метод разгадывания шифра «пляшу-
ределённый шифр. щих человечков», применённый Шер-
Шифрование простой подстанов- локом Холмсом, не очень подходит
кой описано в рассказе Артура Конан для компьютера.
Дойла «Пляшущие человечки». Каждая Имеется другой эффективный ме-
буква сообщения изображалась опре- тод, основанный на знании вероятно-
делённой фигуркой пляшущего чело- сти, с которой каждая буква встреча-
вечка. «Цель изобретателя этой систе- ется в тексте. Он называется методом
мы заключалась, очевидно, в том, частотного анализа. Единственный
чтобы скрыть, что эти значки являют- недостаток этого метода — зашифро-
ся письменами, и выдать их за детские ванное сообщение должно быть до-
рисунки. Но всякий, кто сообразит, статочно длинным, чтобы его можно
что значки эти соответствуют буквам, было разгадать.
без особого труда разгадает их, если Проанализировав большой объём
воспользуется обычными правилами каких угодно текстов, можно для каж-
разгадывания шифров». Какие же пра- дой буквы алфавита подсчитать, с ка-
вила имел в виду Шерлок Холмс? кой примерно частотой встречается
Изобретатели шифра «пляшущих эта буква в любом тексте. Если учиты-
человечков» — чикагские бандиты вать пробелы между словами, то вы-
значительно облегчили задачу разга- ясняется, что пробел встречается ча-
дывания шифра, снабдив флагами че- ще всего с вероятностью примерно
ловечков, стоящих в начале и конце 0,167 (т. е. в тексте объёмом 1000 зна-
слов. Таким образом, сразу проясня- ков имеется в среднем 167 пробелов).
лось разбиение зашифрованного со- Наличие разделителей слов в зашиф-
общения на слова. А в любом языке рованном тексте намного облегчает
всегда очень немного однобуквенных его расшифровку, поэтому при шиф-
или двухбуквенных слов, и путём их ровании обычно исключают пробе-
перебора легко подобрать правиль- лы. Если не учитывать пробелы, то
ные буквы. Подставляя найденные бук- частотность букв русского алфавита
вы в другие слова, можно быстро от- примерно такова (приведённые дан-
бросить неправильные варианты. ные являются результатом анализа
Каждое угаданное слово проясняет со- нескольких художественных текстов

571
Передача информации

суммарным объёмом около 500 тыс. чён криптографией. Сюжет его рас-
символов): сказа «Золотой жук» выстроен вокруг
разгадывания секретного сообщения.
О 0,1163 А 0,0890 Е 0,0833 Н 0,0697 Эдгар По верил, что раскрытие шиф-
И 0,0599 Т 0,0585 Л 0,0532 С 0,0528 ров и других загадок требует всего
Р 0,0418 В 0,0402 К 0,0332 М 0,0311 лишь применения логики и интеллек-
Д 0,0302 П 0,0280 У 0,0279 Я 0,0218 та. В 1893 г. в журнале «Alexander’s
Ь 0,0203 Ы 0,0185 Г 0,0184 Б 0,0173 Weekly Messenger» он бросил вызов
З 0,0172 Ч 0,0143 Й 0,0121 Ж 0,0120 читателям, утверждая, что разгадает
Х 0,0097 Ш 0,0087 Ю 0,0044 Щ 0,0031 любую криптограмму, использующую
Э 0,0029 Ц 0,0029 Ф 0,0014 Ъ 0,0002 подстановочный шифр, которую те
пришлют ему.
Таким образом, в любом тексте на «Человеческая изобретательность
каждую тысячу букв приходится в сред- не в силах состряпать шифр, который
нем 116 букв О, 89 букв А, 83 буквы Е, человеческая изобретательность не в
70 букв Н и т. д. Самыми редкими бук- силах была бы разгадать». Эти слова
вами являются буква Ф и Ъ: на 10 000 принадлежат Эдгару По. Однако со-
букв в среднем приходится всего лишь временная криптография опровергла
14 букв Ф и всего 2 Ъ! (Однако если бы утверждение знаменитого писателя.
после Октябрьской революции не бы- Современные шифры, использующие
ла проведена реформа правописания, кодирование с открытым ключом (см.
то, скорее всего, Ъ был бы одной из на- статью «Современная криптография»),
иболее часто встречающихся букв.) невозможно взломать даже с помощью
Не менее важной характеристикой самых мощных компьютеров.
текста являются частоты, с которыми
в тексте присутствуют различные двух-
буквенные сочетания. Такие пары в ШИФР ВИЖЕНЕРА
криптографии называют биграммами
или диграммами (не путать с диаграм- Блезом де Виженером, придворным
мами; «ди» — от греч. «двойной»). Вот короля Франции Генриха III, в конце
список наиболее часто встречающих- XVI в. был предложен весьма изящ-
ся в русских текстах биграмм в поряд- ный метод шифрования. Иногда этот
ке убывания их вероятности: шифр называют также шифром с пе-
рекрытием текста. Для шифрова-
ТО НА НЕ ПО НО ЛА СТ ОН ния используются секретное слово
РА АЛ КО ГО КА ЛО НИ ОВ или фраза. Нужно писать это секрет-
ное слово над исходным текстом, по-
На статистических характеристи- вторяя его, пока не кончится сообще-
ках текста основан метод разгадыва- ние. Каждая буква исходного текста
ния любого шифра из группы под- заменяется на отстоящую от неё в ал-
становочных шифров. Подсчитав фавите на несколько позиций. Вели-
частоты всех букв и биграмм в заши- чина сдвига задаётся буквой ключе-
фрованном сообщении, можно пред- вого (секретного) слова, стоящей над
положить, что наиболее частая в нём данной буквой исходного текста. Для
буква обозначает одну из наиболее буквы А сдвиг вообще отсутствует, бук-
часто встречающихся букв алфавита. ва Б соответствует сдвигу на одну
Аналогично самая частая биграмма позицию вперёд, буква В — сдвигу
зашифрованного текста соответству- на две позиции и т. д. Последняя бук-
ет, скорее всего, одной из наиболее ва — Я соответствует сдвигу на 31 по-
часто встречающихся биграмм в не- зицию, поскольку в русском алфави-
зашифрованных текстах. Конечно, те 32 буквы. То есть размер сдвига
помощь компьютера в статистиче- определяется порядковым номером
ском анализе зашифрованного текс- буквы в алфавите, из которого вычте-
та неоценима, но в принципе все эти на единица.
подсчёты можно провести и без ЭВМ. В примере в качестве ключевого
Знаменитый американский писа- используется слово ХОЛМС. Пусть надо
Эдгар Аллан По. тель Эдгар Аллан По также был увле- зашифровать сообщение

572
Защита информации

ПРИХОДИ НЕМЕДЛЕННО лиза, как в случае обычных подстано-


вочных шифров. Таким образом, раз-
Для этого пишется ключевое слово над гадывание шифра Виженера сводит-
шифруемой фразой: ся на 90 % к нахождению длины
ключевой фразы. Конечно, этот ме-
ХОЛМСХО ЛМСХОЛМСХО тод применим, только если текст до-
ПРИХОДИ НЕМЕДЛЕННО статочно большой, а ключевая фраза
значительно короче его.
Теперь каждую букву сообщения на- Метод Касицкого основывается
до сдвинуть вперёд по алфавиту в со- на определении расстояний между
ответствии с буквой ключевого сло- повторяющимися биграммами в за-
ва, стоящей над ней. Например, буква шифрованном тексте. В случае ког-
Х является двадцать второй буквой ал- да в исходном тексте одна и та же
фавита и задаёт сдвиг на двадцать од- биграмма повторяется на расстоянии, Блез де Виженер.
ну позицию вперёд. Вместо буквы П кратном длине ключевой фразы, она
исходного текста получится буква Д встретится на тех же позициях и в
зашифрованного сообщения. Вторая зашифрованном тексте. Подсчитав
буква — Р исходного сообщения сдви- расстояние между повторяющимися
гается в соответствии с буквой О клю- биграммами и найдя все делители
чевого слова на 14 позиций вперёд и этого числа, можно получить набор
заменяется на букву Ю . И так далее: чисел — кандидатов на длину ключе-
вой фразы.
ДЮУБЯЩЦ ШСЭЪТЦСЮВЬ Пусть надо зашифровать четверо-
стишие, используя ключевое слово
БАРТО:
РАЗГАДКА
Наша Таня громко плачет:
ШИФРА ВИЖЕНЕРА Уронила в речку мячик.
Таня, Танечка, не плачь,
На протяжении почти 300 лет шифр Не утонет в речке мяч!
Виженера считался практически не
взламываемым. Впервые метод раз- Для начала надо переписать сти-
гадки шифра Виженера предложил в хотворение, удалив пробелы, знаки
1863 г. майор прусской армии Фрид- препинания и построчное членение
рих Касицкий. Его метод был осно- и разбив полученную последователь-
ван на определении длины ключево- ность букв на пятёрки для удобства
го слова. Если нам известна длина подсчёта позиций:
ключевого слова, то можно разбить
текст на несколько фрагментов, для НАШАТ АНЯГР ОМКОП ЛАЧЕТ УРОНИ
каждого из которых применяется ЛАВРЕ ЧКУМЯ ЧИКТА НЯТАН ЕЧКАН
шифр Цезаря. В примере длина клю- ЕПЛАЧ ЬНЕУТ ОНЕТВ РЕЧКЕ МЯЧ
чевого слова ХОЛМС равна пяти. Это оз-
начает, что первая, шестая, одиннад- Применив метод шифрования Виже-
цатая, шестнадцатая и так далее буквы нера, получим:
сообщения кодируются одним и тем Фридрих Касицкий.
же шифром Цезаря, соответствую- ОАИТА БНПХЮ ПМЪАЭ МАЗЧА ФРЮЯЦ
щим сдвигу вперёд на 21 позицию МАТВУ ШКГЮН ШИЪДО ОЯВТЫ ЖЧЪТЫ
(поскольку первая буква ключевого ЖПЫТЕ ЭНХЕА ПНХДР СЕЗЬУ НЯЗ
слова — Х является 22-й буквой алфа-
вита). Аналогично вторая, седьмая, Зашифрованный текст содержит
двенадцатая, семнадцатая и так далее три повторяющиеся биграммы: МА в по-
буквы кодируются шифром Цезаря зициях 16 и 26, ТЫ в позициях 44 и 49
со сдвигом на 14 позиций, соответст- и НХ в позициях 57 и 62. Биграмма МА
вующим второй букве ключевого сло- повторяется в зашифрованном тексте
ва — О. Весь текст разбивается на пять на расстоянии в десять позиций, би-
фрагментов. К каждому из них мож- граммы ТЫ и НХ — на расстоянии в пять
но применить метод частотного ана- позиций. Поскольку десять кратно

573
Передача информации

Далее полученные таким образом со-


общения переписываются одно над
другим и подсчитывается число сов-
павших букв в верхней и нижней стро-
ках. Вычисляется индекс совпадения,
равный отношению числа совпаде-
ний к длине сообщения.
Для текстов на русском языке ин-
декс совпадения составляет в среднем
примерно 6 %. Но для абсолютно слу-
чайной последовательности русских
букв индекс совпадения значительно
ниже! Поскольку всего в русском ал-
фавите 32 буквы, то вероятность сов-
падения составляет 1/32, или 0,031, —
чуть больше 3%.
На этом соображении и основан
метод Фридмана. Зашифрованный
текст записывается со сдвигами 2, 3, 4
и так далее, и для каждого сдвига вы-
числяется индекс совпадения. Если
индекс совпадения колеблется между
0 и 5 %, то, скорее всего, размер сдви-
пяти, то, скорее всего, длина ключе- га не соответствует длине ключевого
вого слова равна пяти. Если длина 5 слова. Длина ключевого слова найде-
не подойдёт, то можно будет затем про- на, как только индекс совпадения скач-
верить и длину 10. ком возрастёт до 6 % и более.
Определив 5 как наиболее вероят- В нашем примере зашифрованный
ную длину ключевого слова, мы сде- текст выглядит следующим образом:
лали самый значительный шаг к раз-
гадке шифра Виженера. ОАИТАБНПХЮПМЪАЭМАЗЧАФРЮЯ
Метод Касицкого требует некото- ЦМАТВУШКГЮНШИЪДООЯВТЫЖЧЪ
рого везения. Биграмма в исходном ТЫЖПЫТЕЭНХЕАПНХДРСЕЗЬУНЯЗ
тексте должна повториться на рассто-
янии, кратном длине ключевого сло- Циклически сдвигая его и подсчиты-
ва. Если длина текста не очень боль- вая индекс совпадения, получим сле-
шая, то этого может и не случиться. дующие результаты:
Кроме того, зашифрованный текст
может содержать случайные повторя- Сдвиг Число совпадений Индекс
ющиеся биграммы, расположенные 2 0 0,000
на расстояниях, не кратных длине 3 5 0,068
ключевого слова. Хотя их вероятность 4 2 0,027
ниже, чем у «регулярных» биграмм, в 5 8 0,110 —
случаях коротких текстов они могут это длина ключа!
помешать расшифровке. В 1920 г. аме- 6 1 0,014
риканец Вильям Ф. Фридман (уроже- 7 1 0,014
нец России) предложил другой, более 8 2 0,027
простой и в то же время более продук-
тивный метод определения длины При сдвиге 5 индекс совпадения
ключевой фразы. Этот метод являет- оказался значительно выше, чем при
ся одним из самых ярких достижений любых других сдвигах. Следователь-
классической криптографии. но, длина ключевого слова, вероятнее
Метод Фридмана основан на под- всего, равна пяти.
счёте так называемого «индекса сов- Понять, почему индекс совпадения
падения». Зашифрованное сообще- резко возрастает, когда величина сдви-
ние переписывается с циклическим га становится кратной длине ключе-
Вильям Ф. Фридман. сдвигом текста на несколько позиций. вого слова, совсем нетрудно. В случае

574
Защита информации

любого подстановочного шифра, в ча- ние математики (теории групп и тео-


стности шифра Цезаря, индекс совпа- рии перестановок).
дения для зашифрованного текста та- В январе 1933 г. было теоретиче-
кой же, как и для исходного текста. При ски воссоздано устройство машины,
сдвиге текста, зашифрованного мето- что позволило позже построить её
дом Виженера, на длину ключевого реальную модель; были определены
слова мы сравниваем между собой бук- также методы восстановления клю-
вы, которые шифруются одним и тем чей к шифрам на основе перехвачен-
же шифром Цезаря. Следовательно, ных сообщений.
индекс совпадения получится в точ- Позднее, в 1939 г., материалы по
ности таким же, как и у незашифро- «Энигме» были переданы во Францию
ванного текста при сдвиге на длину и Англию. Англичанам удалось рабо-
ключевого слова. ты, раскрыть усовершенствования, ко-
торые были внесены в конструкцию
последних немецких машин, и систе-
НЕМЕЦКАЯ му кодов, используемую Германией.
В этой работе, выполнявшейся боль-
ШИФРОВАЛЬНАЯ шой группой учёных в местечке
МАШИНА «ЭНИГМА» Блетчли в 70 км от Лондона, участво-
вал знаменитый математик Алан Тью-
В период Первой мировой войны и по- ринг, широко известный как автор во-
сле неё широкое распространение по- ображаемой «машины Тьюринга».
лучили механические и электромеха- Работа сохранялась в глубокой тайне,
нические шифровальные машины. и немцы даже не подозревали, что все Мариан Решевский.
С одной из них — немецкой шифро- их секретные сообщения становятся
вальной машиной «Энигма» связано известны антигитлеровской коали-
наиболее крупное достижение прак- ции. Многие историки, изучающие
тической криптографии. Вторую мировую войну, убеждены,
«Энигма» использовалась в Герма- что это значительно ускорило паде-
нии с 1928 г., весь период после при- ние фашистской Германии и сохра-
хода к власти Гитлера и годы Второй нило тысячи жизней. Информация об
мировой войны. В Шифровальном бю- «Энигме» была закрытой и после окон-
ро Варшавы в 1932 г. начались рабо- чания войны; она была опубликована
ты над раскрытием тайны «Энигмы». только 30 лет спустя, по истечении
Возглавлял группу молодой польский срока давности военных секретов.
математик Мариан Решевский, выпуск- Воистину во второй половине XX в.
ник математического факультета уни- произошла революция в криптогра-
верситета в Познани. Группа имела в фии. В современной схеме кодирова-
своём распоряжении устаревшую ком- ния с открытым ключом ни кодиро-
мерческую шифровальную машину, вочная машина, ни ключ шифрования
купленную в Германии. Конечно, эта не являются секретом! Для шифрова-
модель была очень далека от совре- ния сообщения вообще не нужно знать
менных для той поры немецких воен- секретов (секретный ключ нужен толь-
ных шифровальных машин и принес- ко для дешифровки), и шифр практиче-
ла мало пользы. Поэтому главным ски нельзя взломать. Так что история,
моментом в работе учёных для реше- подобная раскрытию тайны «Энигмы»,
ния задачи «Энигмы» было примене- в наши дни вряд ли возможна.

СОВРЕМЕННАЯ КРИПТОГРАФИЯ

С появлением компьютеров крипто- теперь уже не используются. Одной


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

575
Передача информации

не к буквам алфавита, как в классиче-


ских шифрах, а к двоичным кодам.
УСТРОЙСТВО «ЭНИГМЫ» Это позволяет шифровать не только
тексты, но и любые файлы (изобра-
«Энигма» относилась к классу электромеха- жения, компьютерные программы
нических шифровальных машин. Её конст- и т. п.).
рукция была основана на системе из трёх Каждый байт имеет 256 значений,
роторов, осуществлявших замену двад- что недостаточно для надёжного ши-
цати шести букв латинского алфавита. фрования. Поэтому шифруются не
Каждый ротор имел 26 входных контак- отдельные байты, а блоки, состоящие
тов на одной поверхности и 26 выход- из нескольких подряд идущих бай-
ных контактов — на другой. Внутри каж- тов. В большинстве схем шифрова-
дого ротора проходили провода, ния каждый блок шифруется неза-
связывавшие входные и выходные висимо от остальных. Чем больше
контакты между собой. Выход- размер блока, тем надёжнее шифр.
ные контакты первого ротора Все современные методы шифро-
соединялись с входными кон- вания разделяются на две группы:
тактами второго ротора. симметричное кодирование, или ко-
Когда оператор нажимал дирование с секретным ключом, и
на какую-либо букву на кла- асимметричное кодирование, или
виатуре машины, электриче- кодирование с открытым ключом.
ский ток подавался на входной
контакт первого ротора, соответст- Шифровальная
вующий этой букве. Ток проходил через машина «Энигма». СХЕМА DES. КОДИРОВАНИЕ
первый ротор и поступал на выходной кон-
такт, соответствующий какой-либо другой букве. Затем ток проходил
С СЕКРЕТНЫМ КЛЮЧОМ
последовательно через второй и третий роторы и подавался на непо-
движный рефлектор (от лат. reflecto — «обращаю назад», «отражаю»). В кодировании с секретным ключом
В конструкции рефлектора 26 контактов разбивались на пары, контак- один и тот же ключ используется как
ты внутри каждой пары были соединены между собой. Таким образом для шифрования, так и для дешиф-
рефлектор заменял букву на парную ей. ровки сообщения. Поэтому такое ко-
Ток, прошедший через рефлектор, подавался назад, на систему дирование называют симметричным.
роторов. Он вновь проходил через три ротора, но в обратном поряд- Кодируются блоки текста, состо-
ке. В конце концов на световом табло «Энигмы» загоралась одна из ящие из фиксированного числа иду-
26 лампочек, соответствовавшая зашифрованной букве. щих подряд байтов. Ключ также пред-
Самым важным свойством «Энигмы» являлось вращение роторов. ставляет собой несколько байтов.
Первый ротор после каждой преобразованной буквы поворачивал- Например, в схеме DES (Data Encryp-
ся на одну позицию. Второй ротор поворачивался на одну позицию tion Standard — «стандарт шифрова-
после того, как первый ротор совершал полный оборот, т. е. после ния данных») размер блока равен
26 преобразованных букв. Наконец, третий ротор поворачивался на 8 байт, или 64 бит. Длина ключа также
одну позицию после того, как второй ротор совершал полный обо- равна 8 байт. В них, правда, использу-
рот, т. е. после 26 . 26 = 676 зашифрованных букв. ются лишь 56 бит: старший бит каж-
Благодаря рефлектору «Энигма» на каждом шаге осуществляла дого байта служит для проверки чёт-
перестановку букв внутри пар, и если, к примеру, буква N заменя- ности и в шифровании не участвует.
лась на S, то при том же положении роторов буква S заменялась на Шифрование состоит в преобра-
N (ток шёл по тем же проводам, но в обратную сторону). Этим объ- зовании входного слова из 64 двоич-
яснялась особенность «Энигмы»: для расшифровки сообщения до- ных разрядов в зашифрованное вы-
статочно было вновь пропустить его через машину, восстановив ходное слово той же длины. Полное
предварительно начальное положение роторов. описание схемы DES достаточно
Таким образом, начальное положение роторов играло роль клю- сложно и занимает несколько десят-
ча шифрования. Начальное положение роторов устанавливалось в ков страниц. Вот её основные идеи:
соответствии с текущей датой. Каждый оператор имел специальную 1. Нередко в разных областях про-
книгу, задававшую положение роторов для каждого дня. В этом за- граммирования, и в частности в ши-
ключалась очевидная слабость данной системы шифрования: доста- фровании используется побитовая
точно было завладеть книгой и машиной, чтобы раскрыть все сек- операция «исключающее ИЛИ» (об-
реты. щепринятое обозначение — XOR). Ма-
тематики называют её сложением по

576
Защита информации

модулю 2. Операция задаётся следую- ции f, которая в каждом раунде при-


щим образом: меняется к ключу K данного раунда
и к правой половине шифруемого
0 ⊕ 0 = 0, 0 ⊕ 1 = 1, слова. Построение функции f осно-
1 ⊕ 0 = 1, 1 ⊕ 1 = 0. вывается на идеях Клода Шеннона,
изложенных в 1949 г. в журнале «Bell
Символом ⊕ обозначается сама System Technical Journal». От функ-
операция XOR. Когда её применяют к ции f требуется, чтобы её аргумент
двум двоичным словам, она выполня- и результат были как можно меньше
ется по отдельности для каждой пары связаны друг с другом. Небольшое из-
битов в соответствующих позициях. менение аргумента должно приводить
Операция XOR обладает замечатель- к существенному изменению резуль-
ным свойством обратимости: тата, которое будет выглядеть абсо-
лютно случайным.
(X ⊕ Y) ⊕ Y = X. Клод Шеннон предложил для по-
строения подобной функции несколь-
Прибавляя Y к X, шифруют сооб- ко раз последовательно применять
щение X, а для дешифровки достаточ- преобразования типа «перемешива-
но ещё раз выполнить ту же самую ние» и «запутывание» (diffusing и con-
операцию. fusing). Конкретное воплощение этой
2. Преобразование в схеме DES раз- идеи было предложено в конце 60-х гг.
бивается на элементарные шаги, кото- XX в. Хорстом Фейнстелем. Переме-
рые называют раундами. Таких раун- шивание состоит в простой переста-
дов 16. В каждом раунде используется новке битов слова. Для запутывания
свой 48-битный ключ K, составленный применяются так называемые S-ящи-
определённым образом из битов ис- ки (англ. substitution — «подстанов-
ходного ключа. Исходное 64-битное ка»). Длинное двоичное слово разби-
слово разбивается на 32-битные по- вается на группы по четыре бита.
ловины L (левую) и R (правую). К ним Значение этих четырёх битов рассма-
применяется следующее преобразо- тривается как одно двоичное число в
вание Фейнстеля, названное так в честь диапазоне от 0 до 15, и оно подаётся
Хорста Фейнстеля, разработавшего на вход S-ящика. S-ящик заменяет это
для фирмы IBM один из первых мето- число на другое число, которое вы-
дов симметричного кодирования «Лю- даётся на выходе S-ящика.
цифер»:

L' = R;
R' = L ⊕ f(R, K),

где L' и R' — новые значения левой и


правой половин слова.
Ключевая идея Фейнстеля состоит
в том, что такое преобразование обра-
тимо независимо от вида функции f:

R' ⊕ f(R, K) = L;

и преобразование

R = L';
L = R' ⊕ f(L', K)

является обратным к преобразованию


Фейнстеля, поэтому оно использует-
ся при дешифровке.
3. Наиболее важным моментом в
схеме DES является построение функ-

577
Передача информации

Обратно оно представляется также в DES подходит к концу. В настоящее


виде четырёх битов. Таким образом, время используется её модификация
каждый S-ящик осуществляет фикси- 3DES, которая состоит в трёхкратном
рованное отображение четырёхбит- применении алгоритма DES. В схеме
ных слов. Оно должно быть по воз- 3DES ключ в два раза длиннее, поэто-
можности близким к случайному. му подобрать его путём полного пере-
Сложность дешифровки в значитель- бора нереально. К тому же активно
ной степени основывается на слож- ведётся поиск нового стандарта сим-
ности отображений, осуществляемых метричного шифрования, который
S-ящиками. сможет полностью заменить DES.
В схеме DES используют несколь-
ко S-ящиков, выбранных на базе клю-
ча K текущего раунда и битов правой КОДИРОВАНИЕ
половины слова (R). Преобразования,
сходные с преобразованием Фейнсте-
С ОТКРЫТЫМ КЛЮЧОМ
ля, применяются практически во всех
современных схемах симметрично- Подлинной революцией в криптогра-
го кодирования, а не только в DES. фии явилась разработка схем асим-
Схема DES успешно применялась метричного шифрования, или шиф-
на практике в течение последних рования с открытым ключом. Если
20 лет и зарекомендовала себя как современные алгоритмы симметрич-
достаточно надёжная. До сих пор ного кодирования в той или иной ме-
не найдено никаких существенно луч- ре напоминают классические шифры,
ших методов её взламывания, чем пол- и особенно роторные шифровальные
ный перебор всех ключей. Вместе с машины начала XX в., то никаких про-
тем ключ в схеме DES достаточно ко- тотипов схем кодирования с откры-
роткий, всего 56 бит, и перебрать все тым ключом в истории не существо-
ключи вполне возможно. На современ- вало.
ном персональном компьютере для Идея кодирования с открытым
этого понадобится порядка 1000 лет, ключом очень проста: для шифро-
что в теории алгоритмов вовсе не счи- вания и для дешифровки сообще-
тается серьёзным временем! Специ- ния используются два разных ключа.
ально же сконструированный много- Ключ, с помощью которого сообще-
процессорный комплекс взламывает ние шифруется, называется откры-
DES за несколько часов. Поэтому пе- тым (public key). Ключ для дешиф-
риод широкого использования схемы ровки называется секретным или
приватным (private key). Причём, зная
открытый ключ, нельзя с его помо-
щью восстановить секретный ключ.
Представим дверной замок с дву-
мя разными ключами. Один служит
только для запирания двери, другим
её можно лишь отпереть. Похожим
образом устроена схема шифрова-
ния с открытым ключом. Открытый
ключ известен всем, и любой может
зашифровать сообщение («запереть
дверь»). Но только обладатель секрет-
ного ключа способен дешифровать
сообщение («отпереть дверь»).
В одном из фильмов про Джейм-
са Бонда, «Из России с любовью»,
основной целью «агента 007» является
захват секретной советской шифро-
вальной машины «Лектор». Подоб-
ный сюжет в настоящее время был бы
невозможен: шифровальная машина,

578
Защита информации

лемана. Она была разработана в науч-


ных кругах и, в отличие от многих дру- Джеймс Бонд
с машиной «Лектор».
гих алгоритмов шифрования, никог-
да не имела статуса государственного
секрета. Основана она на простых и
красивых результатах элементарной
теории чисел, полученных ещё древ-
ними греками (расширенный алго-
ритм Евклида), китайцами (китайская
теорема об остатках) и европейски-
ми математиками XVII—XVIII вв. (ма-
лая теорема Ферма, теорема Эйлера).
Первая идея схемы RSA — это рас-
смотрение блоков текста, состоящих
т. е. компьютер плюс алгоритм шиф- из нескольких последовательных бай-
рования, не представляет никакого се- тов, как элементов кольца вычетов по
крета. Открытый ключ шифрования модулю m. Объединяя двоичные запи-
можно опубликовать даже в телефон- си всех байтов блока, получают длин-
ной книге. Ценность для английской ное двоичное слово, которое тракту-
контрразведки мог бы представлять ется как двоичная запись целого числа.
лишь секретный ключ дешифровки, Это число, в свою очередь, рассматри-
но агент, передающий зашифрован- вается как элемент кольца вычетов по
ные сообщения в Москву, им не обла- модулю m. Таким образом, блоки тек-
дает (секретный ключ находится в ста отождествляются с элементами Пьер Ферма.
Москве). кольца Zm. Шифрование состоит в пре-
Чрезвычайно важно дополнитель- образовании элементов Zm.
ное свойство наиболее распростра- Число m в схеме RSA достаточно
нённой в настоящее время схемы большое, не менее 200 десятичных
кодирования с открытым ключом знаков. Оно равняется произведению
RSA: процедуры шифрования и де- двух больших простых чисел:
шифровки взаимно обратны. Это
означает, что схему кодирования с m = pq.
открытым ключом можно применять
в обратном направлении: шифровать Число m является открытым, но его
сообщение с помощью секретного представление в виде произведения
ключа, а дешифровать — с помощью двух простых чисел сохраняется в тай-
открытого. Таким образом можно не. Зная разложение m на множители,
подтвердить личность отправителя можно вычислить функцию Эйлера:
сообщения, ведь послать его может
только обладатель секретного ключа; φ(m) = (p–1)(q–1).
Роналд Ривест, Ади
зато прочитать сообщение сумеет кто Далее выбирается произвольное Шамир и Леонард
угодно, применив для дешифровки натуральное число e, взаимно простое Адлеман.
открытый ключ. На этом свойстве
основано построение так называе-
мой электронной подписи сообще-
ния, удостоверяющей личность отпра-
вителя.

СХЕМА ШИФРОВАНИЯ
С ОТКРЫТЫМ КЛЮЧОМ RSA

Схема шифрования с открытым клю-


чом RSA, опубликованная в 1977 г., на-
звана в честь её создателей — Роналда
Ривеста, Ади Шамира и Леонарда Ад-

579
Передача информации

Здесь через t обозначен блок зашиф-


рованного сообщения.
E и D — две взаимно обратные про-
цедуры.
Применим к зашифрованному со-
общению

t ≡ s e (mod m)

процедуру дешифровки:

D(t) ≡ t d ≡ (s e )d ≡ s e d (mod m).

Поскольку числа e и d по построе-


нию являются взаимно обратными
с φ (m). Для него с помощью расши- элементами кольца вычетов по моду-
ренного алгоритма Евклида вычисля- лю φ (m), то
ется обратный элемент d в кольце вы-
четов по модулю φ (m): ed ≡ 1 (mod φ (m)),

de ≡ 1 (mod φ (m)). т. е. разность ed–1 делится на φ(m).


Открытым ключом является пара Для некоторого натурального чи-
чисел (m, e). Секретным ключом явля- сла k
ется пара чисел (m, d).
Процедура шифрования E состоит ed –1=k φ (m),
в возведении исходного числа s в сте- ed = k φ(m) + 1.
пень e в кольце вычетов по модулю m:
Следовательно,
E(s) ≡ s e (mod m).
sed = skφ(m)+1 ≡ s (mod m).
Здесь через s обозначен блок исход-
ного сообщения, который рассматри- Последнее равенство справедливо
вается как элемент кольца Zm. в силу теоремы Эйлера. Таким обра-
Процедура дешифровки D состо- зом, применив к исходному сообще-
ит в возведении в степень d в кольце нию s сначала шифрующую, а затем
вычетов по модулю m: дешифрующую процедуры, снова по-
лучено исходное сообщение s.
D(t) ≡ t d (mod m). Итак, как шифрование, так и деши-
фровка состоят просто в возведении
в степень в кольце вычетов. Числа, ко-
торые участвуют в шифровании, долж-
ны быть достаточно большими —
не менее 200 десятичных знаков.
Вот для иллюстрации пример с
маленькими числами.
Пусть m = 11. 13 = 143. Функция Эй-
лера: φ (m) = 10 . 12 = 120.
Выбрав e = 113, получим d = 17 —
обратный к e элемент в кольце Z120:

113 . 17 = 1921 = 120 . 16 + 1≡


≡ 1 (mod 120).

Пара (143, 113) составляет откры-


тый ключ, пара (143, 17) — секретный
ключ. Шифрующая процедура E со-
стоит в возведении в степень 113 по

580
Защита информации

КОЛЬЦО ВЫЧЕТОВ ПО МОДУЛЮ m

Основным объектом в элементарной теории чисел явля- Система представителей каждого класса называется си-
ется кольцо вычетов по модулю m, которое обозначает- стемой остатков. Математики чаще всего рассматривают
ся Zm. Кольцом в алгебре называется множество, элемен- неотрицательную систему остатков {0, 1, 2, ... , m–1}, но в
ты которого можно складывать и умножать. Например, программировании более удобна так называемая симмет-
кольцом является множество целых чисел Z. Пусть m — ричная система, состоящая из отрицательных и неотрица-
некоторое натуральное число. Кольцо Zm строится сле- тельных чисел, минимальных по абсолютной величине. Так,
дующим образом: всё множество целых чисел Z разби- для кольца Z5 симметричная система остатков состоит из
вается на m подмножеств, каждое из них составляют чис- чисел {–2, –1, 0, 1, 2}. Компьютер работает не с целыми
ла, разность которых кратна m. Нулевое подмножество числами, а с элементами кольца вычетов по модулю m =
состоит из чисел {... –m, 0, m, 2m, ...}, первое подмноже- = 232. Те числа, которые программисты называют положи-
ство — из чисел {... –m+1, 1, m+1, 2m+1, ...}, m–1-ое — тельными и отрицательными, являются на самом деле эле-
из чисел {... –1, m–1, 2m–1, 3m–1, ...}. Эти подмножест- ментами симметричной системы остатков этого кольца.
ва в математике называются классами. Указанные клас- Важность колец Z m на практике вытекает из того, что
сы являются элементами кольца Zm, всего их m штук. Опе- эти кольца содержат конечное число элементов и при вы-
рации сложения и умножения классов проводятся с их числениях в них числа не растут до бесконечности. Вы-
представителями — по одному от каждого класса. И тот числения с «настоящими» целыми числами проводятся
класс, в который попадает сумма (произведение), по оп- крайне редко. Объясняется это тем, что при умножении
ределению является суммой (произведением) двух исход- целых чисел результат очень быстро растёт.
ных классов. Например, произведение двух 100-значных десятич-
Тот факт, что два числа — x и y принадлежат одному ных чисел состоит уже из 199 или 200 цифр, возвести же
и тому же классу (т. е. их разность делится на m), запи- 100-значное число в 100-значную степень вообще нере-
сывается в математике следующим образом: x ≡ y (mod ально: результат превышает даже количество элементар-
m). Читается: «x сравнимо с y по модулю m». ных частиц во Вселенной!

модулю 143, дешифрующая процеду- Как оказалось, задача разложения


ра D — в степень 17 по модулю 143. числа на множители очень сложна.
Зашифруем произвольное сообще- Она привлекала внимание многих ма-
ние, например, s = 123: тематиков, начиная с Эйлера, кото-
рый разложил на множители пятое
E(123) ≡ 123113(mod 143) ≡ 41. число Ферма
5
2
Тогда 41 — это закодированное со- F5 = 2 + 1 = 4 294 967 297,
общение. Применив к нему декодиру-
ющую процедуру, получим: до этого ошибочно считавшееся про-
стым. Эйлер использовал изящную
D(41) ≡ 4117 (mod 143) ≡ 123, идею — найти два квадрата, совпада-
ющих по модулю m, которая и по сей
т. е. исходное сообщение. день лежит в основе многих совре-
Насколько сложна задача восста- менных алгоритмов разложения. Тем
новления секретного ключа по от- не менее у всех известных алгорит- Необходимо ли для
крытому ключу? Открытый ключ мов время работы очень быстро рас- взламывания откры-
представляет собой пару чисел (m, e), тёт с увеличением длины записи числа того ключа разло-
секретный — пару (m, d), где d — об- m, что ставит для всех них естествен- жить на множители
ратный элемент в кольце вычетов по ный предел применимости. В насто- число m, до сих пор
модулю (m). Следовательно, для ящее время он составляет примерно не доказано (не изве-
вычисления d нужно знать функцию 100 десятичных знаков. При этом рост стно, эквивалентно ли
Эйлера φ (m). Задача вычисления фун- быстродействия компьютеров почти взламывание RSA за-
кции Эйлера эквивалентна задаче о ничего не даёт. Грубо говоря, если даче о разложении
разложении числа m на множители. компьютеры станут в миллион раз бы- числа на простые мно-
То есть для определения открытого стрее, будет возможно раскладывать жители).
ключа надо разложить на множите- 120-значные числа вместо 100-знач-
ли число m. ных, но всё равно машине никогда

581
Передача информации

АЛГОРИТМ ЕВКЛИДА

Одним из краеугольных камней элементарной тео- вычетов (целые числа невозможно возводить в боль-
рии чисел является алгоритм Евклида: даны два це- шие степени, поскольку они при этом очень быстро
лых числа n и m, нужно найти их наибольший общий растут). Идея этого алгоритма состоит в том, что мы
делитель d = НОД(m, n). Для этого пара чисел (n, m) сводим возведение в степень к операциям возведе-
последовательно заменяется на пару (m, r), где r — ния в квадрат и умножения. Эти операции выполня-
остаток от деления n на m, т. е. n = qm+r. Поскольку ются в кольце Zm. Пусть надо возвести элемент s в
общие делители пар (n, m) и (m, r) совпадают, то НОД(n, степень e. Используется следующий алгоритм:
m) = НОД(m, r). С другой стороны, НОД(m, 0) = m.
Поскольку при замене (n, m) на (m, r) второе число алг цел быстрое возведение в
уменьшается, то через конечное число шагов оно ста- | степень (цел s, e)
нет равным нулю, при этом первое число пары будет | дано: число s, показатель
равно НОД исходной пары чисел. | степени e
Алгоритм Евклида очень быстрый, число шагов в | надо: возвести s в степень е
нём примерно равно количеству битов в двоичной за- | в кольце вычетов
писи числа, т. е. для 100-значных десятичных чисел | нач цел p
алгоритм Евклида завершается примерно через 330 | p := 1
шагов. На практике чрезвычайно важен расширен- | цикл пока e > 0
ный алгоритм Евклида, позволяющий выразить d = | | если e/2*2=e | e-чётное
= НОД(n, m) в виде линейной комбинации чисел n и m: | | | то e:= e/2; s:= s*s
| | | иначе e:= e-1; p:= p*s
d = un + vm, | | всё
| кц
где u и v — некоторые целые числа. Расширенный ал- | знач:= p
горитм Евклида позволяет вычислить обратный к n эле- кон
мент в кольце вычетов по модулю m. Элемент u назы-
вается обратным к n, если их произведение равно Справедливость алгоритма вытекает из того, что
единице в кольце Zm. Например, в кольце Z5 величина pse остаётся неизменной после каждого
выполнения тела цикла. Вначале она равна s e, по-
2 .3 = 6 ≡ 1 (mod 5), скольку p = 1. По окончании алгоритма e = 0, сле-
довательно, pse = p, т. е. в p содержится искомая
следовательно, число 2 является обратным к числу 3 в степень первоначального значения s. Алгоритм так-
кольце Z5. Число n обратимо в кольце вычетов по мо- же работает очень быстро, количество шагов не пре-
дулю m тогда и только тогда, когда n взаимно просто восходит удвоенного числа битов двоичной записи
с m, т. е. НОД(n, m) = 1. Применив расширенный ал- числа e. В частности, если e — 100-значное десятич-
горитм Евклида, можно найти такие числа u и v, что ное число, то число шагов алгоритма примерно рав-
но 600.
1 = un + vm.

Но vm ≡ 0 (mod m), следовательно,

1 ≡ un (mod m),

т. е. элемент u является обратным к эле-


менту n в кольце вычетов Zm.

БЫСТРОЕ ВОЗВЕДЕНИЕ В СТЕПЕНЬ

Ещё один алгоритм, который постоянно


используется на практике, — это алго-
ритм быстрого возведения в степень. Как
правило, алгоритм этот применяется не
для целых чисел, а для элементов колец

582
Защита информации

МАЛАЯ ТЕОРЕМА ФЕРМА И ТЕОРЕМА ЭЙЛЕРА

Подлинной жемчужиной теории чисел является малая Теорема Эйлера: пусть m — произвольное натуральное
теорема Ферма. число, отличное от единицы, b — целое число, взаимно
Пусть m — простое число (т. е. число, делящееся без простое с m, тогда
остатка только на себя и на единицу). Тогда для всяко-
φ (m)
го целого числа b, не делящегося на m, справедливо b ≡ 1 (mod m).
сравнение
Функция Эйлера легко вычисляется с помощью дру-
b m - 1 ≡ 1 (mod m). гой классической теоремы — китайской теоремы об
остатках, которая здесь не приводится. В схеме RSA за-
Например, пусть m=7, b=2, тогда действован частный случай теоремы Эйлера для m = pq,
где p и q — два разных простых числа. В этом случае
26 = 64 = 9.7 + 1 ≡ 1 (mod 7).
φ (m) = (p –1)(q –1).
Существует также другая форма малой теоремы Фер-
ма. Пусть m — простое число. Тогда для всякого целого Существует следующее усиление теоремы Эйлера:
числа b справедливо тождество пусть m = pq, где р и q — разные простые числа. Тогда
для любого целого числа b и для любого натурального k
bm ≡ b (mod m). справедливо тождество
kφ (m)+1
Леонард Эйлер в XVIII в. обобщил малую теорему Фер- b ≡ b (mod m).
ма для случая произвольного числа m. По определению,
функцией Эйлера (m) называют количество обратимых В этом случае уже не требуется, чтобы число b бы-
элементов кольца Zm. ло взаимно просто с числом m.

не разложить 400-значное число.


Многие математики убеждены, что для
При использовании кодирования с открытым ключом можно
задачи разложения чисел не сущест-
не опасаться хакеров, ведь для определения ключа надо решить
вует быстрых алгоритмов, хотя стро-
чисто математическую задачу разложения числа на множите-
го это не доказано.
ли, на что никакой хакер не способен.
Для многочленов, в отличие от чи-
сел, имеется быстрый алгоритм раз-
ложения на множители. Это только
подчёркивает, насколько сложными
объектами являются целые числа. случаях. Прежде всего это процедура
В отличие от разложения на множите- входа в сеть и идентификации поль-
ли задачи проверки простоты числа и зователя, в которой схема кодирова-
генерации больших простых чисел ния с открытым ключом заменяет при-
имеют красивые алгоритмические ре- митивную передачу пароля. Кроме
шения, найденные в 70-х гг. XX в. Это этой возможности удостоверения
позволяет генерировать сколь угодно пользователя и электронной подписи
длинные ключи в схеме RSA. имеется способ обмена секретными
Шифрование и дешифровка в схе- ключами по открытому каналу связи.
ме RSA происходят всё же значитель- Обычно после входа пользователя в
но медленнее, чем те же операции с сеть система выделяет ему одноразо-
использованием алгоритмов симмет- вый ключ для симметричного шифро-
ричного шифрования. Поэтому шиф- вания (3DES и т. п.), и вся передающая-
рование с открытым ключом обычно ся по сети информация шифруется с
применяют лишь в наиболее важных помощью симметричного ключа. Леонард Эйлер.

583
СОВРЕМЕННЫЕ
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
ИНФОРМАЦИОННОЕ
И ПОСТИНФОРМАЦИОННОЕ ОБЩЕСТВО

Человечество ныне переживает пе- бы одного из высокоразвитых госу-


реход от одной эпохи к другой. Ин- дарств отметил, что если недавно
дустриальное общество сменяется основная проблема состояла в добы-
информационным, когда доступ к вании данных, то сейчас на первом
информации упрощается, а компью- месте находится их переработка.
теры используются в качестве уни- Конец информационного общества
версальных приборов для её хране- грозит обвалом мировой финансовой
ния, переработки и передачи. системы, так как деньги делает тот,
Всегда интересно заглянуть за кто знает, откуда они берутся, т. е. вла-
поворот и узнать, что ждёт впереди, деет информацией. Другой фактор,
что придёт на смену информацион- предрекающий глобальный хаос, —
ному обществу? кризис управленческой технологии.
Существует мнение, что эпоха ин- Для действий по традиционной схе-
формационного общества уже завер- ме «исследование — анализ резуль-
шена, практически не начавшись. татов — синтез управленческих ре-
Бурное развитие средств коммуни- шений» может просто не хватить
кации и новейших технологий со- времени. Что приведёт к погрешно-
здали ситуацию, при которой новая стям и ошибкам в решениях глобаль-
информация теряет актуальность ного характера. В результате потери
быстрее, чем её удаётся применить. контроля над ситуацией восторже-
Руководитель разведывательной служ- ствует всемирная супертирания с

584
Современные информационные технологии

угнетением и уничтожением значи-


тельной части человечества. Невесё-
Трагедию, которая произошла с Останкинской телебашней летом
лая перспектива!
2001 г., и следующие дни можно рассматривать как один из воз-
В качестве аргументации против
можных путей в постинформационное общество. Когда погасли
такого взгляда можно сказать, что
голубые экраны телевизоров у миллионов москвичей, многие
человечество пока ещё в состоянии
действительно ощутили так называемый информационный голод.
«переварить» нарастающие объёмы
Правда, это был скорее «телевизионный» голод, так как радиостан-
информации, активно используя изо-
ции с успехом компенсировали нехватку новостного потока.
бретённые компьютеры. И глобаль-
ные управленческие решения, судя по
печальным событиям в Ираке и Кир-
гизии, 2003—2004 г., по-прежнему сводится к тому, что прогнозируют-
принимаются людьми. А при нали- ся некоторые, часто несущественные
чии большего объёма достоверной изменения в рамках информацион-
информации решения скорее будут ного общества. Сам переход невоз-
более правильными, чем при отсут- можно точно зафиксировать, так же
ствии данных. как нельзя обозначить чёткую грани-
Другая точка зрения состоит в том, цу между юностью и зрелостью.
что сейчас наблюдается не избыток, а В 15 лет человек ещё юн, а 40 — это,
дефицит информации. Несмотря на вне всякого сомнения, зрелый воз-
лавинообразное увеличение её объё- раст. Так и общество: в XV в. оно
ма и скорости информационных не было индустриальным, а в XIX в. —
потоков, в конечном счёте вся она информационным. Информацион-
доставляется человеку по двум кана- ное общество — зрелость человече-
лам — слуховому и зрительному. В ин- ства. По аналогии с человеком ему
формационном обществе эти каналы предсказывают упадок и смерть или
чрезмерно загружены. Будущее пост- долгую старость, отягощённую бо-
информационное общество предпо- лезнями. Но высказывают и оптими-
лагает не отказ от информации, а пе- стическое предположение: зрелость
ренос акцентов на другие каналы. не сменится увяданием, т. е. инфор-
По крайней мере, органов чувств у мационное общество не состарится
человека больше двух. (Правда, возни- никогда. Как, собственно, и заканчи-
кает вопрос: почему тогда это обще- ваются сказки: «И они жили долго и
ство именуют постинформационным, счастливо и умерли в один день».
а не мегаинформационным?)
Ключевой фигурой в ряду профес-
сионалов завтрашнего дня станет
интеллектуал — человек, производя-
щий информацию, а само производ-
ство информации займёт важнейшее
место в индустрии. Мир глобализи-
руется: у него будут единые финансы,
общие информационное поле, мо-
раль, стиль жизни и т. п. Вместе с тем
каждая страна продолжит жить сама
по себе, сохраняя свою самобытность.
Данный парадокс нового тысячеле-
тия и приведёт к формированию
постинформационного общества,
когда внутренние импульсы и все со-
зданные технологии смогут способ-
ствовать адаптации человека к теку-
щей ситуации.
В целом большинство размышле-
ний о постинформационном обще-
стве (за исключением тех немногих,
в которых предрекается конец света)

585
Информация и информатика

ПРОИЗВОДИТЕЛИ МАССОВОЙ ИНФОРМАЦИИ

Часто спорят, средства массовой ин- • офлайновые, или «бумажные», —


формации только сообщают ново- газеты, журналы и прочие печатные
сти и проводят расследования или издания;
сами производят ту самую информа- • электронные — телевидение и
цию, которая до неузнаваемости ме- радио;
няет окружающий мир. Недаром их • Интернет-издания.
не жалуют и боятся — ведь это чет- Синтетические СМИ, как это сле-
вёртая власть. дует из названия, соединяют все эти
Что такое средства массовой ин- технологии воедино.
формации? Это прежде всего изда- Газеты и журналы мало меняются
ния, которые поставляют нам све- со временем — они будут существо-
дения об окружающем мире. Главное вать, как и прежде, поскольку читать
в них — то новое, что произошло текст, напечатанный на газетной бу-
с миром, обществом, конкретными маге, удобно и приятно. Это станет
людьми, известными персонажами, даже восприниматься как элемент
культурой, наукой за небольшой престижа или консерватизма для
отрезок времени: неделю, день, час, серьёзных бизнесменов или моло-
минуты. А значит, главное для СМИ дых людей, которые хотят выглядеть
настоящего и будущего — это опера- респектабельно. Кроме того, у газеты
тивная передача информации тем, и журнала есть ещё одно неоспори-
кто в ней нуждается. мое преимущество: они дожидаются
В блокбастере С каждым годом система и техно- своего читателя. Человеку не надо в
2005 г. Стивена
Спилберга «Война логии СМИ меняются всё быстрее и спешном порядке усваивать какую-то
миров» есть эпизод, быстрее. Мир становится единым и информацию, комментарий к собы-
в котором, находясь всё более открытым, потому все эти тиям одномоментно, здесь и сейчас,
в окружении ино-
планетян в условиях,
обстоятельства будут влиять на раз- когда у него нет времени. Он может
когда большинство витие информационного поля. Ника- узнать и подумать об этом в другой
СМИ уничтожены, кие, даже самые смелые, фантазии день, на досуге, в выходной. Он име-
оставшись чудом в
живых, корреспон-
не могут предугадать будущего. ет возможность развернуть газетную
дент одного из теле- Средства массовой информации полосу и, читая, отгородиться от ми-
каналов сетует, что условно делятся на традиционные и ра, оставшись наедине с газетой и
не получилось сенса- синтетические. чашкой кофе в руке.
ционного репортажа.
Поистине новость К традиционной группе можно Другое дело, что появятся дай-
дороже жизни. отнести: джесты — издания с подборками пуб-
ликаций на конкретную тему. Одно и
то же событие с разных точек зрения
будет подано журналистами разных
изданий. Например, про создание но-
вой ракеты напишут авторы научно-
го издания, литературного альманаха,
разнополярных политических изда-
ний и молодёжной газеты. Таким об-
разом, читатель сможет получить са-
мые разносторонние оценки одного
и того же явления. Поменяется тема-
тика изданий: если сейчас в основном
российские газеты пишут о политике
и здоровье, то в будущем основными
темами станут наука и культура. Изме-
нится карта планеты. Мир сделается
единым, политика перестанет инте-
ресовать всё общество, но проблема
освоения недр земли, развитие высо-
ких технологий, знания в самых акту-

586
Современные информационные технологии

альных областях, культура, мораль —


те вопросы, которые всегда волнуют
общество. Конечно, газета не успева-
ет за сменой новостей, но эти вопро-
сы не требуют постоянного обновле-
ния информации на её полосах.
Если судьба газет в большей или
меньшей степени оптимистична, то
это вряд ли можно сказать про так на-
зываемые толстые литературные жур-
налы. Они сократятся, поскольку но-
вые романы, повести и рассказы будут
сразу издаваться в виде книг и парал-
лельно продаваться в Интернете. И два
этих формата окончательно погубят
традицию семейного чтения толстых
журналов.
Глянцевые журналы с картинками, гивать» музыкальные композиции с
где текста меньше, чем фотографий, волн других радиостанций. Если слу-
тоже останутся на своих местах, по- шатель захочет принять участие в заин-
тому что после работы (например, с тересовавшем его ток-шоу, то ему
компьютером) у любого человека бу- достаточно голосом дать соответству-
дет внутренняя потребность посмот- ющую команду, и приёмник, настроив-
реть на красивые иллюстрации и шись на определённую частоту, сдела-
полистать страницы с лёгким, нена- ет его участником этой передачи.
вязчивым текстом. Кроме того, можно настроить свой
Отношение к радио и телевидению приёмник так, чтобы он принимал
изменится, поскольку мало кто захочет только позитивную (или отрицатель-
щёлкать кнопками пульта, переключая ную) информацию, передавал голоса
каналы. Потребитель информации ведущих только с определённым тем-
станет её непосредственным заказ- бром. Естественно, что в этой ситуа-
чиком. Он начнёт лично программи- ции усилятся «боевые действия» меж-
ровать свой радио- и теледень. ду радиостанциями и слушателями.
Например, будет применяться техно- Люди начнут настаивать на своём пра-
логия, по которой можно заказать се- ве выбора, а радиостанции всеми прав-
бе экономические новости одной ра- дами и неправдами — бороться за кли-
диостанции, новости спорта другой, ентов. Поэтому «зашедший на волну»
новости культуры третьей и т. д. будет фиксироваться и «приклеивать-
Музыку также будут подбирать на ся» к ней. Специальные электронные
свой вкус: приёмник станет по опреде- «крючки» не дадут ему уйти на другую
лённой програм- радиостанцию. Победит тот, чей «крю-
ме «выдёр- чок» сильнее. Многие станции будут

587
Информация и информатика

офлайновых и электронных СМИ.


Среди них разгорится жесточайшая
борьба за читателя. Расширение тем,
многообразие ссылок и перекупка
журналистов — это только немногие
формы борьбы за популярность. Че-
ловек, попавший на определённый
сайт, не должен уйти с него в поис-
ках необходимой информации. Он
должен увязнуть в сетях этого СМИ и
сделать его стартовой страницей. Там
окажутся не только собственные
материалы журналистов того или
иного издания, но и автоматические
ссылки по конкретной теме на все
СМИ и иные источники, размещён-
ные в Интернете.
Интернет-издания станут синте-
тически сочетать в себе офлайновые
и электронные технологии, такие, как
текст, звук и видео. Многие материа-
лы можно будет увидеть и услышать.
незаконно использовать нейролепти- Уже сейчас существуют радиостан-
ческое программирование слушателей ции, которые можно не только услы-
в этих же целях. Подобное попытают- шать, но и увидеть в Интернете,
ся искоренить, но даже угроза закры- поскольку специальные проекты сни-
тия станции не решит этой проблемы. маются на цифровые видеокамеры.
Та же ситуация сложится и на Очень скоро будет сниматься и транс-
телевидении: зритель сам выбирает лироваться весь эфир — интервью с
понравившегося диктора и зака- гостями, работа диджея, появятся в
зывает, чтобы все новости с разных Сети и видеоклипы.
каналов читал именно он. Компью- Также в Интернете можно будет
терные технологии позволят смот- увидеть и все телепрограммы и филь-
реть по одной программе все филь- мы всех телеканалов. Поэтому, попав
мы или передачи, которые имеются на сайт, можно будет прочитать-уви-
в видеотеках всех каналов телеви- деть-услышать и обсудить на форуме
дения. Ну и, конечно, можно будет любой сюжет (как в онлайновом
выбирать концовку фильма по сво- режиме, так и в архивно-ссылочном).
ему желанию. Многие теле- и радиозвёзды перейдут
Сетка программ телевидения ста- в Интернет, поскольку смогут здесь
нет очень подвижной. Она будет делать в звуке и живом изображении
прерываться в момент важных и экс- практически то же самое, что они
тренных событий: картинка автома-
тически будет переноситься не в
студию, а на место происшествия.
Зритель сможет использовать техно-
логию детализации. Он сам будет вы-
бирать в кадре тот фрагмент, кото-
рый его интересует, укрупнять его,
монтировать со следующим, с лицом
ведущего и т. д. Зритель сможет стать
и участником ток-шоу, соединяясь со
студией по цифровому каналу и по-
сылая в неё своё виртуальное изобра-
жение через Интернет.
Интернет-издания в будущем
не будут иметь себе равных среди

588
Современные информационные технологии

ИНФОРМАЦИОННЫЕ ВОЙНЫ

В будущем самыми жестокими боями без правил в будет бомбить страну Z, то для агрессора главными
электронных СМИ будут информационные войны. станут не боевые действий, а сражения на страницах
Аксиомой станет выражение: «Кто владеет инфор- газет и журналов, на ТВ-экранах и в радиоэфире. Ес-
мацией, правит миром». Информация, скорость её ли о реальной войне нельзя не сообщать, то войну мож-
получения и обработки, напрямую будет связана с но назвать «мелкими столкновениями конкурирующих
успешностью в бизнесе. Вся деловая активность со- бандитских группировок». Ну а если всё-таки прихо-
средоточится в сфере купли-продажи акций пред- дится говорить о полномасштабных военных действи-
приятий и поставок. Поэтому конкурирующие орга- ях, то будут смещены оценочные характеристики.
низации будут использовать все имеющиеся каналы Никто не узнает правды, если страну-агрессора на-
получения информации, и неоценимую помощь в этом звать государством, борющимся с «осью зла». Банди-
оказывают все СМИ, в которых информация присут- тов, наркодельцов и торговцев людьми, прикрыва-
ствует как в чистом, подробном виде, так и в анали- ющихся националистическими лозунгами, можно
тических материалах, упоминаниях в иных контекс- именовать борцами за свободу и независимость, а тех,
тах, намёках и в случайных цитатах. СМИ будут ещё кто пытается противостоять им, клеймить как органи-
больше гоняться за эксклюзивной, особенной, недо- заторов геноцида. С другой стороны, жестокость воен-
ступной конкурентам информацией, чтобы размес- ных или полицейских сил по отношению к простым
тить её у себя, опередить и выиграть зрителя-слуша- людям можно легко скрыть за рассказами о борьбе с
теля. При этом политики, представители власти будут бандитскими формированиями и их пособниками, пугая
использовать СМИ в своих целях активно и беззас- население уже случившимися или ожидаемыми терак-
тенчиво. Естественно, что журналистика даёт пред- тами. Политики, крупные бизнесмены и целые госу-
ставления и знания человека об окружающем мире, дарства будут всё больше прибегать к информацион-
и сведения об этом мы можем получать только из ным и пропагандистским ресурсам журналистики.
СМИ. Часто нам кажется, что мнение по поводу ка- На этом фоне сами войны будут просто играми в
кого-то факта мы формируем сами, исходя из собст- песочнице.
венных аналитических способностей. Однако это не
так. Мы пользуемся информацией, которую нам кто-
то предоставляет, и она может быть как субъектив-
ной, так и объективной. Она может быть дозиро-
ванной и содержать необходимые информатору
акценты и сведения. Например, СМИ могут со-
общать только о повышении жизненного
уровня в Европе и Америке. И никто и ни-
когда не узнает о голоде где-нибудь в
Африке, потому что об этом никто не
сообщил. Мир огромен, и обычный
человек не может знать, что
происходит не только на
другом конце света, но и
в соседнем городе, если
у него нет там знакомых.
Выигрывать войны
будет тот, кто в своих
интересах будет исполь-
зовать средства информа-
ции, формируя обществен-
ное мнение. Если страна X

делали раньше, но расширят аудито- ции. Это окажется любопытно как


рию. Можно будет увидеть, как автор обычным читателям, так и студентам
сам читает свой материал. Кроме то- факультетов журналистики, для кото-
го, в онлайновом режиме можно бу- рых такие наблюдения станут мастер-
дет увидеть и процесс работы редак- классом профессионалов.

589
Информация и информатика

АУДИО XXI ВЕКА

ПЕРЕЗАПИСЬ = за несколько минут. В сущности, 6 ч


музыкальных записей, хранящихся в
КОПИРОВАНИЕ формате MP 3 (поток в 256 кбит/с),
копируются за 6 мин.
Переход от кассет и виниловых пла- Итак, копирование записей благо-
стинок к CD и мини-дискам улучшил даря компьютерам очень упростилось.
качество звучания, в результате появи- Теперь каждый может организовать у
лась возможность осуществлять пере- себя дома производство компакт- и ми-
запись со скоростью, намного превос- ни-дисков. И оборудование, которое
ходящей скорость воспроизведения. потребуется для этого, недорого. А как
При перезаписи аудиокассет даже с же авторские права? Законодательно
удвоенной скоростью качество звука оформленное запрещение «дикого»
неминуемо ухудшается. Этого не про- копирования вряд ли кого-то оста-
исходит, если копировать цифровое новит. Необходимо вообще пресечь
представление звука. Скорость копи- незаконное производство записей.
рования зависит только от устройств, На практике, при наличии в каж-
которые используются при этом. На- дом доме компьютера, подключён-
пример, CD на компьютере теорети- ного к Интернету, это сделать не уда-
чески может достичь скорости чте- ётся.
ния в 50 раз выше (в действительности
около десяти раз) скорости обычно-
го воспроизведения, а при записи на ИСТОРИЯ NAPSTER
CD — в десятки раз выше. То есть
74-минутный CD удастся переписать Летом 1999 г. 19-летний Шон Фэн-
нинг создал программу Napster, поз-
Механизм мини- воляющую при помощи Всемирной
дискового плеера. паутины обмениваться музыкальны-
ми файлами в формате MP 3. В си-
стеме использовались специально вы-
деленные машины Сети — серверы
Napster, которые обеспечивали поиск
MP 3-файлов на компьютерах под-
ключённых пользователей, а сам об-
мен происходил напрямую. Сущест-
венная доля записей, циркулирующих
в Napster-среде, распространялась в
обход закона об авторских правах.
За считанные дни Napster приобрёл
огромную популярность у студентов
американских университетов, но сво-
бодный обмен файлами закончился
менее чем через полгода.
7 декабря Ассоциация индустрии
В мини-дисковых устройствах установлен так называемый за-
звукозаписи Америки (RIAA) подала в
прет на серийное копирование. Оборудование позволяет запи-
суд на компанию Napster, обвинив по-
сывать как по цифровому (оптическому) каналу, так и по обыч-
следнюю в «прямом и косвенном на-
ному, аналоговому. Если диск записан при помощи цифрового
рушении авторских прав». Napster по-
канала или несёт заводскую фонограмму, то переписать его мож-
пал на первые полосы газет.
но только по аналоговому каналу (записывающая дека «знает»,
При рассмотрении иска адвокаты
что пишет), а воспроизвести по цифровому. Тогда при переза-
защищали свою позицию тем, что на
писи качество звука теряется. Напротив, если диск записан по
серверах Napster не хранится пират-
аналоговому каналу, то его можно переписать по цифровому.
ских материалов. В апреле 2000 г.
При помощи компьютера этот запрет легко обойти.
группа «Metallica» подала в суд на
Napster за нарушение их авторских

590
Современные информационные технологии

прав. Тогда же рэпер Андре Янг подал


иск как на Napster, так и на всех поль-
«С первого класса в школах внушали, что поделиться книгой —
зователей, которые обменивались пи-
ужасное преступление, сравнимое с морским пиратством. Шан-
ратскими записями его песен. Napster
сов ускользнуть от бдительного ока SPA — Software Protection
пришлось прекратить доступ к своим
Authority (Служба защиты программного обеспечения) — прак-
серверам более чем полумиллиону
тически не было. Дэн знал, что каждая книга имела контроль-
пользователей (любители metallica и
ный монитор, который сообщал, кто и когда её читает, в Центр
поклонники Dr. Dre), чьи IP-адреса уда-
лицензирования (Central Licensing). Как только компьютер вой-
лось выявить по заказу истцов. В ответ
дёт в Сеть, Центр может это засечь, а Дэн, как владелец ком-
возмущённые пользователи направи-
пьютера, понесёт самое тяжёлое наказание за то, что не преду-
ли жалобы адвокатам истцов. Только
предил преступления».
в течение одной недели было подано
более 30 тыс. таких жалоб. Р. Столмен.
Правда, у Napster появились и сто- «Право читать»
ронники: рэперы Chuck D и Ice-T на-
звали эту систему «радио двадцать пер-
вого века». Она даёт музыкантам
возможность напрямую общаться со
своей аудиторией. Соответственно
увеличиваются объёмы продаж их за-
писей.
12 июня 2000 г. RIAA потребовала
закрыть Napster.

ПРАВО ЧИТАТЬ,
СЛУШАТЬ, СМОТРЕТЬ

Napster представляет собой гораздо


меньшую опасность, чем принято ду- сий Gnutella и подобных программ,
мать в RIAA. Запрет Napster не пре- которые существовали параллельно
кратил неконтролируемый обмен с Napster. Так что конфликт компа- Некоторые универси-
файлами в Сети. В ней живут и пре- нии Napster и махины американской теты закрыли доступ
красно себя чувствуют десятки вер- индустрии звукозаписи не сводится к Napster, обнаружив,
только к проблеме нарушения автор- что 20 % трафика со-
ских прав. ставляют MP3-фай-
Ричард Столмен, «отец» GNU, напи- лы. Возмущённые сту-
сал очень удачный фантастический денты организовали
рассказ «Право читать», в котором за кампанию протеста и
несколько лет до истории с Napster сбор подписей про-
поднимались те же проблемы. тив закрытия досту-
Наличие систем, подобных Naps- па к Napster.
ter, — свершившийся факт, и за-
претить их, разумеется, нереально.
Можно, конечно, организовать сколь
угодно сложные методы защиты, из-
дать сколь угодно суровые законы,
только это приведёт к обратному ре-
зультату. Скорее всего, объёмы про-
даж упадут, а защита будет вскрыта.
Если оборудование ограничивает сво-
боду граждан в том, что слушать,
смотреть и читать, то таким оборудо-
ванием перестают пользоваться. По-
лучается, что владеть авторскими пра- Виниловая пластинка,
вами в XXI в. — самое выгодное CD и мини-диск.

591
Информация и информатика

«Дэн знал, что её (героини. — Прим. ред.) семья принадлежит


к среднему классу и с трудом оплачивает обучение, так что на
книги и вовсе не хватает. Чтение чужих книг для неё могло быть
единственным способом завершить образование. Ситуация бы-
ла знакомой: он сам влез в долги, оплачивая статьи, которые
приходилось читать (10 % этих средств получали авторы; по-
скольку Дэн мечтал об академической карьере, он надеялся,
что на его собственные исследования будут ссылаться доста-
точно часто и он сможет вернуть долг).
Позднее Дэн узнал, что было время, когда каждый мог пой-
ти в библиотеку и бесплатно получить журнальную статью и
даже книгу. В те годы существовали независимые студенты,
которые могли читать тысячи страниц, не прибегая к прави-
Сражение за право читать идёт
тельственным библиотечным грантам».
уже сегодня. Причём борются не за
абстрактные свободы, а за адаптацию
существующих законов, традиций и
норм, сложившихся в течение не-
скольких столетий, к новой реально-
Еще одна программа — Gnutella, которую выпустила компания
сти, возникшей с появлением Ин-
Nullsoft, автор MP3-плеера Winamp. В соответствии с идеоло-
тернета.
гией GNU вместе с программой распространялись и её исход-
В этих новых условиях воротилам
ные тексты. Gnutella, в отличие от Napster, позволяла, не под-
индустрии звукозаписи и видеозапи-
ключаясь к серверам системы, создавать собственные сети и
си, а также и книгоиздателям, види-
обмениваться файлами внутри них. Используя Gnutella, можно
мо, придётся в корне пересмотреть
организовать обмен любыми файлами. Кроме этой программы
способы своего взаимодействия с ау-
была выпущена целая серия подобных продуктов.
диторией. Возможно, авторы и ком-
пании откажутся от получения сверх-
прибылей, и тогда стоимость CD
предприятие. Однако, если некто сравнится со стоимостью их распро-
может подать иск на врача, который странения по Сети, что в конечном
не вылечил больного, то почему нель- счёте только увеличит авторский го-
зя подать в суд на автора книги, если норар. Ведь именно так и борются с
эта книга не понравилась читателю. пиратством, распространяя легаль-
Ведь проценты автору выплачены ную продукцию по цене ниже кон-
сполна. трафактной.
Аккорд — одновре-
менное сочетание
трёх и более звуков, ПРОГРАММИРОВАНИЕ МУЗЫКИ
как правило располо-
женных по терциям.
На нотном стане но- Ещё в начале 80-х гг. в некоторых мо- каждый мог выступать с персональ-
ты, обозначающие делях популярных электронных кла- ными концертами, не привлекая до-
терцию, лежат на со- вишных инструментов — электро- полнительно музыкантов. В СССР в
седних линиях или в органах — появилась очень удобная конце 80-х гг. существовал огромный
соседних промежут- функция, когда композитор мог не спрос на исполнителей популярной
ках между линиями, только извлекать электронный звук, музыки, обладающих домашним син-
например до-ми-соль. но сразу распечатывать ноты сыгран- тезатором с автоаккомпанементом.
Терция — интервал ной мелодии. В те времена это было Тут сыграл определённую роль дефи-
между нотами в 1, 1/2 пределом мечтаний многих компо- цит композиторов, пишущих поп-му-
или 2 тона (малая и зиторов — ноты без карандаша и бу- зыку. Появилась масса групп и псев-
большая). маги! докомпозиторов, придумывающих и
Первые инструменты с автоак- исполняющих простейшие мелодии.
компанементом произвели насто- Они сочиняли мелодии всего в три-
ящий фурор. Теперь практически четыре такта с использованием авто-

592
Современные информационные технологии

аккомпанемента, записывали и ус-


пешно продавали новоиспечённые
хиты. Вероятно, сказались бреши в
массовой музыкальной культуре рос-
сиян, ведь долгое время поп-музыка
была фактически под запретом.
В отличие от оркестровки, когда
произведение (для фортепиано) «рас-
кладывается» на инструменты оркес-
тра, при аранжировке к основной му-
зыкальной теме композитора могут
быть добавлены штрихи, характерные
жанру композиции.
Аранжировка строится на том, что
в любом музыкальном стиле есть на-
бор некоторых правил, ограничива-
ющих композитора. Существуют об-
щие правила для разных стилей, так,
практически любой аккорд имеет тер-
цовую основу. Но, например, в хард-
роке используют так называемый
двойной бас (добавление к основной ния мелодии без midi-клавиш, прямо Синтезатор.
мелодии двузвучий электрогитары). на клавиатуре компьютера: нижний
Разные стили, как правило, имеют и ряд клавиш имитировал белые, а сле-
различный ритмический рисунок. На- дующий ряд — чёрные. Оркестровка
пример, смещение в такте акцента на позволяла использовать пять инстру-
некоторую долю вперёд или назад да- ментов и даже монтаж произведения
ёт характерную блюзовую окраску с голосом вокалиста. Исполнению
произведению. Это смещение, кото- готовых композиций можно было
рое может быть и в басу, и в ударной подыгрывать, причём имелся интерес-
группе, даёт ощущения ожидания оче- ный режим (вероятно, для начина-
редной музыкальной фразы блюза, ющих исполнителей), когда непра-
создаёт его неповторимый рисунок. вильно сыгранная нота автоматически
При этом характер мелодии (мажор, корректировалась до ближайшей пра-
минор) и темп произведения не яв- вильной.
ляются атрибутами стиля. Более совершенные программы
Как при традиционной, так и при позволяли в созданных сэмплах (зву-
компьютерной аранжировке стили ках инструмента) на ходу менять вы-
представляют собой наборы шабло- соту, темп, частотную характеристику
нов, приёмы аранжировки, характер-
ные для конкретного стиля. Они хоро-
шо известны, и их изучают в процессе
специального музыкального образо-
вания будущие композиторы и аран-
жировщики. Эти приёмы частично
формализованы и используются в син-
тезаторах с автоаккомпанементом и в
специальных программах.
Первые опыты компьютерной
аранжировки хотя и давали правиль-
ные с точки зрения теории музыки
композиции, но были уж очень про-
сты, не учитывали характер мелодии.
Одна из популярных программ Band-
In-a-Box (фирмы PG Music Inc.) предо-
ставляла музыканту удобный простой
интерфейс, возможность исполне-

593
Информация и информатика

лать и другой. Правда, поражает вооб-


ражение огромное количество мате-
Сейчас часто происходит подмена понятий, и электронная му-
риала, который используется при
зыка понимается слишком широко, а именно как любая компо-
аранжировке. Если выбран индивиду-
зиция, сыгранная при помощи электронных инструментов. На са-
альный «почерк», то можно даже на
мом деле если музыкальное произведение может быть сыграно
компьютере с автоаранжировкой, со-
на «живых» инструментах без заметной смены звучания, то вряд
здать неповторимое произведение.
ли стоит его относить к электронной музыке. Электронными яв-
Так, популярная программа DJ Dan-
ляются те композиции, которые немыслимо создать или воспро-
ce (фирмы Ejay) фактически позволя-
извести без помощи компьютера и электронных инструментов.
ет собирать композицию на 32-доро-
жечном микшере. Набор сэмплов для
прогрессивной танцевальной музы-
мелодии. Так можно было напеть по- ки исчисляется десятками тысяч, и
пулярную музыкальную фразу на од- можно создавать свои сэмплы.
В современных сту- ном по высоте тоне, соблюдая только Разнообразный набор эффектов,
диях электронной му- ритмический рисунок. Затем выбрать драм-машина и многое другое поз-
зыки отсутствуют не стиль и сыграть мелодию, используя воляют получить специфическую му-
только привычные этот сэмпл в качестве нового звуча- зыкальную студию у себя дома. Надо
инструменты, но да- ния инструмента. Например, «Эх, ду- только иметь чуть-чуть музыкально-
же midi-клавиатуры. бинушка, ухнем» в стиле регги. го слуха, немножко вкуса, и при пол-
Теперь, когда имеется огромный ном незнании музыкальной грамо-
выбор сэмплов, можно на ходу менять ты можно создавать неповторимые
сам ритмический рисунок и програм- композиции.
мировать практически любые компо- Сейчас многие композиторы ак-
зиции разных исполнителей в каком тивно применяют компьютеры в сво-
хочешь стиле. Компьютерная аран- ей творческой работе, причём на во-
жировка неудобна при записи с вока- прос, что может делать композитор
листом, так как компьютерное испол- при помощи компьютера, часто
нение слишком правильно соблюдает отвечают — практически всё. Вот на-
ритм и не следит за голосом. То, что сколько компьютер удобен для ком-
Синтезатор-
фортепиано может «запрограммировать» на ком- позитора. Однако надо сразу огово-
Yamaha 2000 pro. пьютере один композитор, может сде- риться, что всё, кроме фантазии,
творчества и воображения. К счастью,
пока машина не даёт сама себе зада-
ний на написание той или иной ком-
позиции.
При этом компьютер можно ис-
пользовать на протяжении всего про-
цесса создания нового произведе-
ния. В начале просто как «пишущую
машинку» для композитора. Потом,
в процессе аранжировки, «окраски»
основной темы в различные жанры,
компьютер фактически даёт новое
звучание композиции: от традицион-
ных стилей до элитарной электрон-
ной музыки. Затем машина выполняет
аудиомонтаж, например при подго-
товке CD.
Если речь идёт об электронной
композиции, то отдать монтаж «на
сторону», как правило, немыслимо
для автора, так как монтаж может из-
менить авторское звучание электрон-
ной музыки.
При столь развитой вычислитель-
ной технике композитор имеет воз-

594
Современные информационные технологии

можность работать у себя дома, а не в


студии. Для создания нового произве-
дения используются разные инстру-
менты и предустановленные сэмплы в
синтезаторе либо на компьютер с
CD ROM загружаются новые (профес-
сионалы имеют обширную базу сэмп-
лов, занимающую сотни CD ROM, со-
держащую тысячи различных звучаний
саксофона, альта и т. п.), в том числе из
Интернета. Можно, например, вклю-
чить в композицию партию для кла-
вишных, которая будет звучать точно,
как рояль Steinway в Карнеги-холле.
Сейчас, взяв с собой в путешествие
ноутбук с midi-интерфейсом, компо-
зитор может организовать себе сту-
дию в любой точке мира, что-то до-
писать, доделать и даже создать, летя
в самолёте, а затем воспроизвести на
концерте, подключив свой компью-
тер к аппаратуре на сцене.

Рабочее место
современного
композитора.
КИНО И ФОТО В НОВОЙ ЭПОХЕ

ЦИФРОВЫЕ АКТЁРЫ являться первые подобные игры на


компакт-дисках.
Голливуд, как известно, «фабрика Настоящие актёры с экрана мони-
грёз». Как ни ругают американские тора разговаривали с игроком и друг
киностудии за бесконечную погоню с другом, бегали, стреляли и даже
за прибылью, надо признать, что аме- умирали в игре (а в кино умирают
риканское кино всё же не случайно только один раз). Так появилось
лидирует в прокате. Индустрия кино (естественно, в Голливуде) новое
развита в США лучше, чем где-либо в амплуа — digital actor (англ. «цифро-
мире. вой актёр»). Одной из первых в этой
В конце 80-х гг. как в России, так и серии была игра «Critical Path» («Опас-
за рубежом предвидели появление ный путь»), выпущенная в середине
симбиоза компьютерных игр и кино- 90-х гг. XX в.
фильмов. С одной стороны, это была
всё та же игра, в которой человек мог
активно влиять на происходящие на
экране компьютера события. С дру-
гой стороны, предполагалось, что это
всё-таки кино, где играют настоящие
актёры, только практически каждый
эпизод имеет несколько вариантов.
«Ходилки» и «стрелялки» знакомы
каждому, но до появления качествен-
ного изображения на экране ЭВМ и
носителей информации, способных
вместить весь обильно ветвящийся
сюжет, о таких киноиграх можно бы-
ло лишь мечтать. Всё изменилось к се-
редине 90-х гг. XX в., когда стали по-

595
Информация и информатика

её. Затем отснятый материал цифру-


ют, вводя в компьютер, заменяя синий
цвет на белый и заполняя сценами из
кинофильма или игры. В традицион-
ном кинематографе для обработки
сцен комбинированных съёмок часто
обходятся без компьютера и исполь-
зуют чисто аналоговую аппаратуру,
которая «вырезает» героя из синего
экрана и накладывает на отснятый
материал. Синий (а часто и зелёный,
особенно в виртуальных телевизион-
ных студиях) цвет экрана использу-
ется потому, что в самом изображе-
нии человека этот цвет практически
не встречается и его легко выделить.
В процессе съёмок актёры снима-
ются не только в массе дублей, но и
во многих сценах, которые похожи
одна на другую, ведь речь идёт о раз-
личных финалах одного и того же
эпизода. Актёр умирает сотни раз за
игру, причём каждый раз по-разно-
DVD и видеокассетa. Вот что говорит актриса Эйлен му. Цифровым актёрам трудно вжи-
Вейсингер о своей первой роли в иг- ваться в образ, так как сюжетная
ре: «До этой роли я использовала ком- линия неединственна. Кроме того,
пьютер только для написания текстов. актёр должен сыграть роль так, что-
Когда мне сказали, что буду снимать- бы играющим хотелось отождествить
ся в интерактивной игре, я подумала, себя с героем.
что игрок просто будет управлять «Моя героиня имеет очень слож-
Фактически первый моими движениями, как в играх про ный характер. Мне хотелось сыграть
компьютерный ани- карате. Меня посадили за компьютер её как можно правдоподобнее, при
мационный фильм и показали на примере игры ''Шерлок этом так, чтобы играющий действи-
сняла студия Дис- Холмс'', как всё будет выглядеть». тельно захотел спасти её. Я добавила
нея, а назывался он Технология blue screen одинакова ей немного юмора», — вспоминает
«История игрушек». для съёмок кино и игр. Актёр играет Эйлен Вейсингер.
За ним последовали сцену перед голубым экраном, а опе- Не все популярные актёры согла-
«Муравей Анц» и ратор тщательно следит, чтобы на сятся участвовать в интерактивном ки-
«Жизнь жуков». Но экране не появлялись тени. Если актёр но или игре. Многие относятся к но-
это были мультфиль- делает неверное движение, например вой актёрской специальности как к
мы. рукой, не видя препятствия, то в ком- менее творческой. Игры напоминают
пьютерной сцене там может распола- собой «мыльные оперы», когда сцена-
гаться стена и герой просто проткнёт рий на сегодняшнюю съёмку готов
только вчера и актёры не знают судь-
бы своего персонажа до конца съёмок.
Однако менее столетия назад так
«Конечно, я расстроена, что играющие ожидали увидеть глав-
же относились и к профессии кино-
ным героем мужчину. В процессе съёмок я представляла игро-
актёра, считая игру в фильмах искус-
ков двуполыми существами. Зато я довольна своим костюмом.
ственной из-за неизбежного обилия
Мне достался лёгкий комбинезон с топиком и автоматом через
дублей на съёмках.
плечо. Меня однажды захотели одеть в короткие шорты, но я
отказалась, решив, что моя героиня не кошечка. Она что-то сред-
нее между Сарой Коннер из ''Терминатора'' и француженкой
Никитой».
КОМПЬЮТЕРНОЕ КИНО
Из рассказа актрисы Эйлен Вейсингер В течение столетия киноплёнка оста-
валась основным носителем при про-
изводстве и показе фильмов. Но, похо-

596
Современные информационные технологии

Кадр из фильма
«Последняя
фантазия. Духи».

же, в XXI в. всё изменится: наступает на Земле существа могут сопротив-


эпоха цифрового кинематографа. ляться вторжению фантомов, но для
И дело даже не в том, что некоторые полной победы «внутренние духи» Американскую вер-
кинематографисты уже снимают на необходимо собрать в одном живом сию «Последней фан-
мини-камеры формата DV (digital существе — докторе Аки Росс. Кроме тазии...» озвучивали
video), а материал затем переносит- того, ей и её товарищам нужно оста- такие звёзды, как
ся на киноплёнку и показывается в ки- новить военных, которые хотят по- Алек Болдуин, До-
нотеатрах. И не в том, что производ- просту уничтожить Землю. налд Сазерленд,
ство «Истории игрушек-2» целиком Выход фильма с бюджетом почти Джеймс Вудс (его го-
было цифровым и в большинстве слу- 150 млн долларов любители анима- лосом говорил зло-
чаев при прокате использовались ци- ционного кино восприняли на ура. дей). С изображени-
фровые проекторы. Дело в том, что в Некоторые герои получились более ями компьютер уже
XXI в. появилось компьютерное ки- естественными, чем другие, но ещё справляется, чего
но, которое выглядело совсем не как никогда раньше модели персонажей нельзя сказать о го-
мультфильм, а как настоящий кино- не были столь похожими на живых лосе. Здесь пока нуж-
фильм, в котором играли не люди, а актёров. Когда смотришь фильм, за- ны живые актёры.
созданные на компьютере персона- бываешь о том, что перед тобой тво-
жи. Одним из первых опытов стал рение программистов. «Последняя
фантастический боевик «Последняя фантазия...» стала компьютерным про-
фантазия. Духи» японского режиссё- рывом в кинематографе.
ра Хиронобу Сакагучи, появившийся
на экранах в 2001 г. Персонажи «По-
следней фантазии...» созданы при
Вскоре после выхода на экраны фильма «Последняя фантазия...»
помощи компьютеров, причём в них
был продемонстрирован визуальный образ героини, но не с по-
всё правдоподобно, вплоть до пор на
мощью цифрового видео, а непосредственно на компьютере,
лице. Вымышленный мир достоверно
оснащённом графическим процессором nVidia Quadro DCC.
воссоздан с помощью новейших
Машина в реальном времени генерировала кадры. При этом
разработок в области спецэффектов.
только для прорисовки причёски Аки процессор за секунду
События в фильме разворачивают-
обрабатывал более 1,5 млн элементов изображения, что превы-
ся в далёком 2065 г., когда Землю за-
шает число волос на голове у человека.
хватили инопланетяне, пожирающие
души людей. Некоторые оставшиеся

597
Информация и информатика

авторами не ставилась задача заме-


нить настоящих живых исполните-
лей компьютерными.
Однако, возможно, недалёк тот
день, когда «Оскара» за лучшую роль
(мужскую или женскую) получит ци-
фровой актёр. А вручать желанную
статуэтку будут… компьютеру.

ОТ ЧЁРНО-БЕЛОЙ
ФОТОГРАФИИ
К МОНТАЖНЫМ СТУДИЯМ
Цифровые технологии незаслуженно
часто обвиняют в бездушности. Фо-
Кадр из фильма Появление цифровых актёров тохудожники XX в. использовали ана-
«Последняя фантазия. приведёт к большим изменениям у логовые широкоплёночные фотоап-
Духи».
настоящих работников этой профес- параты, тщательно выбирали сюжет
сии. Гильдия актёров (Screen Actors фотографии, место и освещение. Для
Guild — SAG) серьёзно обеспокоена проявки плёнки изготавливали соб-
тем, что в скором времени обычные ственные составы реактивов. Процесс
актёры, особенно статисты, могут печати был продолжителен и требо-
остаться без работы. На роль партнёр- вал специальных условий (проходил
ши Аль Пачино в фильме «Симона» в темноте). Но вся цепочка от съёмки
режиссёр Эндрю Николь разыскивал до выставки содержала в разной сте-
цифровую актрису, так как предло- пени элементы творчества. Сейчас
женные живые его не устроили. Впо- технология изменилась.
следствии шум слегка улёгся, когда Большинство операций произво-
оказалось, что сценарный замысел дится при помощи компьютера, а фо-
перепутали с режиссёрским запросом. тограф определяет лишь сюжет и объ-
Главная героиня должна быть просто ект съёмки. Можно сказать, что всё
ненастоящей. остальное делается компьютером, а
Не исключено, что незавидная не художником, которому остаётся
судьба ожидает настоящих звёзд Гол- только «нащёлкать плёнку» на одно-
ливуда. Так, образ реального актёра разовом фотоаппарате и отдать её в
может быть использован для создания студию на обработку. Машина всё
его цифрового дублёра. Известный ак- выполнит сама. И в результате полу-
тёр Чарли Шин предложил образовать чатся фотографии неплохого каче-
комитет, который защитил бы его ства. При старой технологии гаран-
коллег от копирования. тированного результата добиться
В конце 2002 г. на экраны вышла было довольно сложно.
очередная компьютерная лента «Эли- Но осталось немало художников,
зиум». Этот анимационный фильм использующих аналоговые фотоап-
уже неуместно называть мультиплика- параты и раритетную технологию и
ционным, так велико ощущение реаль- считающих, что при цифровой твор-
ности происходящего на экране, хотя чество сведено на нет.
На самом деле новая технология
Карта памяти даёт художнику ещё больше просто-
современного ра для творчества. Просто место тём-
сотового телефона.
ной комнаты, химикатов и фото-
увеличителя заняли компьютер и
программы обработки изображений.
И неважно, использует настоящий ху-
дожник мольберт и палитру или ком-
пьютер и принтер.

598
Современные информационные технологии

АВТОМОБИЛЬ
И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

По некоторым прогнозам, век двига- Коммуникацию можно обеспечи-


теля внутреннего сгорания скоро вать не только с внешним миром, но и
завершится. Так, в США через пару внутри автомобиля. Так, если в цент- По прогнозам, в 2010 г.
десятков лет в результате реализации ральном блоке использовать кодиро- доход от информаци-
широкомасштабного проекта «Авто- ванный сигнал для световых приборов онных систем в авто-
мобиль Свободы» три ведущие кор- и передавать его по одному проводу, мобилях вырастет до
порации Daimler Chrysler, General например на задние фонари, где сто- уровня 50 млрд дол-
Motors и Ford должны будут разрабо- ит декодирующий блок, то вместо тол- ларов США в год c
тать и осуществить массовое произ- стого пучка проводов, идущего по суммарного мирового
водство автомобилей, использующих машине к багажнику, понадобится объёма этой отрасли
вместо бензиновых моторов электро- только два провода: по сигнальному в 4 млрд долларов на
двигатели. Предполагается устанавли- будут передаваться управляющие им- начало XXI в.
вать моторы, работающие за счёт пульсы, а силовой подведёт питание к
окисления водорода. Этим будет обес- фонарям и декодирующему блоку. (Как
печиваться экологическая чистота правило, минусовый провод в автомо-
автомобилей. Мало того, в результа- биле заземлён на железный кузов, по-
те значительно снизится потребле- этому не потребуется третьего прово-
ние нефти, а значит, и зависимость да.) Сигналы, представляющие собой
государства от её импорта. короткие импульсы, станут кодировать
Информационные технологии включение и выключение соответст-
лишь косвенно влияют на смену ти- вующей лампочки в фонарях (три им- Соединённые Штаты
па силового агрегата в автомобиле. пульса — включить стоп-сигнал, Америки потребляют
Основные изменения будут связаны с четыре импульса — выключить стоп- 25 % добываемой в
повсеместным внедрением электрон- сигнал, пять импульсов — включить мире нефти.
ных коммуникационных устройств в мигание левого поворотника, шесть —
транспортные средства. выключить и т. д.).
Компания Daimler Chrysler подго- Другой сферой приложения ин-
товила концептуальную машину с обо- формационных технологий являют-
рудованием, позволяющим не только ся системы управления двигателем,
информировать о пробках на дорогах трансмиссией, бортовые вычислите-
и расстоянии до того или иного пунк- ли — информационные компьютеры,
та, но и получать почту через Интер- электронные средства охраны авто- Салон современного
нет и просматривать сайты. На пане- мобиля и т. п. автомобиля «форд».
ли перед водителем расположен
компьютер с голосовым управлением,
а также два терминала с сенсорными
экранами для пассажиров. Предпола-
гается, что во время движения не толь-
ко водителя, но и пассажиров будет
интересовать содержимое сайтов.
Помимо Daimler Chrysler два дру-
гих гиганта американской автомо-
бильной индустрии — General Motors
и Ford ведут разработки в области
беспроводных телекоммуникаций
и онлайнового сервиса в примене-
нии к автомобилям. Как считают
специалисты, такие интегрирован-
ные средства обработки и переда-
чи информации сделают машины
более привлекательными для ав-
товладельцев.

599
Информация и информатика

ния и др. Часто поломка компьютеров


связана с условиями эксплуатации ав-
томашин, ведь перепады температуры
о
могут быть от –50 С до + 50оС. Такая
компоновка компьютера неудобна,
так как перепрограммирование сво-
дится к перестройке блока, часто с за-
меной элементов, когда не обойтись
без паяльника. При использовании
интегральных схем программа, в ча-
стности управляющая зажиганием и
корректирующая угол его опереже-
ния в процессе работы, целиком по-
мещалась в память управляющего про-
цессора и учитывала тысячи значений.
При изготовлении такого блока для
нового мотора не требовалось пере-
проектировки всего блока, более то-
го, блок оставался тем же самым, толь-
ко в нём менялись программа или её
данные. Таким образом, снижались фи-
нансовые затраты при производстве
двигателя.
Всё вышесказанное относится и к
другим системам, например блокам
управления автоматической коробкой
Системы управления и диагности- передач, кондиционером, трансмис-
ки агрегатов автомобиля появились сией полноприводных автомобилей.
ещё в XX в. и распространены в так на- Состояние мотора также можно
зываемых моторах с инжектором. оценивать при помощи компьютера.
Иногда приходится слышать от авто- Для регулярной смены масла владель-
владельцев жалобы на то, что у их цу не придётся запоминать последние
машин «полетел» компьютер. Правда, показания одометра, компьютер сам
эта часть автомобиля, как правило, известит о необходимости заехать на
Концепт-кар — самая надёжная. В XX столетии систе- станцию техобслуживания, причём
образец машины мы управления подачей топлива в мо- заранее предупредит об этом. Если
недалёкого будущего, торе использовали в качестве элемент- условия эксплуатации были тяжёлы-
изготовленный
фирмой Daimler ной базы не микросхемы, а «россыпь» ми, то, основываясь на показании спе-
Chrysler. элементов: транзисторы, сопротивле- циальных масляных датчиков, ком-

600
Современные информационные технологии

Концепт-кар «Лада»
Автосалон-99. Москва.

пьютер может предупредить о внеоче- Для работы подобных систем не-


редной замене. Правда, бортовые ком- обязательно иметь встроенный в ав-
пьютеры XX в. были не очень инфор- томобиль компьютер или, например, Геоинформационная
мативными. Они, как правило, лишь ноутбук. Существуют мини-системы система, содержа-
показывали расход топлива и оцени- для PDA, которые представляют собой щая описания боль-
вали, сколько горючего потребуется, электронную карту (на ней указаны шинства дорог США
чтобы преодолеть конкретное рас- все объекты вплоть до каждого дома) и приёмник GPS, под-
стояние. с базой данных в десятки тысяч адре- ключаемый к ноутбу-
Более важен для автомобилиста сов, обеспечивающую выбор опти- ку, занимает четыре
маршрутный компьютер, который мального маршрута движения, поиск CD ROM-диска.
подскажет, как добраться до места на- объекта и получение подробной ин-
значения. При этом удобно знать по- формации о нём. Такую систему вме-
ложение самого автомобиля, что сте с GPS-приёмником можно брать с
определяется при помощи GPS (англ. собой, выходя из автомобиля, чтобы
Global Position System) — системы гло- прогуляться по городу пешком. GPS-навигатор.
бального позиционирования. Пер-
сональный электронный штурман
при помощи 24 спутников, находя-
щихся на геостационарных орбитах,
позволяет определять местоположе-
ние, направление и скорость движе-
ния, планировать маршрут в поездках
и путешествиях. Программное обес-
печение обычно состоит из неболь-
шой информационной системы, где
на фоне карт показаны положение ав-
томобиля, предполагаемый маршрут
движения, расстояние до гостиниц,
автозаправок и т. п. Такие системы ав-
томатически прокладывают маршрут
до нужного места, отыскивая в базе
данных улицу, гостиницу.

601
Информация и информатика

ЭЛЕКТРОННЫЙ ДОМ

электроники CES 2001 главное вни-


мание участников было уделено кон-
цепции цифрового дома. Её суть со-
стоит в том, что домашние приборы,
включая компьютеры, телевизоры, му-
зыкальные центры, холодильники,
микроволновые печи и другие при-
боры должны представлять собой об-
щую, надёжную, быстродействующую
систему.
Лидер производителей микропро-
цессоров — фирма Intel предложила
объединить бытовые устройства во-
круг мощных домашних персональ-
ных компьютеров. Intel назвала свою
технологию «эрой новых возможно-
стей» (Extended PC Era). С развитием
Что такое электронный, или, как его электроники бытовые устройства
ещё часто называют, «цифровой», дом? вместе с домашними компьютерами
В американском фан- Многие знают об этом чуде техники создадут единую среду, благодаря ко-
тастическом фильме из художественных произведений. торой расширятся возможности и до-
«Вспомнить всё» же- Любой писатель-фантаст (или режис- машних приборов, и персонального
на главного героя уп- сёр), создавая книгу (фильм) о буду- компьютера. ЭВМ будет эффективно
равляет квартирой го- щем, считает своим долгом рассказать управлять бытовой техникой. Уже сей-
лосом: включает и и об устройстве быта. Причём этот час нетрудно обновлять программное
выключает свет и те- быт должен поразить читателя (зри- обеспечение многих устройств. Так,
левизор, тренируется теля) удобством и совершенством. в некоторые модели стиральных ма-
под руководством го- Электронный дом обязательно шин можно добавлять новые програм-
лограммы теннисиста. включает средство связи — как прави- мы или корректировать старые (осо-
Герой актёра Брюса ло, нечто среднее между видеотелефо- бенно, если в процессе массовой
Уиллиса в кинокарти- ном и телевизором. В нём действует
не «Пятый элемент» система безопасности: дом «узнаёт»
живёт скромно, тем хозяина, например по отпечаткам
не менее получает пальцев. Домашние приборы выпол-
электронную почту и няют голосовые команды. И естест-
пользуется видеоте- венно, в фантастических произведе-
лефоном. ниях показаны страшные эпизоды:
домашние компьютеры выходят из-
под контроля владельцев и с помощью
охранных систем захватывают в за-
ложники людей.
Как же обстоит дело в реальности?
В начале января 2001 г. в Лас-Вегасе
(США) на очередной выставке бытовой

Выдающиеся писатели-фантасты братья Стругацкие рисовали в


своих произведениях самые разные по характеру картины мира
будущего. В повести «Понедельник начинается в субботу» они с
юмором изобразили институт магии и чародейства. В произ-
ведениях «Стажёры» и «Полдень XXII века» описан быт жителей
Земли, подчинённый общей идее строительства лучшего мира.

602
Современные информационные технологии

ЧУДО-ПЕЧЬ

Речь пойдёт о самом любимом нами помещении в до-


ме — кухне. Чего только не изобретали учёные мужи,
чтобы облегчить тяжёлый труд матерей и жён. Это и
знакомые всем холодильники и плиты, и пока ещё ред-
кие в России посудомоечные машины, и микроволно-
вые печи. Вот об этих печках и поговорим. Современ-
ные микроволновые печи могут самостоятельно
приготовить множество блюд, надо только выбрать про-
грамму и нажать на кнопку. Словом, всё компьютери-
зировано, чего же ещё желать?
Но представим на минуту, что печь подключена ко
Всемирной сети, а также снабжена лазерным сканером,
таким же, каким пользуется кассир супермаркета для вы-
яснения стоимости продукта, когда пробивает чек. Итак,
мы дома кладём продукты в холодильник, пронося их ми-
мо сканера. Наш компьютеризованный помощник сразу же не будем его открывать, а поговорим с печью, полиста-
узнаёт название продукта, его вес и срок хранения (в за- ем список на экране. Выбираем продукты и спрашиваем
печатанном и открытом виде) и всё это запоминает. Ну печь. Что из этого можно приготовить? «Ага, вот список...
вот, холодильник полон. Теперь примемся за готовку. большой... А из этого? Ничего нельзя, жаль, а если в мага-
Выберем блюдо — печка может приготовить любое зин сходить? И что-то прикупить?» Да, теперь можно. Вы-
кушанье из поваренной книги! При этом смотрим на бираем рецепт, и печка сама заказывает в ближайшем су-
стекло печки — это цветной жидкокристаллический пермаркете недостающий продукт — через Интернет,
экран компьютера, дающий изображение блюда. Или естественно. Вот и посыльный. «Заказывали?» — спраши-
«листаем» длинный список блюд, произнося: «Ещё, ещё...». вает. «Да», — отвечаем. Начали готовить!
Или, чтобы не отвлекать разговорами с микроволнов- А пока микроволновая чудо-печь стряпает, мы смот-
кой домашних, по старинке жмём на кнопки. Прости- рим на её экране кинофильм, полученный по трансляции
те за прозу, готовим «суп гороховый». Значит, ищем на из Интернета. Как на экране телевизора. Только вся рек-
букву «с» — «суп», находим среди супов «гороховый», для лама в перерывах — от фирмы — изготовителя микровол-
наглядности смотрим фото, потом выбираем рецепт — новой печи, и промотать вперёд ролики нельзя. Прошло
столько-то того, столько-то этого... И, о чудо, печь зна- немного времени — и вкусный обед на столе. Пообеда-
ет, что все компоненты из рецепта есть в холодильни- ли. Поставили грязную посуду в посудомойку. А вдруг
ке. Выложили продукты — варим. Помощник не дрем- она тоже подключена к Интернету?
лет, дзинь, нам сообщение от печки: «Напоминаю вам,
что молоко, давно находящееся в холодильнике, завтра
испортится, истекает срок хранения». Надо что-то сде-
лать — вылить или выпить. Налили стакан молока. Несём
пустой пакет к сканеру. Говорим: «Пусто». Помощник
вычёркивает его из списка продуктов. Достаём ещё не
вскрытый пакет. Снова проносим мимо сканера. Печь
говорит: «Срок хранения истекает через четыре месяца».
Открываем пакет — и к сканеру. Говорим: «Открыли».
А помощник в ответ: «Срок использования — две недели
при хранении в холодильнике».
А вот и суп сварился. Попробовали. Вкусно.
Теперь другой рецепт. Кстати, поищем что-нибудь эк-
зотическое в Интернете. Что там можно найти на его про-
сторах? И что для этого есть у нас в холодильнике? Но да-

эксплуатации были обнаружены про- компьютера предложила использо-


граммные ошибки). вать вычислительные средства ЭВМ
Корпорация Microsoft в концепции для бытовых приборов, которые сами
нового домашнего управляющего не обладают вычислительной мощью.

603
Информация и информатика

Человек сможет управлять компьюте- вые видео- и фотокамеры, материал


ром отовсюду с помощью специаль- будет пересылаться через Интернет
ных сенсорных панелей. на домашний компьютер, так что не-
Группы ЭВМ объединяются в сети, обходимость возить с собой массу
как правило, при помощи проводов. карт памяти для хранения записей от-
Но в наши дни всё чаще используют падёт. Вероятно, такая же перспекти-
беспроводные соединения, особенно ва ждёт и MP 3-плеер, и магнитолу в ав-
в локальных сетях, в пределах одного томобиле.
помещения или нескольких комнат. Цифровые дома уже продаются
Высказывается даже предположение, в Европе, но пока они остаются ско-
что в наступившем десятилетии такая рее красивыми символами будуще-
технология будет главной. Вероятно, го, нежели атрибутом современной
средства беспроводной коммуника- жизни. Одна из основных возможно-
ции станут основой функционирова- стей современного электронного до-
ния домашней сети, в которую войдут ма, которая рекламируется продавца-
все домашние приборы. ми, — дистанционное включение и
Управлять электронным домом выключение света в комнатах и мани-
можно будет откуда угодно через PDA пуляции с занавесками (так хозяева
(электронную записную книжку), Ин- показывают потенциальным ворам,
тернет или даже сотовый телефон. Ре- что они дома). И, конечно, 50-дюй-
гулирование климата (температуры мовый плазменный телевизор в гос-
помещения) позволит сэкономить не- тиной с возможностью покупок on-
мало денег, например, когда хозяева line.
уезжают в отпуск. Ведь если в доме нет Но всё быстро меняется. В 2002 г.
Шпиль главного животных или теплолюбивых расте- известный энтузиаст информацион-
здания МГУ, ний, то нет и необходимости поддер- ных технологий из США Джозеф
увенчанный
антеннами. живать обычную температуру в жилых Джейкобс ввёл себе под кожу микро-
помещениях. А перед возвращением чип, чтобы лучше «понимать» компью-
хозяев температура будет автоматиче- тер. Не исключено, что подобная тех-
ски доведена до нормы. Если вы ре- нология вскоре позволит человеку
шите в отпуске поснимать на цифро- управлять цифровым домом.

ПРОГНОЗЫ НА БЛИЖАЙШЕЕ СТОЛЕТИЕ


Примерно те же зада-
чи сейчас выполняют Человек всегда стремился узнать, что
обычные автомобиль- его ждёт в будущем. Всматриваясь в
ные сигнализации: звёзды, раскидывая карты, он надеял-
они позволяют вла- ся найти ответы. Часто в качестве про-
дельцу дистанционно рицателей и предсказателей будущего
запускать мотор авто- выступают писатели и учёные.
мобиля, прогревать Имя Артура Кларка знакомо даже
салон, контролиро- тем, кто научной фантастикой не ин-
вать температуру в ма- тересуется. Славу ему принесли не
шине. Ведь так прият- только многочисленные романы и
но, выйдя из дома, выступления на страницах известных
сесть в тёплый автомо- изданий, но и фильм Стэнли Кубрика
биль, когда за окном «2001 год: Космическая одиссея», по-
20 градусов мороза. ставленный по сценарию Кларка. Пи-
сатель просит не называть его проро-
ком, хотя значительное число его
предсказаний сбылось. А вот некото-
рые из его прогнозов на будущее
Артур Кларк
на презентации …10-е гг. XXI в. Электронный мо-
своей новой книги. ниторинг практически вытесняет из

604
Современные информационные технологии

общества профессиональную пре- Кнопка вызова


ступность… экстренной помощи
на панели
…20—30-е гг. XXI в. Искусст- современного
венный интеллект достиг уровня автомобиля.
развития человеческого мозга. С это-
го момента на Земле началось сосу-
ществование двух разумных форм
жизни, причём вторая эволюциони-
ровала со скоростью, недоступной
биологической эволюции. К ближай-
шим звёздам отправились первые ко- безопасности система самостоя-
рабли, снабжённые системами искус- тельно пошлёт оператору сигнал SOS,
ственного интеллекта. Появились и тот вышлет на место аварии помощь.
клонированные динозавры из гене- Этаже система может использоваться
рированных компьютером ДНК. и как система сигнализации и как
…40—50-е гг. XXI в. Полностью спутниковая система обнаружения
усовершенствован автономный, ре- при угоне автомобиля. Современные
генерируемый, мобильный дом… «Уни- КПК и мобильные телефоны легко
версальный репликатор», основанный воспроизводят видео и изображают
на нанотехнологиях, может создать из себя «офис в кармане».
объект любой сложности при нали-
чии сырья и информационной мат- ***
рицы. Бриллианты и деликатесная еда
могут быть сделаны в буквальном Пребен Мейер, руководитель отдела
смысле слова из грязи. В результате за развития компании TeleDanmark, в
ненадобностью исчезают промыш- одном из интервью прогнозирует бы-
ленность и сельское хозяйство, а вме- строе распространение «думающей
сте с ними и недавнее изобретение техники» в домах. Он убеждён, что в
человеческой цивилизации — рабо- ближайшие 20—25 лет компьютеры
та! Взрывное развитие искусств, раз- практически полностью возьмут на
влечений, образования. Огромные себя заботу о жилище: стиральные ма-
территории планеты, которые боль- шины самостоятельно будут опреде-
ше не нужны для производства про- лять нужный режим стирки, микро-
довольствия, возвращаются в изна- волновые печи — готовить обед,
чальное состояние, молодые люди холодильники — заказывать продук-
могут дать волю своим агрессивным ты. Кроме того, автомобили смогут са-
инстинктам, участвуя в большой охо- ми резервировать время в автомас-
те с самострелами… терской, а тяжёлые электронные
Многие прогнозы уже сбылись: аппараты будут заменены лёгкими, как
фирма LG выпустила стиральную ма- бумага, экранами на стенах квартир.
шину, подбирающую оптимальный
режим стирки и сообщающую, сколь- ***
ко времени она будет длится; микро-
волновые печи имеют встроенные По прогнозам немецкого физика Ха-
программы приготовления блюд, при рольда Группа, опросившего более
этом в нужное время оповещающие 900 учёных, с XXI в. начнётся актив-
хозяйку, когда положить нужный ное строительство домов, оснащён-
продукт, а когда блюдо надо помешать; ных солнечными батареями на кры-
автомобильная компания Volvo уже шах и фасадах. Прогресс дойдёт до
выпускает автомобили со встроенной такого уровня, когда всю работу по до-
системой Volvo on call: при возникно- му будут делать компьютеры, даже му-
вении проблем водителю нужно лишь сорное ведро само станет сортиро-
нажать нужную кнопку, и система сама вать отходы.
соединит его с оператором, который Уже в первом десятилетии XXI в.
автоматически получит координаты операции с применением скальпеля
нахождения автомобиля, а в случае безвозвратно исчезнут. Хирург-микро-
аварии со срабатыванием подушки робот будет проникать во все органы

605
Информация и информатика

человека и производить необходимые


манипуляции — удалять тромбы, вво-
дить микродозы лекарства... Мини-ком-
пьютер заменит химика-эксперта, вы-
давая полную информацию о любом
веществе. Спустя ещё десять лет Евро-
па станет единой страной с единым
правительством и единой компьютер-
ной системой управления. Армия бу-
дет состоять в основном из компью-
терщиков... А к концу второй декады на
Земле появятся первые киборги — лю-
ди, сращённые с компьютером. Это вы-
зовет не только переворот в науке и
технике, но и новые нравственные про-
блемы, породит споры и глубокие раз-
ногласия в обществе.

***
ют преимущество в скорости, но у
Поражённый церебральным парали- них нет интеллекта. Однако скорость
чом английский учёный и мыслитель и сложность компьютеров удваива-
Стивен Хокинг, которого порой на- ется каждые 18 месяцев, и в будущем
зывают вторым Эйнштейном, в кни- они смогут достичь уровня сложно-
ге «Краткая история времени» пишет: сти мозга человека», — убеждён Сти-
«Человечеству необходимо улучшить вен Хокинг. Также, по его прогнозам,
умственный и физический уровень, в истории наступит новая эра — пе-
чтобы справиться со всё более услож- риод планируемой эволюции, когда
няющимся миром и решать новые на эмбриональной стадии смогут
проблемы, связанные, в частности, с определять и выбраковывать патоло-
космическим перелётами». гические отклонения в развитии
По мнению Хокинга, человеку не- человека, и благодаря этому люди бу-
обходимо становиться всё более и дущего будут обладать отменным здо-
более совершенным, чтобы «бежать ровьем и жить до 120 лет.
впереди электронных умников».
«В данный момент компьютеры име- ***
По прогнозам японских учёных, в пер-
вом десятилетии нового века появит-
ся карманный компьютер, в корпусе
которого будут соединены факс и ви-
део. Компьютеры смогут мгновенно
переводить на все языки мира не толь-
ко тексты, но и разговорную речь. Бла-
годаря компьютерам синтезируют ис-
кусственную кровь, будут побеждены
СПИД и атеросклероз. В дальнейшем
люди научатся использовать искусст-
венные глаза и мозг.

***
По прогнозам журнала «Forbes ASAP»,
компьютер ближайшего будущего
представляет собой устройство, че-
рез которое «будет работать всё, на-
Стивен Хокинг. чиная от охранной сигнализации и

606
Современные информационные технологии

заканчивая холодильником». Крем- ***


ний, который был основой для ком-
пьютерной индустрии, уже в 10-х гг. По прогнозам Виктора Феллера, од-
XXI в. перестанет удовлетворять нуж- ного из талантливых футурологов,
ды компьютерщиков из-за своих раз- в ближайшее время произойдёт вне-
меров, маленькой скорости и слиш- дрение в медицину компьютерных
ком большого выделения тепла при технологий нового поколения. Вслед-
работе. ствие этого произойдёт развитие
Уже сейчас сотрудники Станфорд- биотехнологий, появятся искусствен-
ского университета разрабатывают ные органы: сердце, печень, почки,
оптоэлектронное устройство, кото- будут созданы компьютерные систе-
рое использует скорость и пропуск- мы, вживляющиеся в организм чело-
ную способность оптических комму- века для выявления и уничтожения
никаций. В результате, по словам там вирусов.
производителей новой техники, ком-
пьютер станет более дешёвым, более ***
компактным, более производитель-
ным, менее энергоёмким. С его помо- Участник проекта «Видение будуще-
щью можно будет управлять всеми го» Экспертного центра Philips в
приборами в доме, а на работе ис- Эйндховене (Нидерланды) Деррик Де
пользовать в качестве огромного ин- Керкхоув говорит: «Я полагаю, в буду-
терактивного экрана. Своего истин- щем мы будем иметь множество при-
ного хозяина компьютер будет боров, управляемых движением ру-
узнавать, например по отпечатку ки. Нет большей иллюзии власти, чем
пальца. Управлять таким компьюте- возникающая, когда вы делаете знак
ром легко: для этого достаточно прос- рукой и что-то немедленно происхо-
то разговаривать с ним. Для тех, кто дит. Люди таковы. Распознавание с го-
привык к клавиатуре, она будет пред- лоса существует и совершенствуется
ставлена в виртуальном виде — и на- уже сегодня. Высококачественные си-
жимать кнопки можно будет паль- стемы распознавания будут устанав-
цами прямо на экране. Память такого ливаться в каждой машине, которую
компьютера голографическая, она мы где-либо используем, даже на ве-
позволяет хранить сколь угодно боль- лосипеде. Я думаю, что в этом смыс-
шие объёмы информации. Скорость ле и почерк сможет вновь занять по-
обмена данными между процессором добающее место, констатировать
и памятью сравнится со скоростью факт вашего личного присутствия.
процессора. Мне также кажется, что появятся

607
Информация и информатика

лучшие способы преобразования руч- турную жизнь, расширят доступ к раз-


ного письма в печатное». нообразной информации. Появив-
По мнению этого футуролога, в шаяся возможность работать дома
скором будущем люди будут в основ- или в удалённых офисах ослабит на-
ном путешествовать виртуально, ведь грузку на городские структуры. Мно-
это намного дешевле и более доступ- гие изделия будут выпускаться не в
но для многих, кто не имеет возмож- материальной форме, а в виде после-
ности осуществить такое путешествие довательности битов, в связи с этим
физически. Кроме того, виртуальное снизится расход природных ресур-
путешествие может оказаться и более сов. Новые технологии помогут обре-
познавательным, так как всегда даёт сти независимость, шире обмени-
нужное объяснение по интересую- ваться опытом и покупать товары,
щим вопросам. подогнанные под запросы. Мощь ци-
Деррик Де Керкхоув также считает, фровых технологий и универсаль-
что чем больше техника будет услож- ность их применения вызовут новые
няться внутри, тем больше она долж- трудности в сохранении личных, ком-
на упрощаться с внешней стороны. мерческих и государственных тайн.
Людям почти не придётся ходить на Многие профессии и целые отрасли
работу, они будут посещать офис два индустрии будут забыты, но на их ме-
или три раза в неделю, в остальное сте возникнут другие, ранее неиз-
время можно выполнять задания вестные. Произойдёт активнейшее
дома. Оплату также станут высылать развитие сети Интернет. Стоимость
по Сети. вычислительной техники и средств
связи снизится настолько, что цена
*** информации будет небольшой. При-
быль от рекламы позволит распрост-
По мнению президента компании ранять многие материалы и совсем
Microsoft Билла Гейтса, в будущем но- бесплатно (например, доступ к пра-
вые информационные технологии вительственной информации, кон-
обогатят досуг, активизируют куль- сультативным медицинским служ-

608
Современные информационные технологии

бам, электронным доскам сообщений пахи. Основными увлечениями насе-


и некоторым учебным пособиям). ления станут спорт и компьютеры.
У компаний, обслуживающих Сеть,
появится стимул провести волокон- ***
но-оптические линии в удалённые ре-
гионы с высоким уровнем доходов. Прогноз английского политолога
Электронные доски сообщений и дру- Джонатана Миллера в газете «Sunday
гие сетевые форумы создадут превос- Times» таков: в 2010 г. некая Кира Али-
ходные условия для контакта «один сен, жительница Санкт-Петербурга,
на один» и по принципу «один со создаст компьютерную программу
многими» или «многие со многими». Infinity, которая позволит интегриро-
Единомышленники смогут встречать- вать все несовместимые между собой
ся в компьютерных сетях, дебатиро- компьютеры. Лидерство в информа-
вать, учреждать партии или объе- тике навсегда перейдёт к России. Ком-
динения без особых усилий. Сеть пания, созданная Кирой, станет номе-
сблизит или рассеет людей на мил- ром один в мире.
лионы сообществ. Информационная
магистраль позволит всё делать по- ***
новому: проводить свободное время,
искать информацию, общаться друг Не так уж важно, насколько исследо-
с другом. вания, проведённые учёными, отра-
жают реальную картину будущего.
*** Цель исследований — своевремен-
ное распознавание технологических
Развитие техники и информацион- тенденций, которые будут играть осо-
ных технологий, по мнению футуро- бенно важную роль в развитии чело-
логов из американской консультаци- веческого общества и сохранении
онной компании Global Business природы. Вот что сказал об этом Дер-
Network, сильно отразится на жизни рик Де Керкхоув: «Будущее невозмож-
людей, освободив их от бытовых за- но предвидеть, но его реально экстра-
бот. Роботизация войдёт во все сфе- полировать. Наша система прогнозов
ры деятельности человека. Эти полу- проста: мы мысленно продолжаем те
разумные подвижные «домашние направления, в которых движется се-
животные» будут готовить, стирать, годня человечество, и делаем вывод,
убирать и т. д. Компьютеризация до- в какой срок оно достигнет той или
стигнет таких масштабов, что сдела- иной точки».
ется основой технического прогрес-
са. Персональные компьютеры станут
миниатюрными, в них совместятся
десятки функций, поэтому они бу-
дут выполнять обязанности со-
ветчиков, секретарей. Связь ста-
нет универсальной и дешёвой;
транспорт — не только более
комфортабельным, скоростным
и экономичным, но и более
компьютеризованным. Исчез-
нет такая профессия, как
шофёр. Произойдёт сли-
яние в одно целое ТВ,
радио, магнитофона,
пейджера, телефона.
Кино и телевидение
сумеют передавать за-

609
СОДЕРЖАНИЕ

к читателю (Александр Леонов) . . . . . . . . . . . . . . . . .5 НАУКА ИНФОРМАТИКА


Информатика (Александр Леонов) . . . . . . . . . . . .60
ИНФОРМАЦИЯ И ИНФОРМАТИКА Информатика в СССР (Александр Леонов) . . . . . . . .62
Документалистика (Валерий Шилов) . . . . . . . . . . . . . .64
ИНФОРМАЦИЯ И ЧЕЛОВЕК Джон фон нейман (Вера Леонова) . . . . . . . . . . .65
Компьютер — универсальный инструмент Норберт Винер (Александр Леонов) . . . . . . . . . .67
для обработки информации (Анатолий Андрей Николаевич Колмогоров
Кушниренко, Александр Леонов) . . . . . . . . . . . . . . .10 (Владимр Тихомиров) . . . . . . . . . . . . . . . . . . . . . . . . . .68
Основные научные и технологические достижения Алан Матисон Тьюринг (Вера Леонова) . . . . . .71
XIX—XX веков (Анатолий Кушниренко, Александр Андрей Петрович Ершов (Юрий Первин) . . . .74
Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11 Тропа в академгородке (Андрей Ершов) . . . . . . . . . . .75
Что такое информация (Виктор Володин, А. П. Ершов — учёный и человек (Юрий Первин) . .76
Инна Марусева) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Зачем и как учить детей
Атомы информации (Людмила Фёдорова) . . . . . . . .13 программированию (Юрий Первин) . . . . . . . . . .77
Представление информации (Борис Назаров) . . .15 Идём по магазинам... (Сергей Бебчук) . . . . . . . . . . . .79
Смысловая информация (Виктор Антонов, Программирование —
Инна Марусева) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17 вторая грамотность . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
Теория информации (Александр Леонов) . . . .18 Что там внутри? (Сергей Бебчук) . . . . . . . . . . . . . . . . . .82
Коды хэмминга (Григорий Кабатянский) . . . . . . . . . . .22 На ошибках учатся... (Сергей Бебчук) . . . . . . . . . . . . .83
Клод элвуд шеннон (Александр Леонов) . . . . . .24
АЛГОРИТМИЗАЦИЯ
КОДИРОВАНИЕ ИНФОРМАЦИИ
От рисунка к букве (Александр Леонов) . . . . . . .26 АЛГОРИТМ
Ищем клад (Людмила Фёдорова) . . . . . . . . . . . . . . . . . .28 Алгоритмы и программы
Точки вместо букв (Людмила Фёдорова) . . . . . . . . . .30 (Валерий Шилов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
Системы счисления (Александр Леонов) . . . .31 Первые алгоритмы (Валерий Шилов) . . . . . . . . . . . . . .89
Двоичное кодирование (Александр Леонов) . .34 Ещё одна формализация алгоритма
Кодирование изображений (Александр (Валерий Шилов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 О происхождении слова «алгоритм»
Кодирование звука и музыки (Александр (Валерий Шилов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40 Спор алгорисмиков и абацистов
Цвета и звуки (Людмила Фёдорова) . . . . . . . . . . . . . . .42 (Валерий Шилов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
Кодирование фильмов (Александр Леонов) .44 Простейшие программы (Валерий Шилов) . . . . . . . .96
кодирование бухгалтерской информации
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 ОСНОВЫ ПРОГРАММИРОВАНИЯ
Алгоритм обобщённого RLE-кодирования Управляющие структуры — ветвления
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 (Юрий Первин) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98
Способы сжатия информации (Александр Управляющие структуры — циклы
Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 (Юрий Первин) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
Алгоритм LZW (Александр Леонов) . . . . . . . . . . . . . . .51 Массивы (Юрий Первин) . . . . . . . . . . . . . . . . . . . . . .106
Сжатие звука (Александр Леонов) . . . . . . . . . . . . .55 Структуры данных (Владимир Борисенко) . . .108

614
Динамические структуры данных Использование объектов-наследников
и ссылочные реализации как родительских объектов (Борис Назаров) . . . .204
(Владимир Борисенко) . . . . . . . . . . . . . . . . . . . . . . . .120 Полиморфизм (Борис Назаров) . . . . . . . . . . . . . . . . . .205
Проблемы непрерывности Языки искусственного интеллекта
(Владимир Борисенко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .122 (Валерий Шилов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
Сортировка (Валерий Шилов) . . . . . . . . . . . . . . . .130
О важности порядка (Валерий Шилов) . . . . . . . . . .132 ПРОГРАММИСТЫ И
Построение информационных моделей ПРОГРАММИРОВАНИЕ
(Анатолий Кушнеренко, Августа Ада Байрон, Леди Лавлейс
Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135 (Вера Леонова) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214
Информационная модель транспортной сети Программисты (Александр Леонов) . . . . . . . . . .217
(Анатолий Кушниренко, Александр Леонов) . . . . . .137 Рекурсия (Юрий Первин) . . . . . . . . . . . . . . . . . . . . . .219
Параллельное программирование Кукарача (Юрий Первин) . . . . . . . . . . . . . . . . . . . . . . . . .222
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .138 Вычисление факториала числа n
Информационные модели в геометрии (Юрий Первин) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226
(Анатолий Кушниренко, Александр Леонов) . . . . . .139 Как писать надёжные программы
Семафоры (Александр Леонов) . . . . . . . . . . . . . . . . . .142 (Яков Зайдельман) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227
Задача о треугольнике (Яков Зайдельман) . . . . . . . .228
ТЕОРИЯ ПРОГРАММИРОВАНИЯ Как писать красивые программы?
Математическая логика (Валерий Шилов) . .146 (Яков Зайдельман) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230
Возможна и другая логика (Валерий Шилов) . . . .154
Теория алгоритмов (Валерий Шилов) . . . . . . .155 ХРАНЕНИЕ
Нормальные алгоритмы маркова И ОБРАБОТКА ИНФОРМАЦИИ
(Валерий Шилов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
Алгоритмически неразрешимые проблемы ХРАНЕНИЕ ИНФОРМАЦИИ
(Валерий Шилов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158 Компьютер и книгопечатание
Сложность алгоритмов (Валерий Шилов) . . .160 (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .238
Полиномиальные и экспоненциальные Бумага (Валерий Шилов) . . . . . . . . . . . . . . . . . . . . . .240
алгоритмы (Валерий Шилов) . . . . . . . . . . . . . . . . . . . . .163 Библиотека для учёных (Александр Леонов) . . . . .241
Теория формальных языков. лПДЙТПЧЛЙ ФЕЛУФБ
Перевод и компиляция (Нина Подольская) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242
(Владимир Борисенко) . . . . . . . . . . . . . . . . . . . . . . . .164 Текстовые редакторы
Программы LEX и GREP (Нина Подольская) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
(Владимир Борисенко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .169 Макетирование (Руслан Сурин) . . . . . . . . . . . . . .248
Доказательство правильности программ Редактор текстов (Нина Подольская) . . . . . . . . .249
(Яков Зайдельман) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175 Электронные таблицы
Алгоритм эвклида на языке PASCAL (Нина Подольская) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250
(Владимир Борисенко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .177 Об алгоритме «весы» (и/или) (Сергей Бебчук) . . . .255
Системы управления базами данных
ЯЗЫКИ ПРОГРАММИРОВАНИЯ (Сергей Бебчук) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
Язык программирования лого Хеширование (Александр Леонов) . . . . . . . . . . . . . . .261
(Юрий Первин) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178 Реляционные базы данных
История языков программирования (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .262
(Борис Назаров) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182 Что такое один гигабайт (Александр Леонов) . . . .263
Неструктурированный код (Борис Назаров) . . . . .191
Структурированный код (Борис Назаров) . . . . . . .192 ОПЕРАЦИОННАЯ СИСТЕМА
Массивы (Борис Назаров) . . . . . . . . . . . . . . . . . . . . . . . .193 КОМПЬЮТЕРА
История написания первого компилятора Возникновение операционных систем
языка PASCAL (Борис Назаров) . . . . . . . . . . . . . . . . . .194 (Глеб Райко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266
Массивы и указатели (Борис Назаров) . . . . . . . . . . .196 Что такое операционная (Глеб Райко) . . . . . . . . . . . .267
Язык С и операционная система UNIX Система (Глеб Райко) . . . . . . . . . . . . . . . . . . . . . . . . . .267
(Борис Назаров) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197 Планировщик процессов (Глеб Райко) . . . . . .269
PLANKALKUL — первый язык Формула вычисления приоритетов
программирования (Валерий Шилов) . . . . . . . . . . . .198 (Глеб Райко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272
Объектно-ориентированные языки Размеры операционных систем (Глеб Райко) . . . . .273
программирования (Борис Назаров) . . . . . . . .199 Подсистема управления памятью
Интерфейс и реализация . . . . . . . . . . . . . . . . . . . . . . . . .202 (Глеб Райко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274

615
Использование виртуальной памяти ИГРЫ
для защиты внутри процесса (Глеб Райко) . . . . . . .277 Компьютерные игры
Пример работы механизма (Николай Забродоцкий) . . . . . . . . . . . . . . . . . . . . . . .346
виртуальной памяти (Глеб Райко) . . . . . . . . . . . . . . . .278 Тренажёры (Николай Забродоцкий) . . . . . . . . .349
Файловая система (Глеб Райко) . . . . . . . . . . . . . . .281 Феномен «тетриса» (Николай Забродоцкий) . . . . . .349
Имена (Глеб Райко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283 Искусственные реальности
Файлы в oc unix (Глеб Райко) . . . . . . . . . . . . . . . . . . . . .284 (Вера Леонова) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351
А если их много? (Глеб Райко) . . . . . . . . . . . . . . . . . . . .285 От игр — к знаниям (Александр Леонов) . . . .356
Подсистема управления вводом-выводом
и драйверы устройств (Глеб Райко) . . . . . . . . . .286 КОМПЬЮТЕР
Прикладной программный интерфейс
(Глеб Райко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288 ИСТОРИЯ ДОКОМПЬЮТЕРНОЙ ЭПОХИ
ОС UNIX (Глеб Райко) . . . . . . . . . . . . . . . . . . . . . . . . . .290 На пути к счётной машине
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .360
МУЛЬТИМЕДИА Абак и счёты (Валерий Шилов) . . . . . . . . . . . . . . .362
Переход к цифровому представлению Кто был первым? (Валерий Шилов) . . . . . . . . . . . . . .365
информации (Александр Леонов) . . . . . . . . . . . .294 Блез Паскаль (Валерий Шилов) . . . . . . . . . . . . . . .366
Векторная и растровая графика Готфрид Вильгельм Лейбниц
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 (Вера Леонова) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368
Разрешение (Александр Леонов) . . . . . . . . . . . . . . . . .300 Чарлз Бэббидж (Вера Леонова) . . . . . . . . . . . . . .371
Что может 3d-ускоритель Машины Бэббиджа (Александр Леонов) . . . . .374
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304 Герман Холлерит (Валерий Шилов) . . . . . . . . . .379
Цифровая фотография Первая перепись населения в России
(Николай Забродоцкий) . . . . . . . . . . . . . . . . . . . . . . .306 (Валерий Шилов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .380
Цифровое видео Автоматизация и перфокарты
(Николай Забродоцкий) . . . . . . . . . . . . . . . . . . . . . . .307 (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .382
Аудиомонтаж (Александр Леонов, «Научные» калькуляторы
Вера Леонова) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310 (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .384
Конрад Цузе (Валерий Шилов) . . . . . . . . . . . . . . .386
ВЫЧИСЛЕНИЯ Аналоговые машины
Вычисления на компьютере (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .390
(Анатолий Грушин) . . . . . . . . . . . . . . . . . . . . . . . . . . .312
Ошибка округления (Анатолий Грушин) . . . . . . . . . .316 ЭВОЛЮЦИЯ КОМПЬЮТЕРА В ХХ ВЕКЕ
Цена ошибок в вычислениях Первое поколение компьютеров
(Анатолий Грушин) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318 (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .394
Методы вычислений (Сергей Ищенко) . . . . . .319 Джон Винсент Атанасов (Вера Леонова) . . . .398
Интервальная арифметика Второе поколение компьютеров
(Сергей Ищенко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321 (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .400
Точность метода Ньютона Запоминающие электронно-лучевые трубки
(Анатолий Кушниренко) . . . . . . . . . . . . . . . . . . . . . . . . . . .324 и ультразвуковые линии задержки
Метод Ньютона (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . .401
(Анатолий Кушниренко) . . . . . . . . . . . . . . . . . . . . . .324 Ферритовые сердечники
Что пишет Ньютон (Анатолий Кушниренко) . . . . . .325 и магнитные барабаны (Александр Леонов) . . . . .402
Компьютерная алгебра Аппарат прерываний (Александр Леонов) . . . . . .405
(Евгений Панкратьев) . . . . . . . . . . . . . . . . . . . . . . . .326 Большие системы (Александр Леонов) . . . . . . . . .406
Третье поколение компьютеров
АВТОМАТИЗАЦИЯ (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .407
ИНТЕЛЛЕКТУАЛЬНОЙ ДЕЯТЕЛЬНОСТИ Мини-компьютеры (Александр Леонов) . . . . .410
Компьютерное моделирование Параллельные вычисления
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .330 (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .412
Построение информационных систем Алексей Андреевич Ляпунов
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334 (Вера Леонова) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .416
Экспертные системы (Валерий Шилов) . . . . .336 Троичная система счисления
Распознавание образов и троичная ЭВМ (Валерий Шилов) . . . . . . . . . . .418
(Пётр Кольцов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339 Задача Баше о весах (Валерий Шилов) . . . . . . . . . . .419
«Мыслительная машина» (Валерий Шилов) . . . . . .340 Отечественные ЭВМ
Домашний офис (Александр Леонов) . . . . . . . .343 (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .420

616
Машина для инженерных расчётов (Владимир Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .488
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .422 Сетевая ОС (Владимир Леонов) . . . . . . . . . . . . . . . . . .491
Технология беспроводной связи
СОВРЕМЕННЫЙ КОМПЬЮТЕР (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .491
Четвёртое поколение компьютеров На пути к радио (Александр Леонов) . . . . . . . . . . . . .492
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .424 Что с чем соединять (Александр Леонов) . . . . . . . .495
Типы интегральных схем (Александр Леонов) . . . .428
Производство микропроцессоров ИНТЕРНЕТ
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .433 Зарождение, развитие и устройство
Проектирование интегральных схем интернета (Михаил Кузьменко) . . . . . . . . . . . . . . .498
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .434 Доступ в Интернет (Михаил Кузьменко) . . . . .503
Эволюция памяти ЭВМ Каналы связи (Михаил Кузьменко) . . . . . . . . . . . . . . . .506
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .437 Какой канал выбрать?(Михаил Кузьменко) . . . . . . .507
Магнитная запись (Александр Леонов) . . . . . . . . . . .441 Классические сервисы Интернета
Кэш нам поможет (Александр Леонов) . . . . . . . . . . .443 (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .507
«Блеск и нищета» IBM (Александр Леонов) . . .444 Работа программы TELNET (Михаил Кузьменко) . . .508
О чём не знал Стив Джобс Работа программы FTP (Михаил Кузьменко) . . . . . . .509
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .448 Анонимный FTP (Михаил Кузьменко) . . . . . . . . . . . . .510
Macintosh на рубеже веков (Руслан Сурин) . . . . . . .450 Особенности «электронного» стиля письма
Уильям (Билл) Генри Гейтс III (Вера Леонова) . . . .452 (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .511
Изобретение электронной почты
КОМПЬЮТЕР XXI ВЕКА (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .512
Компьютер и здоровье world wide web (Михаил Кузьменко) . . . . . . . . .513
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .454 Первый сайт (Михаил Кузьменко) . . . . . . . . . . . . . . . .515
Упражнения для разминки Масштабы сети Интернет
(Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .458 (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .518
Нейросети (Александр Левый) . . . . . . . . . . . . . . . .459 Коммерция в интернете
Искусственные нейронные сети (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .519
(Александр Левый) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460 Сайт eBay.com (Михаил Кузьменко) . . . . . . . . . . . . . .520
Нанотехнологии Поиск в интернете (Михаил Кузьменко) . . . . .523
(Анатолий Кушниренко) . . . . . . . . . . . . . . . . . . . . . .461 Как искать (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . .526
«Там, в глубине...» (Анатолий Кушниренко) . . . . . . .464 Где искать (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . .527
Нанороботы (Анатолий Кушниренко) . . . . . . . . . . . . .468 «Электронное правительство»
Будущее вычислительных машин (Татьяна Самарская) . . . . . . . . . . . . . . . . . . . . . . . . . .528
(Анатолий Кушниренко) . . . . . . . . . . . . . . . . . . . . . .468 Виртуальное образование в Европе
Закон Мура (Анатолий Кушниренко) . . . . . . . . . . . . . .470 (Татьяна Самарская) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .530
Успехи интегральных технологий «E-Austria в Европе» (Татьяна Самарская) . . . . . . . . .531
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .471 Электронные библиотеки
Проектные нормы (Александр Леонов) . . . . . . . . . . .472 (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .532
Квантовые компьютеры Интернет и общество
(Александр Левый) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .473 (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .535
Компьютер 2010 года (Александр Леонов) . . .474 Утро 2010 года в интернете . . . . . . . . . . . . . . . . . . . . . .536
Программист сменил фамилию на название
ПЕРЕДАЧА ИНФОРМАЦИИ своего сайта (Михаил Кузьменко) . . . . . . . . . . . . . . . . .539
Как Интернет затрагивает самые разные
ПЕРЕДАЧА ИНФОРМАЦИИ стороны жизни. Виртуальное кладбище
И КОМПЬЮТЕРНЫЕ СЕТИ (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .530
Передача информации на большие Свобода слова и цензура в интернете
расстояния (Александр Леонов) . . . . . . . . . . . . . . .480 (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .540
Передача информации между Управление интернетом (Михаил Кузьменко) . . . .542
компьютерами (Владимир Леонов) . . . . . . . . . . .482 Запрет на интернет (Михаил Кузьменко) . . . . . . . . .543
Модем (Владимир Борисенко) . . . . . . . . . . . . . . . .484
Как работает модем ЗАЩИТА ИНФОРМАЦИИ
(Владимир Борисенко) . . . . . . . . . . . . . . . . . . . . . . . . .485 Авторское право в цифровой век
ISDN и мобильные телефонные сети (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .544
(Владимир Борисенко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .485 Что такое авторское право
Какие бывают компьютерные сети (Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .545

617
Из истории авторского права (Владимир Борисенко) . . . . . . . . . . . . . . . . . . . . . . . .575
(Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .545 Устройство «Энигмы» (Владимир Борисенко) . . . .576
Ответственность за нарушение Кольцо вычетов по модулю m
авторского права (Михаил Кузьменко) . . . . . . . . . . . .547 (Владимир Борисенко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .581
Copyright и «copyleft» Алгоритм Эвклида (Владимир Борисенко) . . . . . .582
(Анатолий Кушниренко) . . . . . . . . . . . . . . . . . . . . . .548 Малая теорема Ферма и теорема Эйлера
Информационная безопасность (Владимир Борисенко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .583
(Михаил Кузьменко) . . . . . . . . . . . . . . . . . . . . . . . . . . . .550
Ошибки и аварии (Татьяна Самарская) . . . . . . . . . . .551 СОВРЕМЕННЫЕ ИНФОРМАЦИОННЫЕ
Вирусы (Николай Забродоцкий) . . . . . . . . . . . . .552 ТЕХНОЛОГИИ
История одного вируса Информационное
(Николай Забродоцкий) . . . . . . . . . . . . . . . . . . . . . . . . . . .553 и постинформационное общество
Самый известный «троянец» (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .584
(Николай Забродоцкий) . . . . . . . . . . . . . . . . . . . . . . . . . . .555 Производители массовой информации . . . .586
Тестовое проникновение Информационные войны
(Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .557 (Ильмира Маликова) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .589
Хакеры (Михаил Кузьменко) . . . . . . . . . . . . . . . . . .561 Аудио xxi века (Александр Леонов) . . . . . . . . . . .590
Компьютерные преступления Программирование музыки
(Татьяна Самарская) . . . . . . . . . . . . . . . . . . . . . . . . .563 (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .592
«Незапертые двери» (Татьяна Самарская) . . . . . . . .563 Кино и фото в новой эпохе
Преднамеренное вредительство (Александр Леонов) . . . . . . . . . . . . . . . . . . . . . . . . . . . .595
(Татьяна Самарская) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .564 Автомобиль и информационные
Пираты (Николай Забродоцкий) . . . . . . . . . . . . .565 технологии (Александр Леонов) . . . . . . . . . . . . . .599
Промышленный шпионаж (Татьяна Самарская) . .565 Электронный дом (Александр Леонов) . . . . . .602
Пиратский словарь (Николай Забродоцкий) . . . . . .568 Чудо-печь (Александр Леонов) . . . . . . . . . . . . . . . . . . .603
Шифрование информации Прогнозы на ближайшее столетие
(Владимир Борисенко) . . . . . . . . . . . . . . . . . . . . . . . .570 (Вера Леонова) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .604
Современная криптография

618

Вам также может понравиться