Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Краткое описание языка ПрологСодержание книги
Поиск на нашем сайте Базовые понятия языка Пролог
Основными понятиями в языке Пролог являются факты, правила и вопросы. Из фактов и правил образуются описания данных, процедур и программы на языке Пролог. Вопросы — это основное средство ведения диалога с базами знаний и программами, имеющимися в памяти ЭВМ. Факты в Прологе служат для описания конкретных данных и простейших сведений. Примеры фактов: мама (зина, вова); — Зина — мама Вовы папа (миша, вова); — Миша — папа Вовы
Группы фактов могут образовывать данные. Совокупность данных, размещаемых на дисках, образует базы данных. Общее определение данных в Прологе:
данные:
Правила используются для описания определений, процедур принятия решений и обработки данных. Примеры использования правил для описания определения понятия «родитель»: родитель (х,у) ← папа (х,у); — Родитель — это папа илимама родитель (х,у) ← мама (х,у); Процедуры образуются из некоторых групп правил. Общая форма описания процедур в Прологе:
процедура:
Пример описания рекурсивной процедуры, в которой определяемое понятие задается через самое себя: предок (х,у) ← родитель (х,у); предок (x,z) ← родитель (х,у), предок (y,z);
Программа на Прологе — это совокупность процедур над определенными данными:
программа:
Описания баз данных на Прологе образуют совокупность описаний данных:
база данных:
Базы знаний на Прологе описываются наборами фактов и правил определения обобщенных понятий над ними:
база знаний:
Вопросы в языке Пролог служат запросами к базам данных и знаний, а также обращениями к процедурам и программам. Примеры вопросов: ? мама (х,вова) ? предок (х,вова) Описания фактов
Факты в языке Пролог описываются в следующей форме:
факт:
Описание факта начинается с имени. В роли имен могут использоваться любые последовательности букв и цифр, начинающиеся с буквы:
имя:
Буквы могут быть выбраны из русского и латинского алфавитов. После имени в описаниях фактов задается список аргументов, заключаемых в круглые скобки. В конце описания каждого из фактов ставится точка с запятой. В роли аргументов могут быть указаны любые слова, словосочетания и числа. Словосочетание — это любая последовательность слов, соединенных знаком подчеркивания.
Словосочетание:
Слова, как и имена, — это любые последовательности из букв и цифр, начинающиеся с букв:
слово:
Числа в данной реализации Пролога — это только целые числа (отрицательные — со знаком минус):
число:
Примеры записи чисел — 0, 1, +3, —25.
Семантика: каждый факт в Прологе интерпретируется как некоторое истинное утверждение. Опираясь на эти утверждения, интерпретатор Пролога рассматривает различные вопросы как утверждения, которые должны быть доказаны или опровергнуты исходя из имеющихся фактов и правил. Правила записи вопросов Вопросы в Прологе служат для записи простых или сложносоставных запросов к базам знаний или обращений к процедурам и программам. Ответами на запросы к базам данных и знаний могут быть логические значения ДА (истина) или НЕТ (ложь) либо список конкретных данных, отвечающих запросу. Общая форма записи сложносоставных вопросов:
сложный вопрос:
В сложносоставных вопросах составляющие его подвопросы разделяются запятыми. Любой вопрос в Прологе начинается со знака вопроса «?» и заканчивается знаком «точка с запятой». Пример слож-носоставного вопроса: ? папа (х,у), папа (у,вова);
Простые вопросы имеют следующую форму записи:
простой вопрос:
Здесь <имя> — это имя некоторого факта или правила в программе или базе знаний. Количество аргументов в таком простейшем вопросе должно строго совпадать с количеством аргументов (параметров) в описаниях соответствующих фактов и правил.
В роли аргументов в вопросах могут указываться как конкретные значения, так и переменные. Если в вопросе указаны только конкретные значения, то ответом будет логическое значение ДА или НЕТ. Если же в вопросе указываются переменные, то при положительном ответе дополнительным результатом будет вывод конкретных значений переменных, указанных в исходном вопросе.
В роли переменных в Прологе могут указываться латинские и русские буквы, как строчные, так и прописные: а, b, с,..., х, у, z; A, В, С,..., X, Y, Z; а, б, в,..., э, ю, я; А, Б, В,..., Э, Ю, Я.
Кроме того, в качестве имен переменных могут употребляться любые слова и словосочетания, заканчивающиеся знаком апострофа ['].
Примеры имен: дед ', х1 ', оценка4 ' и т. п.
Кроме того, в вопросах и правилах на Прологе аргументы могут иметь неопределенные значения. Для этого вместо конкретных значений или имен переменных в вопросе указывается знак подчеркивания [ _ ].
Пример вопроса с использованием неопределенных значений: ? мама (мать', _);
Ответом на указанный вопрос будет перечень имен всех матерей, сведения о которых имеются в базе знаний. Запись правил и процедур
Правила в Прологе используются для описания определений, запросов к базам данных, а также обращений к другим правилам и процедурам. Примеры записи правил: родитель (х,у) ← мама (х,у); родитель (х,у) ← папа (х,у); бабушка (x,z) ← мама (х,у), родитель (y,z); дедушка (x,z) ← папа (х,у), родитель (y,z);
Общая форма записи правил на Прологе: правило:
Здесь <заголовок> отделяется от <определения> двумя знаками: ← «меньше» и «тире». В конце правила записывается «точка с запятой».
Заголовки правил имеют следующую форму: заголовок:
Здесь <имя> — это любое слово или словосочетание. В роли параметров в заголовках правил могут указываться переменные или конкретные значения либо неопределенные значения с помощью знака подчеркивания [ _ ]. Описание заголовка служит образцом записи обращений к правилам и процедурам. Определения в правилах образуются из обращений к другим правилам и процедурам, а также из запросов к данным и встроенным процедурам Пролога. Общая форма записи определений в правилах:
определение:
Запросы и определения отделяются в описаниях правил запятыми и записываются по тем же правилам, что и заголовки.
Порядок записи обращений и запросов в определениях правил в языке Пролог весьма существен, поскольку он задает порядок их применения и выполнения. Нарушение этого порядка может привести к значительному изменению конечных результатов выполнения правил и процедур.
Результатом выполнения любых процедур и правил в Прологе всегда являются логические значения — ДА либо НЕТ, соответствующие успеху или неуспеху их применения. В этом смысле применение правил в Прологе совпадает с проверкой условий в логике. Соответственно форма записи обращений к правилам и процедурам в Прологе совпадает с формой записи предикатов в математической логике.
Однако в отличие от математической логики, где существенны только логические значения этих предикатов, в Прологе результатом применения правил и процедур может быть конкретизация значений переменных, указанных в обращениях к ним.
Пример такого обращения: ? родитель (х,вова) х = зина
Полученный ответ имеет двойной результат: во-первых, подтверждение истинности наличия «родителей» у «вовы», а во-вторых, конкретизация переменной «х» в обращении к процедуре «родитель» с именем «вова», которая дает значение «х = зина».
Кроме конкретизации значений переменных в запросах и обращениях результатами выполнения процедур и правил в Прологе могут быть различного рода побочные эффекты — вывод на экран линий, точек, картинок, сообщений, запись и считывание данных и т. п.
В этом смысле результаты выполнения процедур и программнаПрологе могут быть эквивалентны результатам выполнения программ на других языках программирования.
|
||
|
Последнее изменение этой страницы: 2016-12-16; просмотров: 764; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.008 с.) |