Sincerely yours Cyril Sazonov ---------- Forwarded message ---------- Date: Sun, 16 Jun 2002 05:50:33 +0400 (MSD) From: Cyril Sazonov <cs@...> To: Dmitriy Anisimkov <anisimkov@...> Cc: Sergey I. Rybin <rybin@...>, Maxim Reznik <max1@...>, Alexey V. Litvinov <lial@...>, Oleksandr Havva <alex@...>, Wasiltchenko Ilja <ai_lab@...> Subject: Re: Перевод Hello! On Sat, 15 Jun 2002, Dmitriy Anisimkov wrote: > > > > statement -- предложение > > > > expression -- выражение > > > > operator -- операция > > > > operation -- операция > > > > > > Но ведь в Адском стандарте operator и operation - вещи СУЩЕСТВЕННО > > > разные! > > > > И это тоже верно. Наиболее точно соответствует английскому "operator" > > русское > > "знак операции". В русском слово оператор в этом значении мне встречалось > > лишь > > в обороте "оператор набла" ( что он делает -- убей, не помю !) ) в > > сопромате, > > если не путаю. > > А что такое "знак операции" ? Строка обозначающая некое действие над операндами. Своего рода имя функции ( а Ada'е -- именно функция ) с несколько необычными правилами вызова. Простейший пример -- математические операции: бинарный плюс, например. A + B , что эквивалентно + ( A , B ) > Операция насколько я знаю не нуждается в знаке. > У чисел может быть знак + или -. А вот у операции ... не знаю. Унарный плюс/минус как раз и есть знак операции: -5 -- вызов функции "-" с параметром 5, т.е. эквивалентная запись - ( 5 ) > Почему бы не перевесити operator как "оператор". Потому, что в английском словом оператор называется знак операции, а в русском предложение языка. > Говорят же на русском "оператор присваивания" Кстати, вот ещё одна мина. Особенно поганая из-за того, как используется присваивание в C++. В Ada'e ":=" не является операцией и не может быть перегружен. Строка "A := B ;" -- именно в _предложение_ языка или, в принятой в русском традиции перевода, оператор. Я понимаю, что "предложение присваивания" звучит непривычно и несколько некрасиво, что "оператор присваивания" традиционен. В C/C++ "=" -- именно _операция_ присваивания, т.е. функция, возвращающая значение, и -- вот уродство! -- побочным эффектом меняющая значение одного из свох параметров ( по определению, у функции _все_ параметры предназначены _только_ для передачи данных в неё ). Таким образом, в C/C++ ( с нюансами в зависимости от контекста ): A = B -- операция присваиваиния, A = B ; -- оператор присваивания ( т.е. предложение присваивания ). Вот какая терминологическая мина. Особенно важно это отличие в связи с широким распространением C/C++ -- нужно почеркнуть, что в Ada'е ( и вообще, во всех алгольных языках ) ":=" не возвращает значения и ничего не курочит побочным эффектом и, вообще, не имеет побочных эффектов, не может быть перегружен, т.е. не является функцией. Поэтому я считаю, что везде, где это возможно надо воздерживаться от употребления слова "оператор", поскольку однозначность -- одна из важнейших составляющих надёжности, которая, в свою очередь, является одной из важнейших черт Ada'ы. Мир мы таким образом не изменим и не сломаем сложившуюся традицию, но в рамках документов по Ada'е избежим неоднозначностей перевода. Sincerely yours Cyril Sazonov
Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти