Москва 2001 г тайный язык информатики Чарльз Петцольд ббк 32. 973. 26–018



Pdf көрінісі
бет25/26
Дата07.04.2020
өлшемі3,29 Mb.
#61783
1   ...   18   19   20   21   22   23   24   25   26
Байланысты:
Petcold Kod-Taynyy-yazyk-informatiki.535358


479

Графическая революция

достаточно разработать соответствующую программу, чтобы

заставить его говорить.

Есть два способа научить компьютер произносить узнава-

емые слова и предложения. Можно записать фрагменты пред-

ложений, фразы, слова и числа,  сказанные человеком, сохра-

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

бами. Этот подход часто применяется в информационных си-

стемах, доступ к которым осуществляется по телефону. Он

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

набор словосочетаний и чисел.

В более общем случае для синтеза человеческой речи нуж-

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

ке ASCII. Во многих языках написание слов не всегда согласу-

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

требуется программа, определяющая произношение по сло-

варю или с помощью сложного алгоритма. Можно, например,

строить слова из отдельных звуков (фонем). Кроме того, та-

кая программа должна будет учитывать и другие тонкости.

Например, если предложение завершается вопросительным

знаком, интонация в его конце должна изменяться.

Распознавание голоса, т. е. преобразование цифрового зву-

ка в коды ASCII, — задача куда более сложная. Из-за разнооб-

разия диалектов иногда даже люди, говорящие на одном язы-

ке, не понимают друг друга. Программы для персональных

компьютеров, воспринимающие человеческую речь, существу-

ют, но им, как правило, нужна некоторая «тренировка», преж-

де чем они начинают понимать речь определенного человека.

Но даже задача превращения звука в коды ASCII меркнет пе-

ред окончательной целью — научить компьютер  понимать

человеческую речь. Это уже проблема из области искусствен-

ного интеллекта.

Звуковые платы в современных компьютерах снабжаются

миниатюрными электронными синтезаторами, которые спо-

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

включая 47 ударных. Они называются синтезаторами MIDI

(Musical Instrument Digital Interface, цифровой интерфейс для

музыкальных инструментов). Спецификация MIDI разрабо-

тана в начале 1980-х консорциумом производителей электрон-

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

пьютерам.



480

Глава двадцать пятая

В разных синтезаторах MIDI для генерации звука музыкаль-

ных инструментов используются разные методы. Одни позво-

ляют получить реалистичное звучание, другие — не очень.

Общее качество работы данного синтезатора к спецификации

MIDI отношения не имеет. Она требует от синтезатора лишь

верной реакции на короткие сообщения длиной от 1 до 3 байт.

Обычно в этих сообщениях указывается, какую ноту и на ка-

ком инструменте нужно играть.

MIDI-файл представляет собой последовательность сооб-

щений MIDI с информацией о времени исполнения. Как пра-

вило, в MIDI-файле полностью содержится  некое музыкаль-

ное произведение, которое можно воспроизвести на MIDI-син-

тезаторе компьютера. MIDI-файл обычно гораздо короче WAV-

файла с той же записью. В отношении размера WAV-файл мож-

но сравнить с точечным файлом, а MIDI-файл — с векторным.

Недостаток MIDI-записи в том, что она может прекрасно зву-

чать на одном синтезаторе и отвратительно — на другом.

От цифрового звука логично перейти к цифровому видео.

Кажущаяся подвижность кино и телевидения обеспечивается

быстрой сменой неподвижных изображений, называемых кад-

рами. В кинопроекторе изображение меняется с частотой 24 кад-

ра в секунду, в телевидении США — 30 кадров в секунду, в теле-

видении большинства других стран — 25 кадров в секунду.

Компьютерный видеофайл — это просто последователь-

ность точечных изображений, сопровождаемых звуком. Если

не прибегать к уплотнению, размеры видеофайлов будут про-

сто огромными. Считайте сами: кадр размером 640 

´ 480 пик-

