Skip to content

Latest commit

 

History

History
83 lines (77 loc) · 41.5 KB

eng-rus-dictionary.md

File metadata and controls

83 lines (77 loc) · 41.5 KB

Содержит 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») входят символ горизонтальной табуляции и символ новой строки; в других языках программирования состав пробельных символов может быть другой