8

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

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

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

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

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

4 Answers 4

10

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

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

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 операция
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("");

-6

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

1
  • 4
    As it stands, this answer is not very good. Would you care provide any citations from literature, where элрпешн-стейтмент is used? Nov 21, 2014 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.