WWW.DISUS.RU

БЕСПЛАТНАЯ НАУЧНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

 

Pages:     | 1 | 2 || 4 |

« Курс «История информатики»

Лекция 1. Введение. ...»

-- [ Страница 3 ] --

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

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

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

Из имеющих общий интерес выводов К. отметим всё более укрепляющееся убеждение в существенных преимуществах: 1) фиксации больших количеств информации в дискретной форме, т. е. в виде большого числа отдельных знаков, каждый из к-рых способен принимать лишь малое число значений – лучше всего только два, 2) разложения любых сложных преобразований информации на отдельные шаги, каждый из к-рых затрагивает только небольшое число знаков. Одним из преимуществ дискретной записи информации является её устойчивость по отношению к “помехам” и возможность сохранять её даже при значительных помехах практически неограниченно долго. Простые и гибкие способы разложения любого преобразования информации, записанной в форме большого числа двоичных знаков, на простейшие операции разработаны логикой математической (см.). На этих принципах построены все современные большие универсальные вычислительные машины. В процессе естественной эволюции живых организмов устройство наследственного аппарата животных и растений и нервной системы животных и человека, по-видимому, тоже пришло если не к полному осуществлению этих принципов в наиболее чистом виде, то к широкому их использованию.

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

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



Материальной основой возникновения К. и возрастающего к ней интереса является создание и распространение машин и всевозможных технич. устройств, специально предназначенных для переработки (или хранения и передачи) информации. К. возникла, когда приборы автоматич. управления и регулирования стали включать в себя специальные счётно-решающие устройства и управляться кодированными сигналами, когда при конструировании вычислительных машин остро встали вопросы об объёме их “памяти” или о доступных им логических операциях и т. д. Не следует, однако, считать всю теорию автоматич. управления и регулирования частью К.; напр., изучение конкретного устройства исполнительных органов автоматов или их расчёт с точки зрения минимальных затрат энергии при воздействии на регулируемую систему не являются вопросами К. Аналогично отношение К. к исследованию операций и теории игр (см. статьи Операций исследование и Игр теория, 51 т.): экстремальные задачи выбора рациональной с той или иной точки зрения “стратегии” не являются сами по себе задачами К., но К. находит применение при исследовании операций и в теории игр в вопросах оценки, необходимой для решения задач из этих областей информации и выбора рациональных способов преобразования информации.

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

Лит.: Wiener N., Cybernetics or control and communication in the animal and the machine, [6 print], N. Y. – P., [1949]; его же, The human use of human beings. Cybernetics and society, 2 ed., N. Y., 1956; Соболев С.Л., Китов А.И. и Ляпунов А.А., Основные черты кибернетики, “Вопросы философии”, 1955, № 4; Цянь Сюэ-сэнь, Техническая кибернетика, пер. с англ., М., 1956; La cybernйtique. Thйorie du signal et de l’information. Rйunions d’йtudes et de mises au point tenues sous la prйsidence de Louis de Broglie, P., 1951; Bush R.R. and Mosteller F., Stochastic models for learning, N. Y. – L., 1955; Ashby W.R., An introduction to cybernetics, L., 1956; его же, Design for a brain, Reprint, N. Y., 1954.

Лекция 7

Приложение 3

А.Н. Колмогоров

Автоматы и жизнь[8]

Мой доклад “Автоматы и жизнь”, подготовленный для семинара научных работников и аспирантов механико-математического факультета Московского государственного университета, вызвал интерес у самых широких кругов слушателей. Популярное изложение доклада подготовлено моей сотрудницей по лаборатории вероятностных и статистических методов МГУ Н.Г. Рычковой. Изложение это во всех существенных чертах правильно, хотя иногда словесное оформление мысли, а, следовательно, и некоторые её оттенки принадлежат Н.Г. Рычковой.

Подчеркну основные идеи доклада, имеющие наиболее широкий интерес.

I. Определение жизни как “особой формы существования белковых тел” (Энгельс) было прогрессивно и правильно, пока мы имели дело только с конкретными формами жизни, развившимися на Земле. В век космонавтики возникает реальная возможность встречи с “формами движения материи” (см. статью “Жизнь” в Большой Советской Энциклопедии), обладающими основными практически важными для нас свойствами живых и даже мыслящих существ, устроенных иначе. Поэтому приобретает вполне реальное значение задача более общего определения понятия жизни.

