[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Базы Данных / Разное /

Изучение простых конструкций языка Пролог (Prolog)

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

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

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

имя_отношения (арг1, арг2... ..аргn)

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

Факты:

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

Имена отношений и объектов выбираются произвольно. Желательно чтобы имена соответствовали своим значениям. Примеры фактов приведены в табл. 1.

Факт на языке ПрологВозможная интерпретация факта
ценный(золото)Золото является ценным
дуб(дерево)Дуб является деревом
«отец( ольга, олег)Олег является отцом Ольги
Сдавать(студент, экзамен, физика)Студент сдает экзамен по физике
Плюс(2,3,5)2 плюс 3 равно 5

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

Например факт:

металл(железо).

Устанавливает, что объект железо имеет свойство быть металлом. На русском языке этот факт звучал бы следующим образом: «высказывание о том, что железо есть металл - истинно».

Факт, содержащий более одного аргумента устанавливает взаимосвязь между аргументами. В программе на языке Пролог можно задавать факты, совершенно бессмысленные с точки зрения здравого смысла, так как ЭВМ не понимает смысла имен отношений и объектов.

Правила:

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

В языке Пролог правило состоит из заголовка и тела правила, которые соединяются символом «:-» (читается «если»). Правило, как и факт, заканчивается точкой.

заголовок_прав(перечень аргуменюв):-тело прав( перечень аргументов).

Заголовок правила описывает факт, для определения которого предназначено правило. Тело правила описывает конъюнкцию целей, которые должны быть последовательно согласованы, для того. чтобы заголовок правила был истинным,

Запросы:

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

1. их предикаты одинаковы (побуквенно совпадают);

2. их соответствующие аргументы попарно совпадают.

Ответом на вопрос является либо значение «истина», если находится факт, сопоставимый с запросом, либо значение «ложь», если факт не найден.

Правила конкретизации:

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

1. число согласуется с равным ему числом;

2. атом согласуется только с равным ему атомом:

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

4. структура согласуется с другой структурой только в том случае, если они имеют одинаковые имена и количество аргументов (при этом все элементы структуры согласуются попарно).

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

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

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

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

WWW.COMPROG.RU: Всё о программировании




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Базы Данных / Разное /

Разработка запросов
08-03-2010   

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

Кол. просмотров: общее - 3757 сегодня - 0

Параметрическое определение порядка сортировки данных
08-03-2010   

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

Кол. просмотров: общее - 3830 сегодня - 0

Delete from mytable; Commit:.. или Восстановление данных в СУБД Interbase
08-03-2010   

Данная статья написана на основе статей: The Interbase On - Disk Structure by Ann Harrison ; Structure of a Data Page by Paul Beach, а так же включает в себя мой горький опыт в удалении важных данных, а потом в их успешном восстановлении. Я никоим образом не собираюсь нарушать права ни выше перечисленных авторов, ни компаний, чьи зарегистрированные торговые знаки перечисленные в данной статье... подробнее

Кол. просмотров: общее - 3884 сегодня - 0

Часто задаваемые вопросы по базам данных
08-03-2010   

СУБД — Система Управления Базами Данных (dbms — database management system). Программа, либо комплекс программ, предназначенных для полнофункциональной работы с данными. Как правило, включает в себя инструменты для создания и изменения структуры хранения наборов данных... подробнее

Кол. просмотров: общее - 4322 сегодня - 1

Временные таблицы в sql server. Так ли необходимы временные таблицы?
07-03-2010   

Временные таблицы всегда прекрасно помогали разработчикам. Раньше, когда я использовал access, я обычно создавал временные таблицы, которые удалял после решения задачи. При использовании sql server решить задачу можно гораздо проще. Не так ли?... подробнее

Кол. просмотров: общее - 3857 сегодня - 1



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects