ВУЗ:
Составители:
Рубрика:
13
2. Синтаксис и семантика Пролог-программ
2.1. Объекты данных
2
Объекты данных в Прологе могут быть простыми данными
и структурами. Простые данные могут быть константами и пере-
менными. Константы могут быть атомами, числами и строками.
Пролог-система распознает тип объекта по его синтаксиче-
ской форме в тексте программы.
Атомы
Атом – комбинация букв, цифр и знака подчеркивания, на-
чинающаяся со строчной
буквы. Примеры: a, "это_атом",
"this_is_atom".
Переменные
Переменная – комбинация букв, цифр и знака подчеркива-
ния, начинающаяся с прописной буквы. Примеры: V, Это_пере-
менная25.
Структуры
Структурные объекты (или просто структуры) – это объек-
ты, состоящие из нескольких компонент. Компоненты, в свою
очередь, могут быть структурами. Для объединения компонент в
структуру используется функтор:
date(17,
июнь,1999) % date – функтор.
date(День,июнь,1999), здесь – День – переменная, которая
может получить значение (стать связанной переменной) на ком-то
этапе вычислений. Синтаксически все объекты данных в Прологе
есть термы.
Сопоставление.
Наиболее важная операция над термами – сопоставление.
Два терма сопоставимы:
– если они идентичны,
2
Излагается по [2, 8]
14
– если переменным в обоих термах можно присвоить в каче-
стве значений объекты таким образом, что после подстановки они
станут идентичными.
Например, date(Day,июнь,1999) и date(Day1,июнь,1999) со-
поставимы, поскольку переменным Day и Day1 можно присвоить
одинаковые значения от 1 до 31. Сопоставление – процесс провер-
ки сопоставимости термов.
2.2. Декларативный смысл Пролог-программ
Дано предложение:
P:-Q,R.
Q и R имеют
синтаксис термов.
Возможные способы декларативной интерпретации этого
предложения:
P истинно, если Q и R истинны.
Из Q и R следует P.
Два варианта процедурного прочтения:
Чтобы решить задачу P нужно сначала решить подзадачу Q,
а затем – подзадачу R.
Чтобы достичь P, сначала достигни Q, затем достигни R.
Таким образом, различие между декларативным и проце-
дурным прочтениями заключается в том, что последнее не
только
определяет логические связи между левой и правой (цели) частя-
ми предложения, но еще и порядок, в котором эти цели обрабаты-
ваются.
Декларативный смысл программы определяет, является ли
данная цель истинной, и, если да, то при каких значениях пере-
менных это достигается. Конкретизацией предложения называется
результат подстановки в него на
место каждой переменной неко-
торого терма. Вариантом предложения C называется такая конкре-
тизация C, при которой каждая переменная заменена на другую
переменную.
Например:
читатель(X):- иметь_книгу(X,Y)
2. Синтаксис и семантика Пролог-программ – если переменным в обоих термах можно присвоить в каче- стве значений объекты таким образом, что после подстановки они 2.1. Объекты данных2 станут идентичными. Например, date(Day,июнь,1999) и date(Day1,июнь,1999) со- Объекты данных в Прологе могут быть простыми данными поставимы, поскольку переменным Day и Day1 можно присвоить и структурами. Простые данные могут быть константами и пере- одинаковые значения от 1 до 31. Сопоставление – процесс провер- менными. Константы могут быть атомами, числами и строками. ки сопоставимости термов. Пролог-система распознает тип объекта по его синтаксиче- ской форме в тексте программы. 2.2. Декларативный смысл Пролог-программ Атомы Дано предложение: Атом – комбинация букв, цифр и знака подчеркивания, на- P:-Q,R. чинающаяся со строчной буквы. Примеры: a, "это_атом", Q и R имеют синтаксис термов. "this_is_atom". Возможные способы декларативной интерпретации этого Переменные предложения: P истинно, если Q и R истинны. Переменная – комбинация букв, цифр и знака подчеркива- Из Q и R следует P. ния, начинающаяся с прописной буквы. Примеры: V, Это_пере- менная25. Два варианта процедурного прочтения: Чтобы решить задачу P нужно сначала решить подзадачу Q, Структуры а затем – подзадачу R. Структурные объекты (или просто структуры) – это объек- Чтобы достичь P, сначала достигни Q, затем достигни R. ты, состоящие из нескольких компонент. Компоненты, в свою очередь, могут быть структурами. Для объединения компонент в Таким образом, различие между декларативным и проце- структуру используется функтор: дурным прочтениями заключается в том, что последнее не только date(17,июнь,1999) % date – функтор. определяет логические связи между левой и правой (цели) частя- date(День,июнь,1999), здесь – День – переменная, которая ми предложения, но еще и порядок, в котором эти цели обрабаты- может получить значение (стать связанной переменной) на ком-то ваются. этапе вычислений. Синтаксически все объекты данных в Прологе Декларативный смысл программы определяет, является ли есть термы. данная цель истинной, и, если да, то при каких значениях пере- Сопоставление. менных это достигается. Конкретизацией предложения называется Наиболее важная операция над термами – сопоставление. результат подстановки в него на место каждой переменной неко- Два терма сопоставимы: торого терма. Вариантом предложения C называется такая конкре- – если они идентичны, тизация C, при которой каждая переменная заменена на другую переменную. Например: 2 Излагается по [2, 8] читатель(X):- иметь_книгу(X,Y) 13 14
Страницы
- « первая
- ‹ предыдущая
- …
- 5
- 6
- 7
- 8
- 9
- …
- следующая ›
- последняя »