II. Современная электронная техника открывает весьма широкие возможности моделирования жизни и мышления. Дискретный (арифметический) характер современных вычислительных машин и автоматов не создает в этом отношении существенных ограничений. Системы из очень большого числа элементов, каждый из которых действует чисто “арифметически”, могут приобретать качественно новые свойства.

III. Если свойство той или иной материальной системы “быть живой” или обладать способностью “мыслить” будет определено чисто функциональным образом (например, любая материальная система, с которой можно разумно обсуждать проблемы современной науки или литературы, будет признаваться мыслящей), то придется признать в принципе вполне осуществимым искусственное создание живых и мыслящих существ.

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

V. Реальное продвижение в направлении понимания механизма высшей нервной деятельности, включая и высшие проявления человеческого творчества, естественно, не может ничего убавить в ценности и красоте творческих достижений человека. Я думаю, что это и хотела сказать редакция журнала “Техника – молодежи”, сделав лозунг “Материализм – это прекрасно!” одним из подзаголовков в изложении моего доклада.

25 августа 1961 г.

*  *  *

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

Очень часто задают такие вопросы:

– Могут ли машины воспроизводить себе подобных и может ли в процессе са­мовоспроизведения происходить прогрессивная эволюция, приводящая к созданию машин, существенно более совершенных, чем исходные?

– Могут ли машины испытывать эмоции: радоваться, грустить, быть недовольными чем-нибудь, чего-нибудь хотеть?

– Могут ли, наконец, машины сами ставить перед собой задачи, не поставленные перед ними их конструкторами?

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

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

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

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

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

Этот же вопрос поставлен изящно, но формально математиком Тьюрингом в его книге “Может ли машина мыслить?”. Можно ли построить машину, которую нельзя было бы отличить от человека? Такая постановка как будто ничуть не хуже нашей и к тому же проще и короче. На самом же деле она не вполне отражает суть дела. Ведь, по существу, интересен не вопрос о том, можно ли создать автоматы, воспроизводящие известные нам свойства человека; хочется знать, можно ли создать новую жизнь, столь же высокоорганизованную, хотя, может быть, очень своеобразную и совсем непохожую на нашу. В современной научной фантастике сейчас появляются произведения, затрагивающие эти темы. Интересен и остроумен рассказ “Друг” в сборнике Станислава Лема «Вторжение с Альдебарана» о машине, пожелавшей управлять человечеством. Однако фантазия романистов не отличается особой изобретательностью. И.А. Ефремов, например, выдвигает концепцию, что “всё совершенное похоже друг на друга”. Стало быть, у высокоорганизованного существа должны быть, по его мнению, два глаза и нос, хотя, может быть, и несколько изменённой формы. В век космонавтики не праздно предположение, что нам, возможно, придется столкнуться с другими живыми существами, весьма высокоорганизованными и в то же время совершенно на нас непохожими. Сможем ли мы установить, каков внутренний мир этих существ, способны ли они к мышлению, присущи ли им эстетические переживания, идеалы красоты или чужды и т. п. Почему бы, например, высокоорганизованному существу не иметь вид тонкой пленки – плесени, распластанной на камнях?

Что такое жизнь? Возможно ли искусственное разумное существо?

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

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

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

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





Обычно понятие “действовать целесообразно” включает умение охранять себя от разрушающих внешних воздействий или, скажем, способность содействовать своему размножению. Спрашивается: кристаллы действуют целесообразно или нет? Если “зародыш” кристалла поместить в некристаллическую среду, будет ли он развиваться? Ведь никаких отдельных органов у кристалла различить невозможно, стало быть, это есть некая промежуточная форма. И существование таковых неизбежно.

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

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

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

Такая широкая постановка задачи содержит в себе много трудностей, но отказаться от неё на современном этапе развития науки уже невозможно.

