CLIPS_pl (1185819)
Текст из файла
Московский государственный университет имени М. В. ЛомоносоваФакультет вычислительной математики и кибернетикиКафедра алгоритмических языковОтчёт о выполнении задания практикума«Разработка экспертной системы набазе языка CLIPS»Студенты 524 группыА. К. АсирянЕ. В.
ГалкинаГ. Н. ШрамовМосква, 20171Предметная область и экспертные правилаВ качестве предметной области были выбраны языки программирования. Входе работы была разработана рекомендательная система, предлагающая одиниз языков программирования. Изначально в базе знаний представлен 41 язык.В качестве свойств, определяющих язык, были выбраны следующие: основныепарадигмы, типизация (статическая или динамическая), наличие ленивых вычислений, поддержка сопрограмм, тип исполнения (компилируемый или интерпретируемый), наличие макросов, наличие абстракции списков (list comprehension),способ работы с памятью (ручное управление или встроенный сборщик мусора),поддержка исключений, наличие обобщённых типов (generics).Для некоторых языков требуется дополнительная информация, чтобы отличить их друг от друга.
Например, для языков, использующихся для вебразработки, следует уточнить, предназначен ли он для написания приложений,выполняющихся на стороне сервера или клиента.Рекомендательная система предназначена для начинающих или полупрофессиональных программистов, имеющих представление об основных парадигмах исвойствах языков программирования. С помощью системы пользователь может,например, выбрать новый язык для изучения, отвечающий его требованиям.2Представление фактов в базе знанийЯзыки программирования представляются в виде правил, у которых в качестве условия применения записаны значения свойств языка. Например:(defrule Lisp(paradigm fp) (list_comp y) (lazy n)(coroutine n) (exception y) (type d)(macro y) (generics n) (exec_type i)(gc y)=>(printout t "Lisp - семейство языков программирования,программы и данные в которых представляютсясистемами линейных списков символов." crlf)(assert (end)))При добавлении в систему нового языка необходимо прописать значения всехимеющихся свойств.
При добавлении нового свойства, необходимо указать его значение для каждого имеющегося языка и добавить соответствующий вопрос.Вопрос, который экспертная система может задать пользователю определёнкак шаблон:2(deftemplate question(slot category (type SYMBOL) (default ?NONE))(slot text (type STRING) (default ?NONE))(multislot values (type SYMBOL) (default ?NONE)))После получения ответа на вопрос, в базе знаний сохраняется соответствующий факт, характеризующий одно из свойств языка.
Например, (paradigm fp)или (lazy n).3Вывод в экспертной системеЭкспертная система задаёт пользователю вопросы о свойствах языка и сохраняет ответы в виде фактов БЗ. Поскольку описания имеющихся языков представляют собой правила, то система рекомендует язык, когда выполняется леваячасть соответствующего правила (т. е. имеется информация обо всех свойствах.В системе также присутствуют ассоциативные правила, позволяющие уменьшить количество задаваемых вопросов.
Вопрос задаётся пользователю, толькоесли у системы ещё нет информации о нужном свойстве.Если ни один из языков не подходит под требования пользователя, выдаётсясоответствующее сообщение.Система работает в цикле и не требует перезапуска, если пользователь хочетполучить несколько рекомендаций подряд.4Структура и запуск системыИсходный код находится в следующих файлах:• run.clp — скрипт для запуска системы;• main.clp — реализация интерфейса и ассоциативные правила;• rules.clp — описание языков программирования;• questions.clp — описание вопросов.У всех файлов есть дубликаты в кодировке UTF8, в их названии имеется соответствующий суффикс.Систему можно запустить, дав команду clips -f run.clp, или вручную изкомандной строки CLIPS, загрузив сначала файл main.clp и вызвав функциюmain.3.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.