- •Преимущества
- •Связь: ooa→oop→ood
- •Механизм работы virtual
- •Абстрактный класс
- •Виртуальный деструктор
- •{Основные элементы языка программирования}
- •Основные подходы к семантике:
- •Формальное описание семантики:
- •Среда программирования
- •Объекты данных
- •Атрибуты объекта данных
- •Система типизации данных
- •Реализация типов данных
- •Типизация
- •Система типизации данных
- •Реализация типов данных
- •Связывание переменных
- •Контроль типов
- •Статистический контроль типов
- •Алгоритм статистического контроля типов
- •Динамический контроль типов
- •Параллелизм
- •Полиморфизм
- •Статический полиморфизм
- •Динамический полиморфизм
- •Преобразование типов
- •Связь: ooa→oop→ood
- •Среда программирования
- •Цель технологий параллелизма
- •Схемы параллелизма
- •Проблемы параллельного программирования
- •Показатели эффективности параллельного алгоритма Ускорение
- •Закон Густавсона-Барсиса
- •Масштабируемый алгоритм
- •Схемы параллелизма
- •Подтипы данных
- •Разновидности массивов. Статические
- •Кортежи
- •Разновидности массивов. Статические
- •Динамические
- •Атрибуты объекта данных
- •Операции над целыми числами
- •Вещественные числа
- •Числа с фиксированной точкой
- •Числа с плавающей точкой(float)
- •Ошибки вычислений с вещественными числами
- •Утечки памяти и повисшие указатели
- •Указатели на указатели
- •Типизированные указатели
- •Указатели на функции
- •[Отличия указателей и ссылок]
- •Параметры подпрограмм
- •Преимущества подпрограмм
- •Позиционное сопоставление
- •Сопоставление по имени
- •Методы передачи параметров:
- •Передача параметров по значению
- •Передача параметров по ссылке
- •Передача параметров по значению-результату
- •Параметр по результату
- •Стековые языки
- •Циклы и рекурсия
- •Циклы со счетчиком
- •Операторы циклы без заданного числа повторений (бесконечно)
- •Динамический полиморфизм
- •Родовые (настраиваемые) сегменты и шаблоны
Связь: ooa→oop→ood
• На результатах OOA формируются модели, на которых основывается OOD, OOD в свою очередь создает фундамент для окончательной реализации системы с использованием методологии ООП.
ОО ЯП
•Язык программирования является объектно-ориентированным тогда и только тогда, когда выполняются следующие условия:
1) Поддерживаются объекты, т.е. абстракции данных, имеющие интерфейс в виде именованных операций и собственные данные, с ограничением доступа к ним.
2) Объекты относятся к соответствующим типам (классам).
3) Типы (классы) могут наследовать атрибуты супер типов (суперклассов).
Преимущества объектной модели:
+Позволяет использовать возможности ОО языка программирования.
+Повышает уровень унификации разработки и пригодность для повторного использования программ и проектов.
+Приводит к построению систем на основе стабильных промежуточных описаний, что упрощает процесс внесения изменений.
+Уменьшает риск разработки сложных систем. ОО проектирование – это единственная методология, позволяющая справиться со сложностью, присущей большим системам.
+Ориентирована на человеческое восприятие мира.
Основные принципы ООП:
1. Абстрагирование – это способ выделить набор существенных характеристик объекта, исключая из рассмотрения незначимые, которые позволяют отличить его от всех других видов объектов (определить его концептуальные границы). Соответственно, абстракция – это набор всех таких характеристик. Иными словами абстрагирование – это способ сконцентрироваться на интерфейсе (внешнее поведение объекта), не обращая внимания на реализацию (механизмы достижения желаемого поведения объекта).
2. Инкапсуляция – это свойство системы, позволяющее объединить данные и методы, работающие с ними, в классе и скрыть детали реализации от пользователя.
3. Полиморфизм – это свойство системы использовать объекты с одинаковым интерфейсом без информации о типе и внутренней структуре объекта.
4. Наследование – это свойство системы, позволяющее описать новый класс на основе уже существующего с частично или полностью заимствующейся функциональностью. Класс, от которого производится наследование, называется базовым или родительским. Новый класс – потомком, наследником или производным классом.
5. Модульность – свойство системы, которая была разложена на внутренне связанные, но слабо связанные между собой модули.
6. Типизация – это способ защититься от использования объектов одного класса вместо другого, или по крайней мере управлять таким использованием.
7. Сохраняемость – способность объекта существовать во времени, переживая породивший его процесс, и (или) в пространстве, перемещаясь из своего начального адресного пространства.
8. Параллелизм – свойство, отличающее активные объекты от пассивных.
26. Современные интегрированные среды разработки программ. Основные компоненты среды программирования.
Среда программирования – она же интегрированная среда разработки. Определение – это набор инструментов, используемых для преобразования символов в выполнимые вычисления.
1) Редактор
2) Транслятор – переводит синтаксические конструкции исходного кода, так называемые объектный модуль, которые содержат команды в машинном коде, конкретной вычислительной системы.
3) Библиотека – поддерживает совокупность объектных файлов, называемых библиотеками.
4) Компоновщик (редактор связей) – собирает объектные файлы отдельных компонентов программы и разрешает внешние ссылки от одного компонента к другому, формируя исполняемый файл.
5) Загрузчик – копирует исполняемый файл с диска в память и инициализирует компьютер перед выполнением программы.
6) Отладчик – это инструментальное средство, которая дает возможность программисту управлять ходом выполнения программы на уровне отдельных операторов. Используется для диагностики ошибок. Позволяет выполнять 3 функции:
1) Троссировка
2) Расставлять контрольные точки
3) Проверять/изменять данные в ходе выполнения.
Профилеровщик – измеряет трудоемкость отдельных частей программы.
Средства тестирования – автоматизирует процесс выполнения программы. Создавая и выполняя тесты и анализируя результаты тестирования.
Средства конфигурирования – автоматизирует поддержку версий программного продукта.
Препроцессор – собирает предварительную информацию, необходимую для компоновки программы, а так же осуществляет раскрытие сокращений.
Средства автоматизированной генерации кода и средства визуальной разработки. Позволяет на основе некоторых шаблонов и визуальных инструментов автоматически генерировать исходный код.