Если признавать важность задачи определения в объективных обобщенных терминах существенных свойств внутренней жизни (высшей нервной деятельности) какой-то незнакомой нам и непохожей на нас высокоорганизованной системы, то нельзя ли тот же путь предложить и в применении к нашей системе – человеческому обществу? Хотелось бы на общем языке, одном и том же для всех высокоорганизованных систем, уметь описывать и все явления жизни человеческого общества. Представим себе воображаемого постороннего наблюдателя нашей жизни, который совершенно не обладает ни симпатиями к нам, ни умением понять, что мы думаем и переживаем. Он просто наблюдает большое скопление организованных существ и желает понять, как оно устроено. Совершенно так же, как, скажем, мы наблюдаем муравейник. Через некоторое время он, пожалуй, без особого труда сможет понять, какую роль играет информация, содержащаяся, например, в железнодорожных справочниках (человек теряет такой справочник и не может попасть на нужный поезд). Правда, наблюдателю пришлось бы столкнуться с большими трудностями. Как, например, понять ему следующую картину: множество людей приходит вече­ром в большое помещение, несколько человек поднимаются на возвышение и начинают делать беспорядочные движения, а остальные сидят при этом спокойно; по окончании люди расходятся без всякого обсуждения. Один из молодых математиков, может быть в шутку, приводит и другой пример необъяснимого поведения: люди заходят в помещение, там получают бутылки с некоей жидкостью, после чего начинают бессмысленно жестикулировать. Постороннему наблюдателю будет трудно установить, что же это такое – просто разлад в машине, какая-то пауза в её непрерывной осмысленной работе, или же можно описать, что происходит в этих двух случаях, и установить разницу между ними.

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

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

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

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

Осторожно, увлекаемся!

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

Нельзя, конечно, сказать, что в этой литературе утверждается то, что на самом деле недостижимо, но в ней часто встречаются восторженные статьи, сами заглавия которых уже кричат об успехах в моделировании различных сложных видов человеческой деятельности, которые в действительности моделируются пока совсем плохо. Например, в американской кибернетической литературе и у нас, порой даже в совсем серьёзных научных журналах, можно встретить работы о так называемом машинном сочинении музыки (это не относится к работам Р.X. Зарипова). Под этим обычно подразумевается следующее: в память машины “закладывается” нотная запись большого числа (скажем, 70) ковбойских песен или, например, церковных гимнов; затем машина по первым четырем нотам одной из этих песен отыскивает все те песни, где эти четыре ноты встречаются в том же порядке и, случайным образом выбрав одну из них, берет из нее следующую, пятую ноту. Теперь перед машиной вновь четыре ноты (2, 3, 4 и 5), и она снова таким же способом осуществляет поиски и выбор. Так машина как бы на ощупь “создает” некую новую мелодию. При этом утверждается, что если в памяти машины были ковбойские песни, то и в её творении слышится нечто “ковбойское”, а если это были церковные гимны,– то нечто “божественное”. Спрашивается, а что произойдет, если машина будет производить поиск не по четырем, а по семи идущим подряд нотам? Поскольку в действительности двух произведений, содержащих семь одинаковых нот подряд, почти не встретишь, то, очевидно, “запев” семь нот из какой-нибудь песни, машина вынуждена будет пропеть ее до конца. Если же, наоборот, машине для собственного творчества достаточно знать только две ноты (а произведений с двумя одинаковыми нотами сколько угодно), то здесь ей представился бы такой широкий выбор, что вместо мелодии из машины послышалась бы какофония звуков.

Вся эта несложная схема преподносится в литературе как “машинное сочинение музыки”, причем всерьез заявляется, что с увеличением числа нот, нужных “для затравки”, машина начинает создавать музыку более серьезного, классического ха­рактера, а с уменьшением этого числа переходит на современную, джазовую.

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

“Машинное сочинение музыки” – это только пример упрощенного подхода к проблемам кибернетики. Другой распространенный недостаток заключается в том, что сторонники кибернетики настолько увлеклись возможностями кибернетического подхода к решению любых самых сложных задач, что позволяют себе пренебрегать опытом, накопленным другими науками за долгие века их существования. Часто забывают о том, что анализ высших форм человеческой деятельности был начат давно и продвинулся довольно далеко. И хотя он и ведется в других, не кибернетических, терминах, но по существу объективен, и его необходимо изучать и использовать. А то, что сумели сделать кибернетики “голыми руками” и вокруг чего поднимают такую шумиху, зачастую не выходит за рамки исследования самых примитивных явлений. Однажды на вечере в московском Доме литераторов один из участников вел с трибуны разговор о том, что наше время должно было создать и уже создало новую медицину. Эта новая медицина есть достояние и предмет изучения не медиков, а специалистов по теории автоматического регулирования! Самое главное в медицине, по мнению выступавшего,– это циклические процессы, происходящие в человеческом организме. А такие процессы как раз и описываются дифференциальными уравнениями, изучаемыми в теории автоматического регулирования. Так что изучать медицину в медицинских институтах теперь вроде как устарело – её надо передать в ведение втузов и математических факультетов. Может быть, и верно, что специалисты по теории автоматического регулирования могут сказать свое слово в разрешении отдельных проблем, стоящих перед медициной. Но если они захотят принять участие в этой работе, то прежде всего им потребуется колоссальная доквалификация, ибо опыт, накопленный медициной, этой старейшей из наук, огромен, и для того чтобы сделать в ней что-то серьезное, надо сначала овладеть им.

