Ключевые концепции
Ключевые концепции
[x]. Существует три основных режима создания объектов: статический, основанный на стеке, динамический. Последний характерен для ОО-языков, но встречается везде, например, в Lisp, Pascal (указатели и new), C (malloc), Ada (типы доступа).
[x]. В программах, создающих много объектов, объекты могут становиться недостижимыми. Их память теряется, приводя, в худших случаях, к сбою из-за нехватки памяти, при том что часть памяти остается неиспользованной.
[x]. Эту проблему можно игнорировать в тех случаях, когда программа почти не создает недостижимых объектов или создает всего лишь несколько объектов, общий размер которых сравним с доступной памятью.
[x]. Во всех других случаях (динамические структуры данных, ограниченные ресурсы памяти) любое решение проблемы включает два компонента: обнаружение мертвых объектов и восстановление занятой ими памяти.
[x]. Каждая из задач может быть решена на одном из трех уровней: реализации языка, разработки компонентов, приложения.
[x]. Вменять в обязанность приложения обнаружение мертвых объектов и восстановление памяти - опасно и обременительно. Эта проблема должна решаться на уровне языка.
[x]. В некоторых специальных случаях можно управлять памятью на уровне компонентов. Обнаружение выполняется компонентами, восстановление памяти - компонентами, либо средствами, реализованными на уровне языка.
[x]. Подсчет ссылок не работает для циклических структур.
[x]. Общеприменимой техникой решения проблемы является сборка мусора. Ее накладные издержки приемлемо малы в нормальных ситуациях и, благодаря алгоритмам, работающим в стартстопном режиме, невидимы в нормальных интерактивных приложениях.
[x]. Сборка мусора поколений увеличивает эффективность алгоритма, используя тот факт, что недостижимыми становятся, в первую очередь, новые объекты.
[x]. Хороший механизм управления памятью должен возвращать неиспользуемую память не только текущему приложению, но и операционной системе.
[x]. Описанная схема реальной системы управления памятью предлагает комбинацию алгоритмов и способов, позволяющих разработчикам приложений производить настройку механизмов системы, в том числе позволяя включать и отключать сборку мусора в критических разделах приложения.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Ключевые концепции
Ключевые концепции [x]. Целью программной инженерии является нахождение путей построения ПО высокого качества. [x]. Качество ПО лучше всего видится как компромисс между целым рядом различных целей, а не как единый фактор. [x]. Внешние факторы, понятные пользователям и
Ключевые концепции
Ключевые концепции [x]. Выбор надлежащей структуры модуля является ключом к достижению целей его возможного повторного использования и расширяемости. [x]. Модули служат как для декомпозиции программного обеспечения (проектирование сверху вниз), так и для его композиции
Ключевые концепции
Ключевые концепции [x]. Для разработки ПО характерна повторяющаяся деятельность, включающая частое использование общих образцов (common patterns). Но имеются существенные вариации того, как используются и комбинируются эти образцы, так примитивные попытки работать с
Ключевые концепции
Ключевые концепции [x]. Вычисление включает три вида ингредиентов: процессоры (или потоки управления), действия (или функции) и данные (или объекты). [x]. Архитектуру системы можно получить исходя из функций или из типов объектов. [x]. Описание, основанное на типах объектов, с
Ключевые концепции
Ключевые концепции [x]. Теория абстрактных типов данных (АТД) примиряет необходимость в точности и полноте спецификаций с желанием избежать лишних деталей в спецификации.[x]. Спецификация абстрактного типа данных является формальным математическим описанием, а не текстом
Ключевые концепции
Ключевые концепции [x]. ОО-вычисления характеризуются высоко динамичной структурой времени выполнения, в которой объекты создаются только по запросу.[x]. Некоторые объекты, используемые ПО, являются моделями внешних объектов (обычно косвенными). Другие объекты служат
Ключевые концепции
Ключевые концепции [x]. Существует три основных режима создания объектов: статический, основанный на стеке, динамический. Последний характерен для ОО-языков, но встречается везде, например, в Lisp, Pascal (указатели и new), C (malloc), Ada (типы доступа).[x]. В программах, создающих много
Ключевые концепции
Ключевые концепции [x]. Классы могут иметь формальные родовые параметры, представляющие типы.[x]. Родовые классы служат для описания общих контейнерных структур данных, реализуемых одинаково, независимо от элементов, которые они содержат.[x]. Универсализация требуется
Ключевые концепции
Ключевые концепции [x]. Утверждения - это булевы выражения, задающие семантические свойства класса и вводящие аксиомы и предусловия соответствующего абстрактного типа данных.[x]. Утверждения используются в предусловиях (требования, при выполнении которых программы
Ключевые концепции
Ключевые концепции [x]. Обработка исключений - это механизм, позволяющий справиться с неожиданными условиями, возникшими в период выполнения.[x]. Отказ - это невозможность во время выполнения программы выполнить свой контракт.[x]. Программа получает исключение в результате:
Ключевые концепции
Ключевые концепции [x]. Внешние программы доступны через хорошо определенный интерфейс.[x]. Объектная технология может служить в качестве механизма упаковки наследуемого ПО.[x]. Подпрограммы не могут модифицировать свои аргументы, хотя они могут изменять объекты,
Ключевые концепции
Ключевые концепции [x]. С помощью наследования можно определять новые классы как расширение, специализацию и комбинацию ранее определенных классов.[x]. Класс, наследующий другому классу, называется его наследником, а исходный класс - его родителем. Распространенные на
Ключевые концепции
Ключевые концепции [x]. Подход к конструированию ПО, подобный конструированию из кубиков, требует возможности объединения нескольких абстракций в одну. Это достигается благодаря множественному наследованию.[x]. В самых простых и наиболее общих случаях множественного
Ключевые концепции
Ключевые концепции [x]. К инварианту класса автоматически добавляются инварианты его родителей.[x]. В подходе Проектирования по Контракту наследование, переопределение и динамическое связывание приводят к идее субподрядов.[x]. Повторное объявление подпрограммы
Ключевые концепции
Ключевые концепции [x]. Статическая типизация - залог надежности, читабельности и эффективности.[x]. Чтобы быть реалистичной, статической типизации требуется совместное применение механизмов: утверждений, множественного наследования, попытки присваивания, ограниченной и
Ключевые концепции
Ключевые концепции [x]. При любом подходе к конструированию ПО возникает проблема работы с глобальными объектами, совместно используемыми компонентами разных модулей, и инициализируемыми в период выполнения, когда какой-либо из компонентов первым к ним обратился.[x].