селов с 24-битовым кодированием цвета занимает 921 600 байт.

При частоте смены изображений 30 кадров в секунду понадо-

бится 27 648 000 байт для записи всего только одной секунды

фильма! Минута записи займет 1 658 880 000 байт, а двухчасо-

вой фильм — 199 065 600 000, т. е. почти 200 Гб. Вот почему

видеоролики, предназначенные для воспроизведения на персо-

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

большим форматом кадра и скверным разрешением.

Для сжатия видеозаписей применяется формат MPEG

(Motion Pictures Expert Group, Группа специалистов по видео-

записям). Объем записи в нем сокращается за счет того факта,

что значительная часть текущего кадра является копией пре-

дыдущего кадра.


481

Графическая революция

Для формата MPEG разработано несколько стандартов.

Например, в высококачественном телевидении HDTV и в дис-

ках DVD (Digital Video Disks) применяется стандарт MPEG-2.

По размеру диски DVD сходны с компакт-дисками, но в них

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

каждой стороне. Объем DVD-диска — около 16 Гб — превы-

шает объем компакт-диска в 25 раз. Поскольку формат MPEG-

2 обеспечивает сжатие приблизительно в 50 раз, двухчасовой

фильм занимает всего 4 Гб, т. е. один слой на одной стороне.

Вероятно, в ближайшем будущем для распространения ПО

будут применяться именно DVD-ROM-диски.

Можно ли считать эти диски реализацией идей Ванневара

Буша? Он, правда, писал о хранении информации на микро-

пленках, но диски CD-ROM и DVD-ROM удобнее: на электрон-

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

жем, в обычной книге. С другой стороны, Буш предполагал, что

человек с помощью системы «Memex» сможет работать с не-

сколькими микропленками одновременно. На большинстве же

компьютеров дисковод для работы с CD-ROM- или DVD-ROM-

дисками только один. Чтобы эффективнее хранить и обмени-

ваться информацией, приходится соединять компьютеры меж-

ду собой. Поскольку почти все места обитания или работы че-

ловека связаны телефонными линиями, можно воспользовать-

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

Назначение телефонной системы — в передаче по прово-

дам звуков, но не битов. Для передачи по телефонному прово-

ду двоичную информацию нужно преобразовать в звук. Моно-

тонная звуковая волна с постоянной частотой и постоянной

амплитудой никакой информации в себе не несет. Но измените

эту волну, точнее, промодулируйте ее так, чтобы один из ее па-

раметров по вашему желанию осциллировал между двумя фик-

сированными состояниями, и вы сможете представлять с их

помощью 0 и 1. Преобразует биты в звук модем (модулятор/де-



модулятор; modem). Модем — последовательное устройство, так

как в нем биты одного байта передаются друг за другом, а не все

сразу (параллельный интерфейс, позволяющий благодаря на-

личию 8 проводов передавать байт целиком, часто применяет-

ся для подсоединения к компьютеру принтера).

В первых модемах для передачи информации использовал-

ся сдвиг по частоте: 0 соответствовал одной частоте сигнала, 1


482

Глава двадцать пятая

— другой. Поскольку к каждому байту добавляются еще и

биты начала и окончания передачи (старт-бит и стоп-бит), ре-

ально для передачи байта требуется отправить по телефонной

линии 10 бит. Первые модемы работали на скоростях 300 бит

(30 байт) в секунду; в современных модемах с помощью вся-

ческих ухищрений удается достигать скоростей в 100 раз выше.

Первые энтузиасты компьютерных коммуникаций органи-

зовывали с помощью персонального компьютера и модема

электронные доски объявлений (Bulletin Board System, BBS), к

которым другие компьютеры подключались по телефонным

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

ционные службы, например, CompuServe. Как правило, обмен

информацией в таких системах производился исключительно

в форме ASCII-текста.

Ключевое отличие Интернета от первых массовых инфор-

мационных систем — отсутствие выделенного центра. Дей-

