Главная >> Настроящие программеры >> Программирование в разных измерениях.              
               Программирование в разных измерениях.

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

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

ПРОГРАММИРОВАНИЕ СНИЗУ  ВВЕРХ. Каждая  машина, если  она работает, умеет
что-то делать. Мы  начинаем учить ее  делать все более  сложные вещи. Со
временем оказывается, что наша машина умеет делать все, не умеет  только
решать ту задачу, которую нам нужно решить. 

ПРОГРАММИРОВАНИЕ  ВШИРЬ.   У  нас   есть  какой-то   круг  потребностей.
Ограничивая себя во  всем, мы сужаем  этот круг до  предела и пишем  для
него узкую-узкую программу. Потом мы начинаем расширять эту программу  и
удовлетворять  все  большее  число  своих потребностей. Предостережение:
будьте осторожны - как бы все не лопнуло.

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

                              С. Лавров, чл.-корр. АН СССР


               Семь заповедей программиста
                  (источник неизвестен)

     1. Не сотвори себе кумира из начальника. Знай - ты и сам дурак.
     2. Не укради машинного времени.
     3. Не убей дежурного инженера.
     4. Чти "БЭСМ" твою.
     5. Не произноси ложного  свидетельства на ближнего своего,  когда у
        тебя не идет программа.
     6. Помни  день  субботний  -  пять  дней  делай  дела, а  на шестой
        радуйся, что ничего не сделал.
     7. Люби ближнего своего, даже если он твой заказчик.



               Из записок кибернетической тупицы

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

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

 
     Совершенно ясно, что  недалек тот день,  когда роюот независимо  от
воли  своего  создателя  будет  решать,  что  ему нравится, а что нет (с
людьми  ведь  так  и  произошло).  И  отнюдь  не фантастика, если робот,
подражая  своему   собрату  из   рассказа  С.Лема,   возьмет  и   скажет
конструктору: "Да пошел ты  со  своей матрицей!"... Традиционный  способ
дать   хорошего   пинка   здесь   не   годится.   Надо   что-то    более
интеллектуальное. И  самая актуальная  задача в  настоящий момент  - это
АСУществление  диалога  "человек  -  ЭВМ".  Над  этим  и  бьются секйчас
кибернентики и, как всегда, не без юмора.

     Для чего, собственно, придумали язык? Видимо, для ого, чтобы каждый
мог вложить в слово тот смысл, который ему хочется. Если бы в слово  все
вкладывали один  и тот  же смысл,  было бы  просто неинтересно.  Так что
оказалось,  что  текст  на  естественном  языке не допускает однозначной
расшифровки.  Уж  на   что  участники  IX   Всесоюзного  симпозиума   по
кибернетике  только  и  делали,  что  говорили  целыми днями о фреймах и
объясняли друг другу, что это такое, так нашелся один участник,  который
спросил  у  своего  соседа  на  очередном  заседании:  "А кто такой этот
Фрейм?"
     
     Как же  преодолеваются трудности  взаимопонимания? Одно  из решений
предложено  замечательным  кибернетиком  М.М.Бонгардом  на примере слова
"образ".  В  предисловии  к  своей  книге "Проблемы узнавания" он пишет:
"...при таком  разнобое в  каком бы  смысле мы  ни стали применять слово
"образ", кто-нибудь да поймет его неверно. Поэтому в книге оно нигде  не
встречается".  Так  что  слова  можно  просто  исключать  во   избежание
путаницы.

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

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



                    Из фольклора программистов


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



Главная >> Настроящие программеры >> Программирование в разных измерениях.