1. Информационные системы. Понятия информации, системы, автоматизированной информационной системы



страница6/18
Дата23.12.2012
Размер1.84 Mb.
ТипДокументы
1   2   3   4   5   6   7   8   9   ...   18

6.2.Основные особенности методологии императивного программирования.

Данный подход к разработке программ характеризуется принципом последовательного изменения состояния вычислительной системы пошаговым образом для решения поставленной задачи. При этом управление изменениями полностью определяется в ходе разработки программ и может быть полностью проконтролировано. В основе методологии лежат методы изменения состояний и управления потоком исполнения. Метод изменения состояний заключается в последовательном изменении состояний вы09числительной системы. Он поддерживается концепцией алгоритма. Метод управления потоком исполнения заключается в пошаговом контроле управления вычислениями. Он поддерживается концепцией потока исполнения.

Императивное программирование основано на описании процесса последовательного изменения состояний вычислительной системы. Обычно под ней понимается компьютер. В этом случае его состояние включает в себя содержание всех ячеек памяти, а также состояние процессора и всех сопряженных устройств. Соответствующая используемая структура данных — это последовательность ячеек памяти в виде пар адрес–значение с линейно упорядоченными адресами. Императивное программирование наиболее пригодно для решения задач, для которых можно достаточно четко определить последовательность операций для получения требуемых результатов. Данная методология хорошо сочетается с архитектурой большинства современных компьютеров, что позволяет получать эффективный исполняемый код. Вместе с тем, рост сложности решаемых задач приводит к снижению, подчас значительному, эффективности разработки программ с помощью методологии императивного программирования.

Языки, поддерживающие вычислительную модель императивного программирования, предоставляют компактные средства для описания функций переходов между состояниями вычислительной системы. Императивные языки программирования обеспечивают средства разработки программ, манипулирующих обрабатываемыми данными в пошаговом режиме. К числу языков императивного программирования относятся, в частности, языки Fortran, C, Pascal, Basic, Ada. Основным элементом программы является оператор, который может быть простым (атомарным) или структурным. Простой оператор представляет собой целостное образование, никакая часть которого не является самостоятельным оператором. Выполнение такого оператора приводит к соответствующему единичному изменению состояния вычислительной системы. Структурный оператор объединяет в своем составе ряд других операторов в новый, более крупный оператор. Порядок исполнения «дочерних» операторов определяется объемлющим их структурным оператором. К числу структурных принадлежат, в частности, составной оператор, операторы выбора, цикла. Структурирование программы может быть выполнено посредством разделения её на подпрограммы: процедуры и функции.
Подпрограммы могут иметь параметры и задавать локальные, используемые только внутри них определения, например, константы, переменные, типы, подпрограммы. Кроме того, подпрограммы могут вызывать себя рекурсивно. Функции, в отличие от процедур, всегда возвращают некоторые значения как результат их работы, что позволяет использовать их при вычислении выражений.

6.3.Основные особенности методологии объектно-ориентированного программирования.

Данная методология основа на использовании объектной декомпозиции, позволяющей представить разрабатываемую программу в виде совокупности объектов, в процессе взаимодействия которых посредством передачи определенных сообщений между объектами реализуется набор функций, обеспечивающих решение соответствующей задачи. При разработке программ в соответствии с объектно-ориентированным подходом применяются методы объектно-ориентированной декомпозиции, абстрактных типов данных и пересылки сообщений. Метод объектно-ориентированной декомпозиции заключается в выделении из предметной области объектов и отношений между ними в соответствии со спецификой решаемой задачи и целями разработки. Он основан на понятиях инкапсуляции, наследования и полиморфизма. Инкапсуляция представляет собой сокрытие внутренней структуры объекта и формирование «внешнего» интерфейса (набора операций) для взаимодействия с ним. Реализация инкапсуляции обеспечивается использованием метода абстрактных типов данных. Метод поддерживается концепцией абстрагирования. Наследование заключается в возможности построения иерархии объектов, младшие элементы которой наследуют структуру старших, при необходимости уточняя и дополняя её. Полиморфизм позволяет задать одно имя для операции, присущей сразу нескольким объектам иерархии, но реализуемой по-разному в зависимости от особенностей конкретного объекта. Метод пересылки сообщений, основанный на концепции сообщения, обеспечивает возможность описания процесса функционирования разрабатываемой программы в терминах обмена сообщениями между выделенными объектами.