ствие Интернета основано на наборе протоколов для осуще-

ствления связи между компьютерами. Главный из них — про-

токол TCP/IP (Transmission Control Protocol/Internet Protocol).

В сетях TCP/IP передаваемые блоки данных разбиваются на

небольшие пакеты (packets), которые посылаются по комму-

никационной (в случае домашних компьютеров, как правило,

телефонной) линии независимо друг от друга, а на ее прием-

ном конце вновь собираются в единое целое.

Важную часть Интернета составляет его графическая под-

система — World Wide Web (WWW), использующая прото-

кол HTTP (Hypertext Transfer Protocol, протокол передачи ги-

пертекста). Информация, представляемая на Web-страницах,

оформляется с помощью языка разметки гипертекста (Hy-

pertext Markup Language, HTML).  Гипертекстом  называется

текст, связанный с дополнительной информацией на ту же

тему посредством гиперссылок (нечто подобное и предлагал

Ванневар Буш). Гиперссылки в HTML-файле указывают на

другие Web-страницы, к которым можно из него перейти.

Внешне формат HTML подобен RTF, о котором я уже го-

ворил: он содержит только ASCII-текст и команды, определя-

ющие его оформление. В HTML-файл можно также вставлять

изображения в форматах GIF, JPEG и PNG (Portable Network

Graphics). Несмотря на название, HTML в действительности


483

Графическая революция

не является языком, подобным тем, о которых мы говорили в

главах 19 и 24: это всего лишь способ форматирования текста.

Иногда необходимо, чтобы при просмотре Web-страницы

запускалась определенная программа. Она может работать как

на компьютере-сервере (на котором хранится Web-страница),

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

ете) На сервере программная обработка страницы (например,

электронного бланка, который вы заполнили) выполняется

обычно с помощью сценариев CGI (Common Gateway Interface,

интерфейс общего шлюза). Если программу предполагается

запускать на компьютере-клиенте, она пишется на простом

языке программирования  JavaScript  и включается в состав

HTML-файла. Web-браузер интерпретирует операторы Java-

Script и выполняет необходимые действия.

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

текста, а не исполняемого файла? Во-первых, это связано с тем,

что программист заранее не знает, на каком компьютере она

будет выполняться. Если это «Macintosh», в программе долж-

ны содержаться машинные коды процессора PowerPC и вызо-

вы функций API для Mac OS. На PC-совместимом компьюте-

ре в ней должны использоваться машинные коды процессора

Pentium и обращения к функциям API для Windows. А ведь

есть и другие компьютеры, и другие графические ОС. Кроме

того, вряд ли стоит допускать на свой компьютер все испол-

няемые файлы без разбора. Некоторые из них могут попасть к

вам из ненадежного источника и нанести компьютеру какой-

либо вред.

Чтобы как-то справиться с этой проблемой, компания Sun

Microsystems разработала язык программирования Java. Не

путайте его с JavaScript — Java представляет собой настоящий

объектно-ориентированный язык, напоминающий С++. Если

помните, в главе 24 я объяснял разницу между компилируе-

мыми и интерпретируемыми языками. Java занимает проме-

жуточное положение. Программу на Java нужно компилиро-

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



вые коды Java (Java Byte codes). По структуре они напоминают

машинные коды, но не реального, а воображаемого компью-

тера — виртуальной машины Java (Java Virtual Machine, JVM).

Действие этого компьютера программным способом модели-

рует тот компьютер, на котором программу нужно запустить,


484

Глава двадцать пятая

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

кой ОС. Таким образом, Java-программу можно запускать на

любом компьютере.

Большая часть этой книги посвящена передаче информа-

ции по металлическим проводам с помощью электричества,

но гораздо более надежной и быстрой оказывается передача

данных с помощью света по оптоволоконному кабелю, изго-

товленному из стекла или полимерных материалов. Скорость

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

арда бит в секунду.

По-видимому, в будущем большую часть информации в

