Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2021-01-31 | 62 |
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
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!