На кого рассчитан язык Дракон?



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

На кого рассчитан язык Дракон?



Язык в равной степени рассчитан на четыре категории лиц:

! на людей, совершенно не знакомых (или слабо знакомых) с программированием и вычислительной техникой: механиков, электриков, комплексников, прибористов, испытателей, физиков, химиков, геологов, биологов, медиков, агрономов, экономистов, юристов, психологов и т. д.;

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

! на школьников и студентов;

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

 

Перечень задач, решаемых с помощью
языка Дракон

Язык ДРАКОН может быть использован при решении следующих задач:

! описание структуры человеческой деятельности;

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

! описание концептуальных решений и императивных моделей;

! проектирование алгоритмов и программ;

! разработка алгоритмов и программ;

! проектирование технологических процессов;

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

! описание процесса проектирования;

! описание процессов функционирования дискретных систем и приборов, в том числе интеллектуальных систем;

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

! описание процесса решения математических задач;

! описание диалога и взаимодействия человека-оператора и машины (пульта управления);

! описание процесса проверки и поиска неисправностей;

! решение задач диагностики в любых предметных областях;

! разработка микропрограмм;

! описание процесса функционирования организаций и предприятий;

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

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

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

! стратегический обзор функций корпораций (strategic overview of corporate functions);

! описание логических отношений между процессами (logical relationship among processes);

! описание укрупненной структуры программ (overall program structure);

! описание детальной логики программ (detailed program logic) [1];

! полная декомпозиция программ (ultimate decomposition), начиная от укрупненной логики и кончая деталями кода, что в равной мере полезно при проектировании как сверху вниз (top-down design), так и снизу вверх (bottom-up design) [4];

! проектирование программ до последнего момента может вестись независимо от языка и лишь на последнем этапе осуществляется переход к нужному языку [1];

! обучение конечных пользователей, стимулирующее их анализировать и проектировать детальную логику процессов (detailed process logic) [1];

! описание процедур организационного управления (management procedures) [4];

! описание компьютерных методологий (computer methodologies) [4];

описание методологий информационной техники (methodologies of information engineering) [4].

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

Выводы

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

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

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

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

 

 


Глава 2:
Можно ли создать язык,
улучшающий
понимание и взаимопонимание?

— ...Скажите, отчего разбрелись все ученые в разные стороны и каждый говорит языком, которого другой не понимает? Отчего мы все изучили, все описали и почти ничего не знаем?

— Извините, это не мой предмет, я только собираю факты — я статистик.

Владимир Одоевский

Почему специалисты не понимают
друг друга?

В 1880 г. баварский ксендз Иоган Шлейер, стремясь улучшить взаимопонимание между людьми, придумал язык “воляпюк” (искаж. от world speak, что значит “всемирный язык”). Чуть позже варшавский врач Земенгоф изобрел эсперанто. Хотя эти проекты всемирных языков не оправдали надежд, однако они сыграли положительную роль, ибо приковали внимание к назревающей проблеме — созданию искусственных языков.

Сегодня, когда число искусственных языков программирования перевалило за три тысячи, проблема взаимопонимания между людьми почти так же далека от решения, как и во времена Шлейера и Земен­гофа. Да, действительно, языки Бейсик, Паскаль, Си, Си++, Ява и многие другие давно стали всемирными языками. Однако популярность языков вовсе не говорит о том, что написанные на них программы понятны всем, кому это нужно. Многие программисты жалуются, что свою собственную программу они с трудом понимают через полгода, а то и через месяц. А если речь идет о чужой программе? Тогда становится совсем тяжко. Нередко бывает легче написать свою программу, нежели разобраться в том, что делает чужая. Поэтому среди требований, предъявляемых к современным алгоритмическим языкам, на первое место все чаще выходит понимаемость программ (comprehensibility), которая определяется как свойство программы минимизировать интеллектуальные усилия, необходимые для ее понимания.

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

Язык Дракон как «эксперанто»
делового мира

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

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

Задача формализации и унификации множества профессиональных языков с целью обеспечить эффективное взаимопонимание между специалистами любых профессий, включая программистов, является, хотя
и важной, но, увы, неразрешимой. Положение в корне меняется, если ограничиться императивными профессиональными знаниями. Именно эту задачу решает язык ДРАКОН. Он построен путем формализации, неклассической структуризации и эргономизации блок-схем алгоритмов и программ, описанных в стандартах ГОСТ 19.701–90 и ISO 5807–85.

Что такое интеллектуальное
взаимопонимание?

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

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

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

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

В чем особенность Дракона?

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

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

Выводы

При создании языка ДРАКОН были выдвинуты следующие гуманитарные требования.

1. Улучшить работу человеческого ума.

2. Предложить эффективные средства для описания структуры деятельности.

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

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

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

6. За счет использования когнитивно-эргономического подхода к проектированию синтаксиса и семантики добиться кардинального улучшения качества программного обеспечения по критерию “понимаемость программ”.


Глава 3:
Соображения,
повлиявшие на создание
языка Дракон

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

Поль Страссман

Что важнее:
компьютеры или человеческий мозг?

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

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

Чтобы избежать неприятностей, необходимо четко разграничить три понятия:

! интегральную производительность системы “персонал—компью­теры”;

! производительность компьютеров;

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

 

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

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

Что такое производительность
умственного труда?

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

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

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

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

