Архитекторы компьютерного мира

Частиков Аркадий

ГЛАВА 4

Знаменитые программисты

 

 

Ада Августа Лавлейс

Дочь Байрона, первая программистка

Ада Августа Лавлейс

Высказанные в письме к своей двоюродной сестре опасения великого поэта Англии относительно "поэтического дара" дочери оказались напрасными. Ада Байрон преуспела в совершенно другой области — она составила первую компьютерную программу и потомки нарекли ее "первой программисткой".

Августа Ада Байрон родилась 10 декабря 1815 года, а в январе 1816 года ее родители — супруги Джордж Байрон и Аннабелла Милбэнк — разъехались навсегда.

Ада Байрон с детства успешно и с увлечением занималась математикой. Ее учителем был известный английский математик и логик Август де Морган. К числу друзей Аннабеллы Милбэнк принадлежал выдающийся английский ученый и изобретатель Чарльз Бэббидж. Юная Ада посещает его мастерскую, где знакомится с его работой над вычислительными машинами. Чарльз Бэббидж искренне полюбил эту девушку, он находил в ней главное, что ценил в людях, — остроту ума. Быть может, сыграло роль и то, что Ада была почти ровесницей его рано умершей дочери. Бэббидж следит за научными занятиями Ады, посылает ей статьи и книги, представляющие интерес, и знакомит со своими работами.

Семейная жизнь Августы Ады сложилась счастливо. В июле 1835 года она вышла замуж за Уильяма, восемнадцатого лорда Кинга, ставшего впоследствии первым графом Лавлейсом. Сэр Уильям, которому в то время исполнилось 29 лет, был спокойным, уравновешенным и приветливым человеком. Он с одобрением относился к научным занятиям своей жены и помогал ей как мог.

Супруги вели светский образ жизни, регулярно устраивали вечера и приемы, на которых бывал "весь Лондон". Один из постоянных посетителей этих вечеров, редактор популярного лондонского журнала "Экзаминер" Олбани Фонбланк, оставит такой портрет хозяйки дома: "Она была ни на кого не похожа и обладала талантом не поэтическим, но математическим и метафизическим…"

Портрет графини Лавлейс

Очень выразительна и автохарактеристика, данная Адой в одном из писем Бэббиджу: "Мой мозг — нечто большее, чем просто смертная субстанция; я надеюсь, время покажет это (если только мое дыхание и прочее не будут слишком быстро прогрессировать к смерти).

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

Я сказала "ужасающие", т. к. Вы можете вообразить, что это означает в некоторых обстоятельствах. Граф Л. иногда говорит: "Каким генералом могла бы ты быть". Представьте меня со временем в общественных и политических заботах (я всегда мечтала обладать мировой властью, силой и славой — эта мечта никогда не сбудется…). Для вселенной хорошо, что мои устремления и честолюбие навсегда связаны с духовным миром и что я не собираюсь иметь дела с саблями, ядами и интригами вместо х, у и f.

Статья военного инженера Л. Ф. Менабреа (впоследствии генерал в армии Гарибальди, а затем премьер-министр Италии) "Очерк Аналитической машины, изобретенной Чарльзом Бэббиджем" заинтересовала Аду, и она перевела ее на английский язык. Тогда Бэббидж предложил ей добавить некоторые примечания к переводу. Эта идея была немедленно принята. Перевод статьи Менабреа занимает 20 страниц, примечания же Ады Лавлейс — в два с половиной раза больше, 50 страниц. Одно это сопоставление показывает, что А. А. Лавлейс отнюдь не ограничилась ролью простого комментатора. При этом статья Менабреа касается в большей степени технической стороны дела, тогда как примечания Лавлейс — математической.

После получения первых корректур она пишет Бэббиджу: "Я хочу вставить в одно из моих примечаний кое-что о числах Бернулли в качестве примера того, как неявная функция может быть вычислена машиной без того, чтобы предварительно быть разрешенной с помощью головы и рук человека. Пришлите мне необходимые данные и формулы". По ее просьбе Бэббидж прислал все необходимые сведения и, желая избавить Аду от трудностей, сам составил алгоритм для нахождения этих чисел. Но допустил очень грубую ошибку в составлении алгоритма, и Ада сразу же это обнаружила. Она самостоятельно написала программу для вычисления чисел Бернулли.

Эта программа представляет исключительный интерес, поскольку величина, сложность и математическая постановка данной задачи не идут ни в какое сравнение с элементарными примерами. Этот пример позволил Лавлейс в полной мере показать методику программирования на Аналитической машине и те преимущества, которые дает последняя при подходящем методе вычислений.

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

За определение числа Бернулли Лавлейс берет следующее выражение:

Оно неудобно, т. к. требует суммирования ряда. Другая форма задания предпочтительнее:

Но последняя формула представления B 2n-1 имеет существенные недостатки. Поэтому Лавлейс выводит рекуррентную формулу:

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

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

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

ax0 + bx1 + cx2 + dx3 +… + kx9 = p,

a1x0 + b1x1 + c1x2 + d1x3 +… + k1x9 = p1,

…….

a9x0 + b9x1 + c9x2 + d9x3 +… + k9x9 = p9,

"Примечания" Лавлейс заложили основы современного программирования, базирующегося на тех идеях и принципах, которые были ею высказаны. Одним из важнейших понятий программирования служит понятие цикла. Лавлейс полностью осознала значение цикла — использование циклических вычислительных методов является одним из простейших и эффективнейших методов, облегчающих использование вычислительных машин. Поэтому она уделяет весьма много внимания циклам в своей работе. Ей принадлежит определение цикла: "Под циклом операций следует понимать любую группу операций, которая повторяется более одного раза". Организация циклов в программе значительно сокращает ее объем. Без такого сокращения практическое использование Аналитической машины было бы нереальным, т. к. она работала с перфокартами, и требовалось бы огромное их количество для каждой решаемой задачи. Для иллюстрации эффективности использования циклов Лавлейс приводит в качестве примера решение системы 10 линейных уравнений с 10 неизвестными:

Прежде всего, уже в то время Ада Лавлейс отдавала себе полный отчет в колоссальной "широте спектра" возможностей универсальной вычислительной машины. Вместе с тем она очень четко представляла себе границы этих возможностей: "Желательно предостеречь против преувеличения возможностей Аналитической машины. Аналитическая машина не претендует на то, чтобы создавать что-то действительно новое. Машина может выполнить все то, что мы умеем ей предписать. Она может следовать анализу; но она не может предугадать какие-либо аналитические зависимости или истины. Функции машины заключаются в том, чтобы помочь нам получить то, с чем мы уже знакомы". В 1843 году, когда эти положения высказывались, Ада, конечно, не могла предвидеть, как разовьется и какие формы примет программирование спустя 120 лет.

В своей первой и, к сожалению, единственной научной работе Ада Лавлейс рассмотрела большое число вопросов, актуальных и для современного программирования.

Чуть позже Бэббидж вместе с супругами Лавлейс принялся за разработку и практическую проверку системы беспроигрышных ставок на бегах, рассчитывая таким путем добыть средства для продолжения работы над вычислительными машинами.

"Система" не оправдала надежд, проиграв довольно внушительную сумму, Бэббидж и граф Лавлейс отказались от участия в совершенствовании "системы". Но леди Ада, азартная и упрямая, продолжала играть. Она оказалась сильно втянутой в эту рискованную игру, истратив на нее все свои личные средства, причем ее супруг и не подозревал об этом. Более того, леди Ада оказалась в руках группы мошенников, которые шантажировали ее.

В начале пятидесятых годов Ада тяжело заболела. Летом 1852 года она уже не вставала с постели, а 27 ноября 1852 года Августа Ада Лавлейс скончалась в том же возрасте, что и ее отец. Согласно завещанию, она была похоронена рядом с могилой отца в семейном склепе Байронов в Ноттингемпшире.

 

Грейс Мюррей Хоппер

Мама и бабушка COBOL

Грейс Мюррей Хоппер

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

Более того, в некоторых переводах зарубежных книг по программированию ее фамилия (если она упоминалась) преподносилась читателю в мужском роде. (Исключение составляет прекрасный перевод книг "Software" и "Computer Languages".)

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

Грейс Мюррей Хоппер родилась в Нью-Йорке 9 декабря 1906 года в семье страхового агента Уолтера Флетчера. С детства она увлекалась не куклами (что обычно для девочек), а различными механическими устройствами — "машинками", как она их называла. В 1928 году она закончила с отличием колледж Вассара в Пугкигси и продолжила свое образование в Йельском университете. Здесь она в 1930 году получила степень магистра и в 1934 году — доктора философии по математике (опять же редкость для женщины). Затем, вернувшись в Вассар, она преподавала математику. В 1941 году Г. Хоппер прослушала несколько курсов в университете Нью-Йорка.

В декабре 1943 года, в самый разгар Второй мировой войны, она приняла присягу и в мае 1944 года поступила на службу в ВМФ США. Получив в июне 1944 года звание младшего лейтенанта, Г. Хоппер была включена в отдел ВМФ, который занимался разработкой программ для компьютера ASCC (Mark-1), детища Говарда Айкена.

Она вспоминает, что стала "третьим в мире программистом (наверно, первыми двумя она считала своих коллег — мичманов Роберта Кэмпбелла и Ричарда Блока. — А. Ч.) первого в мире большого цифрового компьютера".

И далее продолжает: "В те дни мы не назывались программистами. Это слово еще не дошло до нас из Англии, мы были кодировщиками". Однако самый маленький морской офицер (ее рост был 150 см и вес 47 кг) и ее коллеги-мичманы заложили в те годы фундамент здания с названием "программирование". Г Хоппер доказала, чего она стоит как программист. Впоследствии она писала:

Капитан второго ранга Грейс Хоппер

"Я имела то преимущество, что изучала как технику, так и математику и знала, как работает машина от начала и до конца. Конечно же, я была счастлива. Заканчивая в 1928 году колледж, я и не подозревала, что в 1944 году появится компьютер".

Вместе с Говардом Айкеном она опубликовала первое описание компьютера "Марк-1".

При работе на компьютере "Марк-I" Г. Хоппер и ее группой впервые были введены некоторые приемы, которые стали в дальнейшем широко использоваться в программистской практике. В частности, первыми инструментами, которые экономили труд программистов, были подпрограммы. Так вот, в августе 1944 года для "Марк-I" была написана первая подпрограмма для вычисления sin х. После нее последовали другие. "Мы стали писать подпрограммы", — вспоминала Г. Хоппер, хотя термин "подпрограмма" был введен позже (Морис Уилкс в Англии. — А. Ч.).

И еще одно фундаментальное понятие техники программирования впервые ввели Г. Хоппер и ее группа — "отладка". Причем случилось это при курьезных обстоятельствах. Жарким летним днем 1945 года неожиданно произошла остановка компьютера "Марк-I". Обнаружилась неисправность одного реле, контакты которого были заблокированы мотыльком, неизвестно каким образом туда попавшим. Вспоминает Г. Хоппер: "Когда к нам зашел офицер, чтобы узнать, чем мы занимаемся, мы ответили, что очищаем компьютер от насекомых (debuging). Термин "debuging" (отладка) с тех пор прижился и стал использоваться для обозначения поиска неисправностей в компьютере, особенно в программном обеспечении".

В 1949 году Г. Хоппер перешла на работу старшим математиком во вновь образовавшуюся фирму Маучли — Эккерта (создателей электронного компьютера ENIAC), где приняла участие в разработке программных средств коммерческого компьютера UNIVAC–I. Фирма располагалась в помещении старой фабрики на севере Филадельфии. "Когда машина UNIVAC–I не работала, мы, бывало, говорили, что не мешало бы ее выбросить за забор, на ту сторону, где была свалка, а самим махнуть на другую сторону — на кладбище", — вспоминала те годы Г. Хоппер.

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

Надо заметить, что не одну Г. Хоппер занимала проблема облегчения труда программистов, работающих в машинных кодах. В 1949 году до ее прихода в фирму Джон Маучли создал систему под названием "Short Code", которая являлась примитивным языком программирования высокого уровня. В ней программист записывал решаемую задачу в виде математических формул, а затем, используя таблицу перевода символ за символом, преобразовывал эти формулы в двухлитерные коды. В дальнейшем специальная программа компьютера превращала эти коды в двоичный машинный код. Система, разработанная Дж. Маучли, была по существу одним из первых примитивных интерпретаторов, т. е. в последующие годы одним из двух типов транслятора. Эта система оказала большое влияние на Г. Хоппер. "Short Code" был первым шагом к чему-то такому, что давало программисту возможность писать программы на языке, отличном от машинного", — писала Г. Хоппер. Второй шаг предстояло сделать ей.

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

Итак, в 1951 году Г. Хоппер создала первый компилятор и ею же был введен сам этот термин. Компилятор Г. Хоппер осуществлял функцию объединения и в ходе трансляции производил организацию подпрограмм, выделение памяти компьютера, преобразование команд высокого уровня (в то время псевдокодов) в машинные команды. "Подпрограммы находятся в библиотеке (компьютера), а когда вы подбираете материал из библиотеки — это называется компиляцией" — так она объясняла происхождение введенного ею термина. Конечно, между компилятором, созданным Г. Хоппер, и сегодняшними сходство небольшое, но начало было положено. В 1952 году на одной из первых конференций Ассоциации компьютерной техники в Питтсбурге Г. Хоппер сделала доклад "The Education of a Computer", посвященный компилирующим программам.

В этот период фирму Маучли — Эккерта поглотила компания Remington Rand (как это часто бывает, талантливые изобретатели оказались неумелыми коммерсантами). Но Маучли, Эккерт и Хоппер остались работать в новой компании.

Свой первый компилятор Г. Хоппер назвала А-0, затем по мере его расширения и улучшения в последующие годы появились его версии А-1, А-2, А-3 (две последние системы базировались на трехбуквенных псевдокодах для указания математических операций). В 1954 году группа под руководством Г. Хоппер разработала систему АТ-3, включающую язык программирования и компилятор, которая в дальнейшем получила название MATH-MATIC и продавалась компанией Remington Rand вместе с компьютером UNIVAC–I.

После удачного завершения работ по созданию MATH-MATIC Г. Хоппер и ее группа принялись за разработку нового языка и компилятора, который позволил бы пользователям программировать на языке, близком к обычному английскому. Они выбрали около 30 английских слов типа: add (сложить), compare (сравнить), transfer (переслать) и т. п., а затем разработали компилятор, который транслировал программы, написанные на этом языке, в машинный код.

Для адекватного распознания компилятором выбранных слов Г. Хоппер придумала способ, который сохранился в операторах будущих языков: каждое слово (название оператора) содержит неповторимую комбинацию из первой и третьей букв, поэтому компилятор при генерации машинного кода может игнорировать все остальные буквы в слове.

Создание "необычного" (по тем временам) языка и компилятора, который получил название В-0, было завершено в 1956 году. Необходимость появления подобной системы Г. Хоппер объясняла следующим образом: "Существует много различных людей, которым нужно решать разные задачи. Некоторые из них связаны с обработкой символов, другие — с обработкой слов, и им нужны языки другого типа, а не наши попытки превратить их всех в математиков". Действительно, в дальнейшем язык с успехом использовался людьми, работающими в бизнесе, в конторах фирм и в правительственных учреждениях. В 1958 году система В-0 поступила на рынок с новым названием FLOW-MATIC и компания, в которой трудилась Г. Хоппер, поменяла свое название на Sperry Rand Соrр. В отличие от FORTRAN — языка для научных приложений, FLOW-MATIC был первым языком для задач обработки коммерческих данных. Он был проще FORTRAN, и опыт, приобретенный за годы работы с ним, привел к созданию универсального языка COBOL. Справедливости ради необходимо отметить, что и другие языки, но в меньшей степени, послужили основой COBOL: язык AIMACO, созданный в ведомстве ВВС США в 1958 году (в разработке этого языка принимала участие и группа Г. Хоппер), язык COMTRAN, созданный фирмой IBM в 1958 году, язык FACT, разработанный фирмой Honeywell (этот язык имел влияние на поздние версии COBOL).

Создание универсального, машинно-независимого языка высокого уровня для деловых применений и бизнеса стало очередной задачей, за разрешение которой в начале 1959 года взялась энергичная Грейс Хоппер. Она обратилась за поддержкой в Министерство обороны США, которое вскоре организовало конференцию по языкам программирования. Эта конференция, получившая в дальнейшем название КОДАСИЛ (CODASYL–Conference on Data Systems Language), организовала три группы по разработке нового универсального языка и Исполнительный комитет, осуществлявший контроль за разработкой. К осени 1959 года создание языка было завершено, и он получил имя COBOL (COBOL–Common Business Oriented Language). Одним из основных консультантов при создании языка была Грейс Мюррей Хоппер.

25-летний юбилей COBOL (на переднем плане — Грейс Хоппер)

Курьезный случай (и в то же время неожиданная реклама COBOL) произошел с Г. Хоппер во время ее посещения компьютерного центра в Японии. Гостеприимные японцы никак не могли понять ее просьбу, пока она не обратилась к операторам COBOL. "Move (переместить), — сказала она, показывая на себя, — goto (перейти к) отель "Осака". После чего японцы сразу отвезли ее в гостиницу.

В 1967 году Хоппер вернулась на действительную службу в ВМФ и к 1980 году стала капитаном Управления вычислительной техники в Вашингтоне. В 1983 году она получила звание капитана первого ранга, а в ноябре 1985 года — звание контр-адмирала. В 1982–1986 годах она была старейшим действующим офицером американской армии. После отставки из армии в 1986 году она еще некоторое время работала консультантом фирмы DEC.

В начале января 1992 года из Америки пришло сообщение (Newsbytes News Network, January, 3, 1992): "Недалеко от Вашингтона в возрасте 85 лет после продолжительной болезни скончалась Грейс Мюррей Хоппер, одна из изобретателей языка COBOL". Хоппер начала работать с компьютерами с конца 40-х годах. Она участвовала в работе над "Марк-I", "Марк-II", "Марк-III" и UNIVAC–I. Ее часто называли Мамой COBOL и Бабушкой COBOL…"

Заслуги Г. Хоппер в программировании оценены по достоинству. Более 40 университетов и колледжей присвоили ей различные звания. Г. Хоппер была обладательницей первой награды по информатике "Человек года", присуждаемой Ассоциацией управления и обработки данных. На церемонии отставки в 1986 году в Бостоне на борту авианосца морской министр Джон Леман-младший представил адмирала Грейс Хоппер к правительственной награде. Через несколько лет после ее кончины, 6 сентября 1997 года был спущен на воду новый эсминец ВМФ США — он был назван "Хоппер" в честь контр-адмирала Грейс Мюррей Хоппер.

Автор одной из первых книг по проектированию компиляторов (1971 год) профессор Корнеллского университета Дэвид Грис, оценивая значимость работ Г. Хоппер, пишет, что в ее наследии имеются "наметки многих инструментов и способов в отношении компиляторов, которые в настоящее время считаются общепризнанными: библиотека подпрограмм, дополненная спецификациями, трансляция формул в их элементарные компоненты; первичные функции компилятора; подпрограммный интерфейс и относительная адресация; компонующий загрузчик и оптимизация текста программы". И далее продолжает: "Она одной из первых поняла, что именно программные средства, а не аппаратные потребуют большего числа затрат. Она предвидела тот день, когда для математиков уже не будет необходимым знание системы команд компьютера… Хоппер предвосхитила символьную обработку и хорошо понимала, что произойдет даже в отношении искусственного интеллекта (хотя в то время этого термина еще не существовало. — А. Ч.), когда говорила: "В настоящее время задача состоит в том, чтобы в наиболее возможной степени заменить человеческий мозг на электронный цифровой компьютер".

 

Алексей Андреевич Ляпунов

Автор первых нотаций языков программирования

Алексей Андреевич Ляпунов

Диапазон научных интересов члена-корреспондента Академии наук Алексея Андреевича Ляпунова был необычайно широк, а сферы их приложения разнообразны. Основные направления его исследований — математическая логика, теория множеств, кибернетика, программирование, математическая лингвистика, машинный перевод. А. А. Ляпунову принадлежит разработка управляющих (кибернетических) систем, строгое определение которых было сформулировано им вместе с его учеником С. В. Яблонским. С 1954 по 1964 годы А. А. Ляпунов в Московском университете вел семинар по кибернетике, который объединял ученых и специалистов, работавших по данной проблеме, а также координировал их работу. С 1958 года под редакцией А. А. Ляпунова начал выходить периодический сборник "Проблемы кибернетики", в котором публиковались научные статьи отечественных ученых, посвященные кибернетическим исследованиям.

В июле 50-х годов А. А. Ляпунов разработал первые учебные курсы по программированию, а в 1952/53 учебном году он прочитал студентам МГУ первый курс под названием "Принцип программирования" (до появления АЛГОЛа).

В 1953 году он создал операторный метод, одну из первых в мире нотаций языков программирования — аппарат описания алгоритмов (язык логических схем).

Заслуги А. А. Ляпунова в области кибернетики и программирования настолько велики, что период с середины 50-х годов до середины 60-х годов XX века часто называют "ляпуновским" периодом.

Он родился в Москве 7 октября 1911 года. Его отец, Андрей Николаевич Ляпунов, получил математическое образование, он учился в Московском университете, а также в Гейдельберге и Геттингене. Затем отец Ляпунова работал в Путейском ведомстве, а после 1917 года был сотрудником Института биофизики Народного Комиссариата здравоохранения. Мать Алексея Андреевича Елена Васильевна Ляпунова была широко образованным человеком и посвятила свою жизнь воспитанию детей, которых в семье Ляпуновых было семь.

Семья Алексея Андреевича принадлежала к известному роду Ляпуновых, в котором были и знаменитые ученые (А. М. Ляпунов — выдающийся математик, М. В. Ляпунов — астроном, Б. М. Ляпунов — славист и др.), и известные деятели русской культуры (композитор С. М. Ляпунов). Ляпуновы имели родственные связи с семьями выдающихся русских ученых — И. М. Сеченова, А. Н. Крылова, П. Л. Капицы и др.

Общение с детских лет с высокообразованными людьми рано пробудило у Алексея Ляпунова интерес и к искусству, и к различным наукам. Его увлекали астрономия, минералогия, биология, архитектура и живопись.

В 1928 году А. А. Ляпунов закончил среднюю школу и поступил в Московский университет. В 30-х годах он был учеником и сотрудником известного физика академика П. П. Лазарева, а с 1932 года находился под влиянием академика Н. Н. Лузина, возглавлявшего в те годы Московскую математическую школу. Под руководством Н. Н. Лузина он получает первый математический результат в области дескриптивной теории множеств. Дескриптивная теория множеств становится и до конца жизни остается одним из основных направлений его научной деятельности. С 1934 по 1942 год А. А. Ляпунов был младшим, а затем старшим научным сотрудником Математического института им. В. А. Стеклова, где в 1939 году он защитил кандидатскую диссертацию на тему "Об униформизации аналитических дополнений".

Будучи сотрудником П. П. Лазарева, Алексей Ляпунов интересовался проблемами применения математических методов к естественным наукам. В 1938 году он опубликовал совместно с Ю. Я. Керкисом результаты статистической обработки генетических экспериментов. Инициаторами этой работы были академики Н. И. Вавилов и А. Н. Колмогоров. В предвоенные годы Алексей Андреевич занимается теорией вероятностей и ее приложениями. Из работ этого периода следует отметить опубликованное в 1942 году исследование "О выборе из конечного числа конкурирующих гипотез". Ценность этой работы была понята значительно позднее (в настоящее время она используется в математической статистике, вероятностных методах распознавания образов и т. д.), примерно в то же время (1939 год) он начинает свою педагогическую работу в качестве доцента Педагогического института.

В 1942 году А. А. Ляпунов призывается на военную службу и направляется в пехотное училище, которое заканчивает в 1943 году. С 1943 по 1945 год он в должности командира топографического взвода в артиллерии принимает участие в боях на 4-м Украинском, 3-м Белорусском и 1-м Прибалтийском фронтах.

