Родовые (настраиваемые) сегменты и шаблоны

• Понятие «родовые настраиваемые сегменты» старо и использовалось Ada.

• Родовые функции в языке С++ называются функциями-шаблонами

• Объявление функции-шаблона имеет следующую общую форму:

Template <Template <параметры шаблона>

• функция-шаблон должна иметь хотя бы один родовой параметр, представляемый в одной из следующих форм:

•class имя_родового_параметра

•typename имя_родового_параметра

Template<typename T>

T max (T a, T b)

{return a>b? A:b;}

66. Шаблоны.

Шаблоны - предназначены для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию).

Шаблоны позволяют создавать параметризованные классы и функции. Параметром может быть любой тип или значение одного из допустимых типов (целое число, enum, указатель на любой объект с глобально доступным именем, ссылка).

Typedef – объявление своего типа

Typedef enum { black =0,green=2..)

Color a,b;

A=black;

B=a+2;//результат =green

Многие языки требуют явной типизации значений типа перечислений при таких операциях.

67. Вариантные записи.

Вариантные и неограниченные записи – одна переменная может иметь значение разных типов.

Вариантные записи - это записи с фиксированными частями. Они имеют во всех ситуациях строго определенную структуру. Соответственно, записи с вариантами в различных ситуациях могут иметь различную структуру.

Понятие записи, также как и понятие массива, является механизмом структурирования данных. Однако, в отличие от массива, запись позволяет сгруппировать в одном объекте набор объектов которые могут принадлежать различным типам. При этом объекты из которых состоит запись часто называют компонентами или полями записи.

Для работы с записями, Ада предлагает средства подобные тем, которые предоставляют другие современные языки программирования, а также дополняет их некоторыми своими особенностями. Также как и для массивов, для записей предусматривается использование агрегатов. Использование дискриминантов позволяет создавать вариантные записи, указывать размер для записи переменного размера и выполнять инициализацию компонентов записи.

68. Средства описания действий над данными. Операторы, выражения, модули, блоки в языках программирования.

<Элементы (операторы)>

•Редактор - инструментальное средство для создания и изменения исходных файлов(текстов), содержащих написанную на ЯП программу.

•Транслятор - переводит синтаксические конструкции исходного кода в т.н. объектный модуль, который содержит команды в машинном коде конкретного вычислительного устройства.

•Библиотекарь - поддерживает совокупность объектных файлов, называемых библиотеками.

•Компоновщик - собирает объектные файлы отдельных компонентов программы и разрешает внешние ссылки от одного компонента к другому, формируя исполняемый файл.

•Загрузчик – копирует исполняемый файл с диска в память и инициализирует компьютер перед выполнением программы.

•Отладчик – Инструментальное средство, которое дает возможность программисту управлять выполнением программы на уровне отдельных операторов. (диагностика ошибок)

◘Используется для диагностики ошибок:

· Трассировка (пошаговое выполнение программы)

· Контрольная точка – ограничение (ставит точки от каких и до каких пределов трассировать)

· Проверка и изменение данных – (Зафиксировали данные в регистре, потом проверяем изменения после использования программы).

· Профилировщик – измеряет трудемкость отдельных частей программы.

· Среда тестирования – автоматизирует процесс тестирования программ, создавая и выполняя тесты и анализируя результаты тестирования.

· Средства конфигурирования – автоматизируют поддержку версий программного продукта.

· Процессор(макропроцессор) – собирает предварительную информацию, необходимую для компоновки программы, осуществляет раскрытие сокращений, называемых макросами.

· Средства автоматизированной генерации кода и средства визуальной разработки – позволяет на основе некоторых шаблонов и визуальных инструментов автоматически генерировать исходный код.

Наши рекомендации