Программирование — страница 55 из 57

Конкретный класс (concrete class). Класс, объекты которого можно создать.

Константа (constant). Значение, которое невозможно изменить (в заданной области видимости).

Конструктор (constructor). Операция, инициализирующая (конструирующая) объект. Обычно конструктор устанавливает инвариант и часто запрашивает ресурсы, необходимые для использования объектов (которые обычно освобождаются деструктором).

Контейнер (container). Объект, содержащий элементы (другие объекты).

Литерал (literal). Обозначение, которое непосредственно задает число, например, литерал 12 задает целое число, равное “двенадцать”.

Массив (array). Однородная последовательность элементов, обычно нумерованная, например [0:max].

Нагромождение возможностей (feature creep). Стремление добавлять избыточные функциональные возможности в программу “на всякий случай”.

Неинициализированный (uninitialized). (Неопределенное) состояние объекта до его инициализации.

Область видимости (scope). Область текста программы (исходного кода), в которой можно ссылаться на имя сущности.

Объект (object). 1) Инициализированная область памяти известного типа, в которой записано какое-то значение данного типа; 2) область памяти.

Объектно-ориентированное программирование (object-oriented programming). Стиль программирования, нацеленный на проектирование и использование классов и иерархий классов.

Объектный код (object code). Результат работы компилятора, представляющий собой входную информацию для редактора связей, который, в свою очередь, создает выполняемый код.

Объектный файл (object file). Файл, содержащий объектный код.

Объявление (declaration). Спецификация имени с типом.

Округление (rounding). Преобразование значения в ближайшее менее точное значение по математическим правилам.

Операция (operation). Нечто, выполняющее какое-то действие, например функция или оператор.

Определение (definition). Объявление сущности, содержащее всю необходимую информацию для его использования в программе. Упрощенное определение: объявление, выделяющее память.

Отладка (debugging). Поиск и удаление ошибок из программы; обычно имеет менее систематичный характер, чем тестирование.

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

Парадигма (paradigm). Несколько претенциозное название стиля проектирования или программирования. Часто (ошибочно) считают, что существует парадигма, превосходящая все остальные.

Параметр (parameter). Объявление явной входной информации для функции или шаблона. При вызове функция может обращаться к аргументам по именам своих параметров

Перегрузка (overload). Определение двух функций или операторов с одинаковыми именами, но разными типами аргументов (операндов).

Переменная (variable). Именованный объект заданного типа; содержит значение, если был инициализирован.

Переполнение (overflow). Создание значения, которое невозможно сохранить в предназначенной для него области памяти.

Подтип (subtype). Производный тип; тип, обладающий всеми свойствами базового типа и, возможно, дополнительными возможностями.

Последовательность (sequence). Совокупность элементов, которую можно перебрать последовательно.

Постусловие (post-condition). Условие, которое должно выполняться при выходе из фрагмента кода, например, функции или цикла.

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

Предусловие (pre-condition). Условие, которое должно выполняться при входе во фрагмент кода, например функцию или цикл.

Прецедент использования (use case). Конкретный (как правило, простой) пример использования программы, предназначенный для ее тестирования и демонстрации возможностей.

Приложение (application). Программа или коллекция программ, рассматриваемая пользователями как сущность.

Принцип RAII (“Resource Acquisition Is Initialization”). Основная технология управления ресурсами, основанная на концепции области видимости.

Программирование (programming). Искусство выражения решений задач в виде кода.

Программное обеспечение (software). Совокупность фрагментов кода и связанных с ними данных; часто используется как синоним слова “программа”.

Программный код (возможно, вместе со связанными с ним данными). То, что полностью готово к выполнению на компьютере.

Проект (design). Общее описание того, как должно работать программное обеспечение, чтобы соответствовать своей спецификации.

Производный класс (derived class). Класс, являющийся наследником одного или нескольких базовых классов.

Псевдокод (pseudo code). Описание вычислений, записанное с помощью неформальных обозначений, а не языка программирования.

Реализация (implementation). 1) Действие, означающее написание и тестирование кода; 2) код, реализующий программу.

Регулярное выражение (regular expression). Обозначение шаблонов в виде строк символов.

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

Рекурсия (recursion). Вызов функции самой себя; см. также итерация.

Ресурс (resource). Нечто, чем можно завладеть и что впоследствии следует освободить, например дескрипторы файлов, блокировка или память.

Система (system). 1) Программа или набор программ для выполнения определенной задачи на компьютере; 2) сокращение словосочетания “операционная система”, т.е. базовая среда для выполнения программ и инструменты компьютера.

Слово (word). Основная единица памяти компьютера, обычно используется для хранения целых чисел.

Сложность (complexity). С трудом поддающееся точному определению понятие, представляющее собой некую меру трудности процесса поиска решения задачи или свойство самого решения. Иногда под сложностью (просто) понимают оценку количества операций, необходимых для выполнения алгоритма.

Сокрытие (hiding). Действие, предотвращающее доступ к информации. Например, имя из вложенной (внутренней) области видимости, совпадающее с именем из охватывающей (внешней) области видимости, может быть недоступно для непосредственного использования.

Сокрытие информации (information hiding). Действие, связанное с отделением интерфейса и реализации друг от друга, в результате которого детали реализации остаются за пределами внимания пользователя и возникает абстракция.

Состояние (state). Набор значений.

Спецификация (specification). Описание того, что должен делать фрагмент кода.

Ссылка (reference). 1) Значение, описывающее место в памяти значения, имеющего тип; 2) переменная, содержащая такое значение.

Стандарт (standard). Официально согласованное определение чего-либо, например, языка программирования.

Стиль (style). Совокупность методов программирования, обеспечивающая согласованное использование возможностей языка. Иногда используется в очень ограниченном смысле, касающемся правил выбора имен и внешнего вида текста программы.

Стоимость (cost). Затраты (например, время работы программиста, время выполнения программы или объем памяти), связанные с производством программы или ее выполнением. В идеале стоимость должна зависеть от сложности.

Строка (string). Последовательность символов.

Супертип (supertype). Базовый тип; тип, имеющий подмножество свойств производного типа.

Тестирование (testing). Систематический поиск ошибок в программе.

Тип (type). То, что определяет набор возможных значений и допустимых операций над объектов.

Требование (requirement). 1) Описание желательного поведения программы или части программы; 2) описание предположений об аргументах функции или шаблона.

Указатель (pointer). 1) Значение, используемое для идентификации в памяти объекта, имеющего тип; 2) переменная, содержащая такое значение.

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

Утверждение (assertion). Утверждение, вставленное в программу, чтобы установить (assert), какое условие всегда должно выполняться в данной точке программы.

Файл (file). Контейнер, содержащий информацию в постоянной памяти компьютера.

Функция (function). Именованная единица кода, которую можно активизировать (вызвать) из разных частей программы; логическая единица вычислений.

Целое число (integer). Целое число в математическом смысле, например, 42 и –99.

Цикл (loop). Фрагмент кода, выполняющийся повторно; в языке C++ циклы, как правило, реализуются инструкцией for или while.

Число с десятичной точкой (floating-point number). Компьютерная аппроксимация действительного числа, например 7.93 и 10.78e–3.

Чисто виртуальная функция (pure virtual function). Виртуальная функция, которая должна быть замещена в производном классе.

Шаблон (template). Класс или функция, параметризованные одним или несколькими типами или значениями (на этапе компиляции); основная конструкция в языке C++, поддерживающая обобщенное программирование.