Почему только крайности?

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

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

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

Кибернетика и язык

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

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

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

Материализм – это прекрасно!

В заключение следует остановиться на вопросах, касающихся, если можно так сказать, этической стороны идей кибернетики. Встречающиеся часто отрицание и неприятие этих идей проистекают из нежелания признать, что человек является действительно сложной материальной системой, но системой конечной сложности и весьма ограниченного совершенства и поэтому доступной имитации. Это обстоятельство многим кажется унизительным и страшным. Даже воспринимая эту идею, люди не хотят мириться с ней: такая картина всеобъемлющего проникновения в тайны человека, вплоть до возможности, так сказать, “закодировать” его и “передать по телеграфу” в другое место, кажется им отталкивающей и пугающей. Встречаются опасения и другого рода: а допускает ли вообще наше внутреннее устройство исчерпывающее объективное описание? Предлагалось, например, поставить перед кибернетикой задачу научиться отличать по объективным признакам существа, нуждающиеся в сюжетной музыке, от существ, в ней не нуждающихся. А вдруг поанализируем, поанализируем – и окажется, что и в самом деле нет никакого разумного основания выделять такую музыку как благородную по сравнению с другими созвучиями.

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

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


Вопросы

1) Какие три человека, по мнению В.А. Успенского, за всю историю науки заслуживают звание “великий учёный России”?

2) В каких областях науки Андрей Николаевич Колмогоров получил фундаментальные результаты?

3) В чём заключается существенная роль А.Н. Колмогорова в превращении теории информации (сформулированной её создателем Клодом Шенноном в виде технической дисциплины) в строгую математическую науку?

4) Какие результаты по теории алгоритмов принадлежат А.Н. Колмогорову?

5) Какое число работ А.Н. Колмогорова включено в его сводную библиографию?

6) Какова доля статей и книг на педагогические темы в трудах А.Н. Колмогорова?

7) Автором какой статьи для БСЭ стал А.Н. Колмогоров?

8) Как назван доклад, в котором А.Н. Колмогоров, впервые в СССР, на самом серьёзном уровне обсуждал принципиальную возможность создания мыслящих машин?

9) Как А.Н. Колмогоров определил принципиальное отличие работы машины от человеческого мышления в энциклопедической статье, посвящённой кибернетике?

10) Что, по мнению Колмогорова, пугает людей в идеях кибернетики?

11) Что предприняла редакция научно-популярного журнала “Техника – молодёжи” для ознакомления читателей с проблемами кибернетики?

12) Назовите учёных, принявших участие в дискуссии на страницах журнала “Техника – молодёжи”.

Лекция 8

Сибирская информатика

Вступление

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

В силу ряда обстоятельств, Сибирское отделение АН СССР и сибирские ученые в 60-е и 70-е годы прошлого столетия сыграли выдающуюся роль в развитии важнейших разделов кибернетики (информатики), в пропаганде этой новой науки, в широком использовании ее достижений.

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

Почему в 60-е годы прошлого века Сибирское отделение оказалось в центре внимания научной общественности всего мира? Именно потому, что сюда приехали замечательные люди, выдающиеся ученые – М.А. Лаврентьев, Г.И. Марчук, Л.В. Канторович, А.А. Ляпунов, А.П. Ершов и другие. Сибирское отделение с самого начала было задумано как некий кибернетический центр. Здесь особое внимание уделялось развитию вычислительной математики, математического моделирования, вычислительной техники, программирования. В Сибирском отделении работали новейшие модели отечественных ЭВМ.

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

