8

В разных языках программирования есть понятия "expression" и "statement". "Expression" тривиально переводится на русский как "выражение": Со "statement"-ом дела чуть посложнее, но кажется, техническая литература остановилась на термине "инструкция", который неплохо подходит.

В стандарте языка C++ есть еще и понятие "expression statement", которое означает что-то типа "инструкция, выраженная выражением". Так как я очень давно уже не читаю техническую литературу на русском, я не имею понятия, имеет ли данный термин общепринятый перевод.

Идеальным вариантом будет, если кто знает перевод термина "expression statement". Но если нет, помогите придумать перевод этому термину. В частности, если в русском языке есть прилагательное от слова "выражение", то оно, думаю, может подойти.

P.S. Для технарей, кто не в курсе: "a = b + c" - выражение, "a = b + c;" - инструкция, а точнее expression statement.

  • 1
    А просто слово "инструкция" не подойдет? – Dmitriy Nov 15 '14 at 20:58
  • @Dmitry: Просто "инструкция" слишком общее понятие. Есть условная инструкция, инструкция объявления, инструкция return, и т.д. Вариант kotlomoy отлично подходит – Armen Tsirunyan Nov 15 '14 at 21:25
10

Словарь предлагает такие варианты: оператор-выражение, команда-выражение, инструкция-выражение, оператор выражения.

Лично я склоняюсь к второму или третьему варианту. Не нравится мне перевод statement->оператор из-за путаницы с арифметическими и др. операторами.

| improve this answer | |
3

There is the official translation of Bjarne Stroustrup's C++ book and it is better that we all use the Russian terminology used there instead of introducing new translations of terms (even if some translations may feel awkward :-)).

Here is an excerpt from the translated book followed by the same excerpt from the original:

Все такие неоднозначности разрешаются в пользу объявлений (если нечто выглядит
как объявление, это и есть объявление). Например:

Т(а)->т ;       // оператор-выражение
Т(а)++;         // оператор-выражение
Т(*е)(int(3));  // объявление
T(f)[4]         // объявление
Т(а);           // объявление
Т(а)=m;         // объявление

Бьерн Страуструп. Язык программирования C++. Специальное издание. Пер. с англ. — М.:Издательство Бином, 2011 г. ISBN 978-5-7989-0425-9 (pyc.), стр. 934.


    All such ambiguities are resolved to declarations. That is, "if it could possibly be 
interpreted as a declaration, it is a declaration." 
For example:

    T(a)->m;      // expression statement
    T(a)++;       // expression statement
    T(*e)(int(3));// declaration
    T(f)[4];      // declaration
    T(a);         // declaration
    T(a)=m;       // declaration

The C++ Programming Language. Third Edition. Bjarne Stroustrup. AT&T Labs Murray Hill, New Jersey 1997. p. 802.

In conclusion:

  • statement is translated as оператор
  • expression statement is translated as оператор-выражение
  • (by the way) operator is translated as операция
| improve this answer | |
1

Из уроков Java

  • Assignment expressions
  • Any use of ++ or --
  • Method invocations
  • Object creation expressions

Such statements are called expression statements.

Выходит пример a = b + c - это составное выражение (присвоение и вычисление). А выражения-инструкции (я так перевел):

int i = 0; i++; using(i); String str = new String("");

| improve this answer | |
-6

экспрешн-стэйтмент (I know C++, Russian and English, unlike the other poster)

| improve this answer | |
  • 4
    As it stands, this answer is not very good. Would you care provide any citations from literature, where элрпешн-стейтмент is used? – Armen Tsirunyan Nov 21 '14 at 15:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.