Основной операцией, обеспечивающей изменение состояния вычислительной системы и решение требуемой задачи, является посылка сообщения объекту, реализующему необходимые действия. Сообщение описывает операцию, которую допустимо выполнить над объектом. Оно может иметь параметры, являющиеся в свою очередь объектами, характеризующие особенности операции. Структура объекта включает в себя набор полей и методов. Поля предназначены для хранения персональных для каждого объекта данных и могут содержать ссылки на другие объекты. Методы обеспечивают обработку сообщений, адресуемых объекту, и реализуют функции, поддерживаемые объектом. Абстрактное описание структуры объекта называется классом. Сам объект, задающий конкретное содержание этой структуры, называется экземпляром класса. Набор классов, представляющих поля и методы используемых объектов, а также способы их взаимодействия, определяет структуру программы. Методология объектно-ориентированного программирования наиболее пригодна для задач, в которых процесс решения можно описать посредством отношений между выделенным набором объектов функционирования.

Среди языков, предоставляющих средства для объектно-ориентированного программирования, можно выделить 3 группы. «Чистые» объектно-ориентированные языки изначально разрабатывались таким образом, чтобы обеспечить инструментарий для поддержки объектно-ориентированной методологии. Обычно они содержат небольшую языковую часть и существенную библиотеку классов поддержки, включающую средства для разработки программ различного назначения. К числу таких языков относятся Simula, Smalltalk, Self. «Гибридные» языки представляют собой развитие императивных языков, в которые добавлены средства поддержки объектно-ориентированного программирования. Примером таких языков служат Object Pascal и C++. «Адаптированные» языки можно рассматривать как развитие «гибридных» языков, из которых исключены средства, ненужные для объектно-ориентированного программирования. К таким языкам принадлежат Java и C#.

6.4.Основные особенности методологии функционального программирования.

Данная методология описывает подход к разработке программ, в которых выполняемые для решения задачи действия реализуются посредством вызовов функций, структурирование осуществляется за счет введения имен для функций и определения соответствующих им выражений, задающих способ вычисления значений функций, а для композиции действий используется оператор суперпозиции (подстановки) функций. Подход поддерживается методами аппликативности, рекурсивного поведения и настраиваемости. Метод аппликативности заключается в том, что программа строится как выражение, составленное из применения функций к аргументам. Программа состоит из совокупности определений функций, представляющих собой вызовы других функций, и предложений, управляющих последовательностью вызовов. Метод поддерживается концепцией функции. Метод рекурсивного поведения обеспечивает возможность реализации самоповторяющегося поведения через операции, которые инициируют «возвращение» к самим себе. Метод связан с понятием рекурсии. Метод настраиваемости заключается в том, что программные объекты могут порождаться по образцу, как значения соответствующих выражений. Это позволяет описывать функции посредством индуктивных определений. Таким образом, программы представляют собой выражения и выполнение программ осуществляется за счет вычисления этих выражений.

Прикладная область функционального программирования связана с теми задачами, решение которых трудно сформулировать в виде последовательности операций, приводящих к получению результата. В эту область попадает большинство задач, связанных с проблематикой искусственного интеллекта

