Содержит 26 букв (в отличие от русского, который содержит 33 буквы).
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
Произношение названий букв:
эй би си ди и эф джи эйч ай джей кей эл эм эн оу пи кью ар эс ти ю ви дабл-ю экс уай зэт/зи
Англо-русский словарик терминов в учебнике по C++
Термины отсортированы сверху вниз по алфавиту.
В этот словарик я помещаю не абсолютно все встретившиеся мне термины (тогда словарик получился бы гораздо длиннее), а только те, перевод которых на русский язык вызвал у меня какие-либо вопросы; может быть проблемным, спорным.
Этот словарик не является толковым, он нужен только для правильного перевода термина, а не для его толкования (я привожу для терминов некоторые пояснения, но они нужны только для понимания данного для термина перевода). За толкованием терминов следует обратиться в переводимый учебник. Например, я не помещаю в этот словарик термины «definition» (определение) и «declaration» (объявление), так как их перевод не вызывает трудностей. Трудности могут возникнуть при толковании этих терминов, толковании разницы между ними, но толкование не является целью данного словарика.
В словарике используется термин «калька» из лингвистики.
Термин | Перевод | Примечание |
---|---|---|
1-byte | однобайтовый, однобайтный | «однобайтовый» в переводах встречается чаще, это слово есть в некоторых специализированных словарях; я не смог найти в русском языке прямого запрета на слово «однобайтный», поэтому считаю, что его тоже можно использовать; такая же проблема выбора перевода существует и для других числительных: двухбайтовый (двухбайтный), многобайтовый (многобайтный) и так далее |
absolute value | абсолютная величина | Википедия: absolute value, абсолютная величина. Вроде бы, простая для перевода фраза, но я неожиданно задумался, можно ли понятие «absolute value» в математике перевести на русский как «абсолютное значение» (такой перевод можно часто встретить в интернете)? На этот вопрос я пока не нашел четкого ответа. Иногда термины «величина» и «значение» используются как синонимы, но некоторые считают, что «величина» — это более общий термин, а «значение» — более узкий. |
ASCII | Википедия: ASCII (на английском), ASCII (на русском). Не могу запомнить, что ударение при произнесении этой аббревиатуры приходится на первый слог: «а́ски». Расшифровка: «American Standard Code for Information Interchange» (американский стандартный код для обмена информацией). Изначально этот набор символов был разработан и стандартизирован в США. | |
assignment | присваивание | не путать с «присвоением»; википедия: присваивание (механизм связывания в программировании), присвоение (юридический термин, преступление, форма хищения) |
base 2 base 8 base 10 base 16 |
на базе 2 (8, 10, 16) цифр | По-английски, например, могут написать «base-2 numeral system» (позиционная система счисления на базе 2 цифр) или «binary (base 2)» (двоичная система счисления, то есть система, построенная на базе 2 цифр). Таким образом, речь идет об определенной позиционной системе счисления. В двоичной системе используются 2 цифры: 0 и 1. В десятичной системе используются 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. И так далее. Википедия: «radix» (в данном случае слова «radix» и «base» являются синонимами). На русский язык слово «base» еще переводят как «основание». |
Boolean | булевый, булев, логический | В языке C++ используется служебное слово bool (сокращение от «Boolean») для обозначения булевого типа данных (Boolean data type). По идее, в английском языке правильно писать слово «Boolean» с большой буквы, но часто встречается написание «boolean» с маленькой буквы. Еще встречается перевод «булев тип данных», тоже вполне приемлемый (в комментариях его удобнее использовать, так как слово «булев» короче слова «булевый»). В словосочетании «булева алгебра» слово «булева» для меня выглядит находящимся на своем месте. Слово «Boolean» (булевый) образовалось от имени английского математика, основателя математической логики, Джорджа Буля. В русскоязычных источниках вместо слова «булевый» часто употребляют слово «логический», в данном контексте эти слова являются синонимами. |
C-style string | строка в стиле языка Си | Еще такие строки по-английски называют «C string» и «null-terminated string». Такая строка представляет собой массив символов, заканчивающийся нулевым символом '\0' . Нулевой символ используется для обозначения конца строки. Таким образом, если строка содержит n символов, то массив с этой строкой содержит n + 1 символов из-за символа '\0' , обозначающего конец строки. Такое строение этих строк перешло в язык C++ из языка Си, поэтому строки с таким строением называют «строки в стиле языка Си» (в языке C++ также есть строки другого типа, устроенные по другим принципам). |
call stack | стек вызовов | статьи в википедии: call stack, стек вызовов |
caller | вызывающая функция | |
char | символ | тип данных, сокращение от слова «character», не путать со словом «char» в неспециализированных словарях английского языка |
code | 1) исходный текст программы; 2) кодировка; 3) некое значение |
У этого слова много значений, я перечислил не все. Ориентироваться следует по контексту. Википедия: «исходный код» (по-английски «source code», но часто сокращают до просто слова «code»), «код» (в смысле «кодировка»). |
code point | кодовая позиция | Википедия: «code point» (русскоязычной статьи я не нашел). Синонимы: «codepoint», «code position». Перевод «кодовая точка» мне не нравится, хотя его часто используют в интернете, так как такой перевод идет первым в универсальных словарях. Кодовая позиция — это число, которое соответствует некоему символу в данном наборе символов (коде, кодировке). |
code refactoring | рефа́кторинг, переделка кода, переработка кода | Программисты сегодня очень часто употребляют кальку «рефа́кторинг», это слово прижилось в русском языке в области программирования, поэтому его можно употреблять для перевода. Программисты часто говорят просто о «рефакторинге», но такое употребление этого слова не совсем верное, так как дословно с английского оно переводится как «переделка» или «переработка». Правильнее говорить о «рефакторинге кода». Ключевое в этом термине то, что речь идет не о любой переделке кода, а о такой переделке, в результате которой не меняется внешнее поведение программы. Википедия: code refactoring, рефакторинг. |
console | консоль, терминал | Слова «console» и «terminal» имеют довольно большую историю. В начале это были физические устройства, теперь под этими терминами чаще подразумевают специальные программы. У меня есть подробный пост об этом в моём блоге. |
constant folding | свёртка констант | одна из технологий оптимизации константных выражений (или подвыражений) при компиляции, википедия: свёртка констант, constant folding |
crash | аварийное завершение программы | еще говорят, что программа «вылетела», но это жаргон, а не научный термин |
defensive programming | защитное программирование | википедия: defensive programming (русскоязычной статьи по этому термину я в википедии не нашел); перевод «защищённое программирование», думаю, не подходит, так как речь идет не о защите программирования, а о защите программы |
e.g. | например | Хоть это не термин из языка программирования C++, я вынужден включить это сокращение в этот словарик, так как автор учебника употребляет это сокращение очень часто. На самом деле, это сокращение не из английского языка, а из латыни (поэтому его не всегда можно найти в словарях английского языка), но это и другие сокращения из латыни очень часто употребляются англоязычными авторами. Расшифровывается как «exempli gratia», что читается как «игзе́мпли гра́тиа» (само сокращение в тексте читается как «и джи»). Об этом сокращении и других из латыни у меня есть подробный пост в моем блоге. |
east const | const справа | Ключевое слово const — один из квалификаторов типа объекта. Язык C++ не определяет очередность квалификаторов в названии (спецификаторе) типа объекта, поэтому разные программисты помещают ключевое слово const в разные места названия типа объекта. Из-за этого образовались два общеизвестных стиля написания названия типа объекта, например: const int x; (стиль «west const» или «const west», по-русски «const слева») и int const x; (стиль «east const», по-русски «const справа»). Эти два утверждения эквивалентны. |
escape sequence | управляющая последовательность, исключённая последовательность, экранированная последовательность | Если переводить эту фразу дословно, получится что-то вроде «сбежавшая последовательность». Смысл такого перевода может быть непонятен. Под «последовательностью» имеется в виду последовательность символов. Примеры «сбежавших последовательностей» в C++: \n , \t , \x6F и тому подобное. Первым символом «сбежавшей последовательности» всегда является символ \ (обратная косая черта, по-английски «backslash»). Смысл фразы «сбежавшая последовательность» в том, что данная последовательность интерпретируется не как входящие в нее символы, а другим способом, то есть последовательность «сбегает» от обычного порядка интерпретации при синтаксическом анализе строк текста (по-английски «parsing»). Часто можно встретить перевод этой фразы на русский как «управляющая последовательность», но мне больше нравятся переводы «исключённая последовательность» (то же, что и «сбежавшая») и «экранированная последовательность» (то есть защищенная от обычной интерпретации при синтаксическом анализе). |
executable statement | исполняемое утверждение | один из видов утверждений; утверждения делят на исполняемые и неисполняемые |
exponent | показатель степени, степень, порядок |
Некоторые люди переводят это слово калькой «экспонента». Перевод «экспонента» неудобен, так как в русском языке словом «экспонента» чаще называют показательную функцию f(x) = e^x (википедия), где латинской буквой e обозначают число Эйлера. В результате может происходить путаница. Показательная функция f(x) = e^x не имеет никакого отношения к экспоненциальной записи числа. У меня об этом есть пост в блоге. |
expression | выражение | |
expression statement | утверждение-выражение | Один из видов утверждений. Выражение, превращенное в утверждение добавлением точки с запятой ; после выражения. Например, выражение 2 + 3 можно превратить в утверждение-выражение 2 + 3; . |
floating point | плавающая запятая | обычно речь идет про «floating point numbers» (числа с плавающей запятой); слово «point» (точка) в англоязычном написании используется потому, что в англоязычной традиции в дробных числах дробная часть отделяется от целой части точкой, а в русскоязычной традиции — запятой; про то, почему запятая «плавающая», у меня есть пост в блоге |
forward declaration | предварительное объявление | википедия: предварительное объявление |
framework | фре́ймворк, программный каркас | Калька «фре́ймворк» часто используется программистами в текстах на русском. Я не уверен, можно ли применять это слово для переводов на русский язык. Начинающему разобраться в смысле этого термина непросто, калька только затрудняет понимание. Википедия: software framework, фреймворк. Легче всего разобраться в смысле этого термина можно, использовав несколько фреймворков на практике. Фреймворк — это готовый каркас программы, в который программисту остается только вписать конкретные функции. В отличие от фреймворка при использовании библиотеки функций мы сами проектируем и пишем каркас программы, используя функции из библиотеки. |
header guard | защита от дублирующих подключений | википедия: #include guard (на русском), #include guard (на английском) |
IEEE 754 | стандарт некоммерческой инженерной ассоциации «IEEE» из США, описывающий формат представления чисел с плавающей запятой в компьютерах, операции с такими числами, исключительные ситуации и другие вещи по этой теме; первая версия стандарта вышла в 1985 году, следующая — в 2008 году, действующая — в 2019 году; википедия: англоязычная, русскоязычная | |
instruction | инструкция | |
int | тип данных, сокращение от слова «integer» | |
integer | целое число, целочисленный, целое, целочисленный тип | если в тексте встречается слово «integer» как отдельное существительное, то в этом случае его бывает удобно переводить как «целое число» или «целые числа» (либо «целочисленный тип», смотря по контексту); «integer type» удобно перевести как «целочисленный тип»; «signed integer» или «unsigned integer» удобно переводить как «целое со знаком» и «целое без знака» соответственно |
integral data type | интегральный тип данных | Термин не имеет отношения к «интегралу» из математического анализа, он назван так из-за родственности с термином «integer». Нередко пишут, что «integral» в данном случае — это синоним «integer». Те, кто с этим не согласен, считают следующее. Целочисленные типы (integer) включают short , int , long и так далее. Интегральные типы (integral) включают bool (булевый тип), символьные типы (char , wchar_t , char8_t и так далее) и целочисленные типы. То есть целочисленные типы (integer) входят в состав интегральных типов (integral), это не одно и то же.С другой стороны, если сравнить статью std::is_integral и статью std::numeric_limits<T>::is_integer из справочника по языку C++, то можно сделать вывод, что в данном случае «integral» — это синоним «integer». |
letter | буква | один из видов символов |
macro | макрокоманда, макрос | википедия: макрокоманда, macro |
member function | функция-член, метод | Википедия: подраздел «Member functions in C++» англоязычной статьи «Method (computer programming)». В статье сказано, что термин «функция-член» специфичен для языка C++, а вообще в программировании это понятие называют «методом». Так что в данном случае термины «функция-член» и «метод» — это синонимы. |
modulo wrap-around | оборот по модулю, модульный оборот | «modulo» — это слово из латыни, подразумевается операция «modulo»; словосочетание «wrap-around» можно перевести на русский как «оборот», для понимания термина нужно представлять, что такое «модульная арифметика», как она работает; примеры для понимания:536 % 256 = 24 , то есть число 536 на шкале (модуле) 0..255 может быть представлено числом 24: при переполнении совершается «оборот по модулю» от 255 к 0 (по часовой стрелке);256 + (-24 % 256) = 232 , то есть число -24 на шкале (модуле) 0..255 может быть представлено числом 232: при переполнении совершается «оборот по модулю» от 0 к 255 (против часовой стрелки). Тут подробнее. |
namespace | пространство имён | википедия: пространство имён |
operation | операция | |
operator | оператор | знак (обозначение) операции, может состоять из одного или нескольких символов |
portability | портируемость, переносимость | Это слово может иметь разные значения в разных контекстах. 1) Если речь идет об исходном коде, то, скорее всего, имеется в виду «портируемость» как свойство программы, описывающее, насколько легко эта программа может быть «портирована» (перенесена) на другие системы, платформы. 2) В других случаях, если говорят о программе, как об исполняемом файле, могут говорить о «portable application» (переносимое приложение). В этом контексте имеется в виду, что для запуска такой программы не требуется процедура установки, такую программу можно хранить на флешке и легко переносить между разными компьютерами. 3) Неспециализированные словари часто выдают первым переводом слова «portable» слово «портативный». Мне такой перевод кажется сомнительным, но, возможно, где-то он подойдет. У меня в блоге есть пост про слово «portable». |
qualifier | квалификатор | |
scientific notation | экспоненциальная запись чисел | эта фраза дословно переводится как «научная форма записи (нотация)»; слово «научная» используется потому, что эту форму записи чисел в основном используют ученые, математики, инженеры (в том числе программисты); экспоненциальная запись чисел — это способ писать очень большие или очень маленькие числа более компактно; википедия: «scientific notation», «экспоненциальная запись» |
scope | область видимости | |
scope resolution operator | оператор разрешения области видимости | Обозначается как :: . Здесь «разрешение» не в смысле «позволить», а в смысле «указать», «определить». То есть можно перевести еще как «оператор указания области видимости». |
sentence | предложение | термин из лингвистики, считается аналогом «утверждения» в обычных текстах |
sign | 1) знак числа 2) знак, обозначение |
следует смотреть по контексту, во втором случае совпадает по смыслу с «symbol» |
Solution Explorer | Обозреватель решений | официальный перевод на русский в среде разработки «Visual Studio» |
space | 1) символ пробела 2) пустое пространство, промежуток |
следует смотреть по контексту |
statement | утверждение, команда |
Один из видов инструкций, при этом утверждения сами делятся на несколько видов. Некоторые переводят это слово как «оператор»; однако, у нас уже есть слово «operator», которое означает не то же самое, что «statement», поэтому слово «statement» нельзя переводить словом «оператор», если мы хотим избежать путаницы в терминах. По этой же причине слово «statement» нельзя переводить как «выражение», потому что словом «выражение» обычно переводят термин «expression». |
static cast | статическое приведение | В учебниках для начинающих обычно рассказано про оператор static_cast , который используется для явного преобразования типа значения в программе на языке C++. Сложнее найти, что именно означает фраза «static cast» при переводе на русский язык. Слово «cast» имеет очень много значений, которые могут запутать переводчика. В данном случае слово «cast» означает «приведение» (от слова «привести»; не путать с «привидением», то есть «призраком») и является синонимом слова «conversion» (преобразование).Почему в данном случае приведение называют «статическим»? Это из-за того, что для данного приведения типов проверка типов и вставка в программу соответствующего преобразования происходят на этапе компиляции программы, до запуска программы на выполнение. Существует еще «динамическое» приведение типов, при котором проверка типов и выбор вида преобразования выполняются после запуска программы на выполнение, во время работы программы (runtime). |
stepping | пошаговое выполнение | подразумевается пошаговое выполнение программы для отладки; этим словом называют набор соответствующих функций отладчика |
symbol | 1) знак, обозначение; 2) символ (идентификатор) при трансляции |
1) не перевожу словом «символ», чтобы не путать с «char»; 2) при описании трансляции (компиляции) программы в исполняемый файл используют термин «symbol», означающий отдельные сущности в программе, при этом по-русски говорят о «таблице символов» (таблице идентификаторов) |
symbolic constant | символическая константа, постоянное значение с именем | Некоторые люди переводят эту фразу как «символьная константа», но мне такой перевод кажется неправильным: можно подумать, что тут имеются в виду только символы (тип char ), хотя на самом деле эта сущность может содержать значения разных типов, не только типа char . Название понятия «symbolic constant» подразумевает две вещи: константу (некое постоянное значение) и имя (symbol) для ее обозначения в исходном коде. Символическую константу (постоянное значение с именем) можно создать разными способами: с помощью константной переменной или с помощью макроопределения для препроцессора. |
translation | трансляция | Википедия: транслятор (в этой статье есть и определение термина «трансляция программы»). В ходе трансляции файлы с исходным кодом обрабатываются сначала препроцессором, потом компилируются и связываются (компонуются). Раньше трансляцию выполняли отдельные программы: препроцессор, компилятор и компоновщик (linker), а сейчас они часто совмещены в одной программе-компиляторе. |
translation unit | единица трансляции | википедия: translation unit, единица трансляции |
UB | неопределенное поведение | некоторые люди в комментариях используют это сокращение; UB — undefined behavior; автор учебника его не использует, а если бы использовал, то в учебнике так делать не следует (использование аббревиатур затрудняет понимание) |
uniform initialization | единообразная, универсальная инициализация | Один из способов инициализации, введенный с версии стандарта C++11. В современном C++ этот способ рекомендуется как предпочтительный. При этом способе инициализации используются фигурные скобки {} . Также этот способ инициализации называют «list initialization» (списочной инициализацией) или «brace initialization» (инициализацией с помощью фигурных скобок). Слово «uniform» (единообразная, универсальная) употреблено потому, что этот способ инициализации введен в C++ в качестве попытки привести инициализацию разных объектов к единообразию (предполагается, что единообразие уменьшит количество ошибок при инициализации разных объектов в C++). |
unit testing | модульное тестирование | Идея такого тестирования заключается в том, что тестирование проводится для частей программы, начиная с более мелких частей (например, отдельных функций), затем тестируются более крупные части программы и так далее (снизу вверх). Для каждой части программы составляется и хранится набор тестов (тестовых функций). Википедия: unit testing, модульное тестирование. |
whitespace | пробельный символ | в состав пробельных символов кроме символа пробела («space») входят символ горизонтальной табуляции и символ новой строки; в других языках программирования состав пробельных символов может быть другой |