Опережающие работы сибирских ученых на всех направлениях вычислительных наук; создание институтов специального типа – Вычислительных Центров СО АН в гг. Новосибирске, Красноярске, Иркутске, Омске; корпоративных и региональных информационно-вычислительных сетей (ВЦКП, Сибакадемсеть) привели к тому, что за короткий срок центр исследований по кибернетике (информатике), по математическому моделированию и по разработке информационных технологий в нашей стране переместился в Новосибирск. Это сыграло важную роль в развитии производительных сил Сибири, науки и образования, повлияло на темпы формирования современной экономики Сибири.

Руководители Сибирского отделения, среди которых было много крупнейших математиков: М.А. Лаврентьев, С.Л. Соболев, С.А. Христианович, Г.И. Марчук, Л.В. Канторович, А.А. Ляпунов, Н.Н. Яненко и другие, активно развивали вычислительные науки, информационно-вычислительную инфраструктуру и вычислительную культуру в институтах СО АН и в университетах Сибири. Они создали здесь ряд научных школ мирового уровня.

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

Михаил Алексеевич Лаврентьев

М.А. Лаврентьев, закладывая основы идеологии развития нового научного центра, его научно-организационной структуры, научно-образовательных и промышленно-технологических функций в огромном регионе Сибири, одним из главных направлений определил развитие информационно-вычислительного дела в Научных Центрах и институтах Сибирского отделения. С самого начала складывался мощный потенциал в области чистой, прикладной и вычислительной математики. Большая часть ближайших помощников М.А. Лаврентьева состояла из блестящих ученых в этих областях: СЛ. Соболева, С.А. Христиановича, Г.И. Марчука, которые создали сильные школы молодых ученых и кафедры в НГУ в областях прикладной и вычислительной математики.

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

Приступив к формированию Сибирского отделения, М.А. Лаврентьев и его сподвижники,– С.Л. Соболев·и С.А. Христианович, естественно, ощущали приближение новой – “информационно-вычислительной” волны научно-технической революции 20-го века. Это предчувствие отразилось, в частности, в многодисциплинарной структуре институтов и проблем Отделения. Отцы-основатели Сибирского отделения понимали, что интеграционный потенциал и универсальность методов математического моделирования с использованием ЭВМ способны сблизить различные науки и обеспечить методологию научных исследований на стыке наук. В этом духе принимались на Президиуме СО АН СССР организационные и кадровые решения по созданию новых институтов и региональной сети научных центров.

Гурий Иванович Марчук

Развитие сибирской вычислительной информатики – явление выдающегося масштаба. Большое значение для создания Сибирской школы вычислительной математики и информатики сыграло приглашение Михаилом Алексеевичем Лаврентьевым Г.И. Марчука для создания Вычислительного центра СО АН СССР. Этим шагом Лаврентьев “открыл” своего будущего преемника и будущего Президента Академии наук СССР.

Молодой, но уже получивший блестящие результаты в области прикладной и вычислительной математики Гурий Иванович Марчук, выпускник Ленинградского Матмеха, работал в области динамических задач сейсмологии, а затем гидрометеорологии. В конце 50-х годов и до 1962 года он руководил работами по численному моделированию ядерных реакторов, в связи со строительством первой в мире АЭС в г. Обнинске. За монографию “Методы расчета ядерных реакторов”, где были решены сложные нелинейные задачи оценки безопасности ядерных реакторов с помощью новых методов вычислительной математики, в 1961 г. Г.И. Марчук получил Ленинскую премию. Выбор М.А. Лаврентьева основывался, по-видимому, не только на высоком профессионализме Г.И. Марчука в вычислительной и прикладной математике, но и на близости их научных и научно-организационных подходов.

В 1964 году на базе Вычислительного центра Института математики СО АН был организован Вычислительный центр СО АН как специализированный институт по развитию информационно-вычислительных технологий.

Благодаря старым связям М.А. Лаврентьева с разработчиками БЭСМ-6, Сибирское отделение получило в начале 70-х годов три таких машины. Одна из них имела третий заводской номер.

Совместными усилиями М.А. Лаврентьева и Г.И. Марчука установился приоритетный режим в обеспечении вычислительной техникой институтов Сибирского отделения как в ННЦ, так и в региональных центрах. Коллективное использование машины М-20 многими институтами и созданные системные программы для многозадачного режима совершили “поистине маленькую научно-техническую революцию в умах многих ученых Сибирского отделения”. Именно она показала целесообразность применения математического моделирования во всех сферах науки и новой техники.

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

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

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

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

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

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