Специфика языков, поддерживающих средства функционального программирования, заключается в ряде следующих особенностей. Функции являются базовыми элементами программы. На них можно ссылаться посредством переменных, их можно включать в используемые в программе структуры данных, передавать в качестве аргументов в другие функции и возвращать как результат вычислений. Функции обмениваются между собой данными непосредственно, без использования промежуточных переменных и присваиваний. Переменные получают своё значение один раз и в дальнейшем его не меняют. Отсутствие присваиваний приводит, в частности, к тому, что циклы в функциональных языках реализуются посредством использования рекурсивных функций. Кроме того, обращение к функции не вызывает иного эффекта, кроме вычисления её результата. Соответственно нет возможных побочных последствий, связанных, например, с изменением значения глобальной переменной, способных привести к тому, что одна и та же функции от одного и того же аргумента вернет разные значения в разные моменты времени. Отсутствие побочных эффектов обеспечивает возможность вычисления независимых друг от друга функций (частей выражений) в произвольном порядке или параллельно, поскольку на конечный результат это не повлияет. Еще одной особенностью многих функциональных языков являются так называемые «ленивые» или отложенные вычисления. Суть их состоит в том, что аргумент функции или часть выражения вычисляется только в том случае, если это необходимо для получения значения функции или выражения. Функциональные языки позволяют определять одни функции посредством других. Такие функции называются функционалами или функциями высших порядков. Их результат зависит от того, какие функции переданы в качестве аргументов. Эти особенности позволяют в том числе достичь высокой степени модульности программ, предоставляя возможность коллективной разработки и повторного использования кода. К языкам, обеспечивающим средства функционального программирования, относятся, в частности, Lisp, Scheme, ML, Haskell, Caml.

6.5.Основные особенности методологии логического программирования.

В соответствии с этим подходом программа представляет собой описание проблемы в терминах фактов и логических формул, решение которой выполняется системой с помощью аппарата логических выводов. Вывод производится автоматически на основании заданных утверждений в соответствии с используемым формальным аппаратом. В основе методологии лежат метод единообразного применения механизма логического доказательства ко всей программе и метод унификации, определяющий процедуру сопоставления с образцом для формирования и декомпозиции структур данных. Математической основой логического программирования является аппарат математической логики, в частности логики первого порядка. В соответствии с этим, для выражения действий в программах применяется математическое понятие отношения или предиката.

Логическая процедура соответствует математическому понятию отношения. Поскольку при определении отношения не указывается какие элементы являются исходными, а какие производными (результатами), то это позволяет формировать запросы, в которых одни и те же аргументы играют разные роли, в одних случаях являясь исходными данными, а в других — величинами, подлежащими нахождению. Кроме того, логическая процедура может возвращать любое количество ответов на запрос: от нуля (нет ответов) до бесконечности. Эти особенности позволяют с успехом использовать логические программы для таких задач, как работа с базами данных, синтаксический анализ и разбор текстов, решение различных комбинаторных проблем.

Большинство из существующих языков логического программирования представляют собой разновидность языка Prolog. Программа на языке Prolog состоит из совокупности предложений, описывающих свойства объектов предметной области и отношения между ними. Свойства и отношения называются предикатами. Основным синтаксическим элементом программы является терм. Терм — это константа, переменная или составленное из других термов выражение. Константы делятся на числа и атомы, представляющие собой набор символов. Они используются для именования конкретных объектов предметной области и отношений между ними. Составной (или функциональный) терм — это структура вида атом([терм1, …, термn]). Атом перед скобками называется функтором, а термы в скобках — аргументами или компонентами. Каждый предикат определяется последовательностью предложений, которую называют процедурой. Предложение может принадлежать к одному из двух типов: фактам или правилам. Факты определяют аксиомы, то есть предложения, которые всегда истинны. Правила задают логические связи между предикатами в форме «если–то». В общем случае структура предложения имеет следующий вид:

терм0[:– терм1, …, термn].

где терм0 — заключение, называемое также заголовком правила, а терм1, …, термn — посылки, составляющие тело правила и определяющие условия, при которых заключение истинно. Все термы в предложении рассматриваются как утверждения, истинность которых либо задана, либо требуется доказать. Факты состоят только из заключения и считаются верными при любых условиях. Правила включают одну или несколько посылок и интерпретируются следующим образом: если верны все посылки, то верно и заключение. Для доказательства утверждений в языке Prolog используются методы унификации и резолюций. Унификация — это сопоставление двух произвольных термов, содержащих переменные, с целью определения того, можно ли присвоить этим переменным такие значения, чтобы получилось два одинаковых терма. Метод резолюций состоит в последовательном доказательстве посылок, входящих в правило, для доказательства его заключения.

