« 『孟子荀卿列伝』に就いて | トップページ | ロシア語で「チョコレート」 »

メモ:「プログラミング入門 - Rubyを使って」

本の抜書きファイルを作成していると、効率的なデータ整形を行ないたくなる。まぁ、私の場合 sed や grep で殆どの場合間に合うレベルなのだが、それでも、Perl や Ruby の初歩的なレベルぐらいでは使いこなしたい、と、思っている。

実は、Perl なら以前少し勉強したことがあるのだ。しかし、今ではすっかり忘れてしまった。Ruby の方も、読み物などから名前ぐらいは承知しているが、それだけだ。と云う訣で、Ruby の方に食指が動いて、サイト [オブジェクト指向スクリプト言語 Ruby] からリンクが張ってある [プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama] を読み始めた。そこには、Windows 用のバイナリをダウンロード・インストール方が書いてあったので、その通りに、ダウンロード・インストール (Ruby は、既にシステムにインストールだけはしてある cygwin に入っている筈なんだけれど、私、cygwin のコンソールを使いこなせていないので、今回は利用を遠慮することにした)。

で、チュートリアルの続きを読んでいったのだが、ところどころ、たどたどしい部分があって (特に「第2章 文字列」以降。例えば、第2章冒頭 "You can think of printed letters being strung together on a banner." を「横断幕などに印刷された文字が広げられる(strung)のを思い浮かべると良いでしょう。」とするあたり、どうなのだろう。『横断幕など印刷されている文字は「綴られ」ている ("string" されている) と言いますよね』ぐらいで良いのではないか)、それが気になった。

中には、「これは戴けないな」と云うものさえある。

その内の一つだけに就いて書いておく。「プログラミング入門 - Rubyを使って - 2. 文字列(string)」の終結部はエスケープキャラクタに就いて説明がされているのだが、次のような箇所がある。

注:現在 [プログラミング入門 - Rubyを使って -, by Chris Pine, 日本語ver. by S. Nishiyama] に示されている翻訳の原文が、現在 [Learn to Program] に示されている版とは限らない。それを確認する手段を私はもっていないのだ。ただ、リンクが張られている以上、相応の関連性はあると考えて良いだろうから、版の整合性を考えないでも、その事によって、以下の議論の大筋を留保する必要はないと信じる。

バックスラッシュ記号(訳註:日本語の端末では円記号に見えます。以降、読み替えてください。)は、エスケープキャラクタです。このことを言い換えると、バックスラッシュ記号と他の文字が並んでいたら、それは新しい文字に翻訳されるということです。バックスラッシュがエスケープするのはアポストロフィ記号とバックスラッシュ記号それ自身です。(よく考えると、エスケープ記号はいつもそれ自身でエスケープされなければならないことがわかると思います。) いくつか例を挙げておきましょう。

puts 'You\'re swell!'
puts '文字列の最後のバックスラッシュ:  \\'
puts 'up\\down'
puts 'up\down'
You're swell!
文字列の最後のバックスラッシュ:  \
up\down
up\down

バックスラッシュ記号は'd'をエスケープせず 、バックスラッシュ記号自身をエスケープする ので、最後の2つの文字列は同じものになります。コード上では同じもののようには見えませんが、コンピュータの中では同じものです。
--プログラミング入門 - Rubyを使って - 2. 文字列(string)

これの「原文」(と思われるもの) は、以下の通り:

The backslash is the escape character. In other words, if you have a backslash and another character, they are sometimes translated into a new character. The only things the backslash escapes, though, are the apostrophe and the backslash itself. (If you think about it, escape characters must always escape themselves.) A few examples are in order here, I think:

puts 'You\'re swell!'
puts 'backslash at the end of a string:  \\'
puts 'up\\down'
puts 'up\down'
You're swell!
backslash at the end of a string:  \
up\down
up\down

Since the backslash does not escape a 'd', but does escape itself, those last two strings are identical. They don't look the same in the code, but in your computer they really are the same.
--Learn to Program: 2. Letters

この引用文の最初のセンテンスで "The backslash" と "the escape character" との両方に定冠詞 the が付いているのを訳文でどう表現するかと云うことも議論しようと思えば議論できるのだが、ここでは、そうしたレベルの話はしない。以下、次の単語の訳し方を取り上げることにする。

  1. "if you have a backslash and another character" の "another" の訳し方。

  2. "they are sometimes translated into a new character." の "sometimes" と "new" の訳し方。

1. "if you have a backslash and another character" の "another" の訳し方。

この部分は Nishiyama 訳では「バックスラッシュ記号と他の文字が並んでいたら」となっている。しかし、日本語の「他」には、例えば「他人」と云う言葉が含意するような、「本」とは異なるものである意識が底にあるのに対して、"another" は単に「もう一つの」と云うだけのことを指す場合が多い。例えば「バックスラッシュ記号と他の文字が並んでいたら」(つまり日本語版では「円 (\) 記号と他の文字が並んでいたら」)では、"\\" と云う場合がカヴァーできるか心許ないだろう。しかし、直後の記載からも分かるように "\\" は、\ がエスケープしている重要な場合の一つなのである。だから、この文は「バックスラッシュの後に文字があった場合は」とか、或いはもう少し踏み込んで「ある文字の前にバックスラッシュが付いていたら」ぐらいに訳しておいたほうが良いだろう。

2. "they are sometimes translated into a new character." の "sometimes" と "new" の訳し方。

Nishiyama 訳では、"sometimes" の存在が無視されていて、「それは新しい文字に翻訳されるということです。」と、訳されている。まず、「新しい」と訳されいてる "new" の方だが、この文脈では「新鮮な」とか「新規の」と云う語感よりも、「別の(者/物に更新)」と云う語感に近い ("Rachel has a new boyfriend." --COBUILD English Dictinary for Advanced Learners 3rd ed. "new:3") 。

また "sometimes" は、文の "sometimes" 以外の部分で表現されている事実が「起こる場合がある」と云うことを意味する。これを、Nishiyama 訳は無視しているため、「バックスラッシュ記号と他の文字が並んでいたら、それは新しい文字に翻訳されるということです。」は、直後にある、実際に \ がエスケープするのが「アポストロフィ記号とバックスラッシュ記号それ自身です。」と、文脈が繋がらなくなってしまっている。 更に、原文を読めば分かるように、後の方の文は、"The only things..." とあって、エスケープされるのが、この二つ「だけ」であることが明確に書いてあるが、これも Nishiyama 訳は無視してしまっている。もし、「だけ」を翻訳に入れたら、自家撞着ぶりはヨリ明確になっていたろう。

纏めると、次のようになるだろう:

In other words, if you have a backslash and another character, they are sometimes translated into a new character. The only things the backslash escapes, though, are the apostrophe and the backslash itself.
これは、つまり、バックスラッシュの後に文字があった場合は、それらの2文字は、改めて別に1文字として扱われることがあると云うことです。もっとも、バックスラッシュがエスケープする文字は、アポストロフィとバックスラッシュ自身とだけなのですが。

まぁ、原文の説明も歯痒いところがある。バックスラッシュがアポストロフィから制御コード性を剥奪することを明示的に書いた方が良かったのではないか。


|
|

« 『孟子荀卿列伝』に就いて | トップページ | ロシア語で「チョコレート」 »

ネット/ソフト/サイト」カテゴリの記事

翻訳」カテゴリの記事

英語/English」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/40172/17285383

この記事へのトラックバック一覧です: メモ:「プログラミング入門 - Rubyを使って」:

« 『孟子荀卿列伝』に就いて | トップページ | ロシア語で「チョコレート」 »