Близкую позицию занимают и другие авторы. В литературе можно встретить, например, такие выражения: повышение работоспособности мозга, совершенствование качества работы мозга [1], увеличение КПД функционирования человеческого мозга [2], “увеличение продуктивности умственного труда”, связанное с “совершенствованием психических процессов человека” [3], “облегчение процесса нашего мышления” [4], “экономия мышления” и т. д.

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

Зависит ли
производительность персонала
от производительности компьютеров?

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

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

Если учесть, что при работе с компьютером свыше 99% информации человек получает с помощью зрения, то наиболее важным видом компьютерной информации (с точки зрения человеческого восприятия) является письменная, т. е. “впитываемая глазами” информация, которая определенным образом взаимодействует с мозгом и оказывает значительное влияние на его работу. В чем заключается это влияние? Зависит ли продуктивность мозга от качества поступающей в него информации? По-видимому, да. Можно предположить, что время решения человеческим мозгом интеллектуальных задач зависит от скорости восприятия, понимания и усвоения поступающих в мозг сообщений, а последняя — от наглядности, доходчивости, смысловой полноты и других полезных свойств информационного материала, который должен точно и наглядно отражать сущность вопроса, постановку задачи и ход ее решения. Если любая (в том числе самая сложная) информация будет предъявляться по принципу “взглянул — и сразу стало ясно”, если благодаря удачной форме подачи материала каждый работник быстро вникнет в суть дела и за короткое время выполнит задание, интеллектуальная производительность персонала, несомненно, будет высокой.

Можно ли увеличить скорость работы
человеческого мозга?

Каким образом можно повысить продуктивность мозга? Ответ поясним на примерах. Замена языка римских чисел на язык арабских чисел дала возможность резко увеличить производительность труда при выполнении арифметических действий. Как отмечает Дэвид Марр, “это главная причина того, почему римская культура не смогла развить математику так, как это сделали ранние арабские культуры”.

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

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

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

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

Сказанное позволяет выдвинуть следующую рабочую гипотезу: чтобы улучшить работу ума, повысить продуктивность человеческого мозга при решении интеллектуальных производственных заданий, необходимо улучшить когнитивные характеристики профессионального языка, используемого при выполнении интеллектуальной работы. Эта гипотеза положена в основу разработки языка ДРАКОН. Обоснование гипотезы можно найти в [6].

Проблема формализации
профессиональных знаний

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

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

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

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

Традиционное компьютерное программирование иногда рассматривают как частный случай формализации знаний. Бытует мнение, что программисты лучше других умеют формализовать свои знания. Это не совсем так. Значительная часть знаний не попадает в текст программы, оставаясь в голове программиста. Как отмечает академик А. Ершов, “язык программирования кодирует объекты предметной области задачи, а наше знание об этих объектах остается за пределами програм­много текста” [7]. Именно поэтому понять сложную программу в отсутствие ее автора очень трудно или даже невозможно. Приходится признать, что известные методы формализации несовершенны и нуждаются в серьезном обновлении.

Можно ли
обойтись без когнитологов?

Существуют две точки зрения на проблему формализации. Согласно одной из них специалист, обладающий профессиональными знаниями (обычно его называют “эксперт”), не в состоянии самостоятельно, без посторонней помощи формализовать свои знания, так как задача формализации слишком трудна. Представитель этого направления Э. Фейгенбаум подчеркивает: “По опыту нам известно, что большая часть знаний в конкретной предметной области остается личной собственностью специалиста. И это происходит не потому, что он не хочет разглашать свои секреты, а потому, что он не в состоянии сделать этого — ведь специалист знает гораздо больше, чем сам осознает”. Утрируя, можно сказать, что согласно этой позиции эксперт отчасти напоминает собаку: глаза умные, а сказать (на формальном языке) ни­чего не может. Отсюда делается вывод, что для решения задачи формализации необходимы особые помощники — инженеры по знаниям (когнитологи), которые, действуя по специальной методике, интервьюируют эксперта, формализуют “извлеченные” из него знания и вводят их в компьютер.

Иную позицию занимает Г. Громов, полагающий, что эксперт должен формализовать свои знания самостоятельно, без помощи инженеров по знаниям и профессиональных программистов, точнее говоря, при их “минимальной технической поддержке”. Данный метод называется “автоформализация знаний” [8][4].

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

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

Чем отличается алгоритм
от технологического процесса?

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

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

Алгоритм — конечный набор предписаний, определяющий решение задачи посредством конечного количества операций [9]. Технологический процесс — совокупность приемов и способов получения, обработки или переработки сырья, материалов, полуфабрикатов или изделий, осуществляемых в промышленности, строительстве, сельском хозяйстве и других отраслях [10]. Поверхностный анализ этих опре­делений может привести к ложному выводу, что алгоритмы и технологические процессы не имеют ничего общего. Однако в действительности это не так.

Известно, что термин “алгоритм” используется и в более широком смысле для представления человеческой деятельности в виде строгой последовательности отдельных элементарных действий или процедур [11], а технологический процесс можно определить как “последовательность направленных на создание заданного объекта действий (технологических операций), каждое из которых основано на каких-либо естественных процессах (физических, химических, биологических и др.) и человеческой деятельности” [11]. Тщательный анализ этих и многих других определений показывает, что исследуемые понятия в значительной степени совпадают, а имеющиеся различия в определенном смысле несущественны. Иными словами, технологический процесс и алгоритм — это понятия-близнецы или во всяком случае “близкие родственники”. Чтобы сделать эту мысль более убедительной, попытаемся отойти от традиционной точки зрения и предложим новые определения.

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

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



Последнее изменение этой страницы: 2016-09-20; просмотров: 112; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.81.89.248 (0.012 с.)