Находясь на фронте, А. А. Ляпунов не прекращал математические исследования. Здесь он занимался вопросами, связанными с точностью артиллерийской стрельбы, и примечательно, что для их решения он широко привлекал аппарат математической статистики.

В марте 1945 года Алексей был отозван из действующей армии для преподавательской работы в Артиллерийской академии им. Ф. Э. Дзержинского, где проработал до 1952 года. Одновременно А. А. Ляпунов выполняет серьезные работы по математике, что позволило ему в 1949 году успешно защитить докторскую диссертацию.

В течение 1949–1951 годов А. А. Ляпунов работал в Геофизическом институте АН СССР, где проводил исследования по прогнозированию землетрясений и обработке гравитационных наблюдений. С 1951 года он работал в Математическом институте АН СССР им. В. А. Стеклова, а с 1953 года — в Институте прикладной математики, возглавляя в этих институтах работы по программированию. Он одним из первых оценил возможность цифровых машин для решения задач невычислительного характера. В Математическом институте А. А. Ляпунов организовал семинар, сразу привлекший к себе внимание, а с осени 1952 года он стал работать на механико-математическом факультете МГУ в качестве профессора кафедры вычислительной математики, где организовал семинар по программированию.

В 1953 году А. А. Ляпунов создает операторный метод в программировании, с которого ведет начало теоретическое программирование. В основе операторного метода лежит аппарат логических схем, который включает основные формализмы, описывающие алгоритмы. В рамках этого метода были определены:

→ программа;

→ процесс ее выполнения;

→ функция, реализуемая программой;

→ эквивалентность программ;

→ эквивалентные преобразования программ;

→ схема программы;

→ эквивалентность схем и их преобразования.

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

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

Формальные определения программирования как науки были даны А. А. Ляпуновым в его статье "К алгебраической трактовке программирования", написанной позже. В ней он рассматривает формализмы программирования на "теоретико-множественной базе". Ляпунов связывает программирование с основными направлениями современной математики, в частности с позиций общей алгебры. В статье была заложена та идейная платформа, на которой основывались дальнейшие исследования, проводившиеся учениками Алексея Андреевича — Ю. И. Яновым, А. П. Ершовым, Н. А. Криницким, Р. И. Подловченко и др.

Необходимо также отметить, что с появлением операторного метода была сформулирована проблема автоматизации программирования и, в частности, задача построения программирующей программы (в современной терминологии — "транслятор"), т. е. такой программы, которая сама будет строить программы для различных алгоритмов. Как пишет Р. И. Подловченко, "эта задача определила направление исследований в программировании более чем на десятилетия вперед. Постановка ее принадлежит Алексею Андреевичу Ляпунову и сделана им в 1953 году".

Кроме того, А. А. Ляпунову принадлежит постановка задач невычислительного характера, таких как машинный перевод и ифовые задачи (шахматы, домино) и, что удивительно — эти задачи им были поставлены еще в 1953–1954 годах. Под его руководством в 1954 году впервые был осуществлен его ученицей О. С. Кулагиной машинный перевод с французского языка на русский.

Важным событием в научной жизни была организация А. А. Ляпуновым в 1956 году семинара по кибернетике в МГУ, который объединил ученых различных специальностей: математиков, экономистов, биологов, лингвистов, философов, а также инженеров и военных. Он просуществовал до 1964 года и сыграл большую роль в координации исследований и формировании новых направлений.

Во второй половине 50-х годов число оригинальных исследований по кибернетике в нашей стране стало так велико, что появилась необходимость в создании специализированных изданий по кибернетике. А. А. Ляпунов стал основателем серии сборников "Проблемы кибернетики" и главным редактором. Первый сборник серии вышел в свет в 1958 году. Под редакцией А. А. Ляпунова вышло почти 30 сборников "Проблемы кибернетики". Серия получила мировую известность — она регулярно переводилась на английский и немецкий языки.

В 1962 году по приглашению академика М. А. Лаврентьева А. А. Ляпунов переехал в Новосибирск и начал работать в Институте математики СО АН СССР, где с 1967 года заведовал отделом в отделении кибернетики. В Новосибирске он продолжал работать по дескриптивной теории множеств, по теоретическому программированию и развернул широкие исследования по математической биологии, в частности по таким ее проблемам, как моделирование экологических систем, популяционным явлениям, иерархичности управляющих систем в живой природе, проблемам классификации.

В 1964 году Алексей Андреевич Ляпунов был избран членом-корреспондентом Академии наук СССР.

Новосибирский период жизни А. А. Ляпунова в научном плане отмечен его работами философского характера, в частности осмыслением и развитием таких философских категорий, как материя, энергия и информация. Он приходит к убеждению, что "масса и энергия, с одной стороны, удовлетворяет закону сохранения, с другой — для них имеет место принцип заменяемости". Что же касается информации, то она обладает "совсем другими свойствами". Так, во-первых, по отношению к информации не имеет места закон сохранения, во-вторых, возможность размножения информации и невосстановимость утраченной являются ее характерными особенностями, в-третьих, "информация материальна, т. е. информация всегда нуждается в материальном носителе".

Эти философские концепции отражены в ряде его публикаций, а также представлены в виде тезисов доклада на Международном конгрессе по философии, который состоялся в Болгарии, в городе Варне, в 1973 году, но, к сожалению, без участия Алексея Андреевича.

Он скоропостижно скончался 23 июня 1973 года в Москве.

Заслуги Алексея Андреевича Ляпунова в области науки и воспитании научных кадров были отмечены многими правительственными наградами. В 1996 году одной из самых авторитетных организаций в области высоких технологий — IEEE Computer Society А. А. Ляпунов посмертно был удостоен медали "Computer Pioneer", как сказано: "For Soviet cybernetics and programming".

 

Джон БЭКУС

Создатель языка FORTRAN

Джон Бэкус

17 октября 1977 года на ежегодной конференции ACM премия Алана Тьюринга была вручена человеку, который создал первый высокоуровневый язык программирования для научных и технических применений и о котором прекрасные слова произнесла председатель комитета по премиям — Джин Сэммит (эпиграф — фрагмент ее выступления). Более официально, премия была присуждена Джону Бэкусу"…за глубокий и важный вклад в создание практических систем программирования высокого уровня, в особенности за работы по FORTRAN и частые публикации формальных процедур для спецификации языков программирования".

Чтобы оценить гений Джона Бэкуса, нужно представить себе компьютерный мир в начале его развития — конец 40-х начало 50-х годов XX века. ENIAC — пример сложности раннего программирования: программа составлялась с помощью электрических соединений на коммутационном поле, и для ее установки требовалось от двух до трех дней. Затем появились компьютеры с хранимой в памяти программой — исчезла потребность в ее монтаже.

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

И вот появился Джон Бэкус. Он родился в Филадельфии 3 декабря 1924 года. Учился в Вашингтоне, затем осенью 1942 года поступил в университет Вирджинии на химический факультет. Однако вскоре был отчислен и в начале 1943 года пошел в армию. После службы в армии в мае 1946 года он оказался в Нью-Йорке, где поступил в радиотехническую школу. Преподаватель по ремонту теле- и радиоаппаратуры пробудил в нем интерес к математике и убедил его продолжить учебу в Колумбийском университете.

Джону Бэкусу было 25 лет, когда он, получив степень магистра математики в Колумбийском университете, по приглашению Рекса Сибера — одного из изобретателей машины SSEC (Selective Sequence Electronic Calculator), поступил на работу программистом в фирму IBM. Это случилось в 1950 году.

Бэкус ничего не знал о компьютерах, когда пришел в фирму IBM, но проработав на SSEC около года, возглавил небольшую группу программистов, которая разработала интерпретатор Speedcoding для компьютера IBM 701. Затем он работал в составе группы по созданию преемника компьютера IBM 701 — компьютера IBM 704.

Koмпьютер IBM 701

В декабре 1953 года Джон Бэкус, неоднократно заявлявший, что "всегда был лентяем", обратился к своему шефу Кутберту Хэрду с предложением разработать практический язык программирования высокого уровня и компилятор для машины IBM 704. Ответ был восторженным и предложению Бэкуса был дан зеленый свет.

Местом рождения FORTRAN стала штаб-квартира фирмы IBM на Мэдисон-авеню в Нью-Йорке — в офисе на 19 этаже, где расположилась группа Бэкуса. Сначала с Бэкусом работал только Ирвинг Циллер, потом присоединился Харлан Геррик с полудюжиной математиков и техников.

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

Итак, работа началась. Сначала они выделили основные понятия языка, в частности оператор присваивания, задававший переменным определенное значение, затем они ввели индексируемые переменные и очень важный оператор цикла — DO. Как говорил Бэкус, большинство пользователей "считали, что основной вклад FORTRAN — это возможность иметь программы в виде алгебраических формул, но на самом деле это не так". По мнению Бэкуса, "что делал FORTRAN в первую очередь, так это автоматизировал организацию циклов" — свойство, незаменимое в научных приложениях.

Работа в целом над проектом и, в частности, над языком шла быстро. Когда кто-то спрашивал разработчиков, через какое время он будет закончен, они всегда отвечали, что через шесть месяцев. Ученые действительно полагали, что это будет так. Но фактически потребовалось три года.

Критической проблемой для Бэкуса и его группы стала не разработка языка, а разработка компилятора. Создать эффективный надежный компилятор FORTRAN оказалось более трудной задачей, чем предполагалось. Группе пришлось иметь дело со вводом, выводом, циклами и многими другими запутанными вещами, необходимыми для преобразования команд, написанных на языке высокого уровня, в машинный код. Из трех лет, затраченных на разработку проекта в целом, более двух лет заняла работа над компилятором. Если первое сообщение о создании языка группа сделала в 1954 году, то о разработке компилятора — только в апреле 1957 года. Кстати, о названии. Бэкус придумал несколько банальных названий, но каждый раз они не устраивали коллег. Но однажды он предложил FORTRAN (FORmula TRANSlation). Реакция была аналогичной, но это название было принято из-за отсутствия лучшего.

Пользователи признали FORTRAN очень неохотно. Как вспоминает Бэкус, программисты "весьма скептически воспринимали все наши заявки". Однако в дальнейшем многие поняли его простоту в обучении и использовании и он стал незаменимым языком для научных и инженерных приложений.

Питер Наур

Даже в середине 80-х годов XX века Джон Бэкус испытывал чувство гордости от долговечности FORTRAN: "FORTRAN существовал в течение тридцати лет. Какой компьютер просуществовал более пяти лет?"

В числе своих главных достижений в течение первых десяти лет исследований (от 1950 года и до 1969 года) главными Бэкус считал два: создание и развитие FORTRAN и применение для описания ALGOL способа формальной записи — БНФ (Бэкуса Нормальная Форма). Позднее аббревиатуру БНФ стали расшифровывать как "Бэкуса — Наура Форма", отмечая заслуги датского программиста Питера Наура в развитии языка ALGOL.

В дальнейшие годы Джон Бэкус принимал участие во многих различных проектах, проводимых Исследовательской лабораторией фирмы IBM в Сан-Хосе, Калифорния. В 70-е годы он разработал функциональный стиль программирования, основанный на использовании комбинированных форм для создания программ. Этот стиль включает типы данных для функционального программирования, алгебраические преобразования программ и оптимизацию. Совместно с Джоном Уильямсом и Эдвардом Уимерсом он разработал новый язык программирования FL. Это универсальный язык, поддерживающий общие файлы ввода-вывода и интерактивные программы. В языке особое внимание уделено точному семантическому описанию и обработке абстрактных типов данных. Также вместе со своими сотрудниками Бэкус разработал оптимизирующий компилятор, использующий алгебраические преобразования.

Кроме премии Алана Тьюринга, о которой было сказано выше, Джон Бэкус в 1976 году был награжден Национальной медалью за вклад в науку.

Как пишет Лесли Гофф: "Иногда стимулом к изобретению становится не полет творческой мысли и не необходимость, а желание отдохнуть от нудной и тяжелой работы. Джон Бэкус убежден, что именно это заставило его разработать язык, в значительной мере автоматизирующий работу программиста".

 

Андрей Петрович Ершов

Выдающийся ученый в области программирования

Андрей Петрович Ершов

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

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

Под руководством А. П. Ершова созданы система АЛЬФА, решившая проблему разработки высококачественных программ средствами автоматизации программирования, а также первая в СССР система разделения времени АИСТ, архитектурные и программные решения которой широко использовались при создании центров коллективного пользования.

В 80-е годы теоретические работы А. П. Ершова были связаны с разработкой фундаментальных основ трансляции, развитием теории смешанных вычислений и трансформационного подхода к программированию. Его работы по теории смешанных вычислений были первым исследованием по программированию, удостоенным высшей в СССР математической награды — премии им. А. Н. Крылова.

В середине 70-х годов А. П. Ершов начинает не всеми понятую тогда работу по введению школьников в мир вычислительной техники, по научному и экспериментальному обоснованию идей информатизации образования. Будучи признанным лидером в этой области, он много сделал для становления нового общеобразовательного учебного предмета "Основы информатики и вычислительной техники".

А. П. Ершов со школьниками

Андрей Петрович Ершов родился в Москве 19 апреля 1931 года. Учась в школе, он, конечно, не мечтал о профессии программиста, т. к. в те годы такой профессии попросту не существовало.

Он увлекался физикой и математикой, но физика была ближе, поэтому после окончания школы решил поступить на физико-технический факультет МГУ.

Из воспоминаний А. П. Ершова: "Впрочем, выбор этот в значительной степени был предопределен не глубоким интересом к физике, а тем, что туда вступительные экзамены были в три тура, и мне очень хотелось все их пройти. Кстати говоря, на письменной работе по математике при поступлении на физтех я впервые встретил Владимира Михайловича Курочкина, одного из наших ветеранов в области программирования. Так что, самое первое знакомство с этой наукой, по крайней мере, в лице ее представителя, у меня состоялось тогда, в 1949 году. Но в тот раз В. М. Курочкин о программировании ничего не говорил, а просто забрал у меня мою письменную работу.

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

Я был комсоргом курса, чувствовал себя уже неотъемлемой частицей этого нового интересного коллектива. Но делать было нечего. Надо сказать, что люди, которые должны были эту нелегкую процедуру осуществить, старались относиться к отчисляемым студентам с максимальным вниманием, предпринимали активные усилия для того, чтобы направить их на близкие по профилю факультеты. Так в июне 1950 года я подался на механикоматематический факультет МГУ.

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

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

Студенческий приятель Андрея Ершова Евгений Жоголев, который уже записался на новую кафедру, ввел его в курс дела, рассказал, чем занимается новая кафедра, и в частности — об ЭВМ.

Андрей Петрович продолжает свои воспоминания: "…он мне рассказал поразительную вещь. Оказывается, существуют какие-то электронно-вычислительные машины, они очень интересно устроены, и у них есть ртутная память. Я был поражен — что такое ртутная память? Такая стеклянная трубка, наполненная ртутью, а по бокам заткнута пьезокристаллами. Если тебе надо запомнить какое-либо число, то оно изображается как в азбуке Морзе: импульс, нет импульса и т. д., целая цепочка электрических импульсов. Так вот, эти импульсы по проводу приходят в пьезокристалл, он от этих импульсов сотрясается, и получается звуковая волна, которая бежит вдоль ртути по трубке, добегает до следующего пьезокристалла, сотрясает его, в результате получается электрический ток, и это же число в виде импульсов воспроизводится на другом конце трубки, потом по проводу бежит назад, снова на трубку — выходит, что число беспрерывно бегает в этой ртутной памяти. Не знаю почему, но этот рассказ произвел на меня очень сильное впечатление, резко повысив мой интерес к электронно-вычислительным машинам, и я записался на кафедру вычислительной математики.

Год я там занимался чем попало, но в начале четвертого курса у нас на кафедре появился молодой профессор Алексей Андреевич Ляпунов, который до этого преподавал в какой-то военной академии. То, что он нам стал читать, были первые в Советском Союзе основы программирования для электронно-вычислительных машин. Причем первую половину курса он читал довольно реферативно: в сборнике переводов "Новости ракетной техники" была большая переводная статья, ее мы и изучали. Группа европейских ученых, которые побывали в США, познакомилась с американскими вычислительными машинами и некоторые сведения о них опубликовала. Те, кто занимался в то время становлением ракетной техники, по счастью, смотрели на дело очень широко, поэтому они подхватили сведения и по вычислительной технике и включили в этот сборник.

А тем временем у нас в стране развивались события, о которых мы тогда ничего не знали: в Киеве Сергей Алексеевич Лебедев доделывал свою знаменитую первую электронно-вычислительную машину, которая потом стала называться МЭСМ — Малая электронно-счетная машина. И вот получилось так, что между первым и вторым семестрами Алексей Андреевич Ляпунов съездил в Киев в командировку, поработал на этой машине, изучил ее, и у него возникло сразу очень много идей, касающихся того, как надо программировать. Воодушевленный ими, он во втором семестре стал нам все это рассказывать. Это были еще очень непричесанные идеи, но то, что они рождались прямо на глазах, всех очень заразило, и наша группа в полном составе записалась к Алексею Андреевичу в ученики. Этот коллектив в дальнейшем сыграл довольно большую роль в развитии вычислительной техники. А для меня очень важно, что я почувствовал себя приобщенным к новому делу с самого начала, в этот особый период становления.

На том же четвертом году обучения в университете я выполнил свою курсовую работу по методике программирования циклов, погрузился в чтение доступной литературы и уже с того времени не отделял себя от развития этой новой области науки".

В 1953 году, будучи студентом, А. П. Ершов поступил на работу в Институт точной механики и вычислительной техники (ИТМ и ВТ). В 1954 году он закончил МГУ по специальности "Программирование" (это был первый выпуск отечественных программистов).

В 1955 году был создан Вычислительный центр Академии наук СССР, его директором стал академик А. А. Дородницын. Часть сотрудников-математиков, включая Андрея Ершова, была переведена из ИТМ и ВТ в образованный Вычислительный центр.

Еще работая в стенах ИТМ и ВТ, группа А. П. Ершова создала один из первых трансляторов (программирующую программу) — ПП БЭСМ для быстродействующей электронной счетной машины. Входной язык ПП БЭСМ содержал арифметические и логические операторы, несколько напоминающие современные операторы выбора. Наиболее важными атрибутами ПП БЭСМ были операторы цикла и индексные переменные. Текст программы на входном языке ПП БЭСМ не разделялся на схему и спецификацию операторов, а представлял собой бесформатный линейный текст, в котором операторы отделялись точкой с запятой.

В ПП БЭСМ А. П. Ершов выдвинул в качестве общего правила принцип "адресной кодировки" различных объектов, с которыми имеют дело при трансляции. Такая кодировка существенно сокращает время поиска информации и соответствует структуре оперативной памяти с произвольным доступом. В 1957 году А. П. Ершовым, независимо от американских ученых, определена функция расстановки как способ бесперебойного поиска информации по ключу и исследованы ее статистические свойства и применение для алгоритма экономии команд, работающих за линейное время. На основе работ по ПП БЭСМ в 1958 году им была опубликована монография "Программирующая программа для быстродействующей электронной счетной машины", которая является первой в мировой литературе монографией по автоматизации программирования. Она сразу же была издана за рубежом.

В ноябре 1958 года А. П. Ершов принял участие в конференции по механизации процессов мышления, которая состоялась в НФЛ в Тедцингтоне (Англия). Там он встретился с Джоном Бэкусом, Грейс Хоппер и Джоном Маккарти. Встреча с Джоном Маккарти в дальнейшем переросла в дружбу и сотрудничество. (В 1965 году Маккарти впервые посетил Ершова в Новосибирске, а тремя годами позже Маккарти провел там два месяца, прочитав курс лекций студентам университета.)

В 1958 году академик С. Л. Соболев, один из создателей Сибирского отделения АН СССР, привлекает Ершова к работе по организации научного центра. Полностью в СО АН СССР А. П. Ершов переходит в 1960 году. Здесь, в Институте математики СО АН СССР, он формирует коллектив программистов и осуществляет научное руководство работами этого коллектива. Работы коллектива по языкам и методам трансляции заложили фундамент дальнейшего развития этого направления.

Под руководством Андрея Петровича Ершова были созданы такие известные оптимизирующие системы программирования, как АЛЬФА, АЛЬФА-6, БЕТА, которые во многом определили современную методологию оптимизирующей трансляции.

Разработка системы АЛЬФА началась с создания языка — это было характерно для традиций программирующих программ. Данный язык отталкивался от первоначальной версии ALGOL 60 — ALGOL 58. Группа, руководимая Ершовым, вела разработку параллельно с международной группой, создающей ALGOL 60. Во многом работы этих групп оказались совпадающими, поэтому после опубликования описания ALGOL 60 новый, созданный группой Ершова, язык был сформулирован как расширение ALGOL 60. Этот язык, носивший предварительные названия "Входной", "Сибирский", окончательно утвердился под названием АЛЬФА-язык.

Как пишет И. В. Поттосин, "в АЛЬФА-языке впервые введено понятие многомерных значений и определены операции над ними, в том числе операции конструирования. Все это вошло в структуру таких языков, как PL/1, ALGOL 68, ADA. Впервые в языке были введены и такие естественные для современных языков концепции, как разнообразие циклов, задание начальных значений выражениями. Интересными, но не повторенными по существу свойствами языка были перечисления и верхние (временные) индексы. В своих метасредствах язык впервые выходил за пределы контекстно- свободных грамматик.

Система АЛЬФА была первой в мировой практике оптимизирующей системой программирования для языков, сложнее, чем FORTRAN. Существовавший в это же время английский проект (Хоукинс и Хакстейбл) для ALGOL 60, аналогичный АЛЬФА по функциональным возможностям, так и не был доведен до конца. Об этом важно сказать потому, что сама возможность существования трансляторов для языков, сложнее FORTRAN, с приемлемой эффективностью объектных программ в то время многими оспаривалась. Система АЛЬФА стала конструктивным доказательством такой возможности, и это существенно, ибо открывало границы созданию новых, семантически более богатых языков. Проект системы был опубликован Ершовым в 1961 году. Монография по системе вышла в свет в 1967 году".

Дальнейшие работы А. П. Ершова по оптимизирующей трансляции привели к появлению широко известной системы АЛЬФА-6. Повторяя во многом систему АЛЬФА, система АЛЬФА-6 обладала более компактной схемой трансляции, более четко был выделен в схеме трансляции внутренний язык представления программы как основа для алгоритмов оптимизирующих преобразований.

В 1969 году А. П. Ершов становится профессором Новосибирского университета (кандидатскую диссертацию он подготовил еще в 1958 году, но в связи с настороженным отношением математиков к новой науке — программированию, защитил ее только в 1962 году. Докторскую диссертацию по методам построения трансляторов он защитил в 1968 году).

В 1971 году А. П. Ершовым была опубликована статья "Универсальный программирующий процессор", которая положила начало работе по проекту БЕТА. Исследования по проекту БЕТА представляли собой многолетнюю (окончательная публикация появилась в 1982 году) методологическую и экспериментальную работу, связанную с осознанием фундаментальных основ трансляции и языков программирования.

"Одной из центральных концепций схемы трансляции БЕТА, — как пишет И. В. Поттосин, — является концепция внутреннего языка. Исследования по внутреннему языку в проекте БЕТА составили заметную часть общемировых исследований, которые ввели понятие внутреннего языка, внутреннего представления программы как фундаментальное для методологии построения большого числа различных языковых процессоров — трансляторов, анализаторов свойств, систем преобразований программ и др. В системе БЕТА внутренний язык выступает в трех качествах — как семантический базис входных языков, как основа для оптимизирующих преобразований на его уровне, как исходное представление для генерации объектного кода на различных ЭВМ".

В 60—70-е годы А. П. Ершов, наряду с решением проблем автоматизации программирования, много внимания уделяет в своих работах вопросам теоретического программирования (первая статья об операторных алгоритмах была опубликована еще в 1958 году). Его работы 1967–1973 годов оказали большое влияние на развитие теоретического программирования. В них был сформулирован ряд проблем теории схем программ, сопоставлены различные направления и модели этой теории, выработана общая система понятий и связаны воедино разнообразные результаты и их применения, иначе говоря, создан фундамент теории схем программ как цельного направления теоретического программирования.