наши дома и служебные кабинеты будут доставлять не элект-

роны, а фотоны. Они словно возвращают нас в далекие дни

детства, когда вспышки света помогали нам обмениваться по-

луночной мудростью с лучшим другом, жившим на противо-

положной стороне улицы.


Благодарности

Книга Код была задумана в 1987 г. Она стучалась мне в голову

в течение десятилетия и лишь с января 1996 г. по июль 1999 г.

наконец оформилась в виде файла Microsoft Word. Я чрезвы-

чайно признателен:

Шерил Кантер (Sheryl Canter), Иену Истлунду (Jan Eastlund),



Питеру Голдеману (Peter Goldeman), Линн Магалска (Lynn

Magalska) и Дейдре Синнотт (Deirdre Sinnott) — читателям

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

ложения;


моему агенту Клодетт Мур (Claudette Moore) из Moore

Literary Agency и всем сотрудникам Microsoft Press, кото-

рые помогли воплотить замысел Кода в жизнь;

моей маме;



Киске, делившей со мной кров с 1982 по май 1999 г., — вдох-

новительнице всех кошачьих примеров, которые встреча-

ются в книге;

Web-узлам, подобным Bibliofind (www.bibliofind.com) и



Advanced Book Exchange (www.abebooks.com), предоставля-

ющим удобный доступ к старым книгам, а также сотруд-

никам отдела научных, технических и деловых книг Нью-

Йоркской публичной библиотеки (www.nypl.org);

моим друзьям, без которых книга не была бы написана;



и еще раз Дейдре — идеальному читателю и не только.



Библиография

Аннотированная библиография к этой книге размещена на

Web-узле www.charlespetzold.com/code.


A

American Telephone & Tele-

graph

302, 304, 420



см. так-

же Bell Telephone Laboratories

API


см. интерфейс прикладного

программирования

«Apple», компьютер

— «Apple II»

354, 462, 469

— «Apple Lisa»

467

— «Macintosh»



354–355, 467,

469, 470, 474

ASCII

363–370, 373–376, 390–392,



395, 407, 479, 482

— в языках программирования

высокого уровня

449, 461–

462

— вывод на экран



405–406

B

BBC


6

BCD


336, 371, 426–427

— уплотненный

427

Bell Systems Technical Journal, жур-

нал


300

Bell Telephone Laboratories

301–

302, 420, 456, 471, 477



см.

также American Telephone &

Telegraph

Busicom

317


C

CD-ROM-диск

478, 481

см. также компакт-диск

CPU


см. центральное процессор-

ное устройство

CRT

см. катодно-лучевая трубка

D

Digital Equipment

445

Digital Research



410

DRAM


см. динамическая память

DVD-ROM-диск

481

E

EBCDIC


370–373

Eckert-Mauchly Computer

301

EDVAC, компьютер



299–300

ENIAC, компьютер

299–300

escape-код



22

F

Fairchild Semiconductor

307

G

GNU, проект

421

GUI


см. графический интерфейс

пользователя



I

IBM


215–216, 295, 301, 322, 354,

399, 419, 462–463

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

высокого уровня

455, 469

— периферийные устрой-

ства

379–381


— перфокарта

370–373, 394, 454

IEEE

431


Intel

317, 319–320, 352–353, 354,

437

J

Java, язык программирова-

ния

483–484


JavaScript, язык программирова-

ния


483

K

Keuffel & Esser

290

L

LIFO


338

Linux, операционная систе-

ма

421


M

«Mark I/II», компьютер

297

Memex


459–460, 481

Предметный указатель

487

Предметный указатель

Microsoft

456

MOS


см. МОП

Motorola


320, 352–353, 354–355,

438


MS-DOS, операционная систе-

ма

417–419, 461, 468, 469



Multics, операционная система

420


N

National Semiconductor

321

npn-транзистор



303–304

O

OCR


см. распознавание символов

P

