Раздел 7 Объектно-ориентированное программирование

Физика
Лабораторные работы
Курс электрических цепей
Полупроводниковая электроника
Курс лекций и задач
Потенциал электpостатического поля
Пpимеpы использования теоpемы Гаусса
Закон Ома
Закон Ампеpа
Феppомагнетизм
Электротехника и электроника
Резонанс напряжений
Методы расчета сложных цепей
Трехфазные цепи
Цепи со взаимной индуктивностью
Несинусоидальные токи
Математика
Вычислительная математика
Векторная алгебра
Графика
Начертательная геометрия
Сборочные чертежи
Инженерная графика
Построение лекальных кривых
Геометрические построения
Позиционные задачи
Информатика
Электронная коммутация
Модернизация компьютера
Архитектура компьютера
Маршрутизация
Экспертные системы
Компьютерная безопасность
Требования к защите компьютерной информации
Проектирование системы защиты
Авторизация
Категорирование прав доступа
Диспетчер доступа
Антивирусная защита
Атомная энергетика
Атомные батареи
Физика атомного реактора
Атомные электростанции
Испытания атомного оружия
Воспоминания участников
атомного проекта

За последние 20 лет было разработано довольно много языков для представления знаний, причем большинство из них можно отнести к классу объектно-ориентированных. Как и в случае с использованием концепции фреймов, основная идея состоит в том, чтобы заключить данные и связанные с ними процедуры в некие структуры, объединенные механизмом наследования.

  • Язык KRL В качестве "строительных блоков" системы использованы так называемые "концептуальные объекты", которые были сходны с фреймами, предложенными Минским, в том, что представляют прототипы и связанные с ними свойства.
  • Объектно-ориентированный стиль программирования идеально подходит для решения проблем, требующих детального представления объектов реального мира и динамических отношений между ними. Классическим примером применения данного подхода являются задачи моделирования
  • В результате основной упор переносится с разработки общей управляющей структуры программы, которая ответственна за порядок обращения к функциям, на конструирование самих объектов, выяснение их ролей и создание протоколов взаимодействия объектов.
  • С этой проблемой впервые столкнулись при разработке объектно-ориентированного языка FLAVORS, который поддерживает множественное наследование и наложение методов
  • В более поздних реализациях SmallTalk метакласс формировался автоматически всякий раз, когда создавался новый класс, и этот класс становился экземпляром класса Metaclass.
  • Появление языка Common LISP было связано с попыткой стандартизировать многочисленные диалекты LISP и создать устраивающую большинство пользователей версию этого языка.
  • Если планируется создавать экземпляры любого класса, производного от USER, то этот класс нужно объявлять с квалификатором concrete, как это и сделано при объявлении класса republican-quaker.
  • Как и в языке FLAVORS, before-методы (предварительные методы) используются для подготовки данных для тех вычислений, которые должны быть выполнены primary-методом (основным методом), а after-методы (заключительные-методы) используются для выполнения заключительных операций.
  • build-in-class. Это метакласс тех классов объектов, которые реализованы необычным способом. Например, некоторые из таких классов могут соответствовать типам данных Common LISP. Большинство системных классов имеет именно этот метакласс.
  • В языке C++ множественное наследование трактуется совсем не так, как мы это делали в предшествующих разделах настоящей главы, а потому этот вопрос заслуживает подробного обсуждения.
  • Философия и технология объектно-ориентированного программирования могут весьма пригодиться проектировщику экспертных систем.
  • В чем состоит отличие между конкретными и абстрактными классами?

    2. В чем состоит отличие между конкретными и абстрактными классами?

    3. Почему при множественном наследовании иерархическая структура превращается в гетерархическую?

    4. В чем состоит проблема наложения методов при множественном наследовании?

    5. Что такое метакласс и в чем польза применения такой конструкции?

    6. Что понимается под термином "список предшествования классов"? 7. Рассмотрите схему отношений между классами на рис. 7.9.

    Используя конструкцию def class языка CLIPS, опишите эту структуру классов таким образом, чтобы соблюдался следующий порядок наследования в классах, имеющих несколько суперклассов:

    wkg-man: (man worker) father: (parent man)

    wkg-woman: (worker woman) mother: (parent woman)

    wkg-father: (wkg-man father)

    wkg-raother: (mother wrk-woman)

    Начните с класса person:

    (defclass person (is-a USER) (role concrete))

    Какой вид будет иметь список предшествования классов wkg-father и wkg-mother?

  • Примеры решения типовых задач математика, физика, электротехника