Cтраница 3
В декларативных языках программирования и интерпретации в симметричных формализмах используется метод, с помощью которого можно сравнивать выражения и распознавать соответствия их частей между собой. Этот метод называют унификацией ( unification) выражений. Унификация - это обобщение сопоставления с образцом, в котором два образца с переменными сравниваются друг с другом с целью их сопоставления в отличие от рассмотренного нами ранее сопоставления образца с константным образом. [31]
Когда база данных велика, а программа содержит большое количество модулей, процесс сопоставления с образцами становится крайне неэффективным. Идея разбиения - в каждый момент дать доступ только к некоторому подмножеству базы данных или набора модулей, ограничив тем самым сопоставление образцов только этим подмножеством. [32]
Показатель качества продукции, по которому принимают решение оценивать ее качество, называется определяющим. Относительная характеристика качества продукции, основанная на сравнении значений показателей качества оцениваемой продукции с базовыми значениями соответствующих показателей, называется уровнем качества продукции. Относительная характеристика качества продукции, основанная на сопоставлении значений показателей, характеризующих техническое совершенство оцениваемой продукции, с соответствующими базовыми значениями, называется техническим уровнем качества. Для оценки названных уровней качества используют данные технического и экономического значения. При сопоставлении образцов отечественной и зарубежной продукции нередко приходится ограничиваться техническим уровнем, так как экономические показатели зарубежной продукции, как правило, не известны. [33]
Этот язык позволяет программисту использовать символы и представлять отношения между символами, но ни символы, ни отношения не имеют для OPS предопределенных значений. Значения определяются с помощью продукционных правил, записанных программистом. Процедуры вывода заданы в виде интерпретатора, реализующего продукционную систему. Достоинством OPS 5 является использование единых средств для представления знаний и механизмов управления. Кроме того, в OPS 5 реализован мощный и эффективный метод сопоставления образцов [ Форги, 1982 ], что позволяет решать сложные задачи с минимальным перебором. К числу недостатков OPS 5 относится отсутствие развитых средств для реализации интерфейса, объяснения и приобретения знаний. [34]
В первую очередь среди них необходимо выделить языки, ориентированные на программирование поисковых задач. Все эти языки функционируют в ЛИСП-среде и создавались как расширения базового языка. Для них, кроме свойств ЛИСПа, характерны следующие черты: представление данных в виде произвольных списковых структур; развитые методы сопоставления образцов; поиск с возвратами и вызов процедур по образцу. [35]
Второе наше допущение состоит в том, что все образцы, являющиеся кандидатами на соответствие аргументу, тестируются ( логически) одновременно, причем каждый тест, возможно, удаляет некоторые образцы из множества кандидатов. В некоторых языках, однако, образцы определяются таким образом, что тестируются последовательно сверху вниз, причем каждый тестируется слева направо, пока либо не будет достигнут успех, либо программа не зациклится. Примером такого языка является Miranda. Такое изменение тестирования также изменяет результаты работы программы. Описанный алгоритм трансляции может быть легко изменен для поддержки этого порядка тестирования путем изменения функции слияния деревьев сопоставления - этот вопрос оставлен читателю в качестве упражнения. Порядок тестирования поэтому важен в ленивых языках, и об этом нужно помнить при использовании сопоставления образцов в исходной программе. Отличия алгоритмов сопоставления строго описываются с помощью формальной семантики. [36]