Если теория схем программ имела дело с таким исследуемым и моделируемым объектом, как программа, то в дальнейшей деятельности по теории программирования А. П. Ершов делает следующий шаг, заключающийся в том, что предметом исследований служит процесс работы над программой. Начало этому новому направлению было положено А. П. Ершовым в опубликованной в 1977 году статье "О сущности трансляции". В этой и последующих статьях он сформулировал понятие смешанного вычисления — как фундаментальный принцип системного программирования, определяющий в тех или иных аспектах функционирование процессоров обработки программ.

В 80-х годах А. П. Ершов публикует ряд работ, посвященных проблемам вычислимости, которые также примыкают к теоретическому программированию. В фундаментальной работе 1982 года "Вычислимость в произвольных областях и базисах" проводится глубокий анализ большого числа определений вычислимости, сложившихся в указанных областях, их сопоставление и оценка вклада в общую теорию.

Одной из важных заслуг Ершова перед отечественной и мировой компьютерной наукой является то, что он умел оценить текущее состояние этой науки и наметить те реальные точки роста и перспективы исследований, которые будут определять ее развитие. Так, во второй половине 60-х годов он одним из первых в стране осознал те новые возможности общения с ЭВМ, которые создают системы разделения времени. В 1966 году он организует работы по автоматическим информационным станциям (проект АИСТ). Проект АИСТ, создателем и руководителем которого был А. П. Ершов, объединял широкий круг исследований по архитектуре вычислительных систем. В рамках этого проекта была создана первая в стране развитая система разделения времени АИСТ-0. Реализованная как многомашинный комплекс из отечественных ЭВМ, эта система была во многом пионерской и внесла большой вклад в развитие отечественных работ по архитектуре ЭВМ и операционным системам, которые, к сожалению, были в дальнейшем свернуты из-за ориентации на копирование зарубежных разработок.

С конца 70-х годов и до конца своей жизни А. П. Ершов большое внимание уделял проблемам обучения программированию. Так, в статье 1976 года под названием "Откуда берутся люди, способные создавать надежное программное обеспечение" он изложил план подготовки системных программистов в вузах. Этот план был результатом его многолетней преподавательской деятельности на механико-математическом факультете Новосибирского университета, где он читал общие курсы по программированию и руководил организацией обучения специалистов по системному и теоретическому программированию.

В дальнейшей деятельности интерес А. П. Ершова привлекло обучение информатике и программированию в школе. Поняв принципиальную важность информатики для страны, А. П. Ершов отдал этому делу последний десяток лет и большую долю своей энергии. А. П. Ершов был одним из создателей так называемой школьной информатики, признанным ее лидером. В написанной вместе с Г. А. Звенигородским и Ю. А. Первиным в 1979 году работе "Школьная информатика (концепции, состояние, перспективы)" он определил развитие этого направления вплоть до наших дней. А. П. Ершов был одним из авторов и редактором первого школьного курса информатики, а также методического пособия по этому курсу. В 1988 году, незадолго до его смерти, появился новый учебник по информатике, одним из авторов и редактором которого он являлся. Он организовал телевизионный курс по этому предмету, руководил созданием школьных систем программирования и школьного программного обеспечения вообще, вел большую организационную работу.

Надо отметить, что научно-организационной работе он уделял много внимания. А. П. Ершов был организатором многих Международных и Всесоюзных конференций, членом редколлегий ряда ведущих зарубежных и отечественных журналов, членом Международной организации по обработке информации (IFIP). В последние годы он являлся главным редактором журнала "Микропроцессорные средства и системы".

8 декабря 1988 года после тяжелой и продолжительной болезни Андрей Петрович Ершов скончался.

Его заслуги в компьютерном мире значительны, он внес определяющий вклад в становление и развитие программирования как науки. Академик А. П. Ершов был иностранным членом Ассоциации вычислительной техники США, почетным членом Британского общества по вычислительной технике, он удостоен награды "Серебряный сердечник" Международной федерации по обработке информации.

 

Джон Маккарти

Отец искусственного интеллекта, автор языка LISP

Джон Маккарти

Слова, вынесенные в эпиграф, принадлежат бывшему дипломнику Джона Маккарти в период разработки нового языка программирования. Для специалистов по информатике эти слова неудивительны, т. к. имя Джона Маккарти известно во всем мире. Его называют отцом искусственного интеллекта, он первый ввел термин "искусственный интеллект" и создал первый язык искусственного интеллекта.

Джон Маккарти сыграл решающую роль в основании двух самых известных научных центров США по исследованию проблем искусственного интеллекта — в Массачусетском университете в 1957 году и в Стэнфордском университете в 1963 году. Среди его многочисленных работ, внесших значительный вклад в науку, наиболее важные относятся к концу 50-х годов, когда он работал в Массачусетском Технологическом институте. Именно там в 1959 году Маккарти предложил концепцию разделения времени — режима работы компьютера, который позволяет нескольким программистам, работая за разными терминалами, одновременно использовать его память и процессор. Помимо всего прочего, это означало, что исследователи в области искусственного интеллекта получили возможность составлять и проверять экспериментальные программы непосредственно, не ожидая по нескольку часов и дней, пока их задания, заложенные среди других в пакеты перфокарт, будут обработаны единственным оператором вычислительной машины.

В 80-х годах главный научный интерес Джона Маккарти — это формализация так называемых "знаний здравого смысла".

Джон Маккарти родился 4 сентября 1927 года в Бостоне, штат Массачусетс, в семье профсоюзного деятеля-марксиста. Уже в возрасте 8 лет он твердо знал, что непременно будет ученым. Не имея возможности и опыта работы с компьютером, Маккарти интересовался техническими новинками и строил планы на будущие. В 1944 году Джон поступил в Калифорнийский технологический университет (Cal-Tech), но был отчислен за многочисленные пропуски по физкультуре, которая давалась ему с большим трудом. В 1945 году он был призван на службу в армию. После возвращения из армии Маккарти повторно зачислили в Калифорнийский технологический университет. Окончив его, Джон продолжил свое образование в Принстоне, где и получил степень доктора наук.

В начале 50-х годов Маккарти разделял взгляды коммунистов, а десятилетием позже стал радикалом с длинными волосами и лентой на лбу. В 70-е годы он взбирался на горы, летал на самолете и иногда, для разнообразия, прыгал с парашютом. 80-е годы Маккарти встретил одетым в строгий костюм и высказывающим столь же "строгие" консервативные взгляды. Одно в нем было неизменно, Маккарти был поистине генератором самых фантастических идей, которые он разбрасывал с такой скоростью, с какой вводил информацию в компьютер у себя дома или на работе. Один журналист описал его как "человека поразительной внешности, седовласого патриарха с бородкой обольстителя… и шокирующими манерами, например привычкой поворачиваться и уходить, оборвав разговор на полуслове".

Задолго до того, как разгорелись споры в области искусственного интеллекта, исследователям пришлось преодолеть ряд серьезных трудностей в применении компьютеров. При взаимодействии человека с компьютером наиболее важны два момента: во-первых, по возможности более легкий доступ к машинам, во-вторых, более совершенные языки программирования. В решение обеих задач в конце 50-х годов существенный вклад внес Джон Маккарти, именно он первым ввел термин "искусственный интеллект". В 1956 году Маккарти организовал Дартмутскую конференцию. Эта конференция объединила многих экспертов в области машинного интеллекта, которые и заложили основу для будущих исследований в области искусственного интеллекта, а именно так они назвали науку и практику создания интеллектуальных компьютерных программ. Маккарти был по праву назван отцом искусственного интеллекта.

В 1956–1959 годах Джон Маккарти вместе со студентами Массачусетского технологического института (МТИ) разработал новый изящный язык для работы со списками, которому и дал имя LISP. Причем многие студенты внесли существенный вклад в эту разработку. В частности, Д. Эдвардс запрограммировал процесс очистки памяти от ненужных массивов, так называемой сборки мусора (garbage collection), являющийся фундаментальным понятием в LISP, да и в других языках.

Название язык получил от сокращения английских слов LISP Processing (LISP), что означает "обработка списков".

После своего появления LISP присваивали много эпитетов, отражающих его черты, — это язык функций, символьный язык, язык обработки списков, рекурсивный язык. С позиций сегодняшнего дня LISP определяют как язык программирования функционального типа, в основу которого положен метод λ-исчисления (метод λ-исчисления разработан в 30-е годы А. Черчем в качестве строгой математической модели для вычисления функций).

Программы и данные LISP существуют в форме символьных выражений, которые хранятся в виде списковых структур. LISP имеет дело с двумя видами объектов: атомами и списками. Атомы — это символы, используемые для идентификации объектов, которые могут быть числовыми или символьными (понятия, материалы, люди и т. д.). Список — это последовательность из нуля или более элементов, заключенных в круглые скобки, каждый из которых является либо атомом, либо списком. LISP манипулирует списками путем использования трех примитивных функций: CAR, CDR и CONS, из которых получаются все другие функции обработки списков. В функции CAR в качестве значения аргумента используется первый элемент списка; значением аргумента в функции CDR является оставшаяся часть списка после удаления первого элемента, а функция CONS собирает вновь то, что CAR и CDR разбили на части. Интересно отметить, что слова "CAR" и "CDR" остались в LISP на память от первой реализации языка на ламповом компьютере IBM 704. Они являются сокращением английских слов, означающих "содержимое адресной части регистра" и "содержимое уменьшаемой части регистра", соответственно, терминами, характерными для машин первого поколения.

Во многих отношениях LISP отличается от других языков прежде всего тем, что выполнение программы не состоит в последовательности шагов, как в других языках. В основном LISP относится к языкам интерпретирующего типа, однако в некоторых его диалектах имеется функция COMPILE, которая может быть использована для компилирования LISP-npoграмм.

В 1962 году Джон Маккарти переехал в Стэнфорд. В этот период он решил первые проблемы в разделе математики, называемом семантикой вычислений. Маккарти уделял большое внимание проблемам общности. Он пишет: "Еще в 1958 году было очевидно, что системы искусственного интеллекта страдают отсутствием общности. Первый явный симптом состоит в том, что небольшое добавление к идее программы часто приводит к переписыванию заново всего начала со структурами данных". Некоторый прогресс был достигнут с появлением модульности структур данных, но по-прежнему невозможно было обходиться без переписывания программ. Другим симптомом, по мнению Маккарти, являлся тот факт, что никто не знал, как создать такую базу данных, содержащую общеполезные знания об окружающем мире, которую могла бы использовать любая программа, нуждающаяся в этих знаниях. В 1963 году Маккарти публикует статью, посвященную именно проблемам общности в системах искусственного интеллекта. В ней он выдвигает предположение, что, может быть, стоило бы попробовать что-нибудь более похожее на генетическую эволюцию, например, дублировать подпрограммы, одни копии модифицировать, а другие оставлять неизменными. Обучающаяся система экспериментировала бы: а не лучше ли заменить некоторые вызовы начальных подпрограмм вызовами модифицированных подпрограмм? Может быть, потребовалось бы зарезервировать для модификаций некоторое количество параметров подпрограмм. Однако все способы представления знаний с помощью программ сталкивались с возникновением такого вопроса, насколько скоро придется комбинировать несопоставимые знания или создавать программы, модифицирующие знания. Маккарти считал, что малые модификации поведения в большинстве случаев можно описать как малые изменения представлений о мире и для этого необходима система, точно отражающая эти представления.

Он писал: "Если вы хотите, чтобы машина могла выводить абстракции, скорее всего, это значит, что она должна уметь представлять эти абстракции некоторым достаточно простым способом".

Еще тогда возникла идея увеличения общности, которая заключается в том, чтобы воспользоваться логикой для такого описания фактов, которое не зависело бы от того, как эти факты будут использоваться впоследствии. Тогда Маккарти казалось (как, впрочем, и сейчас), что люди по объективным причинам предпочитают общаться с помощью декларативных предложений, а не языков программирования, все равно, является ли субъект общения человеком, существом с Альфа Центавра или компьютерной программой. Более того, и для внутреннего представления проявляются преимущества декларативной информации.

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

В это же время Маккарти вместе с Хэйесом занимался проблемами эпистемологических и эвристических аспектов задач искусственного интеллекта. Они предположили, что изучать проблемы общности гораздо проще в рамках эпистемологического подхода. Разница состоит в том, что при эпистемологическом подходе требуется полный набор фактов, гарантирующий, что некоторая стратегия достигает цели, в то время как эвристический подход предполагает поиск приемлемой стратегии исходя из наличных фактов.

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

Джон Маккарти (80-е годы)

Изучение этой проблемы привело к созданию в 1960 году "исчисления ситуаций", целью которого было нахождение способа описания результатов действий вне зависимости от проблемной области. Однако ситуационное вычисление было применимо только в том случае, когда рассуждения о дискретных событиях, результатом каждого из которых является новая общая ситуация, имеют смысл. Непрерывные события и события, происходящие одновременно, теорией не охватывались. Оказалось, что, к сожалению, практически невозможно использовать ситуационное исчисление даже для довольно ограниченных задач. Использование универсальных программ для доказательства теорем приводило к слишком медленной работе программы, потому что в 1969 году программы для доказательства теорем не имели средств управления поиском. Все это привело к созданию системы STRIPS, в которой использовались только логические рассуждения в рамках конкретной ситуации. Формализм системы STRIPS был более ограниченным, чем исчисление ситуаций в полном объеме. Чтобы избежать противоречий, необходимо было аккуратно выбирать факты, входившие в число аксиом. Эти противоречия могли возникать при невозможности удалить высказывание, которое не являлось бы истинным в результате действия происшедшей ситуации.

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

В 1971 году Джон Маккарти был награжден премией Тьюринга за достижения в области искусственного интеллекта. Ныне он профессор информатики, профессор кафедры им. Шарля М. Пижо Инженерной школы Стэнфордского университета. Маккарти работает над новым языком программирования Elephant. Этот язык предназначен для программ, взаимодействующих с людьми или с программами, принадлежащими другим организациям. В настоящие время наиболее важный из его проектов заключается в формализации контекста и его приложений к искусственному интеллекту. Маккарти по праву можно назвать генератором идей, которые помогают приблизить компьютеры к более высокому уровню интеллекта. Только время покажет, верно ли его утверждение о возможности создания компьютера, более умного, чем человеческий мозг.

 

Джон Кемени и Томас Курц

Создатели популярного языка BASIC

Джон Кемени

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

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

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

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

Джон Кемени и Томас Курц успешно решили перечисленные проблемы и создали самый популярный язык программирования XX века.

Джон Джордж Кемени родился 31 мая 1926 года.

Томас Курц

В 1938 году после захвата Австрии Гитлером его отец уехал их Венгрии в США, а в начале 1940 года туда же перебралась вся его семья — жена, дочь и сын Джон. Они поселились в Нью- Йорке. Джон поступил в Высшую школу имени Джорджа Вашингтона и закончил ее лучшим в классе за три года. Кемени позднее рассказывал про свой школьный опыт с тестом на вербальные способности: "У меня не было словаря, и я мог понимать только несколько слов в каждом вопросе, но это был тест с вариантами ответов, и я понимал достаточно, чтобы найти правильный. Я "взломал" код и получил одну из самых высших оценок в Нью-Йорке".

В 1943 году он поступил в Принстонский университет, чтобы изучать математику. Он получил американское гражданство и в 1945 году, когда ему исполнилось 18 лет, был призван в армию.

Армия направила его в Лос-Аламосскую лабораторию Манхэттенского проекта, где он был назначен ассистентом по теоретической части. Вычислительный центр проекта использовал машины IBM, работавшие с перфокартами 24 часа в сутки, 6 дней в неделю. После того как была установлена первая дартмутская система разделения времени, Кемени говорил про работу в Лос-Аламосе: "Понадобилось две недели, чтобы получить численное решение дифференцированного уравнения. Я сказал бы, что работа, которую мы делали — двадцать человек целый год — могла бы быть сделана одним второкурсником Дартмута за один день… И пока он делал бы это, 250 человек могли бы пользоваться этим же компьютером".

В 1946 он вернулся в Принстон, где в 1947 году получил степень бакалавра искусств "summa cum laude". Во время подготовки своей диссертации Кемени целый год работал ассистентом у Альберта Эйнштейна в Институте перспективных исследований. Большую часть своего времени он проводил, изучая работы Эйнштейна по общей теории поля.

Кемени защитил докторскую диссертацию по математике в Принстоне в 1949 году, когда ему было 23 года. Затем он два года преподавал математику в Принстоне, а следующие два — философию. В 27 лет, в 1953 году, он в должности профессора поступил на факультет в Дартмутском колледже, чтобы преподавать математику и философию. Два года спустя, в 1956 году, он был назначен директором отделения математики.

В этом же году Томас Э. Курц, другой молодой доктор математики и философии из Принстона, приехал в Дартмут уже с опытом работы с компьютерами, полученным в результате летней работы в UCLA.

Томас Курц родился 22 февраля 1928 года в штате Иллинойс. В 1950 году закончил Кнокс Колледж в Гамбурге, штат Иллинойс, где отдавал предпочтение математике. Восхищаясь Кемени, он приехал учиться в Принстон, где закончил свою докторскую диссертацию по статистике, получив степень в 1956 году. Основной проблемой его изучения было сравнение кратных чисел в математической статистике.

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

Две вещи были необходимы для осуществления их мечты: более легкий доступ к компьютеру, чем пакетная обработка, и простой язык программирования. С наступлением 1956 года Кемени и Курц создали язык "DARtmouth SIMplified Code", но он оказался хуже, чем FORTRAN. В 1962 году Кемени и его аспирант написали предшественник BASIC, "Dartmouth Oversimplified Programming Experiment", другой не вышедший в свет язык.

В 1959 году Дартмут приобрел компьютер Royal МсВее LGP-30. Курц говорил о нем: "Большой, как холодильник, он имел только 16 000 байт памяти и мог выполнять только 60 операций в секунду. Но это был наш первый компьютер, и мы считали, что это великолепно! Джон и я вместе с нашими женами поехали в Бостон и привезли его в Дармут в вагоне поезда". С этим компьютером они работали по своему плану с несколькими студентами, пробовали языки, пробовали инструментальные подходы, искали идеи. Джон Маккарти из MIT развил основную концепцию режима разделения времени на большой машине IBM. Дармут не был в состоянии позволить себе такое, но в начале 1963 года с помощью премии Национального Научного фонда и скидок продавца Дартмут смог приобрести компьютеры DATANET-30 и GE 225, оба с аппаратным обеспечением для поддержки разделения времени и многими терминалами ввода-вывода. Кемени написал компилятор для черновой версии BASIC к следующей весне. В это же время два студента писали операционную систему.

В четыре часа дня 1 мая 1964 года BASIC и Дартмутская система разделения времени (DTSS) впервые заработали. Первая программа на BASIC, опубликованная Кемени и Курцем, имела вид

10 LET X = (7+8) / 3

20 PRINT X

30 END

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

BASIC все больше завоевывал свои позиции. Его простота и возможности были причинами его универсального принятия как встроенного языка микрокомпьютеров. Он преподавался почти во всей высшей школе и колледжах как язык для первого знакомства с компьютерами. Несмотря на постоянные нападки со стороны компьютерных специалистов и академических наставников, он оказывал огромную помощь в образовании, для чего и был разработан. Это "lingua franca" вычислительной техники, используемый в качестве примера в энциклопедии для объяснения программных элементов.

В 1975 году Кемени и Курц переделали язык, добавив структурные черты и убрав оператор GOTO, но мир не уделил этому должного внимания, создавая, изменяя и используя несчетное число версий любимого и широко используемого BASIC. Целые серии языков, являющиеся лишь вариантами оригинальной версии Кемени — Курца: MITS BASIC, Tiny BASIC, BASIC, BASIC-09, профессиональный BASIC, Macintosh BASIC, Microsoft BASIC. Кемени и Курц называли это "улицей BASIC".

В 1978 году ANSI (Американский национальный институт стандартов) опубликовал первый стандарт для BASIC, но компьютерная промышленность проигнорировала его. Работать с новым стандартом начали лишь тогда, когда Курц стал председателем Комитета по техническим проектам.

Летом 1983 года Кемени и Курц решили объединить усилия и создать такую версию BASIC, которая была бы совершеннее, чем PASCAL. И они создали так называемый True BASIC, который был "спущен на воду" 5 марта 1985 года. Он был более мощным, чем BASIC, имел интерфейс и командную структуру, понятную компьютеру. В скором времени ANSI присвоил стандарт и новой версии BASIC.

Кроме совместных с Курцем работ по совершенствованию BASIC, на Джона Кемени были возложены большие административные обязанности. С 1970 года он был президентом Дартмута, оставаясь на этом посту 11 лет. Популярный и полный сил президент Кемени сделал много полезного для студентов и преподавателей, а также для изменения имиджа колледжа.

После завершения своего пребывания на посту президента Дартмута в 1981 году он вернулся к преподаванию на отделении математики. До 1992 года он продолжал активную деятельность в Дартмуте как заслуженный профессор.

26 декабря 1992 года Джон Кемени неожиданно скончался от сердечного приступа в Лебаноне, штат Нью-Гемпшир. Ему было 66 лет.

Кемени являлся автором и соавтором 13 книг, среди которых: "Введение в конечную математику", "Программирование на языке BASIC", "Руководство по программированию на BASIC" и др. Он был удостоен многих наград и премий, таких как премия Нью-Йоркской национальной академии, премия пионера в области вычислительной техники, премия IBM Льюиса Робинсона и др.

Томас Курц длительное время исполнял обязанности Американского национального комитета по стандартам и продолжал преподавать математику и компьютерные науки.

А что стало с BASIC в конце XX и начала XXI столетий. В начале 90-х годов должны были появиться компьютеры пятого поколения, о проекте создания которых японцы заявили еще в 80-х годах. В качестве основного языка программирования в этом неосуществленном проекте предусматривался язык PROLOG. Любопытные соображения по этому поводу высказал в те годы Р. Форсайт: "Если Вам необходимо использовать PROLOG, то подождите, пока он будет "проглочен" языком BASIC, этим питоном, пожирающим все, что лежит на его пути. BASIC только что закончил "переваривать" язык PASCAL со всеми его управляющими структурами. После небольшой паузы и нескольких отрыжек он будет в состоянии "слопать" PROLOG, так что мы увидим варианты языка BASIC со встроенным механизмом доказательства теорем методом резолюций. Тогда наступит время подумать о возможном переходе на PROLOG".

И как бы в подтверждение этих оригинальных высказываний Р. Форсайта в 1991 году фирма Microsoft выпустила первую версию языка VISUAL BASIC (VB). В 1992 году вышла вторая версия, в 1993 — третья, в которой были значительно улучшены средства для работы с базами данных, а появление в октябре 1995 года VB 4.0 внесло в этот язык принципиально новые возможности, такие как использование технологии OLE и возможность создания повторно используемого двоичного кода, который может быть реализован в DLL-библиотеках. С пятой версии VISUAL BASIC, которая появилась в 1997 году, язык стал полностью объектно-ориентированным. С выходом этой версии никто уже не может сказать, что это язык для начинающих программистов. По данным конца 90-х годов ушедшего столетия число программистов, использующих VB 5.0, не уступает таким средствам разработки, как DELPHI и VISUAL C++.

 

Никлаус Вирт

Автор языков PASCAL, MODULA, OBERON

Никлаус Вирт

Никлаус Вирт прежде всего известен как создатель языка программирования PASCAL. Кроме этого, на его счету такие великолепные разработки, как MODULA-2, OBERON и многое-многое другое.

Родился Никлаус 15 февраля 1934 года в Винтерхуре (Швейцария). Родители Никлауса — Уолтер и Хедвиг (Келер) Вирт. Он женился на Нани Такер, у них трое детей: дочери Кэролин и Тина, сын Христиан. Вирт приятный в общении и добродушный человек, который выглядит моложе своих лет. Все свободное от работы время он проводит с семьей, часто совершая пешие походы по холмистым возвышенностям северной Швейцарии.