Pentium, микропроцессор

354, 438

PL/I, язык программирования

455

PostScript



472

PowerPC, микропроцессор

354–

355, 438


R

RAM


см. оперативная память;

память


Remington Rand

301, 399, 445

RISC, архитектура

354–355


ROM

см. постоянное запомина-

ющее устройство



S

shift-код

21–22

Shockley Semiconductor Laborato-



ries

307


SRAM

см. статическая память

Sun Microsystems

483

T

Tabulating Machine

295

Texas Instruments



307, 308, 317,

321


TTL

см. ТТЛ

«TTL Data Book for Design

Engineers»

309–315


U

Unicode


376

UNIVAC, компьютер

301, 445

UNIX


302, 419–421, 456

V

VisiCalc


462

W

WYSIWYG


468

X

Xerox


466

Z

Zenith


308

А

автоматизация

249–250

адрес


238

адресация

— индексная

329


— непосредственная

331


— прямая

329


азбука Морзе

2–3, 5–6, 33,

78

см. также Морзе Сэмюэль

— использование в телегра-

фе

35–37, 47–49



— разработка

10–14


— сопоставление с

— — наборами символов

358,

362


— — штрих-кодами

91, 95–97

Айверсон Кеннет

457


аккумулятор

251, 256–257, 282,

326, 350

АЛГОЛ, язык программирова-

ния

446–453, 457



алгоритм

56, 288, 446

Аллен Пол

456


АЛУ

см. арифметико-логическое

устройство

«Альтаир»

353, 378, 456

аль-Хорезми Мухаммед ибн

Муса


56

Ампер Андре Мари

30

Аналитическая Машина



117, 292

аналоговый компьютер

281

аппаратное обеспечение



282

488

Предметный указатель

арабская система счисления

56–57

аргумент


284

Аристотель

99

арифметико-логическое устрой-



ство

282, 334


архитектура

— RISC


354–355

— Неймана

300, 457

ассемблер

287, 457

ассоциативный закон

102, 103

Атанасофф Джон

299

Б

баг


297

база


303

базовая система ввода-вывода

414

Байрон Августа Ада



292–293,

456


байт

215–216


— младший

262, 352


— старший

263, 352


Барбье Шарль

16

Бардин Джон



302–303

БЕЙСИК, язык программирова-

ния

455–456


бел

477


Белл Александр Грейам

304, 477


Беркс Артур

299


бит

76, 78, 120, 300

— знака

182, 427


— младший

165


— и переключатель

122


— переноса

154, 263–264

— старший

165


— суммы

154


блок

450


Бодо Эмиль

359


бодо, код

359–362, 370

Брайль Луи

15–17, 19

Брайля азбука

4, 15–22, 33, 78,

295, 358–359

— сравнение с азбукой Морзе

97

Браттейн Уолтер



302–303

Бриклин Дэн

462

булева алгебра



101–109, 150–151,

300


Буль Джордж

100, 116–117, 150

буфер

148–149


Буш Ванневар

459, 481, 482

Бэббидж Чарльз

117, 291–293



В

вакуумная лампа

167, 297–298,

302, 305


Ватсон Томас

295


ввода устройство

122–123, 281,

322

ввод-вывод с распределением па-



мяти

348


векторное изображение

472


ветвление

274, 344–347

вибратор

188, 207, 212, 253

видеоадаптер

387


— графический

393


видеоплата

см. видеоадаптер

визуальное программирова-

ние

471


Винер Норберт

301


Вирт Николас

456


виртуальная память

421


Возняк Стефан

354


Вольта Алессандро

30

время установки



311

встроенная функция

447

входной сигнал



127

выборка команды

270

вывода устройство



123, 281, 322

выходной сигнал

127

— уровень



311

вычислимость

298, 318



Достарыңызбен бөлісу:
1   ...   18   19   20   21   22   23   24   25   26




©www.engime.org 2024
әкімшілігінің қараңыз

    Басты бет