Cтраница 4
Многие полагают, что для создания систем баз данных на ПЭВМ вообще не требуется специальных знаний или программистских усилий из-за богатства имеющихся здесь инструментальных средств и что в худшем случае с этой задачей может справляться каждый, кто обладает навыками традиционного программирования. [46]
Для представления сред типа 3 в последнее время используются гибридные ИС, в которых возможности объектно-ориентированного программирования объединяются с общими правилами. Тенденция объединить правила и объекты ( фреймы) существовала в традиционных ИС с 1985 г. ( например, OPS 5, Personal Consultant Plus, Nexpert Object), однако в этих ИС ( по сравнению с современными ИС для областей типа 3) либо реализовано ограниченное сопоставление ( например, отсутствует возможность сопоставления в правилах, которые объединяют несколько объектов), либо реализовано ограниченное объектно-ориентированное окружение ( отсутствуют классы методов и ( или) посылка сообщений), либо они реализованы на диалектах языка Лисп, а не на языках традиционного программирования. [47]
В основе объектно-ориентированного подхода лежит наблюдение, что программа представляет собой описание действий, выполняемых над различными объектами. Это могут быть, например, записи в базах данных или совокупности числовых значений. В традиционном программировании ( традиционным мы условно называем программирование на императивных языках) изменение данных или методов их обработки часто приводит к необходимости значительного изменения программы, а это увеличивает вероятность ошибок. Как следствие, возрастает время, необходимое для отладки программы. Использование ООП позволяет выйти из такой ситуации с минимальными потерями, сводя необходимую модификацию программы к ее расширению и дополнению. ООП не является панацеей от всех бед, но его ценность как технологии программирования несомненна. Изучение методов объектно-ориентированного профаммирования - непростая задача, однако применение ООП упрощает разработку и отладку сложных профамм. [48]
Инкапсуляция основана на идее о том, что объект должен скрывать в себе детали, несущественные для его использования. В традиционном программировании вынужденное использование глобальных переменных делает доступными все данные, связанные с этими переменными. В результате, процедура может ошибочно обратиться к такой переменной, которая связана с данными, не предназначенными для обработки в этой процедуре. Жесткое связывание данных и процедур их обработки в одном объекте позволяет избежать неприятностей такого рода. Инкапсуляция позволяет сгруппировать необходимые операции вокруг определенного типа данных. Таким образом, область действия этих операций ограничивается типом данных, размещенных в классе, что позволяет избежать ошибок неправильного обращения к процедурам обработки. [49]
В традиционном программировании команды устанавливаются в жесткой фиксированной последовательности. По умолчанию, после выполнения i - й команды выполняется ( 1 1) - я команда, если i-я команда не является командой ветвления. Все места ветвления в традиционном программировании указываются явно. Подобный способ программирования удобен в тех случаях, когда последовательность обработки мало зависит от обрабатываемых данных, т.е. тогда, когда ветвление является исключением, а не нормой. [50]