В сферу информатики Вирт погрузился в 1960 году, когда ей не уделялось должного внимания ни в коммерческой рекламе, ни в академических учебных планах. Никлаус рассказывает: "…Во время моего обучения в Швейцарском государственном технологическом институте единственное упоминание о компьютерах, которое я услышал, прозвучало в факультативном курсе, читавшемся Амброзом Спайзером, ставшим позднее президентом IFIP. Разработанный им компьютер ERMETH был малодоступен обычным студентам, и поэтому мое посвящение в информатику оказалось отложенным до того момента, как я прослушал курс численного анализа в Лавальском университете в Канаде. Тогда мне стало очевидно, что программирование будущих компьютеров должно было быть более эффективным. Поэтому я учился в первую очередь не проектировать аппаратную часть, а правильно и элегантно ее использовать".

Вирт присоединился к группе, участвовавшей в разработке — или, скорее, в доработке — компилятора и языка для компьютера IBM-704. Этот язык был назван NELIAC и являлся диалектом языка ALGOL-58.

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

Выдающийся же этап в карьере Вирта начался в Стэнфордском университете, где он работал в качестве адъюнкт-профессора информатики вновь созданного факультета вычислительной техники с 1963 по 1967 год. Язык EULER привлек внимание рабочей группы Международной федерации по обработке информации (IFIP), участвовавшей в составлении планов, относительно будущего ALGOL.

Сейчас можно сказать, что работа Вирта над языком PASCAL началась именно тогда, в 1965 году, когда IFIP пригласила его принять участие в разработке нового языка, который должен был стать преемником ALGOL-60. Разработчики разделились на два направления, и Вирт оказался в том из них, которое пошло по пути расширения ALGOL. В 1966 году в Стэнфордском университете был создан язык под названием ALGOL-W.

С осени 1967 по 1968 год, когда Вирт вернулся в Швейцарию и служил в качестве адъюнкт-профессора в университете Цюриха, освободившись от обязательств перед IFIP, он разработал язык, ставший преемником ALGOL-W. Вирт назвал этот язык PASCAL, в честь французского математика и физика XVII столетия Блеза Паскаля, который в 1642 году сконструировал вычислительную машину, чтобы помочь своему отцу в работе по сбору налогов. "Кроме того, слово "PASCAL" звучит довольно мелодично", — говорит Вирт. Язык PASCAL первоначально разрабатывался как язык для обучения, но этим его функции не ограничились. В 1972 году PASCAL начал использоваться на занятиях по программированию в Швейцарском государственном технологическом институте. Свою работу над языком Никлаус закончил в 1974 году, создав высококачественный компилятор, а подлинное признание PASCAL получил после разработки Кеном Боулесом P-кода для микрокомпьютеров, который позволил использовать PASCAL на новых машинах различной конфигурации.

После этого он переключил свое внимание на изучение мультипрограммирования, в результате чего появился язык MODULA, предназначенный главным образом для программирования специализированных систем, в том числе и миникомпьютеров. Основой для нового языка послужил "Параллельный PASCAL", в котором был применен принцип модульной организации комплексов программ, позволяющий программисту "прятать" определенные части программ. Первоначальный вариант MODULA-1 "никогда не рассматривался как полноправный язык программирования", подчеркивает Вирт. Языком модульного программирования стал MODULA-2, ориентированный на персональные компьютеры.

В эти годы работа Вирта была связана с конструированием персонального компьютера "Лилит" и использованием языка MODULA-2.

OBERON — еще один язык программирования, созданный доктором Виртом в 1987 году и названный в честь спутника Урана — OBERON, открытого "Вояджером" в 1977 году.

При создании всех своих языков программирования Вирт придерживался принципа: "Сущности не следует умножать без необходимости", который получил название "бритва Оккама" В языке OBERON этот принцип реализован особенно явно. OBERON стал продолжением линии языков ALGOL-60, PASCAL, MODULA-2. OBERON создан на основе языка MODULA-2, однако, в отличие от PASCAL и MODULA-2, это комбинация языка программирования и операционной системы "для отдельного пользователя персональной рабочей станции". Удивительно простой и даже аскетичный, OBERON представляет собой, пожалуй, минимальный язык высокого уровня.

Работа продолжалась там же в Цюрихе, где Вирт находился уже в качестве профессора информатики с 1968 по 1975 год. Одновременно, начиная с 1968 года, доктор Никлаус Вирт стал профессором информатики в Федеральном Институте технологий Цюриха в Швейцарии, где и работает в этом звании по сей день и продолжает активное исследование в области языков программирования.

Талант Вирта как разработчика языков программирования дополняется писательским даром. В апрельском номере 1971 года журнала "Communications of the ASM" Вирт опубликовал основополагающую статью по "нисходящему" методу проектирования программ ("Разработка программы методом поэтапного усовершенствования"), в которой сформулированы принципы нисходящего построения программы (с последовательным уточнением ее фрагментов). Полученный в результате элегантный и мощный метод проектирования не утратил своей значимости и сегодня. Две другие его статьи "О дисциплине программирования в реальном времени" и "Что мы можем сделать с необязательным разнообразием обозначений", опубликованные в том же журнале, посвящены проблемам поиска адекватного языкового формализма.

Вирт написал несколько книг по программистской тематике: "Алгоритмы и структуры данных", "Программирование на OBERON", "PASCAL — руководство пользователя и справочник" и "Проект цифровых операций".

Сейчас доктор Вирт совместно с тремя другими коллегами занимается вопросами автоматизированного проектирования аппаратных средств компьютерных систем.

Все работы доктора Вирта внесли большой вклад в компьютерную науку. PASCAL сделал языки программирования более легкими для использования и изучения, а компьютеры более доступными для массового пользователя. Его проекты, от EULER до OBERON, стремились упростить и уничтожить барьеры между аппаратными средствами и программным обеспечением, сделать языки программирования более легкими в использовании.

Конечно, известно много других компьютерных языков программирования, помимо PASCAL, OBERON или MODULA-2, но вклад Вирта в создание и развитие языков программирования очень значителен.

За большой вклад в информатику доктор Никлаус Вирт получил многочисленные награды и почести. Американский Совет Магистров присвоил ему звание член-корреспондента; Компьютерное Общество Института Инженеров по электронике и радиотехнике — звание компьютерного пионера; он получил приз IBM европейской науки и техники; стал членом Швейцарской Академии Инженерии и иностранным партнером Американской Академии Инженерии, а также получил орден "Pur le merte" и премию Тьюринга. Вирт получил почетные докторские степени от многих университетов: университет Лаваль, Квебек (Канада), университет Калифорнии, Беркли, университет Йорк (Англия), университет Лине Иоганна Кеплера (Австрия), университет Новосибирска (Россия), Открытый университет Англии, университет Претории (Южная Африка).

 

Кеннет Томпсон и Деннис Ричи

Создатели операционной системы UNIX и языка С

Кеннет Томпсон

В октябре 1983 года на ежегодной конференции ACM Деннису М. Ричи и Кеннету (Кену) Томпсону из АТ & Т Bell Laboratories была вручена премия Тьюринга за разработку и реализацию операционной системы UNIX.

Как сказано в решении Комитета по премиям Тьюринга: "Успех системы проистекает из тщательного выбора нескольких ключевых идей и их элегантной реализации. Пример системы UNIX привел поколение разработчиков программного обеспечения к переосмыслению основ программирования. Основной принцип системы UNIX заключен в ее подходе, который позволяет программистам опираться на работу других".

После первого публичного представления ОС UNIX в 1973 году потенциальные клиенты буквально засыпали авторов заявками с просьбой предоставить им копию новой операционной системы. Популярность ОС UNIX обусловлена многими ее отличительными особенностями. Она создавалась при помощи средств языка высокого уровня и имела иерархичную файловую систему. ОС UNIX была простой, но очень мощной благодаря удобству пользовательского интерфейса и возможности построения сложных программ из набора весьма компактных компонентов.

Деннис Ричи

Все началось в середине 60-х годов XX века. Bell Laboratories, General Electric и MIT приступили к реализации амбициозного проекта по созданию многопользовательской многозадачной операционной системы Multics (Multiplexed information and

Computing Service) для мэйнфреймов. В работе над этим проектом приняли участие сотрудники Bell Laboratories Кен Томпсон, Деннис Ричи, Дуг Макилрой, Джо Осана и др. Работы над Multics так и не удалось довести до логического конца, хотя и была выпущена сырая версия, реализованная на компьютере GE 645. В 1969 году руководство Bell Laboratories отказалось от дальнейшего участия в проекте. Как пишет в своей книге "Четверть века UNIX" (Quarter Century of UNIX) Питер Салус: "Участники проекта чувствовали себя несчастными неудачниками. В конце концов, Кен и Деннис с подачи Дуга попытались все же создать систему, которая принесла бы им удовлетворение". И они создали ее.

Деннис Ричи родился 9 сентября 1941 года в Маунт-Верноне, Нью-Йорк. В возрасте 9 лет он переехал в Саммит, Нью-Джерси. Его отец был директором технической лаборатории коммутационных систем Bell Laboratories. Ричи специализировался по физике в Гарварде, закончив его в 1963 году. В последующие пять лет в том же заведении он пытался получить докторскую степень по прикладной математике, закончил диссертацию по рекурсивным функциям, которая, как он говорит, была "своего рода математикой расчетов, теорий того, что, возможно, машины могут делать". Во время обучения в колледже он стал интересоваться компьютерами, но его академическая учеба вела его больше к теории, чем к практике. Будучи выпускником учебного заведения, Ричи стал заниматься ОС Multics, а также работал почасовиком по проекту MAC, системам с разделением времени, который осуществлялся в 60-е годы Массачусетским технологическим институтом. Он никогда не получил свою докторскую степень, хотя действительно закончил диссертацию. Его объяснение: "Мне это так наскучило, что я никогда не возвращался к этому". В 1968 году Ричи поступил на работу в Bell Laboratories, где и работает до сих пор.

Кен Томпсон родился в Новом Орлеане 4 февраля 1943 года. Отец его был военным моряком и часто менял место своей службы. До двухлетнего возраста Кен жил в Сан-Диего, Сиэтле, Сан-Франциско, Индианаполисе и Кингсвилле.

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

Поступив в 1960 году в университет Беркли, Калифорния, Томпсон специализировался на электронике. Во время учебы он работал в компьютерном центре программистом, а по окончании университета, в 1965 году, получил степень магистра по электротехнике. На работу в Bell Laboratories он поступил в 1966 году и принял участие в проекте Multics.

Итак, в 1969 году после выхода Bell Laboratories из названного проекта Кен Томпсон и Деннис Ричи решили разработать собственную операционную систему.

Используя опыт, накопленный в рамках проекта Multics, Томпсон создает версию ОС для бесхозной устаревшей модели компьютера PDP-7, пылившейся на складе. Для того чтобы написать все основные компоненты системы, Томпсону понадобился всего лишь один месяц. "По одной неделе ушло на проектирование ядра, файловой системы, редактора и компилятора, — пишет Салус со слов Томпсона. — К концу месяца у нас уже была вполне работоспособная операционная система".

Считается, что название UNIX предложил Брайан Керниган, который позже, в 70-х годах, вместе с Ричи принимал участие в разработке языка С, причем первоначально система была названа Unics (Uniplexed Information and Computing Service), чтобы подчеркнуть ее родство с Multics. В 1970 году система UNIX по предложению Джо Осана была перенесена на более мощный компьютер PDP 11/20.

Надо сказать, что языком, на котором Томпсон начал писать ОС UNIX был FORTRAN. Но затем сложилась ситуация, о которой Томпсон говорит следующее: "Когда при написании системных программ выяснилось, что FORTRAN накладывает различные ограничения, я нисколько не ослаблял их, и в конце концов стало очевидным, что это уже не FORTRAN. Я назвал его языком В (Би). Это был по сути интерпретатор".

Вскоре после этого (1972 год) Деннис Ричи, используя промежуточный язык данного интерпретатора, создал машинный язык, а затем — компилятор для компьютера PDP 11/20. Добавив средства структурного программирования и переписав его, система получила название языка С (Си). (Теперь становится немного логичным странное название языка — вслед за "В" идет буква "С"; первую букву латинского языка, как утверждают некоторые программисты, еще ранее использовал К. Айверсон для своего языка APL — A Programming Language.) "С этого момента главным разработчиком языка стал Деннис Ричи", — говорит Кен Томпсон.

Деннис Ричи (стоит) и Кеннет Томпсон за компьютером PDP-11/20 (70-е годы)

В 1973 году ядро операционной системы UNIX вместе с программами-утилитами было переписано на С. Поскольку С относился к классу языков высокого уровня, опубликование его спецификаций значительно упростило процесс переноса UNIX на другие аппаратные платформы.

Версию операционной системы UNIX, написанную на С, Ричи и Томпсон представили в 1973 году на Symposium on Operating Systems Principles. В зале, где проходил доклад, присутствовало около 200 человек. Как пишет Питер Салус: "Это была одна из первых разработок, которую специалисты приняли на "ура". Эта версия UNIX действительно обладала очень широкими функциональными возможностями и при этом еще и работала".

Интерес со стороны пользователей вырос еще больше после публикации в 1974 году Ричи и Томпсоном статьи в "Communications of the ACM". Только за первый год заявки на приобретение UNIX подали свыше 40 организаций.

В последующие несколько лет целый ряд компаний предложили пользователям собственные версии UNIX.

В 1979 году, после того как АТ & Т Bell Laboratories — законный владелец UNIX, объявила о том, что она намеревается продать эту операционную систему, в университете Беркли (Калифорния) был разработан свой вариант UNIX — BSD.

Именно на основе BSD агентство DARPA начало разработку программ для Internet, а многочисленные разработчики программного обеспечения использовали его как основу для будущих коммерческих ОС (фирма Sun на основе BSD разработала SunOS, а затем и Solaris; DEC — Ultrix и т. д.). А позже появились первые некоммерческие реализации UNIX–LINUX и FreeBSD, которые можно получить бесплатно со всеми исходными текстами.

Но по мере развития вычислительной техники область применения UNIX все более расширялась, и теперь она охватывает почти все группы компьютерных систем — от персоналок до мэйнфреймов. Например, одна из классических UNIX-систем — Solaris — может работать как на базе Intel (Solaris х86), так и на сверхбольшом SPARC-сервере Enterprice 10000, который по вычислительной мощности приближается к мэйнфрейму.

Сегодняшний ассортимент UNIX-систем очень широк — от небольших рабочих станций и персональных компьютеров до больших серверов, сравнимых с мэйнфреймами. Благодаря изначальной ориентации этой операционной системы на построение вычислительных сетей, UNIX-системы находят применение в различных областях компьютерных технологий. Их используют как серверы Internet, приложений и баз данных. Большое распространение в последнее время UNIX-серверы получили в системах интерактивной обработки транзакций, где они не уступают по надежности мэйнфреймам. Надежность достигается с помощью так называемой "кластеризации" UNIX-серверов, т. е. объединения двух или более серверов в единую вычислительную систему. В случае же выхода из строя одного из компьютеров кластера, другой заменит его без остановки работы всей системы в целом.

Многие аналитики сходятся во мнении, что в новом тысячелетии будут доминировать платформы UNIX, Web/Java и Microsoft Windows. Богатое сетевое наследство, проверенная масштабируемость, функциональность и надежность, аппаратная независимость делают ОС UNIX совершенно идеальной системой. Индустрия делает ставку именно на эту операционную систему. Многие предприятия либо уже используют ее, либо намерены взять эту ОС на вооружение в самом ближайшем будущем. Производители UNIX-систем строят их на основе принятых стандартов, что гарантирует возможность совместной работы систем и продуктов от разных производителей.

"Ни Деннис, ни Кен не могли в свое время даже мечтать о тех результатах, которых удалось добиться 30 лет спустя", — пишет Питер Салус.

Кроме премии Алана Тьюринга, врученной Томпсону и Ричи в 1983 году, в 1994 году IEEE Computer Society удостоила их медалями "Computer Pioneer": Кена Томпсона — "For his work with UNIX"; Денниса Ричи — "In recognition of contributions to development of UNIX".

 

Гари Килдалл

Автор первой операционной системы для микрокомпьютеров

Гари Килдалл

СР/М — революционная операционная система (ОС) Гари Килдалла — была в те годы единственной в своем роде. СР/М представляла собой программный контроллер для микрокомпьютеров и была первой ОС, предназначенной для работы на компьютерах с дисководами. Благодаря системе Гари Килдалла, пользователь имел в своем распоряжении ОС, которая работала на 8-разрядном компьютере с памятью 16 Кбайт и процессорах Intel 8080 и Z80. Также на широкую популярность системы СР/М повлияла ее легкая адаптивность к компьютерам различных фирм. Как пишет Л. Черняк: "Даже в СССР она была известна, сюда поступало много дешевых компьютеров Robotron из тогдашней Германской Демократической Республики. О том, откуда взялась эта СР/М, тогда никто и не задумывался, а сейчас, спустя годы, обнаруживается драматическая история системы и ее автора Гари Килдалла, сделавшего ее в одиночку".

По словам самого Гари Килдалла, СР/М "стала началом процесса стандартизации всей компьютерной промышленности". За короткое время примерно 2000 компьютерных фирм стали использовать эту систему. К 1979 году СР/М фактически стала промышленным стандартом для 8-разрядных микропроцессорных компьютеров.

Кроме пионерской работы по созданию СР/М, Гари Килдалл известен как автор таких операционных систем, как СР/М — 86 (16-разрядная ОС), МР/М (многозадачная ОС), CP/Net (сетевая ОС), а также системы DR DOS и языка программирования PL/M.

Интересно заметить, что Гари Килдаллу мы обязаны термином "флоппи-диск", который он впервые ввел для названия гибких дисков.

Килдалл родился 19 мая 1942 года в Сиэтле, штат Вашингтон, где прожил до 27 лет. Нельзя сказать, что он был блестящим студентом, предпочитая во время учебы разрабатывать всякие технические новинки для автомобилей. Он разработал и собрал автомобильное противоугонное устройство, работающее на принципе азбуки Морзе, а также бинарный выключатель. Однако больше всего его интересовала электроника.

Начиная с 60-х годов, за два года до поступления в колледж, Гари Килдалл учился в навигационной школе города Сиэтла у своего отца. Но беда была в том, что навигационная наука опиралась на старую технологию, и поэтому он предпочел колледж, который сулил нечто новое. После он поступил в Вашингтонский университет, намереваясь стать учителем математики в средней школе. Его интерес к математике привел его к изучению компьютеров. В первый год обучения в колледже он два семестра изучал программирование, что и определило его дальнейшее будущее. К концу обучения он свободно писал программы на FORTRAN.

В 1962 году Гари Килдалл женился на Дороти Мак-Ивен, у них двое детей, но после 20 лет совместной жизни они развелись.

Когда началась вьетнамская война, Гари Килдалл вступил в резерв ВМФ США и таким образом смог продолжить свое обучение. Два года Гари провел в Ньюпорте, штат Род-Айленд, в офицерской школе. В 1967 году он получил степень бакалавра по компьютерным технологиям и стал аспирантом в компьютерном центре Вашингтонского университета.

В 1969 году, получив степень магистра, Гари Килдалл занялся преподаванием компьютерных технологий в военно-морской школе города Монтерей, штат Калифорния. В течение трех лет, обучая компьютерам морских офицеров, он продолжал писать докторскую диссертацию и завершил ее в мае 1972 года. Темой его исследований была оптимизация компиляции кода, а диссертация называлась "Глобальный и текущий анализ".

После получения докторской степени в 1972 году Гари Килдалл случайно прочел объявление на "доске объявлений" Вашингтонского университета, в котором рекламировался некий компьютер за 25 долларов. Он купил его. Это был 4-разрядный микропроцессор, известный как Intel 4004 — первый микропроцессор Теда Хоффа.

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

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

Гари Килдалл в своей лаборатории (начало 70-х годов)

К концу 1973 года Килдалл разработал моделирующее устройство для нового 8-раз- рядного микропроцессора Intel 8008 и убедил фирму, чтобы та приобрела язык программирования, разработанный им специально для этого микропроцессора.

Это стало тем, что в дальнейшем назвали языком программирования для микрокомпьютера, или PL/M (Programming Language for Microcomputers). После своего появления PL/М был хорошо принят пользователями.

Он применялся для создания систем программного обеспечения процессоров, редакторов, ассемблеров.

В тот же год Килдалл начал разрабатывать версию PL/М для микропроцессора 8080. Для этой цели фирма передала ему микрокомпьютер Intellec-8 с процессором 8080, клавиатурой, монитором и считывателем с перфоленты. Килдалл быстро осознал недостатки подобной конфигурации и пришел к выводу, что необходимо включить в нее дисковод с гибкими магнитными дисками.

По тем временам это было революционной идеей. Од Шугерт, изобретатель гибкого диска и основатель компании Shugart, поддержал идею Гари Килдалла и предложил ему сотрудничество с компанией. Для подключения дисковода с гибкими дисками необходимо было создать новый тип устройства, известного в настоящее время как контроллер дисков. В этой работе Килдаллу помогал его однокурсник Джон Тород (позже президент компании Digital Micro Systems), который только что защитил докторскую диссертацию в Вашингтонском университете. В конце концов они собрали нечто похожее на персональный компьютер, причем стоит заметить, что первый ПК Altair 8800 еще не появился. Но теперь встал вопрос о создании операционной системы, которая требовалась для управления памятью на магнитных дисках. Килдалл начал писать системные программы, используя свой язык PL/М. Подобные программные средства обеспечивали доступ к памяти на более высоком уровне и являлись компактной ОС.

Когда был разработан аппаратный интерфейс и доработана общая компоновка системы, то это все стало называться ОС СР/М. На разработку данной операционной системы у Килдалла ушло около двух месяцев. Одно из самых больших преимуществ системы было то, что она требовала всего 3 Кбайт памяти.

Килдалл знал, что имеющаяся ОС была недостаточной для расширения, он добавил дополнительные средства, такие как редактор текста и простой ассемблер. Только с 1975 года он имел полный набор средств для СР/М, которые включали программу обмена с периферийными устройствами для копирования файлов. С СР/М стало возможным передавать информацию с диска на микрокомпьютер, печатную информацию — на принтер и выполнять все операции, на которые была физически способна микрокомпьютерная система.

Первое коммерческое использование СР/М было совершенно неудачным. Мало кто помнит астрологическую машину Гари Килдалла. Это была та самая машина, которая использовала СР/М. В 1975 году Килдалл обратился к Бену Куперу, президенту фирмы Micromation в городе Сан-Франциско со своими предложениями, и Купер нанял Килдалла для того, чтобы тот разработал систему вычисления позиций звезд с помощью компьютера.

Килдалл разработал ассемблер и интерпретатор, используя систему СР/М. Достаточно было ввести в машину информацию о месте рождения, а затем совместить циферблат с датой рождения — и машина печатала точный астрологический прогноз. Несколько машин было продано в самом Сан-Франциско. Однако циферблаты были очень сложными, и постоянно мялась бумага.

В 1976 году Джим Уоррен, редактор компьютерного любительского журнала "Dr. Dobb’s" и будущий основатель компьютерной ярмарки, предложил Килдаллу рекламировать СР/М в его журнале. Килдалл так и сделал. Вскоре СР/М стоимостью в 75 долларов стала популярной. В том же году Килдалл оставил свою работу в военно-морской школе и вместе с женой основал фирму Digital Research (сначала фирма носила название Intergalactic Digital Research, но первое слово затем было опущено). Они начали продавать СР/М в упакованном виде. Продажи поначалу были вялыми. Некоторые из первых клиентов предлагали большие сделки. Одна фирма, Gnat Computers, купила право использовать СР/М как ОС для любого своего изделия. Всего лишь спустя год лицензия на СР/М выросла в цене в десятки тысяч долларов. К концу 1976 года Digital Research была завалена заказами на их продукцию. За короткое время около сотни фирм использовало СР/М. К концу 70-х годов более 900 фирм стали клиентами СР/М. СР/М стала стандартом, и для нее было написано большинство программ. Это длилось до начала 80-х годов, когда MS-DOS заменила ее как наиболее популярная ОС. Благодаря СР/М, Digital Research в течение долгого времени была монополистом на рынке программного обеспечения.

