1 заметка с тегом

моделирование мышления

Метаалгоритмический язык

Выдержки из статьи В. Ф. Турчина (1968) «Метаалгоритмический язык». Кибернетика, № 4. C. 45-54.

Цель

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

Метаязык — алгоритмический язык

Метаязык сам является алгоритмическим языком. На любом универсальном алгоритмическом языке можно описать семантику любого другого алгоритмического языка. Поэтому выбор того или иного алгоритмического языка в качестве метаязыка — это вопрос удобства. Хотя на практике, «неудобство» часто означает «невозможность».

Метаязык для человека, а не для машины

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

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

Особенности человеческого языкового мышления

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

Иерархия понятий в естественном языке: морфемы — лингемы — абстрактные и сложные понятия

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

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

Где-то на средних этажах пирамиды расположены понятия «север», «число», «работа», «чин». А где-то на самом верху — «отчуждение», «гомозиготный», «бикомпактность».

Мера абстрактности и сложности понятий

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

Что значит понимать

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

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

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

Конкретизация

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

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

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

Формальная основа метаязыка

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

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

Металагоритмическая машина

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

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

Таким образом, метаалгоритмическая машина «умнее» и сложнее, чем машина Тьюринга. Последняя моделирует только сам факт языковой деятельности — так сказать языковость деятельности.

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

Моделирование мыслительных процессов

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

Общение человека с машиной и моделированиечеловеческого мышления — это, по существу, две стороны одной медали.

* * *

Формальное и неформальное описание метаязыка, примеры алгоритмов смотрите в статье.