Cтраница 2
Значительные различия имеются также и во внутренних механизмах машинных языков, используемых для решения указанных выше проблем. В процедурном программировании акцент делается на применении оператора присваивания ( - или: -) для перемещения данных в / из фиксированных, предопределенных, поименованных мест их нахождения в памяти. Эти поименованные места являются переменными программы. [17]
При процедурном программировании контрольный метод сравнивает данные и вызывает функцию. При объектно-ориентированном программ ирайгй нии каждый отдельный объект служит для выполнения ограниченного набора четко определенных задач. Так, связанный список отвечает за поддержание головного узла: Головной узел немедленно передает данные по адресу своего указателя, не анализируя ни передаваемые данные, ни адресуемый объект. [18]
Во второй части книги наряду с функциональным программированием изложены основные методы, применяемые в решении задач искусственного интел - - лекта. Среди них операторное и процедурное программирование, программирование, управляемое данными, сопоставление с образцом, ситуационное и продукционное программирование, а также объектно-ориентированное и логическое программирование. Текст дополнен примерами практического программирования. [19]
ИС, как правило, - оболочка ( среда) со следующими особенностями: сущности представляются в виде объектов, БЗ структурирована, ориентация на статические задачи анализа и синтеза. Используется программирование, ориентированное на правила, объектно-ориентированное и процедурное программирование. Правила конкретные и общие, т.е. используется операция сопоставления. Процесс получения решения включает: генерацию сети вывода и поиска или выработку предположений, генерацию сети вывода и поиска. [20]
Создание реальных интеллектуальных программ, а такие программы сегодня уже широко распространены, столкнулось с рядом непреодолимых трудностей теоретического характера. Интеллектуальную программу невозможно создать, пользуясь только теорией процедурного программирования и баз данных. [21]
Универсальность функционирования характеризует механизмы ( парадигмы), определяющие, как в ИС задается поведение ( функционирование) системы, и принимает следующие значения: единый механизм функционирования - ИС использует один механизм функционирования; интегральное функционирование - ИС допускает интегральное использование нескольких механизмов функционирования; универсальное функционирование - ИС допускает интегральное использование всех основных механизмов. К основным механизмам ( парадигмам программирования) относятся: процедурное программирование; обратное программирование; программирование, ориентированное на данные; программирование, ориентированное на правила. В связи с тем, что парадигмы программирования мало известны, поясним их. [22]
ИС, как правило, - оболочка ( среда) со следующими особенностями: сущности представляются классами объектов и их экземплярами, БЗ структурирована, решаются динамические задачи анализа и синтеза. Используется программирование, ориентированное на правила, объектно-ориентированное программирование и процедурное программирование. Правила конкретные и общие. Процесс получения решения состоит из генерации сети вывода и поиска. Используется поиск в глубину и ширину. [23]
Книга разделена на несколько крупных частей. Первая часть - главы с 1 по 5, представляет собой детальное изложение процедурного программирования на C, включая типы данных, ввод-вывод, управляющие структуры, функции, массивы, указатели и строки. [24]
Однако логическое программированиес использованием лишь хорновских предложений было бы слишком узконаправленным. Поэтому, кроме этого, используются и другие методы программирования, например управляющие структуры процедурного программирования. Некоторые задачи по своему характеру процедурные, и программировать их чисто декларативными средствами непрактично. Нужны и более развитые типы данных, такие как массивы, структуры и объекты. Пролог и логическое программирование непрерывно расширяются, охватывая все новые методы программирования и формы изображения именно в направлении процедурного и объектно-ориентированного программирования, а также в направлении параллельных вычислений. [25]
Однако на современном уровне требования к программным продуктам объектно-ориентированные анализ, проектирование и программирование обеспечивают программистов средствами, которые не могло предоставить процедурное программирование. [26]
Построение устройств и систем автоматики на основе программно-управляемых компонентов ( МП и микро - ЭВМ) предопределяет не только применение принципиально новых структурных решений и новой организации процессов управления объектами, при которых в полной мере используются функционально-логические возможности МП, но и в значительной степени изменяет характер труда разработчика. Средства и методы проектирования устройств и систем автоматики на основе МП и микро - ЭВМ перемещают основной объем и содержание проектных работ из области схемотехнического проектирования в область процедурного программирования. [27]
Подобные свойства можно было бы перечислять очень долго. С формальной точки зрения это может быть и верно ( и даже определенно верно, и мы еще воспользуемся тем, что нажатие клавиш - это своеобразный язык программирования), но с точки зрения психологии пользовательского восприятия ( а именно эта точка зрения наиболее важна) нажатие на эти клавиши воспринимается вовсе не как командный язык или тем более процедурное программирование, а как непосредственное прикосновение к тексту, и это впечатление постоянно поддерживается непосредственной и немедленной видимостью изменений в тексте. [28]
Объектно-ориентированное программирование рассматривает интегрированные данные и функции как самостоятельные единицы, содержащие в себе и данные, и методы манипулирования ими. При процедурном программировании внимание сконцентрировано на функциях и их работе с данными. [29]
Интересно отметить, что элементы-функции printMilitary и printStan - dard не принимают параметров. Это происходит потому, что элементы-функции косвенным образом знают, что они должны выводить элементы данных того конкретного объекта Time, для которого они были вызваны. Это делает вызовы элементов-функций более краткими в сравнении с традиционными вызовами в процедурном программировании. [30]