Создание трансляторов, исследование их строения и принципов работы – это важное направление в современном программировании. Основателем этого направления, безусловно, является А.А. Ляпунов.

А.А. Ляпунов организует первые в нашей стране работы по машинному переводу с одного естественного языка на другой. Этим было положено начало математической лингвистики.

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

В 1952 г. Алексей Андреевич перешел из военной академии на кафедру вычислительной математики МГУ, возглавляемую С.Л. Соболевым. Там он объявил спецкурс “Принципы программирования”, во время чтения которого, по свидетельству тогдашнего студента А.П. Ершова, зародились развитые затем А.А. Ляпуновым идеи автоматизации программирования, операторного метода и синтаксических структур, реализованные в первых отечественных трансляторах. Огромную научно-организационную и пропагандистскую роль сыграл организованный Алексеем Андреевичем в МГУ Большой семинар по кибернетике.

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

В 1959 г. был создан, при активном участии А.А. Ляпунова, Научный совет по комплексной проблеме “Кибернетика” при Президиуме АН СССР, первым председателем которого был назначен А.И. Берг, а его заместителями А.А. Ляпунов и Б.В. Гнеденко. Первые годы работы Совета Большой семинар выполнял функции его аппарата (штаба), продолжая осуществлять координацию работ в области кибернетики, а также организационную помощь Совету.

Леонид Витальевич Канторович

Математик и экономист академик Леонид Витальевич Канторович получил Ленинскую премию в Москве, Нобелевскую – в Стокгольме, в Сибири его наградили высоким званием “Гражданин века города Новосибирска”. Двухтомная историко-биографическая книга о Канторовиче издана в почётной серии “Наука Сибири в лицах”. Значительная часть жизни и творчества Л.В. Канторовича связана с Сибирью.

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

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

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

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

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

В 1949 году, после окончания средней школы в городе Кемерово, Андрей Ершов поступил в МГУ, где начал специализироваться на кафедре вычислительной математики, руководимой С.Л. Соболевым. Ещё студентом МГУ, под влиянием А.А. Ляпунова, он увлекся программированием.

В 1954 году А.П. Ершов окончил университет – это был первый в советских вузах массовый выпуск по специальности программирование. С 1954 по 1957 г. он – аспирант А.А. Ляпунова в Московском университете. Кандидатскую диссертацию, посвященную понятию операторного алгоритма, А.П. Ершов подготовил к 1958 г., однако, в связи с настороженным отношением математиков к новой науке, защитить её удалось только в 1962 году.

Как и для подавляющего большинства пионеров программирования, первые научные результаты А.П. Ершова связаны с вычислительными задачами. Его первой статьей была опубликованная в 1958 году в Докладах Академии наук работа “Об одном методе обращения матриц”.

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

В 1960 году А.П. Ершов переезжает в Новосибирск.

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

Фундаментальные исследования А.П. Ершова в области схем программ и теории компиляции оказали заметное влияние на его многочисленных учеников и последователей. Книга А.П. Ершова “Программирующая программа для электронной вычислительной машины БЭСМ” была одной из первых в мире монографий по автоматизации программирования.

Язык программирования АЛЬФА и оптимизирующий Альфа-транслятор, первая советская система разделения времени АИСТ-0, система учебной информатики Школьница, система подготовки печатных изданий Рубин, многопроцессорная рабочая станция МРАМОР – все эти проекты были инициированы А.П. Ершовым и выполнялись под его руководством.

Трудно переоценить роль А. П. Ершова как организатора науки.

А. П. Ершов был редактором или членом редколлегий как русских журналов “Микропроцессорные средства и системы”, “Кибернетика”, “Программирование”, так и международных - Acta Informatica, Information Processing Letters, Theoretical Computer Science.

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