6.6.Основные особенности методологии программирования в ограничениях.

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

Описание задачи в программе состоит из конечного набора переменных V = {v[1], …, v[n]}, соответствующих им конечных (перечислимых) множеств значений D = {D[1], …, D[n]} и совокупности ограничений C = {c[1], …, c[m]}. Ограничения представлены в форме утверждений, в которых в качестве параметров входят некоторые переменные из заданного набора V. Каждое ограничение может иметь вид, в частности, уравнения, неравенства или логического выражения. Решением задачи является набор значений A = {a[1], …, a[n]} переменных V из множеств D (a[i]ÎD[i]), удовлетворяющий всем заданным ограничениям C. Соответственно выполнение программы рассматривается как процесс нахождения значений переменных. При этом порядок удовлетворения отдельных ограничений несущественен. К задачам, которые можно сформулировать в представленной форме, относятся многие задачи исследования операций и искусственного интеллекта. Данный подход применяется в таких областях как анализ и понимание естественного языка, планирование, проектирование, прогнозирование, инженерные и экономические расчеты, компьютерная графика, работа с базами данных.

Программирование в ограничениях тесно связано с логическим программированием. Многие системы программирования в ограничениях представляют собой обычный Prolog-интерпретатор со встроенным механизмом для решения определенного класса задач с ограничениями. К языкам программирования в ограничениях относятся, например, УТОПИСТ, OPS5, OPL, Prolog III.
1   2   3   4   5   6   7   8   9   ...   18

Похожие:

1. Информационные системы. Понятия информации, системы, автоматизированной информационной системы iconРеферат на тему: "логистические информационные системы. Иерархия использования логистической информационной системы. Функции логистической информационной системы. Поток информации в предпринимательстве."
Основные направления информационно-технического обеспечения логистических систем
1. Информационные системы. Понятия информации, системы, автоматизированной информационной системы iconРазработка автоматизированной информационной системы «кафедра» с помощью современных средств web-программирования
Рассматривается разработка автоматизированной информационной системы «Кафедра» и средства ее реализации
1. Информационные системы. Понятия информации, системы, автоматизированной информационной системы iconБазы данных и информационные системы
...
1. Информационные системы. Понятия информации, системы, автоматизированной информационной системы iconЭкзаменационные вопросы по информатике Направление подготовки «Адаптивная физическая культура»
Основные понятия информатики: информационная среда, информационные технологии, информационные системы, базы данных, интеллектуальные...
1. Информационные системы. Понятия информации, системы, автоматизированной информационной системы iconРабочая программа для студентов направления 230400. 62 «Информационные системы и технологии»
...
1. Информационные системы. Понятия информации, системы, автоматизированной информационной системы iconДисциплина «Интеллектуальные информационные системы», пиэ, 4 курс, 1 семестр вопросы на зачет
Понятие интеллектуальной информационной системы (иис), особенности и основные свойства иис
1. Информационные системы. Понятия информации, системы, автоматизированной информационной системы iconИнформационные системы
Информационная система (ИС) – это комплекс, состоящий из информационной базы (хранилища информации) и процедур, позволяющих накапливать,...
1. Информационные системы. Понятия информации, системы, автоматизированной информационной системы iconРазработка автоматизированной системы эксергетического анализа сложных химико-технологических систем
Поэтому необходимость разработки автоматизированной системы расчета и оптимизации эксергетического баланса хтс произвольной структуры...
1. Информационные системы. Понятия информации, системы, автоматизированной информационной системы iconЛекция 1) гис как специализированная информационная система. Структура информационных систем, представление о модели данных. Последовательность действий при создании информационной системы
Модели данных для пространственной информации. Геокодирование, общее понятие. Геокодирование как процесс перевода пространственной...
1. Информационные системы. Понятия информации, системы, автоматизированной информационной системы iconТемы, вопросы для изучения
Понятия: системы; фаза; гомогенные и гетерогенные системы; процессы и их классификация; параметры и функции состояния системы
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org