This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
courses:knowledge_base_and_expert_system:lab2 [2019/08/28 12:40] andrey.suchkov [Варианты заданий] |
courses:knowledge_base_and_expert_system:lab2 [2019/09/09 06:55] andrey.suchkov [Основные теоретические положения] |
||
---|---|---|---|
Line 5: | Line 5: | ||
Пролог (англ. Prolog) -- язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка. | Пролог (англ. Prolog) -- язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка. | ||
- | Prolog является декларативным языком программирования: логика программы выражается в терминах отношений, представленных в виде фактов и правил. Для того чтобы инициировать вычисления, выполняется специальный запрос к базе знаний, на которые система логического программирования генерирует ответы «истина» и «ложь». Для обобщённых запросов с переменными в качестве аргументов созданная система Пролог выводит конкретные данные в подтверждение истинности обобщённых сведений и правил вывода. | + | Prolog является декларативным языком программирования: логика программы выражается в терминах отношений, представленных в виде фактов и правил. Для того чтобы инициировать вычисления, выполняется специальный запрос к базе знаний, на которые система логического программирования генерирует ответы <<истина>> и <<ложь>>. Для обобщённых запросов с переменными в качестве аргументов созданная система Пролог выводит конкретные данные в подтверждение истинности обобщённых сведений и правил вывода. |
- | Иначе говоря, предикат можно определить как функцию, отображающую множество произвольной природы в множество булевых значений {ложно, истинно}. Задача пролог–программы заключается в том, чтобы доказать, является ли заданное целевое утверждение следствием из имеющихся фактов и правил. | + | Иначе говоря, предикат можно определить как функцию, отображающую множество произвольной природы в множество булевых значений {ложно, истинно}. Задача пролог-программы заключается в том, чтобы доказать, является ли заданное целевое утверждение следствием из имеющихся фактов и правил. |
Язык программирования, реализованный в Visual (а ранее в Turbo) Prolog'е отличается от классического пролога тем, что он основан на строгой статической типизации. В него также добавлены средства объектно-ориентированного программирования, анонимные предикаты (лямбда-предикаты), факты-переменные и разрушающее присваивание для них, аргументы-домены (''Generic Interfaces and Classes'') и параметрический полиморфизм, мониторы (''Monitors with guards''), императивные конструкции (''foreach'', ''if<nowiki>...</nowiki>then<nowiki>...</nowiki>else''), коллекторы списков (''[<nowiki>...</nowiki>||<nowiki>...</nowiki>]'') и пр. | Язык программирования, реализованный в Visual (а ранее в Turbo) Prolog'е отличается от классического пролога тем, что он основан на строгой статической типизации. В него также добавлены средства объектно-ориентированного программирования, анонимные предикаты (лямбда-предикаты), факты-переменные и разрушающее присваивание для них, аргументы-домены (''Generic Interfaces and Classes'') и параметрический полиморфизм, мониторы (''Monitors with guards''), императивные конструкции (''foreach'', ''if<nowiki>...</nowiki>then<nowiki>...</nowiki>else''), коллекторы списков (''[<nowiki>...</nowiki>||<nowiki>...</nowiki>]'') и пр. | ||
Line 14: | Line 14: | ||
===== Порядок выполнения работы ===== | ===== Порядок выполнения работы ===== | ||
- Загрузите систему программирования Visual Prolog. | - Загрузите систему программирования Visual Prolog. | ||
- | - Установите в опциях среды шрифт с русской раскладкой **Options/Global/Environment**: \\ На карточке **Fonts** поменяйте шрифт окна редактора **Editor Windows** на **Courier** с раскладкой Кириллица. \\ Либо воспользуйтесь кнопкой **F** (//Font//) на панели инструментов. | + | - Установите в опциях среды шрифт с русской раскладкой **Options/Global/Environment**: |
+ | - На карточке **Fonts** поменяйте шрифт окна редактора **Editor Windows** на **Courier** с раскладкой Кириллица. | ||
+ | - Либо воспользуйтесь кнопкой **F** (//Font//) на панели инструментов. | ||
- Выполните команду **Project/New Project**. Определите в качестве //Project Name// имя //DOG// и укажите главный каталог (//Base Directory//) в личной папке на диске. Нажмите кнопку **Create**. \\ В созданном проекте удалите модуль //Vpitools.pro//. Откройте модуль //DOG.PRO//, удалите все содержимое и наберите текст программы: <code prolog>domains | - Выполните команду **Project/New Project**. Определите в качестве //Project Name// имя //DOG// и укажите главный каталог (//Base Directory//) в личной папке на диске. Нажмите кнопку **Create**. \\ В созданном проекте удалите модуль //Vpitools.pro//. Откройте модуль //DOG.PRO//, удалите все содержимое и наберите текст программы: <code prolog>domains | ||
name=string | name=string |