В конце 50-х и в начале 60-х годов А.П. Ершов стал одним из немногих в то время “выездных” программистов. За тридцать лет активной научной деятельности А.П. Ершов установил личные, дружеские и профессиональные контакты практически со всеми классиками современного программирования. Подтверждением этому послужил международный симпозиум “Алгоритмы в современной математике и её приложениях”, состоявшийся с 16 по 22 октября 1979 года в городе Ургенче (Узбекистан), собравший многих видных ученых из СССР, США, ФРГ, Болгарии, Нидерландов, Австрии, Польши, Великобритании, Швейцарии. Это было своего рода научное паломничество к местам рождения аль-Хорезми, выдающегося математика IX века, чьё имя воплотилось в слове “алгоритм”. Среди докладчиков были такие известные ученые как Х. Земанек (ведущий докладчик), Д. Кнут, С.К. Клини (почетный докладчик), Ф.Л. Бауэр, А.П. Ершов, В.М. Глушков.

А.П. Ершов и Дональд Кнут проделали огромную работу по организации этого симпозиума.

Николай Николаевич Яненко

Николай Николаевич  Яненко перешел на работу в Вычислительный центр Сибирского отделения АН СССР в 1963 году. Здесь он сначала возглавил лабораторию, а затем отдел численных методов механики сплошной среды. В первые годы работы на ВЦ его основные усилия были направлены на создание отдела и организацию кафедры вычислительных методов механики сплошной среды в Новосибирском государственном университете.

В 1966 г. Н.Н. Яненко был избран членом-корреспондентом, а в 1970 – действительным членом Академии наук СССР по специальности “механика”.

В 1976 г. Н.Н. Яненко был назначен директором ИТПМ СО АН СССР. За короткий срок новый директор разобрался в важнейших направлениях авиационной и космической техники и перестроил работу института. Центральный принцип, который Н.Н. Яненко сформулировал для института — объединение численного и физического эксперимента как симбиоз двух мощно развивающихся методов исследования. Н.Н. Яненко считал, что научная деятельность должна базироваться на высоком уровне технического обеспечения, передовых методах работы, кадрах высшей квалификации и тесном сотрудничестве с другими организациями.

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

Центральное место в научной работе Н.Н. Яненко занимали исследования по численным методам решения задач математической физики. Вычислительная математика стала постоянной темой его научных исследований с 1949 г. По этой теме им было опубликовано более 150 работ. Главным достижением Н.Н. Яненко в вычислительной математике является создание им метода дробных шагов, который позволил существенно сократить время решения на ЭВМ многомерных задач математической физики путем расщепления многомерной задачи на совокупность одномерных. Метод развивался и уточнялся в 1957 1963 гг., а в 1967 г. вышла в свет монография Н.Н. Яненко “Метод дробных шагов решения многомерных задач математической физики”, которая вскоре была переведена на немецкий, французский и английский языки. Это было мировое признание достижений советского ученого.

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

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

Н.Н. Яненко — один из первых математиков в мире, кто профессионально занялся распараллеливанием алгоритмов. Еще в 1977г. им совместно с А.Н. Коноваловым опубликована статья об организации параллельных вычислений и “распараллеливании прогонки”. Большое внимание Н.Н. Яненко уделял алгоритмическому обоснованию перспективности создания высокопроизводительных специализированных процессоров параллельного действия для решения определенных классов задач математической физики.

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

Педагогическая деятельность Н.Н. Яненко была многогранной. В течение своей жизни он подготовил 14 докторов и более 50 кандидатов наук. Он преподавал в Московском, Уральском и Новосибирском университетах. В НГУ Н.Н. Яненко руководил тремя спецсеминарами: вычислительные методы механики сплошной среды; численные методы решения задач математической физики; методы вычислительной физики. С 1976 года Н.Н. Яненко заведовал кафедрой физической кинетики на физическом факультете НГУ.

Вопросы

1) Кто возглавил первые работы по программированию в СССР?

2) В каком году организован первый в СССР отдел программирования?

3) Кто в СССР показал, что программирование – научная дисциплина?

4) Кто автор операторного метода программирования?

5) Истоки стиля публикации алгоритмов.

6) В чём особенности задачи автоматизации программирования, поставленной

А.А. Ляпуновым в 1953 году?

7) Кто был автором идеи программирующей программы в 1954 году?

8) Как назвали транслятор, разработанный в 1954 году?

9) Кто авторы проекта транслятора для БЭСМ?

10) В чём заключались важнейшие новшества, реализованные в трансляторе ПП БЭСМ?

11) Перечислите идеи Л.В. Канторовича, высказанные в 1953–54 годах относительно

крупноблочного программирования?

12) Каковы были отладочные средства программ, появившиеся в 1955 году?

13) Когда были начаты разработки программ шахматной игры?

