Введение в экспертные системы

canadapharmacyonline.com Магазин запчастей и комплектующих, интернет магазин запчастей для ноутбуков.



ГЛАВА 7. Объектно-ориентированное программирование


    ГЛАВА 7. Объектно-ориентированное программирование
    ГЛАВА 7. Объектно-ориентированное программирование 7.1. Язык KRL 7.2. Языки LOOPS и FLAVORS 7.2.1. Передача сообщений 7.2.2. Проблема наложения методов 7.2.3. Метаклассы 7.3. Языки CLIPS и CLOS 7....
    Объектно-ориентированное программирование
    Объектно-ориентированное программирование 7.1. Язык KRL 7.2. Языки LOOPS и FLAVORS 7.3. Языки CLIPS и CLOS 7.4. Множественное наследование в C++ 7.5. Объектно-ориентированный анализ и конструирова...
    7.3.3. Метаклассы в CLOS и CLIPS
    7.3.3. Метаклассы в CLOS и CLIPS В языке CLOS классы и метаклассы интегрированы в среду LISP. Фактически каждый объект LISP является экземпляром класса. Например, существует класс массивов array,...
    Верхние уровни иерархической системы классов языка COOL
    Верхние уровни иерархической системы классов языка COOL Все классы, определенные пользователем, являются производными от USER, который отчасти выполняет функции метакласса. В нем реализованы практ...
    7.4. Множественное наследование в C++
    7.4. Множественное наследование в C++ Так же, как язык CLOS представляет собой объектно-ориентированное расширение языка LISP, так и язык C++ создан на основе широко известного языка С и сохранил...
    Отношения между классами в примере "Алмаз Никсона"
    Отношения между классами в примере Алмаз Никсона...
    Листинг 7.2. Файл nixon.h. Объявление классов, версия 1
    Листинг 7.2. Файл nixon.h. Объявление классов, версия 1 // Объявление классов для задачи Алмаз Никсона finclude iostream.h class Person { public: Personf) {}; virtual Person() {}; virtual void spe...
    Листинг 7.3. Файл nixon.h. Объявление классов, версия 2
    Листинг 7.3. Файл nixon.h. Объявление классов, версия 2 class Person public: Person)) {}; virtual Person)) {}; virtual void speak)){ cout Beer;} }; class Republican : public Person public: Republi...
    Листинг 7.4. Файл nixon.h. Объявление классов, версия 3
    Листинг 7.4. Файл nixon.h. Объявление классов, версия 3 class Person { public: Per son () {}; virtual Person)) {}; virtual void speak(){ cout Beer;} И class Republican : virtual public Person { pu...
    Листинг 7.5. Файл nixon.h. Объявление классов, версия 4
    Листинг 7.5. Файл nixon.h. Объявление классов, версия 4 class Person public: Person)) {}; virtual ~Person)) {}; virtual void speak)){ cout Beer;} class Republican : virtual public Person public: R...
    7.5. Объектно-ориентированный анализ и конструирование экспертных систем
    7.5. Объектно-ориентированный анализ и конструирование экспертных систем Философия и технология объектно-ориентированного программирования могут весьма пригодиться проектировщику экспертных систем...
    Рекомендуемая литература
    Рекомендуемая литература Для ознакомления с общими концепциями объектно-ориентированных вычислений и их практической реализацией я бы рекомендовал статьи из сборника [Peterson, 1987]. Обзор работ...
    Упражнения
    Упражнения 1. Чем отличаются объектно-ориентированные языки программирования от обычных процедурных языков? 2. В чем состоит отличие между конкретными и абстрактными классами? 3. Почему при множес...
    Схема структуры классов для упражнения 7
    Схема структуры классов для упражнения 7 8. Предположим, что классы на рис. 7.9 имеют следующие предпочтения при выборе блюд на завтрак: man: donut woman: croissant parent: fruit worker: bacon Зак...
    7.1. Язык KRL
    7.1. Язык KRL В языке KRL впервые была сделана попытка собрать воедино результаты выполненных ранее исследований о структурировании элементов знаний и реализовать их в виде единой системы [Bobrow...
    "...Анализ последствий объектно-центрической...
    ...анализ последствий объектно-центрической факторизации знаний в противовес более общей факторизации, предполагающей структурирование знаний в виде набора фактов, каждый из которых ссылается на о...
    Процедуры и объекты
    На рис. 7,1 мы попытались схематически представить, в чем основная разница между процедурно- и объектно-ориентированным подходами в программировании. Серые! эллипсы на схеме в левой части рисунка...
    Рис. 7.1. Процедурно- и объектно-ориентированные...
    Рис. 7.1. Процедурно- и объектно-ориентированные парадигмы программирования. Незаполненные фигуры представляют данные, а фигуры с заливкой—процедуры...
    7.2. Языки LOOPS и FLAVORS
    7.2. Языки LOOPS и FLAVORS Объектно-ориентированный стиль программирования идеально подходит для решения проблем, требующих детального представления объектов реального мира и динамических отношени...
    7.2.1. Передача сообщений
    7.2.1. Передача сообщений Идея объектно-ориентированного программирования состоит в том, что программа строится вокруг множества объектов, каждый из которых обладает собственным набором функций (о...
    Формирование объекта класса на языке CLIPS
    Ниже показано, как на языке CLIPS определяется класс ship и формируется экземпляр этого класса titanic. Сначала определим класс ship, в котором имеются два слота: x-velocity и y-velocity: (defclas...
    7.2.2. Проблема наложения методов
    7.2.2. Проблема наложения методов Та простая картина, которая вырисовывается из представленного выше механизма прямого наследования, несколько усложняется, если мы попытаемся заменить прямое насле...
    Иерархическая система классов окон
    Иерархическая система классов окон Но здесь возникают вопросы: а как новый класс будет наследовать процедуры, определенные в двух базовых классах? Устроит ли нас смешанное поведение нового класса?...
    Гетерархическая система классов окон
    Гетерархическая система классов окон Для решения этой задачи очень подходит механизм включения в основной метод вставок, которые должны выполняться до или после него. В приведенном выше примере с...
    7.2.3. Метаклассы
    7.2.3. Метаклассы Отличительной чертой языка LOOPS является поддержка концепции метаклассов, т.е. классов, членами которых являются другие классы. Впервые метаклассы появились в языке SmallTalk. В...
    Структура классов в языке LOOPS
    Структура классов в языке LOOPS LOOPS поддерживает три стандартных метакласса: Object, Class и Metaclass. Тонкие стрелки на рис. 7.4 означают, что Object является суперклассом класса Class, a Clas...
    Вставка метакласса, определенного пользователем
    Вставка метакласса, определенного пользователем...
    7.3. Языки CLIPS и CLOS
    7.3. Языки CLIPS и CLOS Появление языка Common LISP было связано с попыткой стандартизировать многочисленные диалекты LISP и создать устраивающую большинство пользователей версию этого языка. Разв...
    7.3.1. Множественное наследование в CLOS и CLIPS
    7.3.1. Множественное наследование в CLOS и CLIPS Механизм множественного наследования в языках CLOS и CLIPS работает практически так же, как и в языке LOOPS. Порядок, в котором базовые классы пере...
    Листинг 7.1. Объявление классов на языке CLIPS
    Листинг 7.1. Объявление классов на языке CLIPS (defclass person (is-a USER) (defclass quaker (is-a person) (defclass republican (is-a person) (defclass republican-quaker (is-a republican quaker) (...
    7.3.2. Наложение методов в CLOS и CLIPS
    7.3.2. Наложение методов в CLOS и CLIPS В языках FLAVORS и LOOPS реализованы разные механизмы комбинирования поведения, унаследованного от разных родителей. В языке FLAVORS используется описанный...
    Стандартная схема наложения методов в языках CLOS и CLIPS ([Keene,1989])
    Стандартная схема наложения методов в языках CLOS и CLIPS ([Keene,1989]) Кроме того, в CLOS существуют и так называемые мультиметоды, которые позволяют настраивать поведение в зависимости от класс...
    7.3. Как сделать людей вежливыми
    7.3. Как сделать людей вежливыми Положим, что используются те же обработчики сообщений для классов guaker и republican, что и в предыдущем примере. Можно, определив специальный заключительный мето...








Начало