Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Топ:
Оснащения врачебно-сестринской бригады.
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Интересное:
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Дисциплины:
2021-01-31 | 60 |
5.00
из
|
Заказать работу |
|
|
При переходе к практическому программированию обычно возникают проблемы, связанные с изменением отношения к постановке задачи и оценке методов ее решения в процессе подготовки, отладки и эксплуатации про- граммы, особенно в длительных проектах.
Прежде всего, необходимость в целостном решении полной задачи
|
Решение таких проблем требует углубленного анализа структур данных и логики вычислений, обоснованного выбора методов обработки данных и декомпозиции программы на удобно комплексируемые фрагменты. Объ- ектно-ориентированное программирование (ООП) в настоящее время – са- мый популярный подход к решению этих проблем для широкого класса за- дач, не требующих предельно жестких эксплуатационных характеристик.
|
|
Связь методов с классами объектов позволяет вводить одноименные ме- тоды над разными классами объектов (полиморфизм), что упрощает логику управления: на уровне текста программы можно не распознавать принадлеж- ность классу – это сделает система программирования. Именно так обычно реализовано сложение и другие операции, одинаково изображаемые для чи- сел, строк, векторов, множеств и т. п. Основной принцип – выбор метода в зависимости от типа данных.
|
Общее представление
ООП объединяет в рамках единой методики организации программ клас- сификацию на базе таких понятий как класс объектов, структура данных и тип значений. Тип значений обычно отражает спектр основных низкоуровне- вых реализационных средств, учет которых обеспечивает эффективность кода программы, получаемого при компиляции. Структура данных обеспечи- вает конструктивность построений, гарантирует ясный доступ к частям, из которых выстроено данное любой сложности. Класс объектов характеризу- ется понятным контекстом, в котором предполагается их корректная обра- ботка. Обычно контекст содержит определения структуры объектов и их свойства.
|
|
При анализе задач, решаемых в терминах объектов, некоторая деятель- ность описывается так, что постепенно продумывается все, что можно делать с объектом данного класса. Потом в программе достаточно лишь упоминать
|
Исходная гипотеза при программировании работы с объектами: объект не изменен, если на него не было воздействий из программы.
Однако реальность зачастую требует понимания и учета более сложных обстоятельств, что может существенно продлить время жизни программы или ее компонентов. В таком случае удобно предоставлять объектам боль- шую свободу, сближающую их с понятием субъекта, описание которого со- держит все, что он может делать. Программа может давать ему команды-со- общения и получать ответы-результаты.
|
Фактически субъектом является суперкласс, объединяющий классы объ- ектов, обрабатываемые одноименными методами, т. е. функциями одного се- мейства. Так, при организации сложения можно считать, что существует су- перкласс «слагаемые», которое умеют складываться с другими слагаемыми. При этом они используют семейство функций – методов, реализующих сло- жение. В зависимости от полноты семейства результат может быть получен или не получен. Семейство легко пополняется добавлением одноименных функций с новыми комбинациями типов параметров.
Дальнейшее развитие подходов к декомпозиции программ связано с вы- делением отдельных аспектов и шагов при решении сложных задач. Понятие аспекта связано с различием точек зрения, позволяющим описывать решение всей задачи, но отражать в описании только видимые детали. По мере изме- нения точек зрения могут проступать новые детали до тех пор, пока дальней- шая детализация не утрачивает смысл, т. е. улучшение трудно заметить или цена его слишком высока. Так, представление символьной информации в Lisp-е выделено в отдельный аспект, независимый от распределения па- мяти, вычисление значений четко отделено от компиляции программ, поня- тие связывания имен с их определениями и свойствами не зависит от выбора механизмов реализации контекстов исполнения конструкций программы.
|
|
|
«отдельная работа программируется отдельно, а выполняется взаимосвязано с другими работами», что требует совмещения декомпозиции программ с ме- тодами сборки – комплексации или интеграции программ из компонентов. Рассматривая комплексацию как еще одну «отдельную» работу, описывае- мую, например, в терминах управления процессами, можно констатировать, что эта работа больше определяет требования к уровню квалификации про- граммиста, чем объем программирования. При достаточно объективной ти- пизации данных и процессов, возникающих при декомпозиции и сборке про- грамм определенного класса, строят библиотеки типовых компонентов и раз- рабатывают компонентные технологии разработки программных продуктов – Corba, COM/DCOM, UML и т. п. Одна из проблем применения таких компонентов – их обширность.
|
Механизмы ООП обеспечивают наследование свойств по иерархии клас- сов объектов и так называемый «дружественный» доступ к произвольным классам. Расширение программ при объектно-ориентированном подходе к программированию выглядит как простое дописывание новых определе- ний. Библиотеки типов данных и методов их обработки легко вписываются в более общие системы. Спецификация интерфейсов в принципе может быть сопровождена верификацией реализации компонент. Возможна факториза- ция программ на компоненты и рефакторинг программных компонент в стиле экстремального программирования.
ООП структурирует множество частных методов, используемых в про- грамме, в соответствии с иерархией классов объектов, обрабатываемых
|
|
Абстрактная машина
АС включает в себя аналоги ИП, ФП и ЛП с добавлением выбора метода в зависимости от класса объектов и разметки прав доступа.
АМ для языков ООП можно базировать на АМ для процедурно-импера- тивных языков стандартного прикладного программирования, по структуре она похожа на объединение машин для ФП и ИП:
AMO = < RO, SCO>, где SCO= <S, E, C, D, M>, где
AMO – абстрактная машина для ООП; RO – система команд для ООП;
S – стек операндов и результатов вычислений;
E – значения локальных переменных при вызовах функций; C – текущий стек программы;
D – дамп, обеспечивающий восстановление контекста программы при вы- ходе из метода;
M – общая память, хранящая константы, методы и объекты с их сигнату- рами.
Обозначения:
<[cm], ts> – код метода, таблица символов
|
v – символьные переменные, сигнатура возврата.
Представление класса содержит сведения о числе констант и информа- цию о них, флаги доступа к полям объектов класса, ссылки на объект и су- перкласс, число полей и информацию о них, число методов и информацию о них.
Сигнатура представляется кодом характеристики полей объекта или па- раметров метода.
Значения реализованы как структура данных с тегами, задающими тип элемента данных.
Классы, поля и методы не являются значениями.
Ниже представлено дополнение абстрактной машины ИП для ООП.
Таблица 34
|
Команда | Пояснение |
NOP | Ничего не делает |
RETURN | Возврат из функции |
PUT | Установка поля в объекте |
GET | Доступ к полю в объекте |
INVOKE | Вызов метода |
CHECK | Проверка соответствия типа объекта |
Формат команд АМ имеет вид:
s e c d m→ s' e' c' d' m' – переход от старого состояния к новому.
Таблица 35
|
|
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!