14) Когда и где проведен первый компьютерный шахматный чемпионат?

15) Кто изобрел двоичное дерева поиска?

16) Назовите авторов эвристики для сокращения перебора на дереве игры?

17) В какие годы произошли первые личные контакты советских программистов с

американскими и английскими коллегами?

18) Год первого выпуска по специальности “программирование”?

19) Перечислите основные идеи проектов А.П. Ершова в области автоматизации

разработки систем программирования.

20) Примеры проектов программных систем А.П. Ершова, составившие значительный

вклад в историю информатики?

21) В чём специфика деятельности новосибирской школы программирования?

22) Дайте общую характеристику языка Альфа.

23) Какие оптимизирующие преобразования вносили заметный вклад в качество

компиляции?

24) Авторы первых основополагающих теоретических работ по глобальной экономии

памяти?

25) Основной замысел проекта Бета и его внутреннего языка – идеи и реализация?

26) Назовите выдающихся деятелей программирования, принимавших участие в

симпозиуме “Алгоритмы в современной математике и её приложениях” в Ургенче

в 1979 году?

Лекция 9.

Программирование

В середине прошлого (20-го) века слово “программирование” не подразумевало связи с компьютером. Можно было увидеть название книги “Программирование для ЭВМ”. Теперь по умолчанию “программирование” означает организацию процессов на компьютерах и компьютерных сетях.

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

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

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

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

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

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

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

Изучение истории программирования включает в себя ряд существенных направлений:

- компьютерные архитектуры (систем команд) и операционные системы;

- языки, стили и парадигмы программирования;

- методы компиляции программ и реализации систем программирования;

- системы управления базами данных и их приложения;

- теория и практика разработки программ и информационных систем;

- организация параллельных процессов и параллельное программирование;

- телекоммуникации и информационные сервисы в Интернете;

- средства и методы искусственного интеллекта;

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

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

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

Разнообразие систем команд, изобретаемых в первые три десятилетия развития компьютеров постепенно пришло к интеграции наиболее стабильных архитектур типа IBM PC и Macintosh с небольшими вариациями.

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

Радикально изменилась сама техника работы на компьютерах. Место языков заданий, интерпретирующих систем (ИС для М-20), диалоговых редакторов (Краб), мощных операционных систем (Диспак, OS IBM 360/370 и т.п.) заняли более понятные системы UNIX/Linux и визуальные “дружелюбные” интерфейсы типа Windows, история которых началась с появления микропроцессоров и изобретения персонального компьютера Apple, доступного почти как детская игрушка. Принципы и способы подготовки программ для компьютера не сильно зависят от языка программирования. Главным требованием для программиста является умение мыслить логически.

Ассемблер отличается простотой исходного языка, перевод с которого в машинный язык можно выполнить “один-в-один”. Ассемблер часто сопровождается возможностью дизассемблирования, что отличает его от большинства других языков программирования. Изучить язык ассемблера проще, чем любой язык высокого уровня. Знание ассемблера помогает понимать код программы, подготовленной на других языках. Основное – зависимость от конкретной архитектуры.

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

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

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

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

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

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

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

Языки и стили программирования

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

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

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

Венский метод (ВМ) определения языков программирования был разработан в 1968 году в Венской лаборатории IBM под руководством П. Лукаса на основе идей, восходящих к Дж. Маккарти. Благодаря хорошо разработанной концепции абстрактных объектов, позволяющей концентрировать внимание лишь на существенном и игнорировать второстепенные детали, Венский метод годится для описания и машин, и алгоритмов, и структур данных.

Конкретный синтаксис языков программирования принято представлять в виде простых БНФ (Формул Бекуса-Наура). Абстрактный синтаксис программ выглядит как объявление объектов, заранее известных в языке, и представление разных форм, вычисление которых обладает определенной спецификой.

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

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

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

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

  • Дисциплина логики управления с исключением переходов по меткам.
  • Минимизация использования глобальных переменных в пользу параметров процедур.
  • Полнота условий в ветвлениях, отказ от отсутствия “else”.
  • Однотипность результатов, полученных при прохождении через разные ветви.

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

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

Методы компиляции программ и реализации систем программирования



Pages:     | 1 | 2 || 4 |
 





<
 
2013 www.disus.ru - «Бесплатная научная электронная библиотека»

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