Килдалл и его жена Дороти не думали, что их фирма будет иметь такой успех. По словам Дороти: "У нас не было и мысли о создании большой компании. Это произошло как-то само собой. Все шло своим порядком".

Хотя, честно сказать, как такового рынка для СР/М не существовало. По словам той же Дороти, реальной конкуренции их товару не было в течение четырех лет. Основное препятствие было в том, что клиенты не сознавали необходимости создания новых операционных систем.

Реальный прорыв наступил в 1977 году, когда в город Сан-Леонардо, штат Калифорния, фирма IMSAI купила систему СР/М за 25 тысяч долларов. К этому времени Килдалл сделал около пяти версий СР/М для разных компьютеров с различными драйверами. В целях усовершенствования СР/М в этот год создается система BIOS — базовая система ввода-вывода, благодаря которой СР/М можно было свободно адаптировать к любой компьютерной системе.

После закупки IMSAI на компанию посыпались заказы. Вскоре, после первого миллиона, Килдалл перестал считать продажи СР/М, и по его оценкам к концу 80-х годов в мире использовалось около 200 миллионов экземпляров.

В 1980 году фирма IBM решила освоить рынок персональных компьютеров. Планируемый 16-разрядный ПК нуждался в операционной системе, и у IBM сложилось представление, что СР/М — собственность фирмы Microsoft. Надеясь построить подобный Apple компьютер с маленькими дисководами (5 дюйм) и похожее ПО, руководство обратилось к Microsoft, чтобы купить у них СР/М, которой у него не было. Билл Гейтс, конечно же, не мог продать СР/М IBM. Поэтому на следующий день после их визита в Сиэтл в штаб-квартиру Microsoft представители IBM отправились в Монтерей, чтобы встретиться с Килдаллом.

Он говорил, что его об этом не предупредили. Говорили, что Килдалл, который обожал летать на самолетах, был в самолете в тот день, когда прибыли люди из IBM. Но Килдалл говорил, что это далеко не так: он был в командировке до середины того дня, и люди из IBM встретились с Дороти. По словам Килдалла, они, по своему обыкновению, "набросились на нее с предложениями, которые могли испугать кого угодно". Килдалл говорил, что они хотели письменного подтверждения, что могут использовать любые идеи, исходящие от Digital. Когда Килдалл, возвратясь из своей поездки, узнал, что IBM и его жена достигли согласия, он решил прервать переговоры до тех пор, пока чета Килдалл не возвратится из запланированного недельного круиза по Карибскому морю, хотя надо признать подписание соглашения его полностью устраивало. Но, в конце концов, сделка не состоялась.

Удивительно, "Голубой гигант" — фирма IBM заключила сделку с Биллом Гейтсом, у которого на тот момент не было никакой операционной системы. Несколько позднее Гейтс получил ее почти даром у небольшой компании Seattle Computer Products. Операционная система Seattle Computer причудливо называлась QDOS, что означало "быстрая и грязная операционная система" (Quick and dirty operating system). Невероятно похожая на СР/М, она была "сделана" сотрудником этой фирмы Тимом Паттерсоном. Получив права на QDOS, фирма Microsoft на ее основе разработала ОС MS DOS и передала ее фирме IBM. В августе 1981 года IBM выпустила свой первый ПК с операционной системой PC DOS (фирма изменила название MS DOS на PC DOS).

Когда Килдалл увидел ее, то высказался так: "Я был сильно поражен схожестью между PC DOS и СР/М. Фактически они были так похожи, что даже их система имела схожее название. Я был вне себя от ярости на IBM и Microsoft. Все, кто хоть немножко смыслил в компьютерах, увидев это, мог убедиться, что даже командные директории были одинаковыми. Я уселся и использовал их PC DOS абсолютно без инструкций. Это было просто невероятно".

Килдалл сказал представителям IBM, что он изучил их творение и что оно было точной копией СР/М, при этом назвав случившееся нечестным делом: "Невероятно, как могли вы полностью скопировать чужое изобретение". Килдалл выразил свое недоумение, что такой гигант, как IBM, умудрился сделать подобное. В ответ IBM, по словам Килдалла, заявила, что ее сотрудники не осознавали, что их ОС была так похожа на СР/М.

Килдалл решил не предпринимать никаких судебных мер в отношении IBM. Digital Research зарабатывала 5 млн. долларов в год, чего было явно недостаточно для преследования IBM в судебном порядке. "Это бесполезное дело", — сказал Килдалл. И поэтому, скорее в качестве компенсации, Килдалл попросил включить его новую 16-разрядную СР/М в их библиотеку программного обеспечения.

IBM была готова угодить ему. Однако, когда СР/М-86 поступила на рынок осенью 1981 года, возникла еще одна проблема. Система стоила 250 долларов. Таким образом, как говорил Килдалл, "СР/М-86 умерла в зародыше".

Проникновение IBM на рынок ПК повлияло на подход Digital к системному программному обеспечению. Digital представил в начале 1983 года новые усовершенствованные версии СР/М, которые позволяли пользователю ПК производить одновременно несколько операций. Например, можно было писать письмо в то время, как ПК печатал налоговую декларацию.

Эта модель продавалась очень хорошо, потому что IBM в то время не имела многозадачной ОС. Однако, ввиду своей несовместимости с PC DOS, ее продажи росли только до определенного момента. Затем, по словам Килдалла, было найдено решение: "Мы сказали, что должны этим заниматься, если это нужно людям… PC DOS была написана после СР/М. Почему бы не сделать так, чтобы СР/М была абсолютно совместимой с PC DOS?" Таким образом родилась соответствующая версия СР/М под PC DOS — многозадачная система СР/М. Система имела огромный успех после своего появления в 1984 году.

С 1987 года система стала называться DR DOS, и ее первой стандартной редакцией в 1988 году стала версия DR DOS 3.41, конкурировавшая с MS DOS 3.3.

Несколько лет MS DOS и DR DOS развивались параллельно, IBM поддерживала только первую, а вторая свободно продавалась. С точки зрения пользователя они были совместимы, причем по целому ряду характеристик многие отдавали преимущество DR DOS, например у нее были гораздо более удобный интерфейс, более развитые средства для работы с дисками и лучшая защита по паролю. Так продолжалось до осени 1991 года, когда Microsoft объявила о планируемой поставке системы Windows 3.1, которая не предусматривала совместимости с DR DOS. Это был жестокий удар, за один год продажи упали более чем в десять раз, и DR DOS 6.0, принадлежавшая к тому времени фирме Novell, практически ушла со сцены, хотя в 1993 году и была выпушена версия Novell DOS 7.0.

В основном Килдалл работал дома ("это более спокойная атмосфера"), приходя в офис только для проведения деловых встреч. По словам его бывшей жены: "Он был технарь, а не бизнесмен. Он полностью погружался в проект, над которым работал. Он мог проработать 100 часов в неделю, он просто был помешан на своей работе".

В середине 80-х годов Килдалл пытался преодолеть очередной барьер в области новых технологий — связать ПК и видеодисковые плееры. "Vidlink" — это новое изобретение Килдалла, которое позволяло объединить видеодисковые плееры, цветной телевизор и ПК и иметь при этом большой объем памяти.

В течение последних десяти лет он работал с Монтерейским цифровым исследовательским центром в Калифорнии, где основал фирму, став ее председателем, президентом и исполнительным директором в одном лице. Назвал он ее "Knowledge Set Corporation", затем была фирма "Actimenture", выпустившая энциклопедию Грольера на CD-ROM.

11 июля 1994 года в одном из баров на Калифорнийском побережье при невыясненных обстоятельствах Гари Килдалл погиб.

Среди разработчиков программного обеспечения он остался одним из главных авторитетов.

 

Алан Кэй

Автор объектно-ориентированного языка SmallTalk и многооконного интерфейса

Алан Кэй

Небольшие аккуратные усы и немного взлохмаченные темные волосы… Кроссовки и вельветовые брюки… Алану Кэю не подходит популярный образ высокомерного, необщительного преуспевающего микромиллионера или ученого-компьютерщика. Он настолько неприметен, что вы могли бы пройти мимо него там, где он работает, и не обратить внимания, даже не догадываясь, что он — профессор. Однако нельзя сказать, что он безликий или даже скромный. Он любит ссылаться на себя, и часто предисловия его поучений начинаются с фраз: "Закон Кэя номер один гласит…".

Внешность человека далеко не всегда есть отражение его души и сущности. "Простое должно оставаться простым. Сложное должно быть возможным", — это слова Алана Кэя.

Доктор Алан Кэй известен своими идеями построения персональных компьютеров, оконного интерфейса и современного объектно-ориентированного программирования. Более того, по мнению Феликса Широкова, вице- президента союза "Электроника России", "Кэй — представитель редко встречающегося… направления мысли. Он — теоретик в области информатики".

Алан Кэй родился в Спрингфилде (штат Массачусетс). Вскоре после его рождения семья переехала в Австралию, где он и жил в течение нескольких первых лет своей жизни. Во время Второй мировой войны, опасаясь угрозы японского вторжения, его родители решили вернуться в Соединенные Штаты. Одаренный ребенок уже в три года научился читать и, становясь старше, непрерывно расширял свой кругозор новыми знаниями. В десять лет Алан Кэй стал победителем Национальной игры-викторины (National Quiz).

Воспоминания о детстве у А. Кэя остались очень яркие. Он рассказывал: "Когда я пошел в школу, я уже прочитал пару сотен книг. Я знал в первом классе, что они лгали мне, потому что у меня уже была своя точка зрения… Им (учителям — А. Ч.) не нравилась идея различных точек зрения, так что это была битва". Действительно, зная больше, чем все его одноклассники и большинство учителей, он не мог не демонстрировать этого. Именно его удивительные способности становились причиной постоянного недовольства преподавателей и поводом для баталий между ним и его сверстниками.

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

Впервые Алан Кэй реализовал свой музыкальный талант в 1961 году, когда, покинув колледж в Западной Виржинии, отправился в Денвер, где давал уроки игры на гитаре, чтобы заработать на жизнь. Позже, после успешного прохождения теста, он отправился работать на IBM 1401 в ВВС США. Вспоминая о времени, проведенном в ВВС, Кэй говорил, что хотя и "износил пару ботинок, неся недисциплинированную службу", но узнал, что он имеет способности в области программирования.

По завершении службы в ВВС Алан Кэй был направлен Национальным Центром Атмосферных Исследований в университет Колорадо на факультет математики и молекулярной биологии. По окончании университета в 1966 году он перешел в университет Юта на факультет электроники. Поскольку Кэй привык заниматься только тем, что его действительно интересовало, то именно здесь он нашел себя.

С 1967 по 1969 год Алан Кэй работал над FLEX. Это была его первая разработка программного обеспечения для персонального компьютера. Технически Кэй не был первым, кто пытался создать персональный компьютер. Однако при работе над FLEX была предпринята попытка использовать улучшенные электронные компоненты, повышающие производительность компьютера, с которым пользователь мог бы взаимодействовать. Хотя FLEX был новшеством в техническом плане, он был очень сложен. По словам Кэя, "пользователей отталкивала сложность в изучении". Проблема заключалась не в оборудовании, а в специальном языке, которым пользователь должен был овладеть для получения желаемых результатов. Так Алан Кэй впервые убедился, что разработка программного обеспечения должна идти в направлении, облегчающем работу человека с персональным компьютером.

Учась в университете Юта, А. Кэй изучил прогрессивную программу Sketch- Pad, разработанную Иваном Сазерлендом, и начал программировать на языке SIMULA. Заимствуя идеи из этой и других программ, а также его знаний в биологии, он сформулировал "биологическую модель". Кэй предложил идею идеального компьютера, который должен функционировать подобно живому организму; каждая "клетка" которого должна вести себя в соответствии с другими, чтобы выполнить конечную цель, а также должна уметь функционировать автономно. Кроме того, "клетки" должны иметь способность перегруппировывать сами себя для решения другой проблемы или выполнения другой функции.

Осенью 1968 года Алан Кэй знакомится с Сэймуром Пейпертом в лаборатории MIT Artificial Intelligence Laboratory, где его внимание привлекает язык LOGO. Более того, Кэй был потрясен, наблюдая за Пейпертом и его коллегами, обучающими детей программированию на LOGO. Он вспоминает: "В 1968-м я впервые увидел, как Сэймур Пейперт работает с детьми и LOGO, и узнал действительно хорошую систему распознавания рукописного текста. Это — невероятная система… Когда я объединил это с идеей того, что дети должны использовать это, понятие компьютера обрело смысл суперсреды". В это время Кэй и задумал первую в истории модель персонального компьютера — "Динамическую книгу" (Dynamic Book).

После написания диссертации по машинной графике и получения Ph.D. в университете Юта Алан Кэй стал профессором Стэнфордского университета и проработал два года в Стэнфордской лаборатории искусственного интеллекта. Там он начал думать о компьютере размером с книгу, который можно было бы использовать, особенно детям, вместо бумаги. Он дублировал свой проект "KiddieKomp".

Продолжая работать над проблемой обучения детей с помощью компьютера, Алан Кэй выделил три метода возможного обучения. "Первый — это запоминание поучительных историй; иногда они формулируются в виде афоризмов, пословиц и поговорок. Это — народные предания, фольклор… Второй метод — это метод логических рассуждений, метод изучения цепочек причинно-следственных связей. Это — путь математики и формальной логики. Остается третий метод — это метод "системной динамики". Метод создания в мозгу интуитивных картин поведения тех или иных объектов и систем, принадлежащих внешнему миру". Он объяснял: "Книга — основной Хранитель достижений Цивилизации — годится для передачи знаний при использовании первого и второго из рассмотренных методов. В книге можно собрать замечательные истории, мудрые афоризмы и поучительные поговорки. В книге можно изложить математическую дисциплину. Но книга практически не годится для передачи знаний методом "системной динамики".

В течение двух лет, начиная с 1970 года, Алан Кэй работал над языком Smalltalk, который разрабатывался для того, чтобы смоделировать ранее описанную биологическую модель, состоящую из ячеек (или "клеток") и передачи сообщений между ними. После выхода Smalltalk на рынок (1983 год), язык приобрел широкую популярность. Он был одним из первых языков объектно-ориентированного программирования, представляющим собой методологию, на основе которой можно создавать параллельные системы, базы данных и базы знаний.

В 1972 году Кэй стал работать в Исследовательском центре Xerox в Пало- Альто (Xerox PARC) и начал использовать Smalltalk в образовании. Анализировалась реакция детей при общении с компьютером. Кэй заметил, что дети усваивали лучше изображения и звуки, нежели простой текст и, вместе с другими исследователями из PARC, Кэй разработал простую компьютерную систему, которая интенсивно использовала графику и анимацию. Некоторые дети очень хорошо адаптировались к использованию этой системы, они разрабатывали сложные программы в ней. Эта система получила название "DynaBook".

В марте 1977 года Алан Кэй и Адель Голдберг отправили статью под названием "Personal Dynamic Media" в журнал "Computer". Кэй и Голдберг говорили не о программах, а о знаниях и творческой идее. Они писали о "DynaBook": "Представьте себе, что Вы можете иметь Ваш собственный навигатор знаний в портативном пакете размером и формой с обычную записную книжку… Предположите, что он имеет достаточно возможностей, чтобы сохранить тысячи страниц исходных материалов, стихотворений, писем, рецептов, записей, чертежных данных, анимаций… динамических моделей, и что-нибудь еще, что бы Вы хотели запоминать и изменять". "DynaBook" можно использовать для чтения или записи как обычную книгу с иллюстрациями, но она ("DynaBook". — А. Ч.) предоставляет гораздо больше возможностей: динамический поиск может быть осуществлен для индивидуального контекста. Непоследовательность файловой структуры и использование динамической обработки позволяют иметь множество точек зрения на рассказ", — писали Кэй и Голдберг.

"DynaBook" — не последний проект Алана Кэя. Будучи лидером научно- исследовательской группы в PARC, Кэй содействует разработке Ethernet, лазерной печати и сетевой клиент-серверной модели ARPANet. Жаль, что до сих пор не существует технологии для изготовления прототипа "DynaBook". Кэй предлагал Xerox инвестировать некоторые из его проектов, но управление Xerox не пожелало развивать его идеи и вкладывать крупные ресурсы в его работу. Когда Стив Джобс, Джеф Рэскин и некоторые другие пионеры Apple посетили PARC в 1979 году, они сразу же увидели в работах Кэя дорогу в будущее. Они были поражены идеей оконного интерфейса и гибкостью языка Smalltalk. Работа Алана в PARC была зерном, из которого вырос Apple Macintosh. Справедливости ради надо отметить, что даже самая популярная на сегодняшний день операционная система в мире Microsoft Windows — отпрыск идей Алана Кэя.

Кэй ушел из Xerox в 1983 году и после небольшого перерыва стал программистом Apple Fellow в Atari, в 1984 году — на Macintosh, первом массовом компьютере с графическим пользовательским интерфейсом.

Заслуги Алана Кэя в области программирования очевидны. Он получил многочисленные награды, включая ACM Software Systems Award и J-D Warmer Prize, стал призером American Academy of Arts and Sciences, Royal Society of Arts и World Economic Forum.

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

В 1991 году в интервью "BYTE" он говорил об агент-ориентированных системах и подтвердил, что он занимается созданием нового машинного языка, который сможет создавать системы искусственного интеллекта в пределах компьютера, причем позволить машине сообщать себе, как и что делать. "Агент", согласно терминологии Кэя, — ядро системы искусственного интеллекта в компьютере. В этом интервью Кэй предсказывал создание агент- ориентированных коммерческих систем к 2000 году, а также высказал пожелание наладить массовое производство его "DynaBook".

Заслуживающим наибольшего внимания вкладом в мир информатики, который внес Кэй, было то, что он изменил взгляд на компьютеры во всем мире. До идей Алана Кэя, компьютер был безликим ящиком, который сыпал текст на экран. Если вы хотели взаимодействовать с машиной, вам необходимо было выучить ее язык. Кэй из его опыта работы с детьми, его любовью к образованию, его разносторонним интересам, его гением, осознал, что пользователи могут и должны взаимодействовать с компьютером другим путем и не должны быть ограничены только текстом. Он был среди первых, кто решил представить объекты в компьютере как изображения — метафора, которая в дальнейшем расширилась с появлением понятия объектной ориентированности. Он, несомненно, один из отцов современного персонального компьютера.

Кэй опасался, что машина, которую он так превозносил, станет "массовым наркотиком", станет вторым телевидением, но он надеется, что у него будет значительно более полезная роль в будущем человечества.

Алан Кэй восхищается потенциальным влиянием, которое оказывают компьютерные технологии на мир. Он особенно заинтересован в образовании и уверен, что эти новые технологии создадут то, что он назвал "скептическим человеком". "У каждого ребенка должна быть возможность протестировать свои взгляды, где угодно с помощью компьютера", — считает Алан Кэй. По его мнению, "в будущем системы поиска информации будут извлекать не факты, а точки зрения. Слабость баз данных в том, что они позволяют вам оперировать только фактами, хотя веками наша культура держалась на способности принимать разные точки зрения".

Удивительный человек, талантливый программист и просто неординарная личность — Алан Кэй, — бесспорно, вошел в историю развития компьютерных технологий, с его неудержимым желанием изменить нашу жизнь, он всегда шел вперед и добивался невероятных успехов, не останавливаясь на достигнутом.

"Мы живем в галлюцинации наших собственных изобретений… Но наша иллюзия настолько сложна, что мы не можем управлять ею, и мы все стремимся не идти уже по известному пути наших семей, общества и культуры взглядов на мир… Мы не можем существовать без фантазии, — утверждает Алан Кэй, — поскольку они — часть человеческого существования. Фантазия — более простой, более управляемый мир".

 

Билл Гейтс

Программистский миллиардер

Билл Гейтс

Ежегодно вот уже 15 лет журнал "Forbs" публикует список самых богатых людей планеты, чье состояние исчисляется миллиардами долларов.

В 2000 году их насчитывалось 27 человек, на первом месте в этом списке, как и в предыдущие годы, стояла фамилия Гейтса, состояние которого приближалось к сотне миллиардов долларов. Тот же журнал предсказывает, что в совсем недалеком будущем Гейтс станет первым в истории триллионером.

Кто такой Билл Гейтс, знает любой школьник, изучающий основы информатики, 90 % персональных компьютеров, как утверждает статистика, оснащены программными продуктами компании Microsoft, главой которой является наш герой. Как начиналась компания Microsoft, рассказывает сам Билл Гейтс: "Было это в 1975 году, когда я и мой друг Пол Аллен еще учились в колледже. Мы сидели вдвоем в моей комнате и "стряпали" свою первую программу для микрокомпьютера. Пол показал мне журнал "Popular Electronics" со статьей о наступающей "эпохе компьютеров в каждом доме", и мы с ним решили, что программирование — это наше будущее. Так начиналась компания Microsoft. Мы болтали друг с другом, ели пиццу, запивали ее кока-колой, и никого, кроме нас самих, эти проекты не интересовали".

Он походил на студента, нуждающегося в усиленном питании, с его свитером, заплатанном на локтях, стертых ботинках и рыжими волосами, падающими на очки в стальной оправе, a Microsoft удваивалась каждый год в течение первых десяти лет, пока не превратилась в могущественную империю (правда, он не любит этого определения) на рынке программного обеспечения.

Его называют "Рокфеллером компьютерного века", при этом приводят его высказывание в духе Джона Рокфеллера: "Думаю, бизнес — вещь очень простая. Вот прибыль. А вот убытки. Сложите все продажи, отнимите от этой суммы затраты, и вы получите крупную цифру со знаком плюс. Очень простая арифметика".

Но подобно тому, как рокфеллеровская компания помогла залить дешевым электрическим светом Америку и обеспечила горючим машины и механизмы эпохи индустриализации, деятельность Microsoft в сфере информатики вскормила революцию в области персональных компьютеров и обеспечила обществу в целом прирост производительности труда.

В ходе этого революционного процесса Гейтс, как в свое время и Рокфеллер, нажил массу врагов. В своей книге "Компьютерные войны" Ч. Фергусон и Ч. Моррис небезосновательно утверждают, что "в компьютерной индустрии больше всего ненавидят Гейтса". В течение многих лет федеральная комиссия по торговле вела тщательное расследование деятельности Microsoft, чтобы установить, не нарушала ли она антимонопольного законодательства. Наконец, два года назад Министерство юстиции США и власти 19 штатов предъявили Microsoft обвинение в нарушении антимонопольных законов государства и удушении конкурентов. Сначала было принято решение о разделении компании, но затем решили Microsoft не делить. Как прокомментировал теперешнюю ситуацию Джеймс Лав, директор агентства Consumer Project on Technology: "Microsoft в основном по-прежнему придерживается жесткой линии поведения, и ее доходы продолжают расти. Ничего не свидетельствует о том, что Microsoft расплатилась сполна". И все это благодаря Биллу Гейтсу и его жесткости и цепкости в том, что касается бизнеса.

Он родился 28 октября 1955 года в Сиэтле. Его отец был видным адвокатом в городе, а мать работала в правлении различных корпораций и благотворительных организациях.

Он поступил в престижную частную школу Lakeside и нельзя сказать, что там он учился отлично (родители Билла платили ему и его сестре по 25 центов за каждую отличную оценку — сестра зарабатывала за учебный год приличную сумму, а Билл — не более пяти долларов). Но в восьмом классе долговязый рыжий ученик, от которого никто уже ничего не ждал, на экзамене по математике получил феноменальное число баллов — 800 (В США считается 700 баллов — это "отлично", 750 — невероятно, а 800 — абсолютный показатель).

