2010-01-28

C++0x本:前人未到

C++を日本語で相当深く解説するなどということは、誰もやった事がない。ということは、定着した訳語がないということである。

unqualified name lookupを、非修飾名前検索と訳すのは、どうも気に入らない。では、qualified name lookupは、修飾名前検索かというと、これがまた違和感を覚えるのである。

ましてや、name hidingの如きは、どう訳していいものやら。名前隠匿なんて、センスがないにも程がある。

一体、先人たちは、どのようにこの問題を解決してきたのか。彼らは、技術者であって、詩人ではなかった。そこで、つとめて辞書的な訳語をつけようとした。addressを番地といったり、delegateを委譲というなど、センスのかけらもない、それだけでは意味がわからない、日本語らしからぬ訳語を、たくさん作り出してきた。

辞書的な訳語の利点は、誤訳するよりマシだということである。逆に、日本語から英語に直す場合でも、英和辞書で、「番地」や「委譲」をひけば、addressやdelegateが出てくる。つまり、可逆なのである。

可逆といえば、losslessという単語に対し、可逆という言葉を割り当てたのは、果たしてどうであろうか。losslessは、ロスがないという意味であるのに対し、可逆とは、元に戻せるという意味である。また、lossyに対しては、非可逆という言葉が用いられている。

可逆というのは、明らかに聞き慣れない言葉ではあるが、losslessの訳語として、十分定着した感がある。これには、救いがある。つまり、最適な訳語でなくても、十分にユニークであれば、定着するのだ。

和訳、音訳、英語表記の間で、妥当な線を探らなければならない。

6 comments:

  1. unqualified name lookup : 非修飾名参照

    qualified name lookup : 修飾名参照

    name hiding : 名前隠蔽

    とか…?たしかに、難しい…

    ReplyDelete
  2. メジャーな本(プログラミング言語C++とかEffective C++とか)
    で使われている訳語があれば、それが一番違和感が無いです

    ReplyDelete
  3. 名前参照もいいかもしれませんね。
    (un)qualifiedは難しい。
    いっそのこと、(un)qualified名前参照にするか。
    それもまた変だ。

    name resolutionとname lookupは区別しなければならない。

    ReplyDelete
  4. たとえば
    name-lookup …… 名前検出
    name-hidden …… 名前抑制
    なんて感じはどうか。

    ReplyDelete
  5. うーん、抑制は、なにか違うような。
    こういう意味ですから。

    int x ; // #1
    void f()
    {
    int x ; // #2
    x ; // #2. #1 is hidden.
    }

    ReplyDelete
  6. 上のAnonymousです。
    すると意味的に表現すると
     名前上書き
    とかなのかな。
    名前検出も name-resolution の方の訳語っぽい気がしてきたし…。

    まあ、気にしないで下さい。

    ReplyDelete

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.