Текст книги "Архитекторы компьютерного мира"
Автор книги: Аркадий Частиков
сообщить о нарушении
Текущая страница: 20 (всего у книги 30 страниц)
Основная идея работы состояла в создании базы данных "здравого смысла" общего назначения. Информацию "здравого смысла", имеющуюся у людей, предполагалось записать в логической форме и включить в базу данных. Любая программа целенаправленного поиска могла бы обратиться к ней за фактами, необходимыми для того, чтобы решить, как достигнуть поставленной цели. Наиболее значимыми фактами базы данных должны были быть факты с результатами действий робота, пытающегося перемещать объекты с одного места на другое.
Джон Маккарти (80-е годы)
Изучение этой проблемы привело к созданию в 1960 году «исчисления ситуаций», целью которого было нахождение способа описания результатов действий вне зависимости от проблемной области. Однако ситуационное вычисление было применимо только в том случае, когда рассуждения о дискретных событиях, результатом каждого из которых является новая общая ситуация, имеют смысл. Непрерывные события и события, происходящие одновременно, теорией не охватывались. Оказалось, что, к сожалению, практически невозможно использовать ситуационное исчисление даже для довольно ограниченных задач. Использование универсальных программ для доказательства теорем приводило к слишком медленной работе программы, потому что в 1969 году программы для доказательства теорем не имели средств управления поиском. Все это привело к созданию системы STRIPS, в которой использовались только логические рассуждения в рамках конкретной ситуации. Формализм системы STRIPS был более ограниченным, чем исчисление ситуаций в полном объеме. Чтобы избежать противоречий, необходимо было аккуратно выбирать факты, входившие в число аксиом. Эти противоречия могли возникать при невозможности удалить высказывание, которое не являлось бы истинным в результате действия происшедшей ситуации.
Другим теоретическим достижением Джона Маккарти являлся метод ограничений для немонотонных рассуждений. Немонотонность значительно расширила возможности выражения универсальных знаний о результатах событий в ситуационном исчислении. Она также дала метод решения проблемы фрейма, которая, по мнению Маккарти, была еще одним препятствием для достижения общности.
В 1971 году Джон Маккарти был награжден премией Тьюринга за достижения в области искусственного интеллекта. Ныне он профессор информатики, профессор кафедры им. Шарля М. Пижо Инженерной школы Стэнфордского университета. Маккарти работает над новым языком программирования Elephant. Этот язык предназначен для программ, взаимодействующих с людьми или с программами, принадлежащими другим организациям. В настоящие время наиболее важный из его проектов заключается в формализации контекста и его приложений к искусственному интеллекту. Маккарти по праву можно назвать генератором идей, которые помогают приблизить компьютеры к более высокому уровню интеллекта. Только время покажет, верно ли его утверждение о возможности создания компьютера, более умного, чем человеческий мозг.
Джон Кемени и Томас Курц
Создатели популярного языка BASIC
В прошлом веке один английский миссионер, желая приобщить туземцев к цивилизации, выделил из английского языка самую распространенную и самую простую его часть и стал учить туземцев такому упрошенному английскому языку… Назвали его «Basic English», т. е. «основной английский». Язык привлекал своей простотой и вскоре завоевал популярность не только среди туземцев, но и эмигрантов.
В 1964 году был разработан новый Бэйсик, но уже для других "туземцев" – людей, не владеющих языком общения с ЭВМ. Назвали его тоже BASIC, что является аббревиатурой английской фразы: "Beginner’s All – purpose Symbolic Instruction Code", т. e. "многоцелевой язык символических инструкций для начинающих"… Как и первый Бэйсик, второй быстро завоевал популярность среди "туземцев" – пользователей ввиду своей простоты и доступности.
Леонард Растригнн
Джон Кемени
Действительно, история создания 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" и премию Тьюринга. Вирт получил почетные докторские степени от многих университетов: университет Лаваль, Квебек (Канада), университет Калифорнии, Беркли, университет Йорк (Англия), университет Лине Иоганна Кеплера (Австрия), университет Новосибирска (Россия), Открытый университет Англии, университет Претории (Южная Африка).