Программированием Билл начал заниматься с 13 лет, когда руководство школы купило компьютерное время для работы учащихся на компьютерах. С Полом Алленом, будущим компаньоном, который был старше его на два года, они сошлись на почве увлечения фантастикой и компьютерами.

Вместе с Полом они разработали первые программы для своей школы — по формированию классов и составлению расписания занятий (им заплатили за это 4200 долларов). Затем пятнадцатилетний Билл вместе с Полом основали маленькую фирму с названием "Traf-O-Data" и для муниципалитета Сиэтла написали программу управления дорожным движением для микропроцессора Intel 8008. "Traf-O-Data" заработала на этом двадцать тысяч долларов.

Основатели Microsoft — Пол Аллен и Билл Гейтс

Выпускной класс Гейтс практически целиком прогулял: в это время он уже работал программистом в аэрокосмической корпорации TRW, получая 20 тысяч долларов в год. Вспоминая сегодня о том времени, он говорит: "В фирме TRW я встретил человека по имени Нортон. Он всегда мне указывал на то, что я делал не очень хорошо. Так что, если я ленюсь или делаю что-то недостаточно тщательно, я представляю, что он сейчас подойдет, посмотрит и скажет: "Смотри, это можно сделать несколько лучше".

В 1973 году Гейтс исполнил мечту своего отца — поступил в Гарвард, но стать адвокатом он не хотел, а хотел стать математиком, а Пол Аллен начал работать программистом в корпорации "Honeywell".

Поворотный момент в жизни молодых людей наступил в начале 1975 года, когда в их руки попал январский номер журнала "Popular Electronics". Далее рассказывает Билл Гейтс: "На обложке журнала была помещена фотография очень маленького компьютера, размером с тостер. Назывался он чуть-чуть достойнее нашей "Traf-O-Data": "Altair 8800" (заимствовано из кинофильма "Star Trek"). Его продавали по цене 397 долларов за сборный комплект (без клавиатуры и дисплея). У него было 16 адресных переключателей и 16 световых индикаторов. Вы могли заставлять индикаторы перемигиваться на передней панели, вот, собственно, и все. Основная его проблема — отсутствие программного обеспечения. "Altair 8800" нельзя было программировать, что превращало его скорее в новинку-игрушку, чем в серьезный инструмент. Но что у "Altair" действительно было, так это микропроцессорный чип Intel 8080. Нас охватила паника: "Как же так? Без нас? Теперь все кинуться писать настоящие программы для этого чипа!" Я был уверен, что революция, связанная с применением персональных компьютеров, близка, но хотел участвовать в ней с самого начала. Такой шанс выпадает раз в жизни, и я не мог упустить его и не упустил".

Гейтс продолжает свой рассказ: "Наш первый проект заключался в том, чтобы создать версию BASIC для "Altair 8800". Нужно было очень многое втиснуть в крошечную память этого компьютера… задача осложнялась тем, что не было Altair, — мы его даже не видели! Хотя это не имело особого значения, поскольку прежде всего нас интересовал новый микропроцессор Intel 8080. Впрочем, "живьем" мы его даже не видели! Однако, не сомневаясь ни минуты, Пол изучил документацию на этот чип, а затем написал программу, заставляющую мэйнфрейм в Гарварде "строить из себя" крошечный Altair… В тот период мы с Полом мало спали и путали день с ночью. Когда меня сваливал сон, я засыпал за столом или на полу. В отдельные дни я вообще ничего не ел и ни с кем не виделся. Но спустя 5 недель мы написали свой BASIC — и родилась в мире компания, разрабатывающая программы для микропроцессоров. Чуть позже мы назвали ее Microsoft.

Мы знали, что основать фирму — значит, пойти на немалые жертвы. Но в то же время понимали, что делать это нужно сейчас — иначе упустим свой шанс в программировании для микропроцессоров. Весной 1975 года Пол уволился с работы, а я решил оставить Гарвард".

Эд Робертс из фирмы MITS, создатель "Altair 8800" (который считается первым персональным компьютером), согласно контракту, заплатил за BASIC новоиспеченной фирме 200 тысяч долларов. Контракт предусматривал возможность для MITS продавать лицензию на BASIC другим компаниям. Но в дальнейшем отношения Microsoft и MITS обернулись первым судебным процессом в истории Microsoft. В 1977 году этот процесс выиграла Microsoft (злые языки говорят, что в том помог адвокат Гейтс-старший), а фирма MITS в конце концов обанкротилась.

Оригинал BASIC, написанный для "Altair", остался наиболее популярной версией, а Гейтс и Аллен создали стандартную версию, которая использовалась в течение последующих шести лет, причем в микропроцессорах других фирм. Microsoft также продавала FORTRAN и COBOL и к концу 70-х годов стала монополистом на рынке языков программирования для персональных компьютеров.

В 1978 году компания Microsoft переехала из Альбукерка в Беллвью, маленький городок, расположенный на противоположном от Сиэтла берегу озера Вашингтон. Вырос и штат компании, до 38 человек.

В июле 1980 года наступил другой ключевой момент в истории Билла Гейтса. Фирма IBM решила создать свой персональный компьютер и приступила к реализации этого проекта, получившего название "Project Chess". Люди из IBM выяснили, что программное обеспечение для микрокомпьютеров, в основном, выпускается фирмой Microsoft, и решили встретиться с ее представителями.

Гейтс надеялся, что IBM заинтересовалась его BASIC, одел по этому случаю костюм и галстук, но ничего из этой встречи не получилось. На второй встрече, в августе представители IBM заявили Гейтсу, что хотели бы приобрести операционную систему для Project Chess. Ошибочно поверя, что Гейтс владел операционной системой СР/М Гари Килдалла, которая стала промышленным стандартом для микрокомпьютеров — люди из IBM хотели бы знать, продаст ли Гейтс ее. Билл Гейтс сказал, что не владеет СР/М и отправил их к Килдаллу. Но одновременно Гейтс послал в IBM письмо, в котором убеждал компанию использовать в создаваемом компьютере 16-раз- рядный микропроцессор Intel 8088, а не 8-разрядный. В результате контракт с фирмой Digital Research — Гари Килдалла не был заключен (более детальные подробности этой истории освещены в очерке, посвященном Гари Килдаллу).

Тем временем Пол Аллен приобрел за 50 тысяч долларов (другие утверждают за 75 тысяч) операционную систему Q DOS (Quick and Dirty Operating System) Тима Паттерсона, никому неизвестного программиста из небольшой фирмы "Seattle Computer Products", систему, невероятно похожую на СР/М Гари Килдалла. Затем вместе с Гейтсом они занялись доводкой этой системы, которая получила название MS DOS, и в результате контракт с фирмой IBM был заключен. (Говорят, что Гейтсу изрядно повезло, что его мама работала в правлении United Way вместе с главой IBM — председателем совета директоров Джоном Акерсом. Так что, когда ему понадобилось получить рекомендацию, он смог действовать через нее).

12 августа 1981 года состоялась презентация персонального компьютера фирмы IBM с операционной системой MS DOS. В соответствии с контрактом Microsoft стала получать процент с каждого проданного компьютера. Мало того, контракт позволял Microsoft лицензировать MS DOS другим производителям персональных компьютеров. Руководство "голубого гиганта" — фирма IBM потом "рвала на себе волосы", но было поздно.

В этом же году Microsoft выпускает электронную таблицу Multiplan для IBM, которая в отличие от VisiCabc (для ПК Apple II) была инвариантной для любых персональных платформ. Но уже в следующем году Multiplan был повержен с появлением на рынке электронной таблицы Lotus 1-2-3 компании Lotus Development — это была первая неудача фирмы Microsoft. Затем, как пишет Гейтс в своей книге "Бизнес со скоростью мысли", последовали и другие "ошибки": незавершенная разработка СУБД Omega, совместная с IBM разработка операционной системы OS/2, неудачная попытка создания собственного PDA.

В середине 80-х годов у Microsoft снова наступила пора везения. В мае 1985 года Microsoft отбирает пальму первенства у Lotus 1-2-3, выпустив электронную таблицу Excel (первоначальное название Odyssey) сначала для компьютеров Macintosh, а затем и для IBM PC. Excel быстро завоевал признание как у специалистов, так и рядовых пользователей. В 1990 году Excel пережил "второе рождение", когда в мае появилась Windows 3.0. Были выпущены версии Excel 2.1, затем Excel 3.0, в 1992 году — Excel 4.0, в 1994 году — Excel 5.0, Excel для Windows 95 (в составе Microsoft Office), ну и т. д. — в названии изменялись только цифры года.

С 1982 года в Microsoft начались работы над текстовым процессором Word. Надо сказать, что на рынке текстовых процессоров в эти годы доминировал World Star, созданный в 1979 году Джоном Барнаби. Поэтому разработчики Microsoft решили внести в Word ряд серьезных улучшений; возможность работы с мышью, использование различных шрифтов, разделение экрана монитора на окна, сохранение "удаленного текста" в корзине и т. п. Пользователи с настороженностью встретили этот процессор, а появившийся текстовый процессор Word Perfect "перетянул" многих пользователей на свою сторону.

Но в конце концов, как и в случае с электронной таблицей, текстовый процессор Word, реализованный на компьютерах Macintosh взял вверх над конкурентами, и модификация Word для IBM PC также получила признание. А затем появились версии Word 5.0, версия 5.5 со "спускающимися" меню, Word 6.0, Word для Windows 95 и т. д. — в названии очередной версии опять же изменялись только цифры года.

10 сентября 1983 года Microsoft спонсирует Windows — многозадачную среду с графическим пользовательским интерфейсом, работающую на компьютерах с MS DOS. Гейтс заявил, что к концу 1984 года 90 % персональных компьютеров, на которых установлена операционная система MS DOS, будут использовать Windows со всеми приложениями DOS. Но прошел год, прошел второй, и только в ноябре 1985 года она появилась на рынке программного обеспечения. Несмотря на издержки переходного периода, периода адаптации пользователей к новой системе, "процесс пошел", как говорил современный классик, и дальнейший успех Windows был обеспечен. Версии Windows для разных компьютеров, на которых работает разное программное обеспечение, стали выходить почти ежегодно: Windows 3.0, 3.1, NT, 95, 98, СЕ, ME и т. д., наконец в первом году нового тысячелетия — Windows ХР. Как пишет аналитик рынка ОС Дэн Кузнецки, последние 15 лет Microsoft работала под девизом: "Пришла пора обновить Windows!" А другой аналитик Элсон говорит: "Microsoft выпускает все новые ОС, чтобы исправить ошибки в старых. Обратной совместимости практически нет, что вынуждает пользователей приобрести новое программное (и аппаратное) обеспечение". Продавая предустановленные ОС, Windows Microsoft все богатела и богатела. И еще, что хотелось бы отметить по поводу Windows. Понятно, что Microsoft не изобрела и не создала лучшую операционную систему. Microsoft не изобрела графический пользовательский интерфейс и не создала мыши, MS DOS даже не приближалась по удобству к ОС MacOS (Apple). Каждая программа Microsoft в отдельности уступает программам конкурентов. Однако когда Microsoft дополнила Windows офисным пакетом (Microsoft Office), то попала прямо в яблочко.

1995 год был знаменательным для Билла Гейтса и его компании. Состоялось празднование 20-летней годовщины создания компании, 40-летие ее основателя Билла Гейтса, а также приуроченные к этому событию торжества по случаю годовщины его свадьбы с Мелиндой Френч и рождения дочери Дженифер Катрин. В ноябре этого года появилась в продаже первая книга Гейтса "Дорога в будущее", в которой он рассуждает о компьютерных системах будущего. Книга укомплектована мультимедийным диском CD-ROM, на котором, кроме текста книги, помещена интерактивная экскурсия по дому на берегу озера, дому четы Гейтсов. Дом этот, общая площадь которого составляет 4,5 тысячи квадратных метров, оборудован огромными экранами высокого качества, на которых по заказу хозяев демонстрируются различные произведения искусства. В доме имеется огромный подземный гараж, бассейн со стереосистемой для прослушивания музыки под водой и многое, многое другое. Стоимость дома — 40 миллионов долларов.

Завершая наш рассказ, хотелось бы привести любопытные рассуждения Питера Тейди, по поводу Microsoft и его главы Гейтса, где, в частности, говорится "о нескончаемом потоке судебных разбирательств, в которых Microsoft обвиняется во всех мыслимых капиталистических преступлениях. Вот краткий перечень заголовков американских газет: "Расследование антимонопольного комитета вынуждает Microsoft поменять стратегию закупок", "Microsoft уворачивается от пули", "Европейская комиссия подвергает Microsoft тщательной проверке", "Раздаются голоса, призывающие к судебному расследованию деятельности Microsoft", "Microsoft пора обрести стабильность", "Подход Microsoft к языку Java приводит к судебному иску со стороны Sun", "Apple подает в суд на Microsoft", "IBM подает в суд на Microsoft", "Oracle подает в суд на Microsoft", "Novell подает в суд на Microsoft" и т. д. Вполне достаточно, чтобы ухватить суть — компания, которая больше всех кричит: "Волки, волки!", — сама является большим волком, готовым проглотить любого цыпленка или овцу, попавшихся на пути. Гейтс хорошо усвоил тактику японцев — ничего не изобретать, только заимствовать идеи. Ну, может, слегка подправить конечный продукт, а еще лучше — создать свой собственный. И пусть свой продукт худшего качества, но при массированной рекламной поддержке люди купят и его. Маркетинг — вот название игры. Абсолютное лидерство пришло к Microsoft при поддержке лучших и дорогих адвокатов и в результате тонких тактических решений".

И далее Тейди продолжает: "Другой конек Гейтса — захватывать первые полосы газет под сообщения о многомиллионных пожертвованиях компьютеров и программного обеспечения. Откуда берутся эти миллионы? Риторический вопрос, если учесть, что себестоимость продукции Microsoft не превышает 5 % от ее розничной цены. Да и потом, какая разница — платить налоги или жертвовать на благотворительность, ведь все равно эти пожертвования выводятся из налогообложения?"

И напоследок, приводим высказывание самого Билла Гейтса: "Если кто-то с калькулятором в руках назвал меня самым богатым в мире человеком, то это еще не означает, что я гениален. Своими успехами в бизнесе я обязан, прежде всего, умению сосредоточиться на перспективных целях, не поддаваясь соблазну решать сиюминутные задачи. Чтобы предвидеть на много шагов вперед, не обязательно иметь выдающиеся способности, просто надо целиком посвятить себя этой задаче".

 

Питер Нортон

Популярное имя среди программистов конца XX века

Питер Нортон

Имя Питера Нортона хорошо знакомо любому, кто когда-либо работал на персональном компьютере. Автор таких известных программных продуктов, как Norton Commander, Norton Utilities, Norton Disk Doctor и многих других. На его счету целый ряд книг о персональных компьютерах, в числе которых наиболее популярные: "Внутри IBM PC", "Внутри OS/2" и "Справочник программиста".

Питер Нортон родился в 1952 году. Окончил Ридоновский колледж в Портленде, штат Орегон. Затем он поступил в Калифорнийский университет в Беркли, который закончил со степенью бакалавра по математике.

Первая встреча будущего программиста Нортона с компьютером произошла еще в ранней юности, когда он работал в страховой компании сезонным сотрудником. Питер позднее сказал, что это была любовь с первого взгляда. Свой первый компьютер — IBM PC — он приобрел, как только они появились в продаже. Питер Нортон самостоятельно и увлеченно осваивал работу с компьютером и азы программирования.

По окончании университета он работал программистом в аэрокосмической компании в Южной Калифорнии. В конце 70-х Нортон, как и многие другие специалисты, занятые в аэрокосмической промышленности, остался без работы, т. к. для отрасли наступили нелегкие времена. Стремясь свести концы с концами, Питер решил стать свободным программистом. Но заказы, которые ему приходилось выполнять, были скучными, а сама работа — утомительной. И даже приносила неприятности…

В один из дней 1982 года Питер случайно стер с жесткого диска файл, содержащий важную информацию. Он обнаружил, что информация, содержащаяся в утерянном файле, не исчезла бесследно — она просто перекочевала в другую область памяти компьютера. Он задумался: "А нельзя ли восстановить случайно утерянную информацию? Ведь когда мы выбрасываем бумагу со своего письменного стола в мусорную корзину, она же не исчезает бесследно". Вдохновленный этой идеей, Нортон написал свою программу, которая, образно говоря, позволяла "покопаться в мусорной корзине компьютера" и найти утерянные данные. Он назвал ее "Unerase". Эта программа стала прообразом современных программ-утилит.

"…Когда в 1982 году я написал свою новую программу Unerase, позволяющую восстановить случайно стертый файл, никому, казалось, такие программы были не нужны. Но я то знал, какую ценность для меня и для моих друзей представляет написанная мной программа. Спустя некоторое время все поняли, как важно иметь возможность восстановить утерянные данные. Unerase фактически сформировала новый сектор рынка программных средств для PC, который называется рынком сервисных программ", — вспоминал Нортон.

Друзья и коллеги посоветовали Питеру продать эту программу. Так, в 1982 году Питер Нортон основал свою собственную компанию по производству программного обеспечения для персональных компьютеров — Peter Norton Computing Incorporated.

"…Вначале я все делал сам, — рассказывает Нортон. — Я распечатывал на компьютере маленькие рекламные листовки и отправлял их по адресам фирм, которые надеялся заинтересовать, сам создавал программы, переписывал их на дискетки, которые хранил дома до того, как отправить заказчику. У меня почему-то сразу была уверенность, что мои программы — это тот товар, который "пойдет".

В это время среди новых фирм были распространены две "стратегии" завоевания рынка: первая заключалась в том, что молодые фирмы сразу же пытались продемонстрировать свою солидность, выбирая себе престижное имя и снимая дорогой офис с роскошным интерьером, украшенным экзотическими растениями; вторая — фирмы выбирали себе экзальтирующие названия типа Intergalactic Western Electronics ("Межгалактическая Западная Электроника"). Питер Нортон нашел свой подход. Вот что он говорил по этому поводу: "Я хотел выбрать что-то среднее. Техника казалась слишком сложной для простого человека, непостижимой, поэтому появилась идея одушевить свои изделия, поставив за ними конкретного человека. Главной задачей было сделать так, чтобы люди чувствовали себя комфортно, работая с купленными изделиями, не ощущая при этом трудностей. Поэтому я начал с рекламы, всегда указывая в названиях изделий свое имя. Другим плюсом такого подхода было то, что человек, купивший изделие и недовольный его работой, мог обратиться за помощью к конкретному человеку, а не к 90-страничному руководству или некому мифическому, неизвестно где находящемуся офису, в котором есть консультанты".

Компания Нортона очень быстро росла. Он считал, что в то время смог добиться успеха не только благодаря уму и трудолюбию, но еще и везению.

Когда Питер Нортон создавал свое дело, на рынке уже были программы, подобные тем, что предлагал он. Но с ростом популярности IBM PC росла и популярность его "Norton Utilities". Везение заключалось в том, что машина, которую выбрал Нортон, имела большой успех на рынке.

В 1986 году компания выпустила на рынок операционную оболочку Norton Commander (NC) — ее автор — программист Джон Соча (он разработал три первых версии оболочки). С появлением NC компьютерный мир был покорен.

В 1989 году объем продаж компании составил 25 миллионов долларов. В 1990 году Peter Norton Computing Incorporaited объединилась с крупной калифорнийской компанией по производству программного обеспечения Symantec Соrр. По мнению экспертов, капитал нортоновской компании составлял на момент слияния не менее 70 миллионов долларов.

О своей концепции разработки компьютерных программ Питер Нортон рассказал во время своего визита в Москву на открытии выставки "Комтек-91" 8 апреля 1991 года: "Она состоит в ориентации на заказчика и пользователя, предугадывании рыночных тенденций, доработке программных продуктов с целью упрощения и оптимизации. Не стоит охотиться за новыми совершенными программами — гораздо проще, удобнее и действеннее разработать новую усовершенствованную версию на базе уже существующего программного продукта. Это привлекает хорошо знакомых с предыдущей версией программы пользователей".

Наиболее известные его программные продукты — это Norton Commander, Norton Utilities, Norton Disk Doctor, Norton Integrator, а также Norton Programmer's Guides — это серия из четырех одинаково действующих автоматизированных справочников по языкам программирования: ASSEMBLER, С, PASCAL и BASIC. Эти справочники примечательны тем, что работают в режиме "он-лайн" и позволяют получать всю необходимую в данный момент информацию, что гораздо удобнее, чем обращаться к справочному руководству.

Вне зависимости от того, идет ли речь о науке или бизнесе, Нортон больше всего ценит творческие способности и деловую смекалку. Теперь он — эксперт в области компьютерных технологий, журналист, автор разошедшихся миллионными тиражами книг, член Совета директоров Symantec Соrр.

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

Нортон — большой любитель искусства и науки, и в 1989 году основал Семейный фонд Нортонов "Нортон Фемили Фаундейшн", который занимается тем, что вкладывает около 1,5 млн. долларов в год в различные гуманитарные проекты. Нортон часто помогает материально и другим фондам — борьбы со СПИДом, поддержки нищих, защиты одиноких людей. (Кстати, сам Питер познакомился в свое время с женой по объявлению в журнале.) Чета Нортонов также поддерживает финансами несколько музеев США. Журнал ARTNEWS включил Нортона в список 200 известнейших коллекционеров мира.

Питер Нортон — это имя, которое вошло в компьютерную историю XX века. Это человек, который первым начал писать программы для обычных людей, стирал исходный код и спрашивал себя: "Смогу ли я вновь сделать то же самое, только еще проше, еще лучше, еще удобнее?" Порой он не находил решения, но именно эта концепция стала началом его взлета, его новацией, основой его вклада в мир программного обеспечения для персональных компьютеров.

 

ЭДСГЕР ДЕЙКСТРА

"Смиренный" программист

Эдсгер Дейкстра

Один из тех людей, с именем которых связано превращение программирования из шаманства в науку, — Эдсгер Дейкстра. Профессиональный словарь программиста полон слов, введенных или предложенных Э. В. Дейкстрой, — "дисплей", "мертвая хватка", "семафор", "программирование с минимумом операторов go to", "структурное программирование". Однако его влияние на программирование является более всепроникающим. Ценнейший вклад Дейкстры — его стиль: подход к программированию как к высокому искусству и интеллектуальному творчеству, настойчивые требования и практическая демонстрация того, что программы должны быть с самого начала правильно составлены, а не просто отлаживаться до тех пор, пока не станут правильными; ясное понимание того, какие проблемы лежат в основе программирования. Во всех своих исследованиях Дейкстра придает большое значение простоте и изяществу математических рассуждений. При написании своих работ он создал новый стиль научных и технических сообщений, который можно описать как нечто среднее между журнальными публикациями и дружеской перепиской.

Эдсгер Вайб Дейкстра родился в Роттердаме (Голландия) в 1930 году. Его родители принадлежали к интеллигенции и были хорошо образованными людьми: отец был химиком, а мать — математиком. В 1942 году в возрасте 12 лет Дейкстра поступил в гимназию Эрасминиум — школу для особо одаренных детей, где преподавался ряд разнообразных предметов, в том числе греческий, латынь, французский, немецкий и английский языки, биология, математика и химия.

В 1945 году Дейкстра подумал, что он мог бы изучать право и, возможно, работать в качестве представителя Нидерландов в ООН. Однако, вследствие его успехов в изучении химии, математики и физики, он поступил в университет Лейдена, где решил заняться теоретической физикой. В 1951 году он посещал летнюю школу по программированию в Кембриджском университете.

