Программирование. Принципы и практика использования C++ Исправленное издание
Шрифт:
Парадигма (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) описание предположений об аргументах функции или шаблона.