Здравствуйте, Aquary, Вы писали:
dmz>>Есть ли какой-то прижившийся аналог слову "стейтмент" в контексте языков программирования?
A>В контексте ЯП обычно говорят "выражение".
Э!!! В языках С/С++ statement и expression — две большие разницы, хотя expression может быть statement'ом.
Иногда (особенно, применительно к Фортрану, Алголу, Паскалю) statement переводят как "оператор", что тоже конфликтует с, например, знаками математических операций (а в том же С++ операции так и называются operator).
За годы общения лично я пришёл к выводу, что заимствование statement = стейтмент — самый точный способ передачи. Именно применительно к ЯП. Русский литературный перевод "утверждение" с самого начала как-то не прижился и режет слух.
Здравствуйте, Кодт, Вы писали: К>За годы общения лично я пришёл к выводу, что заимствование statement = стейтмент — самый точный способ передачи. Именно применительно к ЯП. Русский литературный перевод "утверждение" с самого начала как-то не прижился и режет слух.
Ну не знаю. Вместо заимствования можно уже имеющиеся слова "повторно использовать". Например, "операция", "инструкция". Да и "оператор" вполне подходит, если это не вносит путаницы.
Здравствуйте, Mr.Cat, Вы писали:
MC>Ну не знаю. Вместо заимствования можно уже имеющиеся слова "повторно использовать". Например, "операция", "инструкция". Да и "оператор" вполне подходит, если это не вносит путаницы.
А кстати, "инструкция".
Но всё зависит от контекста, то есть, от языка.
В том же С++ я бы поостерёгся вводить неоднозначности (оператор и выражение). А в хаскелле — наплевал бы с высокой колокольни.
А то мало ли, мы за ассемблер говорим, там есть инструкции и есть всякие объявления-шмобъявления.
Хотя в любом случае это "инструкция компилятору"
Здравствуйте, Кодт, Вы писали:
dmz>>>Есть ли какой-то прижившийся аналог слову "стейтмент" в контексте языков программирования?
A>>В контексте ЯП обычно говорят "выражение".
К>Э!!! В языках С/С++ statement и expression — две большие разницы, хотя expression может быть statement'ом. К>Иногда (особенно, применительно к Фортрану, Алголу, Паскалю) statement переводят как "оператор", что тоже конфликтует с, например, знаками математических операций (а в том же С++ операции так и называются operator).
При таком переводе operator — операция, и конфликт по крайней мере смазан.
Здравствуйте, Кодт, Вы писали: К>А кстати, "инструкция".
Тоже не подходит, потому что есть instruction.
Приходится выкручиваться — в русском языке на 1 термин меньше, чем надо, для перевода текстов по дотнету.
Потому что там есть всё: operator, statement, expression, instruction. В итоге приходится называть using или lock то оператором, то инструкцией, то блоком — в зависимости от контекста, чтобы устранить все неоднозначности.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Приходится выкручиваться — в русском языке на 1 термин меньше, чем надо, для перевода текстов по дотнету. S>Потому что там есть всё: operator, statement, expression, instruction.
В русском тоже всё было. Если открыть нормальные советские книжки на оную тему годов эдак 1970-х, то можно увидеть, что в качестве statement использовался термин "предложение". А в 1980-х внезапно случилась какая-то катастрофа (умер последний корректор с дореволюционным образованием, и поставили молодого дебила из ПТУ ), в результате которой мы получили эту мешанину из операция/оператор и далее со всеми остановками...
Здравствуйте, dmz, Вы писали:
dmz>Есть ли какой-то прижившийся аналог слову "стейтмент" в контексте языков программирования?
В Википедии английской статье сопоставлена вот такая русская статья.
Там используются слова "инструкция" и "оператор". Лично мне "инструкция" нравится больше (по принципу "из двух зол...")
Здесь озникает следующее затруднение ... Используемый в оригинеле "statement" часто переводится на русский язык как "оператор". Ма все привыкли, что for, if, case и т.д. — это операторы, что неверно (по крайней мере в контексте C++). Термин оператор ("operator") обозначает присваивание, сложение и т.д. Операторы могут быть замещены в пользовательском классе. Большинсто операторов имеет возвращаемое значение. В связи с тем что понятия "operator" и "statement" в оригинале чётко разделены, мы вынуждены сделать это и в переводе. Поэтому для перевода "statement" мы выбрали отдельный термин — "инструкция", ...
Здравствуйте, netch80, Вы писали:
N>При таком переводе operator — операция, и конфликт по крайней мере смазан.
Оператор и операция — очень разные вещи. В Паскале есть оператор присваивания. а в С — операция присваивания. Паскалевский оператор — это только действие, а С-шная операция имеет результат.
dmz>Есть ли какой-то прижившийся аналог слову "стейтмент" в контексте языков программирования?
Мое ИМХО — в разных языках программирования сложилась своя лексика на сей счет, поэтому лучше всего просто следовать тому, что принято для этого языка программирования. Например, мне все равно, как в оригинале звучит определение a=b; в языке C, общепринятый перевод — операция присваивания.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Мое ИМХО — в разных языках программирования сложилась своя лексика на сей счет, поэтому лучше всего просто следовать тому, что принято для этого языка программирования.
Терминология должна быть точной, чёткой и единообразной. И то что какие-то косноязычные балбесы внесли путаницу 30+ лет назад — не повод продолжать им уподобляться.
PD>Например, мне все равно, как в оригинале звучит определение a=b; в языке C, общепринятый перевод — операция присваивания.
Гы! Сложившийся перевод a=b; — оператор-выражение. Операция присваивания это a=b
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, netch80, Вы писали:
N>>При таком переводе operator — операция, и конфликт по крайней мере смазан.
PD>Оператор и операция — очень разные вещи. В Паскале есть оператор присваивания. а в С — операция присваивания.
Всё правильно. В этой терминологии, операция (operator) присваивания является тем, что можно увидеть в контексте, где допустимо выражение (expression), а частным случаем оператора (statement) является выражение (в случае Си — обязательно терминированное точкой с запятой, для соответствия синтаксису оператора). Поэтому можно говорить "оператор присваивания" (assignment statement) в том смысле, что это оператор, который является выражением, в котором на самом глобальном уровне находится операция (operator) присваивания ("=").
В пределах одного языка, таким образом, получаетяс вполне непротиворечивый результат. Ну а проблемы перевода остаются переводчикам.
PD> Паскалевский оператор — это только действие, а С-шная операция имеет результат.
Здравствуйте, Alex Reyst, Вы писали:
AR>Здравствуйте, netch80, Вы писали:
N>> Ну а проблемы перевода остаются переводчикам.
AR>"От лица и по поручению...": спасибо тебе, добрый человек :maniac: :))
Не за что:)
Ну а действительно — как тут выправить сложившееся? Что-то надо ломать нахер, без этого не обойтись. Переводчики хоть обязаны по своему статусу знать такие тонкости, больше взвалить не на кого.
dmz>>Есть ли какой-то прижившийся аналог слову "стейтмент" в контексте языков программирования?
A>В контексте ЯП обычно говорят "выражение".
A>Хотя в письменном и разговорном английском это означает "утверждение". As in "was that a question or a statement?".
Слово "Утверждение" в данном контексте не слышал ни разу. Expression принципиально отличается от Statement.
MC>Ну не знаю. Вместо заимствования можно уже имеющиеся слова "повторно использовать". Например, "операция", "инструкция". Да и "оператор" вполне подходит, если это не вносит путаницы.
Не подходит! Например, "оператор" в С++ никоим образом не является стейтментом. Это выражение. Инструкция — традиционно, например, "препроцессора" или наоборот, процессора. Но никак не стейтмент.