Вследствие длинной череды совпадений Дейкстра официально стал программистом первым весенним утром 1952 года и был первым голландцем, начавшим заниматься этим в своей стране. Он стал работать в качестве совместителя в Математическом центре в Амстердаме. После того как он прозанимался программированием где-то около трех лет, у него состоялась важная беседа с ван Вейнгаарденом, который был тогда его руководителем в Математическом центре. Дело в том, что Дейкстра параллельно изучал теоретическую физику в Лейденском университете, но совмещать эти два занятия становилось все труднее, и ему надо было сделать выбор — либо прекратить программировать и стать настоящим физиком, либо стать… кем же? Программистом? Но разве это респектабельная профессия? Однажды Дейкстра постучал в дверь кабинета ван Вейнгаардена и, когда, несколько часов спустя, покидал его кабинет, он чувствовал себя абсолютно другим человеком. Терпеливо выслушав, что беспокоит Дейкстра, ван Вейнгаардена согласился, что в настоящее время есть не так уж много вещей, которые можно было бы отнести к дисциплине программирования, но затем он спокойно продолжал объяснять, что автоматические вычисления машины — не кратковременная мода, за ними будущее, что мы находимся у самых истоков и — как знать? — может быть, именно Дейкстра призван превратить программирование в почетную научную дисциплину. Это был поворотный момент всей жизни Эдсгера Дейкстра, и он как можно быстрее прошел все курсы, требующиеся для получения диплома в области теоретической физики, и начал заниматься программированием.

Однако одной из проблем, с которой он столкнулся, было то, что к тому времени программирование еще не было официально признано профессией. (Когда он подавал документы для регистрации брака в 1957 году, ему пришлось написать в качестве своей профессии "физик-теоретик".) Все первые автоматические электронные компьютеры были уникальными, построенными в единственном экземпляре машинами, очень громоздкими и действительно фантастическими. Поэтому несчастных программистов едва замечали. По мере того как мощность машин возросла более чем в тысячу раз, честолюбивые замыслы общества, связанные с применением этих машин, росли в той же пропорции, и именно несчастный программист обнаружил, что его работа оказалась в поле зрения между целями и средствами. Тогда, в середине 60-х годов, случилось нечто ужасное: появились компьютеры так называемого третьего поколения. Когда о таких ЭВМ было объявлено и стали известны их функциональные спецификации, многим из программистов стало не по себе; по крайней мере, такое чувство возникло у Эдсгера Дейкстра. Было естественно ожидать, что такие вычислительные машины хлынут потоком на компьютерный рынок, и следовало ожидать, что их организация будет более разумной. Но проект содержал такие серьезные ошибки, что Дейкстра почувствовал, что одним ударом прогресс в информатике был заторможен по меньшей мере лет на десять. Это была самая черная неделя во всей его профессиональной карьере. Вот, что говорил он по этому поводу: "Быть может, печальнее всего то, что после всех этих лет разочаровывающего опыта многие все еще честно верят в то, что в силу некоторого закона природы машины должны быть именно такими".

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

Когда была создана машина EDSAC в Кембридже, Дейкстра считал очень примечательным, что с самого начала понятие библиотеки подпрограмм играло центральную роль в конструкции этой машины и способе, которым она должна была использоваться. Много лет спустя в своей статье он выделяет четыре самые крупные изобретения в области программного обеспечения.

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

Третьим проектом, о котором упоминает Дейкстра, является LISP. На использовании LISP основаны многие в некотором смысле наиболее изощренные программные продукты. В шутку LISP описывался как "наиболее интеллигентный способ злоупотребления компьютером". Дейкстра считал, что подобная характеристика является большим комплиментом, поскольку она передает всю полноту освобождения: LISP помогает многим из наиболее одаренных программистов мыслить о вещах, ранее считавшихся немыслимыми.

Четвертым проектом был ALGOL-60. В то время как определение LISP до сих пор остается причудливой мешаниной из того, что язык означает, и того, как он работает, знаменитое "Сообщение об алгоритмическом языке ALGOL-60" является плодом подлинных усилий перейти на следующий уровень абстрактности и определить язык программирования способом, не зависящим от его реализации.

Это все было в прошлом. Однажды Дейкстра набросал один из вариантов будущего развития программного обеспечения. "Картина такова, что еще до завершения семидесятых мы сможем изобрести и реализовать системы такого рода, которые сейчас находятся на пределе наших возможностей программировать, и затратить на них лишь несколько процентов тех усилий, которых они требуют ныне, и, кроме того, эти системы будут практически свободными от ошибок. Такая решительная перемена за такой короткий период времени была бы революцией. Но на сколько вероятно, что эта революция произойдет? По-видимому, надо, чтобы выполнились три основных условия. Весь мир должен признать необходимость перемены; во- вторых, экономическая необходимость этой перемены должна быть достаточно сильной; и, в-третьих, эта перемена должна быть технически выполнимой". Поворотной точкой была Конференция по технике программного обеспечения в Гармише в октябре 1968 года. Эта конференция стала сенсационной, когда на ней впервые был открыто признан кризис программного обеспечения. Поэтому первое условие Дейкстра считал выполненным.

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

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

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

Третий довод основан на конструктивном подходе к проблеме правильности программы. Единственный эффективный способ значительно повысить доверие к программе — это дать убедительное доказательство правильности. Программист должен доказывать правильность программы одновременно с ее написанием.

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

В следующем доводе Дейкстра предвидел большое будущее у систематических и очень скромных языков программирования.

И последним доводом в пользу технической реализуемости революции он привел широкую применимость хорошо разложимых на компоненты решений.

Вот какой совет дает Эдсгер Дейкстра своим коллегам: "Мы будем лучше справляться с нашей работой программистов, если только мы будем подходить к этой работе с полным сознанием ее ужасающей сложности, если только мы будем верны скромным и элегантным языкам программирования, если мы будем учитывать природную ограниченность человеческого ума и приниматься за эту работу как Очень Смиренные Программисты".

Проф. М. Гуда и проф. Э. Дейкстра в Техническом университете Эйндховена

Многим программистам Дейкстра известен как создатель алгоритма "кратчайшего пути", предложенного им еще в 1952 году, который появился в результате его работы над задачей по оценке производительности компьютера ARCMAC, установленного в Математическом Центре. Этот алгоритм позволяет находить наилучший путь для перемещения между двумя точками. Ученый также использовал этот алгоритм для решения задачи "О нахождении оптимального пути передачи электрического тока всем существенным элементам цепи, минимизируя при этом расход меди", с которой столкнулись инженеры, разрабатывавшие ARCMAC. Он назвал этот способ "алгоритмом дерева с кратчайшими ветвями". В начале 60-х годов Дейкстра применил идею взаимного исключения к технологии связи между компьютером и его клавиатурой. Он использовал символы Р и V для представления двух операций, производимых в задаче взаимного исключения. Эта идея стала частью практически всех современных процессоров и модулей памяти, начиная с 1964 года, когда IBM впервые использовала ее в своей архитектуре IBM/360. Он помог программной индустрии стать намного более дисциплинированной, выдвинув тезис, что оператор "go to является вредным". Это означало, что чем больше в программе операторов go to, тем труднее разобраться в исходном коде программы. Эдсгер Дейкстра стоял у истоков структурного программирования. В 1972 году он вместе с Оле Далом и Тони Хоаром опубликовал основополагающую монографию "Структурное программирование".

Дейкстра продолжал работу в Математическом Центре до тех пор, пока в начале 70-х годов не перешел на работу исследователем в корпорацию Burroughs в США. В 1972 году ACM наградила Дейкстра премией Тьюринга (ACM Turing Award). В 1974 году AFIPS удостоила его памятной наградой Гарри Гуда (AFIPS Налу Goode Memorial Award). В начале 1980-х годов Дейкстра переехал в Остин, штат Техас. В 1984 году он был назначен деканом факультета компьютерных наук в Техасском университете.

Эдсгер Вайб Дейкстра является Почетным Иностранным членом Американской Академии гуманитарных, естественных и технических наук. Он также является членом Голландской королевской Академии наук, действительным членом Британского Компьютерного Общества и, наконец, доктором наук Королевского университета в Белфасте.

В настоящее время он до сих пор работает в Техасском университете и занимается вопросами вывода и представления программ, а также оптимизации математических рассуждений.

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

 

Бьорн Страуструп

Создатель языка C++

Бьорн Страуструп

Как пишет Том Даффи (Computerworld): "Множество открытий обязаны своим происхождением случаю. Но есть и немало других, которые стали возможны благодаря кропотливой работе и предвидению. Язык программирования C++, впервые предложенный лабораторией Bell Labs университетам в 1985 году, безусловно относится ко второй категории". Создателем языка C++, одного из наиболее популярных языков, основанных на концепции объектно-ориентированного программирования, является Бьорн Страуструп.

Он родился в 1950 году, в Ааргусе, втором по величине (250 тыс. жителей) городе Дании, расположенном на восточном побережье Ютландии. В 1975 году он окончил Университет Ааргуса по отделению компьютерных технологий и получил степень магистра. После получения магистерского диплома Бьорн Страуструп продолжил свое образование в Кембриджском университете Англии. В Кембридже, в Вычислительной лаборатории, он занимался проектированием распределенных систем, и в 1979 году ему была присуждена степень доктора философии.

В этом же году Страуструп вместе с семьей переехал в Нью-Джерси (США), где стал работать в Центре компьютерных исследований фирмы Bell Labs.

Когда он занимался исследованиями в фирме, Бьорну Страуструпу потребовалось написать несколько имитационных программ. SIMULA-67 — первый объектно-ориентированный язык для моделирования мог бы быть идеальным для подобных задач, если бы не его сравнительно низкая скорость выполнения программ.

Язык BCPL (Basic Combined Programming Language) не обладал средствами абстрагирования, которые казались необходимыми программисту. Те же ограничения имел и язык С, производный от BCPL.

Поэтому доктор Страуструп решил написать свою версию языка С, которую он назвал "Си с классами" (С with classes). В 1983 году язык подвергся значительным изменениям и получил название C++. Название придумал Рик Мэсчитти. Термин C++ — это оператор инкремента в С, который как бы намекает на то, что язык C++, нечто больше, чем просто С.

По словам коллеги Страуструпа Энди Кенига, тот не сомневался в шумном успехе нового языка. (Впоследствии Кениг совместно с Барбарой Му напишет книгу "Рассуждения о C++"). Страуструп разработал свой язык таким образом, чтобы он препроцессировался в С, а не компилировался в машинный язык, что открывало к нему доступ сотням тысяч пользователей С, имевших соответствующий компилятор.

"Препроцессирование в С обусловило повсеместное применение нового языка", — подчеркнул Кениг.

В 1984 году фирма Bell Labs была реорганизована и получила название АТ & Т Bell Labs. Первыми, кому фирма предложила C++, причем практически безо всякой оплаты, стали университеты. Это произошло в 1985 году. Для того чтобы смягчить положение, Страуструп одновременно опубликовал книгу "Язык программирования C++", которая выдержала четыре издания.

Язык быстро нашел свою аудиторию. В 1987 году на конференции по C++ собралось 200 человек. На следующий год, по словам Кенига, число участников возросло до 600, а в начале 90-х годов число пользователей, по его же оценкам, приближалось к полумиллиону. Это сделало данный язык мировым лидером по скорости распространения.

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

Поддержка C++ была встроена в средства передачи, коммутации и операционную систему корпорации АТ & Т, на этом же языке были написаны многие ее Internet-службы WorldNet.

Страуструп тем временем продолжал работать в АТ & Т Bell Labs, где возглавлял подразделение широкомасштабных программных исследований и активно занимался совершенствованием своего языка и созданием его стандарта. Стандарт ANSI/ISO C++ был выпущен в 1999 году.

В начале наступившего века корреспондент электронного журнала "Linux World" Дэнни Калев встретился с доктором Бьорном Страуструпом и попросил его ответить на некоторые вопросы, касающиеся особенностей и дальнейшего развития языка C++. В своем ответе Страуструп назвал 10 основных особенностей, которые являются предметом обсуждения разработчиков.

□ "Параллелизм: я сторонник библиотечной реализации потоков и параллельного выполнения операций без разделения памяти.

□ Отображение типов: неплохо было бы обеспечить библиотечную организацию интерфейса с информацией расширенных типов.

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

□ Хэш-таблицы: конечно, необходимо интегрировать некоторые варианты популярной схемы hash_map.

□ Ограничения для аргументов-шаблонов: все это просто, универсально и элегантно реализуется в рамках существующего стандарта C++.

□ Операторы контроля: многие из наиболее важных операторов контроля — верификация кода и обработка ошибок — можно было бы реализовать в виде шаблонов. Некоторые из них следует включить в библиотеку Standard Library.

□ Сопоставление с регулярными выражениями: хотелось бы видеть в стандартном варианте языка библиотеку определения соответствия шаблонам.

□ Сборка мусора: в стандарте C++ нужно явно определить технологию, позволяющую игнорировать "скрытые указатели", а также конкретизировать порядок обработки деструкторов.

□ Графический интерфейс пользователя: хорошо было бы иметь стандартные конструкции GUI, но не знаю, насколько это реально в сложившейся ситуации.

□ Независимость от платформы: хотелось бы, чтобы Standard Library поддерживала более широкий набор интерфейсов с общими системными ресурсами, например с каталогами и сокетами".

И далее в этом интервью он высказал мысль о том, "что любой язык, претендующий на широкое распространение, должен обладать необходимой базой для поддержания самых разнообразных технологий, включая объектно-ориентированное (иерархия классов) и обычное (параметрические типы и алгоритмы) программирование. Особенно хотелось бы отметить важность компоновки программ из отдельных блоков (возможно, даже написанных на разных языках). Я думаю также, что исключения совершенно необходимы для управления сложным механизмом обработки ошибок. Язык, в котором отсутствуют подобные средства, заставляет разработчиков потратить массу сил на то, чтобы их имитировать".

Бьорн Страуструп написал несколько прекрасных книг по языку C++, а книга "Язык программирования C++" выдержала четыре издания. (1985, 1991, 1997, 2000) и является наиболее читаемой среди программистов, она переведена на 14 языков. Дважды (1990 и 1995 годах) его книги получали награды Доктора Добба за помощь программистам. В 1993 году Страуструп был удостоен награды ACM Грейс Мюррей Хоппер. В 1990 году журналом

Fortune он был назван одним из "20 самых молодых ученых Америки", а в 1995 году журналом BYTE — "одним из 20 самых значительных личностей в компьютерной индустрии за последние 20 лет".

В настоящее время Бьорн Страуструп живет в Ватчунге (Нью-Джерси, США) вместе с женой Мэриан, дочерью Аннемари и сыном Николасом. Его увлечение — история, литература, музыка, фотография, туризм, бег и путешествия (он посетил Австралию, Исландию и Индию).

В заключение хотелось бы привести еще одно высказывание его коллеги Энди Кенига: "В середине 90-х многие представители Sun Microsystems не уставали твердить, что Java обладает такими потрясающими возможностями, что C++ теперь ничего не остается, как сойти со сцены за пару лет. Однако прошло не два, а три года, и число пользователей этого языка все прибывает".

 

ЛИНУС ТОРВАЛЬДС

"Могучий финн" и его операционная система Linux

Линус Торвальдс

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

Линус Бенедикт Торвальдс родился в 1970 году в Хельсинки. Семейство Торвальдсов шведского происхождения. Как он вспоминает, его воспитывали на "Мумми-тролле", которого придумала знакомая его деда — Туве Янсон, на "Пеппи — Длинный Чулок" и на "Малыше и Карлсоне" Астрид Лингрен. Отец Линуса, Нильс Торвальдс — журналист, корреспондент финского радио и телевидения в России. С детства Линус привык делать все собственными руками. Однажды мальчик не стал дожидаться отца, купившего ему сложную модель корабля, чтобы вместе с сыном склеить ее. Линус сделал все сам в первую же ночь. А позже это проявилось, как говорили университетские преподаватели, в "сумашествии" — 20-летний студент решил самостоятельно создать самую сложную из компьютерных программ — операционную систему.

Программировать он начал с десяти лет, работая на дедовском допотопном компьютере "Commodore Vic 20", и первую программу он написал для младшей сестренки — бегущая по экрану строка сообщала: "Сара лучше всех!"

История ОС Linux, в принципе, началась еще до поступления Линуса в Хельсинский университет. Профессор Амстердамского университета Эндрю Танненбаум написал ОС Minix, усеченную версию операционной системы UNIX, которая могла работать на персональном компьютере минимальной конфигурации.

Торвальдс решил заняться переработкой Minix, устав от бесплодных попыток получить машинное время на принадлежащей университету машине Micro VAX корпорации Digital Equipment. Однако с Minix, незаменимой как средство обучения, было все-таки невозможно работать как с полнофункциональной ОС.

Торвальдс, по мнению Питера Салуса, директора компании Specialised Systems Consultants, выпускающий журнал "Linux Journal", сделал беспрецендентный шаг: "Он предпочел разобраться, как работает операционная система, написав ее. Это то же самое, что пытаться оседлать велосипед, научившись прежде с него падать."

Так или иначе, в итоге возникло ядро, содержащее все основные компоненты UNIX — переключение задач, файловую систему и драйверы устройств. Другими словами, на свет появилась операционная система Linux Version 0.02. Это произошло весной 1991 года. Система, разработанная Линусом, получила название, образованное от имени создателя и операционной системы UNIX.

Linux так и осталась бы на начальной стадии своего развития, если бы не Internet. Именно благодаря Сети о новой системе узнали десятки тысяч разработчиков по всему миру. Вскоре после того, как Торвальдс представил свою разработку в группе новостей Minix, было решено, что Linux должна бесплатно предоставляться по Internet всем, кто пожелает загрузить ее. Права на Linux были сформулированы в терминах публичной лицензии General Public License ассоциацией Free Software Foundation. Эта лицензия предоставляет право продавать, копировать и изменять исходный код программ любому, кто согласен предоставлять другому такое же право.

В 1994 году была представлена полуфункциональная операционная система Linux 1.0, в состав которой вошло ядро Linux, средства обеспечения работы в сети, сотни утилит, инструменты поддержки разработки программ и ряд других функций. В современной же версии 2.0 реализована 64-разрядная обработка, симметричная многопроцессорная обработка и передовые сетевые возможности.

По данным Dataquest, число компаний, использующих Linux, выросло только за 1999 год на 27 %, а количество пользователей достигло, по наиболее заслуживающим доверия оценкам, 7 млн. Согласно недавнему опросу International Data Соrр., охватившему 788 крупных, небольших и средних организаций в Соединенных Штатах и Канаде, 13 % из них используют Linux.

"Linux набирает силу, становясь вровень с операционными системами Windows и UNIX для некоторых серверных приложений", — говорит Дэн Кузнецки, аналитик International Data Соrр.

Многие крупные производители программного обеспечения, такие как Oracle и Netscape, объявили о поддержке данной ОС; растет и число коммерческих предложений для этой платформы. Целый ряд компаний, например Red Hat Software и Caldera Systems, продают собственные дистрибутивы Linux с обязательствами технической поддержки.

Между прочим, Китай и вовсе объявил Linux официальной операционной системой для государственных учреждений и национальной части Internet. В России же первой ласточкой перехода на Linux стала одна из крупнейших компаний-сборщиков — Aquarius, отказавшаяся предустанавливать Windows на свои компьютеры. Поразительна одна из новостей от Microsoft: Билл Гейтс срочно нанимает программистов на Linux.

Вполне вероятно, что через некоторое время и на домашних компьютерах вместо разноцветного "оконного" флага будет при загрузке появляться забавный пингвиненок — символ ОС Линуса Торвальдса. A Linux станет не только управлять персоналками, но и помогать вести через Internet домашнее хозяйство. "Пингвин" наделит недюжинным умом привычный мобильный телефон, телевизор, видеомагнитофон, холодильник, заставит их общаться со своими хозяевами, между собой, со всем миром и сделает дом гораздо удобнее для жизни.

"Пингвин стал логотипом Linux просто потому, что считается дружелюбной птицей. Но этот образ сработал даже лучше, чем можно было предположить. Поначалу кто-то начал выпускать игрушки — пингвин Linux, и у меня в доме теперь полно плюшевых пингвинов. Потом изображение пингвина стало появляться и в других местах, а теперь в Штатах можно завести себе кредитную карту фонда Linux, часть выручки которого идет на развитие программ с открытым кодом", — говорил Торвальдс в интервью на компьютерной выставке Comdex 99.

Торвальдс с логотипом на плене

А тем временем Линус переехал из Финляндии в Кремниевую долину и стал сотрудником процессорной корпорации Transmeta, которая, понимая, что само имя Торвальдса принесет ей немалый доход, значительно подняла ему зарплату. Его доход вырос и за счет того, что финские телекоммуникационные фирмы включили его в состав Советов директоров. А в основном он заработал на акциях. Некоторые молодые компании, разрабатывающие программы на основе Linux, еще до выпуска на биржу дарят ему свои акции. Другие — продают их ему по номиналу.

Линус Торвальдс и глава Transmeta Дэвид Дитцел с процессорами Crusoe 3400 и 5400

Недавно Линус купил в калифорнийском Сан-Хосе свой первый дом. Его отец говорит, что сын был вынужден отказаться от арендуемой квартиры, потому что по правилам американской налоговой системы выгоднее купить собственное жилье, чем отдавать государству в виде налогов значительную долю доходов. Собственный дом нужен и потому, что семья Торвальдсов растет. У него и его жены Туве уже две дочери — Патрисия и Даниела. Их появление, утверждает Линус, повлияло на его ежедневное существование куда сильнее, чем настигшая его слава. Недавно вышла его книга- автобиография "Just for Fun" ("Просто ради удовольствия").

Занимаемая им в корпорации Transmeta высокая должность не мешает Торвардсу по-прежнему посвящать много времени своей операционной системе. Как говорит Питер Салус: "Линус придирчиво следит за тем, чтобы ядро Linux оставалось настолько компактным и утилитарным, насколько возможно, чтобы, как говорится, весь пар не ушел в гудок".

 

Сеймур Пейперт

Теоретик компьютерного образования и автор языка LOGO

Сеймур Пейперт

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

Сеймур Пейперт родился в Южной Африке.

Еще в школьные годы он оказался вовлечен в бурные политические события, участвуя в выступлениях против существовавшего в то время режима апартеида. Одно время он примыкал к коммунистической партии ЮАР, однако вскоре отошел от нее. Но, помимо политики, Пейперта интересовали — математика и философия, поэтому в двадцать четыре года он становится студентом Кембриджского университета, где с 1954 по 1958 год активно занимается математическими исследованиями. А после Кембриджа он переезжает в Париж. "Это был конец 50-х годов. Несмотря на свою страсть к математике, я все же сохранил интерес к философии. Поиски ответов на какие-то глубокие вопросы привели меня к Жану Пиаже", — вспоминает Пейперт.

Сделаем небольшое отступление. Жан Пиаже родился в 1896 году в швейцарском городе Невшателе, а умер в Женеве в 1980 году. Он известен как создатель концепции развития интеллекта и генетической эпистемологии. В 1955 году в Париже Жан Пиаже основал Международный центр генетической эпистемологии. Согласно его операциональной концепции, функционирование и развитие психики совершаются вследствие адаптации индивида к среде — ассимиляции нового наличными схемами поведения индивида и приспособления этих схем к конкретным ситуациям. Высшей формой уравновешивания субъекта и объекта является образование операциональных структур. Операцией по Пиаже называется "внутреннее действие" субъекта, производное от внешнего, предметного действия и скоординированное с другими в определенную систему. Пиаже выделяет четыре основные стадии развития интеллекта: сенсомоторную, дооперациональную, стадию конкретных операций и стадию формальных операций.

Итак, с 1958 года по 1963 год Сеймур Пейперт работает с Жаном Пиаже в университете Женевы. Именно это сотрудничество привело его к идее использования математики для понимания проблемы обучения детей. Затем из Европы он переезжает в Америку.

Вспоминает Сеймур Пейперт: "В 1964 году я сменил один мир на другой. В предшествующие пять лет я жил в альпийской деревне в Швейцарии, недалеко от Женевы, и работал вместе с Жаном Пиаже. Предметом моего внимания были дети, природа их мышления и то, как они становятся мыслящими людьми. Я прибыл в Массачусетский технологический институт, в урбанистический мир кибернетики и компьютеров. Предметом моего внимания по-прежнему оставалась природа мышления, но теперь меня больше интересовала проблема искусственного интеллекта".

