C++を日本語で相当深く解説するなどということは、誰もやった事がない。ということは、定着した訳語がないということである。
unqualified name lookupを、非修飾名前検索と訳すのは、どうも気に入らない。では、qualified name lookupは、修飾名前検索かというと、これがまた違和感を覚えるのである。
ましてや、name hidingの如きは、どう訳していいものやら。名前隠匿なんて、センスがないにも程がある。
一体、先人たちは、どのようにこの問題を解決してきたのか。彼らは、技術者であって、詩人ではなかった。そこで、つとめて辞書的な訳語をつけようとした。addressを番地といったり、delegateを委譲というなど、センスのかけらもない、それだけでは意味がわからない、日本語らしからぬ訳語を、たくさん作り出してきた。
辞書的な訳語の利点は、誤訳するよりマシだということである。逆に、日本語から英語に直す場合でも、英和辞書で、「番地」や「委譲」をひけば、addressやdelegateが出てくる。つまり、可逆なのである。
可逆といえば、losslessという単語に対し、可逆という言葉を割り当てたのは、果たしてどうであろうか。losslessは、ロスがないという意味であるのに対し、可逆とは、元に戻せるという意味である。また、lossyに対しては、非可逆という言葉が用いられている。
可逆というのは、明らかに聞き慣れない言葉ではあるが、losslessの訳語として、十分定着した感がある。これには、救いがある。つまり、最適な訳語でなくても、十分にユニークであれば、定着するのだ。
和訳、音訳、英語表記の間で、妥当な線を探らなければならない。
unqualified name lookup : 非修飾名参照
ReplyDeletequalified name lookup : 修飾名参照
name hiding : 名前隠蔽
とか…?たしかに、難しい…
メジャーな本(プログラミング言語C++とかEffective C++とか)
ReplyDeleteで使われている訳語があれば、それが一番違和感が無いです
名前参照もいいかもしれませんね。
ReplyDelete(un)qualifiedは難しい。
いっそのこと、(un)qualified名前参照にするか。
それもまた変だ。
name resolutionとname lookupは区別しなければならない。
たとえば
ReplyDeletename-lookup …… 名前検出
name-hidden …… 名前抑制
なんて感じはどうか。
うーん、抑制は、なにか違うような。
ReplyDeleteこういう意味ですから。
int x ; // #1
void f()
{
int x ; // #2
x ; // #2. #1 is hidden.
}
上のAnonymousです。
ReplyDeleteすると意味的に表現すると
名前上書き
とかなのかな。
名前検出も name-resolution の方の訳語っぽい気がしてきたし…。
まあ、気にしないで下さい。