В Массачусетском технологическом институте он работает профессором математики и вместе с Марвином Минским организует Лабораторию искусственного интеллекта. В 1970 году в соавторстве с Минским он выпускает книгу "Перцептроны", в которой был дан критический анализ исследований нейромодельного направления искусственного интеллекта, проводимых в тот период. Параллельно с этим он руководит группой исследователей, занимающейся проблемами обучения детей с помощью компьютеров. Именно в эти годы Сеймур Пейперт и его коллеги поняли, что компьютер должен обладать лучшей графикой, более гибким языком программирования и должен быть более доступным по цене школам. "В 1967 году еще до того, как в Массачусетском технологическом институте была официально организована детская лаборатория, я начал думать о создании языка программирования, который мог бы быть доступен детям", — писал Пейперт. И такой язык был создан. Назвали его — LOGO.

Название языка LOGO происходит от греческого слова "логос", что в переводе означает "мысль". Язык был разработан в начале 70-х годов в Массачусетском технологическом институте. За основу LOGO был взят язык LISP, предназначенный для исследований в области искусственного интеллекта. Очень важной отличительной особенностью LOGO является его расширяемость. На LOGO учитель может сам написать ряд процедур, соответствующих своему предмету, и объявить их частью словаря учеников. При этом новые процедуры синтаксически не будут отличаться от встроенных команд.

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

Подмножество языка LOGO, включающее команды для Черепашки, чаще всего используется новичками "при овладении основами". Данное подмножество обозначено как "Разговор с Черепашкой", оно отличается от других языков для компьютера, таких как Smalltalk, PASCAL, тем, что обеспечивает для Черепашек систему команд, первоначально разработанных для языка LOGO. "Разговор с Черепашкой" — подмножество LOGO, легко реализуемое в других языках программирования. Следует пояснить, что LOGO никогда не задумывался как нечто завершенное и никогда не объявлялся "окончательным языком". С. Пейперт представлял LOGO как "пробный образец, показывающий, что нечто лучшее вполне возможно".

Для языка LOGO требуется значительно большая память, чем менее мощным языкам, таким как язык BASIC, поэтому раньше LOGO мог использоваться только на относительно больших компьютерах. Прототипы системы программирования на языке LOGO восходят к системам APPLE II (48Ё) и Т199/4 с расширенной памятью.

Графические изображения в языке LOGO строятся с помощью упомянутой Черепашки. История ее создания началась в 1968–1969 годах, когда группа из 12 средних по успеваемости семиклассников из смешанной школы для молодежи в Лексингтоне (штат Массачусетс) впервые работала с LOGO вместо обычной школьной программы по математике на протяжении учебного года.

С. Пейперту хотелось научить работать с LOGO не только пятиклассников, но и дошкольников, которых нельзя было загружать тонкостями тематического программирования. И Пейперт нашел выход с помощью Черепашки — вымышленного объекта, благодаря которому дети могли рисовать на экране компьютеров. Управление Черепашкой улучшало деятельность даже умственно отсталых детей, детей с недостатками слуха и детей с трудностями в обучении. Одна из студенток Массачусетского технологического института впервые обучила работе с Черепашкой 3-, 4-летних детей. Черепашку использовали также при обучении программированию на языке PASCAL учащихся колледжа. И повсюду были поразительные результаты: дети с интересом делали свои первые шаги в мире программирования.

Дальнейшим развитием LOGO стала среда LOGOWRITER, которая ориентирована на форматирование представлений о программировании в самом общем смысле и позволяет ребенку продумывать отдельные шаги и их последовательность, чтобы достичь цели. Таким образом, ребенок сам управляет процессом обучения: сам себе ставит задачу и сам находит пути ее решения. Была также реализована музыкальная версия LOGO. Ее язык оказался хорошим средством обучения музыке и сочинения новых мелодий, а также развития образного мышления. Основные музыкальные понятия (тональность, высота, октава) реализованы здесь в виде процедур, а к компьютеру подключается синтезатор с усилителем и двумя стереофоническими динамиками.

В настоящее время LOGO широко применяется при раннем обучении программированию.

Многие люди внесли свой вклад в разработку идей обучения детей языку LOGO. Ирина Гольдштейн участвовала в разработке наиболее трудной проблемы — формировании системы понятий для описания процесса обучения, и эту работу продолжил Марк Миллер. Другие подходы к процессу обучения были более прагматичными. Особый вклад внесли в эту работу Ховард Аустин, Пауль Гольденберг, Джерманн Еольдштейн, Вирджиния Ераммар, Эндри Грин, Эллен Хилдрет, Киоко Окамура, Нейл Роу и Дин Уатт. Джинни Бамбергер разработала методы использования LOGO при изучении музыки и методы повышения восприимчивости учителей к собственному мышлению.

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

Сегодня (и это признают даже те, кто смеялся над ним в прошлые годы) никто лучше профессора Пейперта не объяснит вам, как информационные технологии влияют на процесс обучения детей. Его образовательные проекты действуют во всем мире, и не только в крупных европейских и американских городах, но и в маленьких деревеньках развивающихся стран. В декабре 1987 года Сеймур Пейперт посетил Москву, где им был прочитан цикл лекций и организован показ программного обеспечения для системы LOGO WRITER.

Сеймур Пейперт с московскими школьниками (1987 год)

Своей бывшей аспирантке Идит Харел он помог создать и поддержать на должном уровне специальный lnternet-сайт для детей и их родителей MaMaMedia.com. Знаменитые конструкторы "Lego" — тоже детище профессора Пейперта.

Сейчас он живет в штате Мэн, в Южном Портленде, где открыл экспериментальный молодежный центр для обучения с помощью своей "технологии будущего" трудновоспитуемых подростков. Он говорит, что "нужно, чтобы студенты уходили отсюда, любя мир, в котором им предстоит жить, и себя в этом мире. Они должны понимать, что жизнь их будет такой, какой они сами ее построят".

 

Джеймс Гослинг

Создатель языка JAVA

Джеймс Гослинг

В 90-х годах XX столетия Джеймс Гослинг, один из ведущих инженеров компании Sun Microsystems, возглавил группу разработчиков оригинального языка программирования и виртуальной машины. В группу входили такие специалисты, как Билл Джой, Джонатан Пейн, Ричард Кох и др. В 1995 году язык получил название — JAVA и завоевал всеобщее признание у программистов.

Билл Джой

Джеймс Гослинг родился 19 мая 1956 года в Канаде. Окончил университет Альберты, а затем продолжил обучение в университете Карнеги-Меллона, где в 1973 году получил степень доктора философии по компьютерным наукам. В начале 90-х годов в составе группы сотрудников фирмы Sun, известной под названием Green Team, Джеймс Гослинг начинает работу над проблемами согласованности работы различных "интеллектуальных" бытовых электромашин и приборов. К тому времени он уже разработал редактор cMacs и NeWS — оконный интерфейс для UNIX. Гослинг сначала намеревался работать с C++, чтобы сделать его переносимым на разные платформы. Однако он решил проблему переносимости, поместив разработанный им язык в "виртуальную машину". Новый язык ОАК предназначался для *7 — удаленного устройства для контроля за работой всех "интеллектуальных" бытовых приборов, применяемых в домашнем хозяйстве. Затем группа была переименована в First Person ("Персона номер один") и начала заниматься вопросами интерактивного телевидения.

В марте 1995 года с развитием WWW как транспортной среды для работы сетевых приложений Sun Microsystems принимает решение открыть спецификации новой технологии и свободно распространять ее в Internet. В этом же году язык ОАК был переработан и переименован в JAVA (название популярного сорта кофе США).

Для продвижения языка JAVA Sun Microsystems в апреле 1995 года выпускает Web-браузер, целиком написанный на JAVA. Но стремительное распространение JAVA начинается, когда фирма Netscape Communications лицензирует JAVA-интерпретатор для включения его в свой продукт Navigator 2.0.

JAVA — это объектно-ориентированный язык, схожий с C++. Фирма Sun описывает его как "простой, объектно-ориентированный, распределенный, интерпретируемый, надежный, защищенный, не зависящий от архитектуры, переносимый, высокопроизводительный, многопоточный и динамичный".

При разработке языка была поставлена цель — создать простой язык, не требующий специального изучения. Поскольку большинство программистов используют языки С и C++, язык JAVA был разработан так, чтобы быть максимально похожим на C++. Однако в нем нет таких возможностей C++, как перегрузка операторов (есть только перегрузка методов) и множественное наследование. По мнению создателей JAVA, эти возможности C++ используются редко и затрудняют разработку приложений. В язык добавлена автоматическая "сборка мусора", что существенно сокращает число ошибок, связанных, например, с выделением и освобождением памяти. Кроме того, базовый интерпретатор языка и поддержка библиотеки классов занимают всего 40 Кбайт, а вместе с поддержкой стандартных библиотек и потоков — чуть более 200 Кбайт.

Как уже отмечалось, JAVA повторяет язык C++ и обладает возможностью динамического "разрешения" ссылок на методы, заимствованные у OBJECTIVE С. JAVA позволяет сосредоточиться на функциональности самой программы, а не на выборе языковых средств для ее создания.

Особенность языка JAVA и его отличие от всех остальных языков программирования заключаются в использовании виртуальной машины JAVA, что делает этот язык машинно независимым. При компиляции программы JAVA создает не исполняемый модуль для процессора, а байтовый код JAVA, который представляет собой набор команд для некоторой виртуальной машины JAVA. Поэтому для выполнения программы необходим интерпретатор байтового кода, который при загрузке программы через WWW должен быть встроен в программу просмотра (например, Internet Explorer или Netscape Navigator).

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

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

В обеспечении безопасности также играет большую роль и то, что JAVA — строго типизированный язык, позволяющий выявлять ошибки на стадии компиляции. Одним из отличий JAVA от C++ является то, что в нем невозможно "затереть" память или испортить данные.

В большинстве случаев JAVA — более динамичный язык, чем С или C++, за счет того, что объектно-ориентированная парадигма используется в нем "напрямую". Возможно добавление новых методов в библиотеки, что никак не влияет на уже готовые программы. Напротив, это делает программы более гибкими, способными к изменениям, и позволяет создавать более динамичные приложения.

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

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

В последнее время совместно с компаниями Netscape Communications, Sun Microsystems и IBM была разработана новая библиотека классов JAVA Foundation Classes (JFC). Эта библиотека содержит несколько новых программных интерфейсов. JFC содержит Internet Foundation Classes (IFC) от компании Netscape, Abstract Windowing Toolkit (AWT) от компании JAVASOFT и средство разработки Java-программ от компании IBM. Фактически специалисты IBM, Netscape и Sun намерены совместно работать над JFC в составе компании JAVASOFT. Признаком зрелости JAVA может служить появление нескольких новых особенностей, таких как совместимость, AWT, усовершенствование пользовательского интерфейса, поддержка международных кодировок, разработка апплетов, шифрование данных, интерфейс к базам данных — Java DataBase Connectivity (JDBC) и JAVA BEANS. Все это, в конечном счете, интегрировано в JDK 1.1.

Компания Sun также ведет разработки PersonalJava и EmbeddedJava, наборы программных интерфейсов, с помощью которых можно будет разрабатывать программы для бытовой электроники и таких устройств, как копиры, смарт- карты и PDA. PersonalJava дополняет стандарт JAVA функциями, предназначенными для устройств со встроенными микропроцессорами и ограниченной памятью, таких как пейджеры и сотовые телефоны.

Sun также намеревается производить набор библиотек JAVA Platform for Enterprise. С помощью последней компания попытается сделать акцент на клиентской, а не на серверной части программ, а также упростить реализацию распределенных корпоративных бизнес-приложений.

По мнения Джеймса Гослинга, новые трудности возникают при размещении приложения в сети. Положительной чертой JAVA является возможность однородного представления действительности, которая на самом деле однородностью не отличается. Одним из наиболее "горячих" направлений в последнее время стал бизнес, связанный с сотовыми телефонами. Сейчас в мире ежедневно продаются десятки тысяч сотовых телефонов с поддержкой JAVA. Эти цифры поражают воображение. Еще большие темпы роста демонстрируют решения, связанные со смарт-картами. Многие сегодня разрабатывают приложения, обеспечивающие связь между периферийными и центральными узлами сети. Отдельные части приложения независимо от особенностей конкретного устройства, подключаемого к сети — будь то настольный компьютер, сотовый телефон или PDA, — должны одновременно являться компонентами инфраструктуры, элементами основной бизнес-логики и баз данных. Конечно, проектирование этой сложной архитектуры можно поручить одному человеку, но справится ли он с такой задачей?

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

Пару лет назад Гослинг много времени потратил на создание инструментов, помогающих в разработке систем реального времени. Основная посылка состояла в том, что программист больше не должен вручную писать несколько тысяч строк ассемблерного кода. Системы действительно становились огромными. А технология JAVA к тому времени уже успела проявить себя с самой лучшей стороны в проектах создания больших и надежных систем. Вот что говорит сам Гослинг: "Некоторые из подобных изолированных приложений, находящихся на одной машине, включают в себя миллионы строк кода. Как можно иметь с ними дело? Большинство людей не имеют понятия об этом. Сегодня нам доступны все виды инструментов, начиная с организационных, получаемых на основе объектно-ориентированной методологии, и заканчивая средствами, построенными на их базе, например моделями UML. Но чем больше средств мы создаем, чтобы справиться с имеющимися трудностями, тем более сложные вещи появляются вновь. Мы всегда ограничены в понимании конструируемых объектов — будь то программное обеспечение или небоскребы".

В настоящее время Джеймс Гослинг является вице-президентом компании Sun Microsystems.

 

Дональд Кнут

Автор Библии программистов

Дональд Кнут

В 1974 году, когда Дональд Кнут как раз закончил третий том своего семитомника "The art of computer programming" (в русском переводе — "Искусство программирования для ЭВМ"), ему была присуждена премия Тьюринга. В постановлении комитета по премиям Тьюринга сказано, что она "присуждается профессору Стэнфордского университета Дональду Е. Кнуту за ряд выдающихся работ в области анализа алгоритмов и разработки языков программирования и в особенности за его вклад в развитие "искусства программирования", осуществленный серией известных книг с этим общим названием. Методы программирования, алгоритмы, теоретические построения, изложенные в указанных книгах, послужили основой преподавания информатики и организующим началом в развитии этой дисциплины".

В 80-х годах его личный опыт написания книг и неудовлетворенность тем, в каком виде были представлены гранки, возбудили в нем интерес к компьютерному набору. Этот интерес привел к созданию издательской системы ТеХ и программы проектирования шрифтов METAFONT.

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

Дональд Кнут родился 10 января 1938 года в Милуоки (штат Висконсин). Его отец преподавал бухгалтерский учет в университете и занимался также дома, в подвале, печатным делом. Ребенком Кнут с удовольствием играл с калькулятором отца, который мог перемножать десятизначные числа, но у него уходило от десяти до двадцати секунд, чтобы напечатать ответ. Кнут вспоминает, как он пытался извлечь квадратный корень из десяти, пытался и ошибся. Открыв, что ответ находится между 3,16 и 3,17, он сделал заключение, что число должно иметь истинное значение л, а не 3,14, как говорилось в его учебнике. Вскоре он понял, что его заключение было ошибочным.

Любовь Кнута к математике усилилась на первом году учебы в университете. Он был захвачен графикой алгебраических функций — областью нескончаемых возможностей.

Физика также ему нравилась, и он разрывается между ней и музыкой — он серьезно обучался игре на пианино, сам написал несколько произведений. Кнут признает, что у него комплекс неполноценности. Это объясняет, говорит он, то, что он всегда много работал. В старших классах Милуокской лютеранской высшей школы он беспокоился, что низкие оценки по математике могут помешать его поступлению в колледж, но это была непонятная озабоченность, поскольку он закончил школу с самым высоким коэффициентом за все времена — 97,5 %.

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

Во время каникул после первого курса Кнут впервые занялся работой с компьютером. У него было задание на лето — построить графики для статистиков Кейса. В соседней комнате находилась новая машина IBM 650. Кнут так загорелся ею, что посвятил "Искусство программирования" компьютеру IBM 650, установленному в Кэйском технологическом институте, в память о многих приятных вечерах. Некоторые из его преподавателей советовали ему держаться в стороне от компьютеров, утверждая, что это ни к чему хорошему не приведет. Но любопытство взяло верх, он проводил ночи напролет с компьютером.

Кнут с легкостью оставил физику. Его лабораторные работы, казалось, не приносили удовлетворения, он ронял детали на пол и часто оказывался последним. Сварка оказалась катастрофой: при росте 6 футов и 4 дюйма он был слишком высоким для сварочных столов, и ему невозможно было наблюдать за работой, кроме того, очки ему не подходили.

Кнут добился успехов, используя компьютер для оценки игры баскетбольной команды, менеджером которой он являлся. Он выработал сложную формулу для ранжирования игроков, рассчитывая вклад каждого в игру, не только по количеству очков, которые он принес команде. Кнут обычно сидел за компьютером IBM 650 и подводил статистику игры, в то время, когда тренер стоял рядом. Используя программу Д. Кнута, тренер мог определить истинный вклад каждого в игру и в соответствии с этим использовать игроков. Оказалось также, что данная программа стимулировала игроков работать с большей отдачей. В 1960 году Кэйский институт выиграл чемпионат лиги, а магическая формула Кнута неожиданно была опубликована в "Walter Cronkite’s Sunday" и в "Newsweek".

В 1960 году Кнут получил звание бакалавра по математике, причем студенты даже проголосовали за присуждение ему степени доктора. Летом этого года в Пассадене Кнут занялся работой по системному программированию, результатом которой было создание компилятора для ALGOL. За эту работу он получил 5,5 тысячи долларов. Осенью того же года он поступает в Калифорнийский технологический институт для получения степени доктора философии по математике.

В январе 1962 года издательство "Addison-Wesley" предложило Кнуту написать книгу по компиляторам. Он принял это предложение.

В июне 1963 года в Калифорнийском технологическом институте Кнуту присуждается степень доктора философии по математике и он становится ассистентом профессора. Вскоре он начинает работу над главами своей книги.

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

Цель Кнута в этой монументальной работе состояла в том, чтобы обобщить технику программирования и найти ей соответствующее применение. Его основным вкладом было обобщение материала и анализ методов. Он пытался развить наиболее используемые теории для разных методов и заполнить пробелы в этих теориях, он был первым, кто находил эти пробелы и собирал все эти разбросанные теории. Вначале Кнут думал, что напишет только одну книгу о компиляторах. Набросав несколько глав, тем не менее, он почувствовал, что книга должна быть гораздо большей и основополагающей. Получив зеленый свет от издателя, он писал, писал и писал. К июню 1965 года он завершил первый проект из двенадцати глав, который размещался на трех тысячах страницах рукописного текста. В октябре он отослал первую главу издателю. Издательство "Addison-Wesley" предложило, что двенадцать частей будут опубликованы как семь отдельных томов, каждый из которых будет содержать один или два раздела. Кнута устраивало такое предложение.

Проведя напряженные дни и ночи над реализацией семитомного проекта, Кнут испытал несколько приступов язвы летом 1967 года. Как вспоминает он, это случилось на середине "алгоритма Евклида", на 333 странице второго тома.

Данные издания, как оказалось, имели наибольший спрос из всех книг, продаваемых "Addison-Wesley". В середине 80-х годов две тысячи экземпляров каждого из трех томов расходились в течение месяца, и эта цифра не менялась с середины 70-х годов. Работа была переведена на китайский, румынский, японский, испанский и русский, планировалось издание на португальском и венгерском. Кнут становится все более знаменитым: в 1979 г. в возрасте 41 года он получает из рук президента Дж. Картера Национальную медаль в области науки за свою работу по алгоритмам.

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

Может показаться неправдоподобным, но Д. Кнут также пишет фантастические вещи. Его новелла "Сюрреалистические числа: как два бывших студента занялись чистой математикой и нашли полное счастье" была опубликована в издательстве "Addison-Wesley" в 1974 году. В книге рассказывается об исследовании новой системы чисел, открытой в Кэмбриджском университете Дж. Конвэем. Кнут узнал о данной системе от самого Конвэя в 1972 году. Один журналист отметил, что впервые значимое открытие в математике описывается сначала в научной фантастике. Кнут написал данную книгу не для того, чтобы проповедовать теорию Конвэя, а чтобы объяснить, как человек может создать такую теорию.

Весной 1977 года Дональд Кнут резко изменил род своих занятий. Просматривая гранки проверенного издания второго тома, он неожиданно почувствовал, что полиграфия нуждается в кардинальном изменении. Он хотел уничтожить эти гранки, поскольку они выглядели ужасно. Пространственное расположение знаков было плохим, и особенно острой проблемой в издании был стандартный шрифт и вид математических уравнений. Кнут хотел понять, почему печатная работа, в которой использовался фоторепродукционный шрифт, была такой непривлекательной. Он решил посвятить несколько месяцев тому, чтобы попытаться совместить математику и компьютерную науку с задачей улучшения внешнего вида книг. Проект длился девять лет!

Кнут изобрел ТеХ, первую издательскую систему, а также METAFONT, систему, которая использует классическую математику для придания внешнего вида шрифтам. ТеХ был назван одним из наиболее важных изобретений в истории печатания книг. Некоторые сравнивали его по значению с Библией Иоганна Гуттенберга, что смутило Кнута.

ТеХ позволяет наборной машине размещать буквы и знаки на странице со значительной гибкостью и эстетичным качеством.

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

Кнут ввел обе программы в открытое пользование: ни он, ни Стэнфордский университет не заработали на них ни гроша. Он написал программы, как он говорит, из любви к книгам и для достижения необходимой эстетики.

Когда Кнут сверстал второй том "Искусства программирования", используя METAFONT и ТеХ, результат был лучше, но не идеальным. Плохо получались числа. Так он потратил еще пять лет, работая с лучшими дизайнерами по графике, для того, чтобы создать новые системы и наиболее полно использовать их потенциал. Летом 1986 года разработки Кнута по типографии были завершены, и вышел пятитомник "Компьютеры и набор знаков". Первый том посвящен ТеХ; второй содержит полный источник кодов ТеХ; третий и четвертый, соответственно, посвящены METAFONT и полному источнику кодов для него; пятый том содержит 500 с лишним примеров программирования по METAFONT.

В 1986 году на приеме в издательстве "Addison-Wesley", устроенном в его честь, ему задали вопрос: "Будет ли завершен его семитомник, будут ли дописаны четыре недостающих тома?" Он ответил, что их написание заняло бы еще двадцать лет.

Прошло тринадцать лет. В 1999 году профессор Кнут заявил, что к существующим трем л омам он намерен добавить еще два тома. Кроме того, он решил заменить виртуальную модель компьютера MIX 1009 (модель, похожую на реальные компьютеры конца 60-х — начала 70-х годов), на языке которого написаны большинство алгоритмов первых трех томов, на новую модель — 64-разрядный процессор MMIX 2009 с RISC-архитектурой. В следующих изданиях "Искусство программирования" примеры будут приводиться на языке ассемблера ММIX.

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

Номер 2009 является средним арифметическим номеров четырнадцати процессоров. В их числе — CRAY I, IBM 701, Alpha 21264, MIPS 4000, StrongArm 110, Sparc 64 и др. Логическая модель MMIX довольно подробно описывает поведение настоящего процессора. Например, для каждой команды указано число тактов, требующихся для выполнения, определено поведение процессора в таких ситуациях, как неверное предсказание ветвления или промах кэша. В модели имеется набор изменяемых параметров, поэтому на самом деле MMIX — это целое семейство совместимых процессоров. Профессор Кнут намерен реализовать метасимулятор для всего семейства, чтобы можно было менять параметры модели и исследовать поведение программ.

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

Как заметил Питер Гордон, издававший книги Кнута в издательстве "Addison-Wesley": "Если его сравнить с Евклидом за его работу "Искусство программирования" и с Гуттенбергом за работу по ТеХ, мы можем только догадываться, каким будет следующее сравнение".