岩瀬順一の「K&R2 の日本語訳を読む 1.2」

10 ページ

11 行目。 「次のプログラムは(中略) 華氏の温度と摂氏の温度との次のような対応表を印字するプログラムである」 は原文どおり訳せば 「次のプログラムは(中略) 華氏の温度とそれに対応する摂氏との下のような表を印字する」。

-4 行目。 原文はここで段落を変えていない。

-3 行目。 hello, world は二重引用符で囲む。 ただしこの二重引用符はタイプライター体ではない。

11 ページ

2 行目。 「摂氏-華氏」は「華氏-摂氏」。

プログラムの次の行。 「最初の1行」とあるが原文は The two lines である。 「二行」。

その次の行。 「摂氏-華氏温度対応表」とあるが上のプログラム内では 「摂氏-華氏対応表」。

-13 行目。 「このプログラムでやることを」は「このプログラムの行なうことを」。 「説明するものとなっている」は「説明している」。

-12 行目。 「こうした文章」は Any characters だから「すべての文字」。 「無視される。したがって、コメントは」は 「無視されるので、」でいいのでは?

-11 行目。 「入れる場合は、〜が書けるところならばどこでもよい」 の「入れる場合は」は原文にあるようには思われない。 「コメントは〜が書けるところならばどこにでも置ける」。

-9 行目。 「すべての」はゴチにしない。 「Cでは,すべての変数は, 一般的に使う前に, 普通は関数の始めの実行可能文の前のところで宣言しておかなければならない」 は 「Cでは,すべての変数は使う前に宣言しなければならない。 普通,宣言は関数の先頭,全ての実行可能な文の前で行われる」。

-8 行目。 「宣言は変数の性質を告げるためのもので」 の「ためのもの」は原文にない。

-4 行目。 「型の名前」は「型名」のほうがいいかもしれない。 「ここで」は原文にない。

-3 行目。 「整数」は原文では強調されていない。 「また」の原語は by contrast with なので「対照的に」?  「小数部をもつ数」は「小数部分をもつかもしれない数」。 そうでないと整数は float に格納できないことになる。

-2 行目。 「使用する特定の計算機」の原文は the machine you are using であるから 「使っている計算機」とする?  「左右される」でもいいかもしれないけれど depends だから「依存する」 でいいのでは?

-1 行目。 「-32768 ないし 32767 の間にある」は「ないし」の使い方がおかしい。 「-32768 と 32767 の間である」でよいだろう。 「よく使われる」と書くと、プログラマが使えるようにも読める。 「よく見かける」? 「32 ビットの int が普通であるのと同じくらい 16 ビットの int も普通」と言っているのか?

12 ページ

1 行目。 「もある」ではなく「もよくある」? 「一方」は原文にない。 「有効桁数」は「有効数字」が普通では? 原文も significant digits だし。

2 行目。 magnitude を「大きさ」と訳しているが、「絶対値」かもしれない。

11 行目。 「さて」は原文にない。 「実際の」は原文にない。 「代入文」は原文がイタリックだから 「代入文」とすべきだろう。

16 行目。 「これで変数には初期値がセットされる」 は 「これで変数は初期値にセットされる」。

「個々の文の終りはセミコロンで区切っておく」 は原文どおり 「個々の文はセミコロンで終わる」としないと、 セミコロンが文の一部であることがはっきりしないと思う。

18 行目。 「同じ式で計算されるから」は is computed the same way なので 「同じやり方で〜」。

「出力行ごとに1回繰り返すループ」だと 「『1回繰り返す』って変では?」と思われそうだ。 「出力行ごとに一回ずつ繰り返すループ」とすれば 「〜ごとに〜ずつ」の構文であることがわかりやすいと思う。 「〜を使うのがよい」は we use だから「のがよい」が余分。

19 行目。 「while 文」は while loop だから「while ループ」。

-8 行目。 「まず」は原文になし。

-7 行目。 「大カッコ」のあとの「{}」は原文にない。 「すべての文」は the three statements だから「三つの文」。

-6 行目。 「再チェックされ」は re-tested だから「再テストされ」。 「ループ本体」は the body だから「本体」。

-5 行目。 「テスト結果」は the test だから「テスト」。

-2 行目。 「while ループの本体は, 温度換算プログラムでみたように大カッコで囲まれた1個以上の文, あるいは

    while (i < j)
        i = 2 * i;
のように大カッコのない一つの文でもよい」 は前半の「1個以上の文」までが後半にどう続くのかがわかりにくい。 せめて「1個以上の文」のあとに「でも」を入れることで「〜でも、〜でもよい」 の構文をはっきりさせるか、 あるいは「1個以上の文でもよいし」とする。 なお、「1個以上の文」「一つの文」の違いはよくわからない。 後者の原文は a single statement なので、 「一つ以上の文」「単独の文」ぐらい?

13 ページ

3 行目。 「while で制御される文」はややわかりにくい。 原文が the statements controlled by the while loop だから「〜に支配される文」?

4 行目。 「tab ストップ」 は 「タブストップ」。

6 行目。 「強調するのによい」とあるが「のによい」は原文にはない。

「Cでは文の位置はどこにあろうとまったくかまわないが」 とあるが、「位置」が「どこにあろうと」はおかしい。 原文は C compilers do not care about how a program looks だから 「Cコンパイラはプログラムがどう見えようと問題にしないが」?

7 行目。 「空白のスペース」とは何か? 原文は spacing だから「字間を空けること」。 「を利用すること」は原文にはない。 「不可欠」の原語は critical だから「重大」ぐらいか。 「プログラム読みやすくするのに」で、原文の for people が訳されていない。

8 行目。 「(普通は)」は原文に見あたらない。

9 行目。 「演算子のまわりに空白を残す」は using blanks around operators to clarify grouping なので 「グルーピングをはっきりさせるため演算子のまわりに空白をおく」。 「大カッコの位置に凝る人もいるが」は people hold passionate beliefs なので直訳すれば 「人々は情熱的な信念を持っているが」。

10 行目。 「好まれている」よりは「よく使われている」。

12 行目。 「さて,先の例では」は原文になし。 いきなり「仕事の大部分はループの本体で行なわれる」 では唐突だと思ったのだろうか。 原文では loop に定冠詞 the がついているので、「そのループ」とすれば。

13 行目。 「式」の原語は statement だから「文」。 「次の文で計算されて」の次にカンマがきて切れるのが不自然なら 「次の文で計算され変数 celsius に代入される」とすればよい。

15 行目。 「ここで」は原文にない。 これを消すと次の 「単に 5/9 を掛ける代わりに」のあとのカンマも消したくなる。 そのほうが口調がいい(ようだ)。

16 行目。 「小数部が切り捨てられてしまうからである」の「〜てしまう」は原文にない。

18 行目。 「もちろんすべての摂氏温度がゼロになってしまう」の「もちろん」 「〜てしまう」は原文にない。 would be reported as zero だから 「すべての摂氏温度がゼロと報告されるだろう」。

-9 行目。 「実際には」は原文にない。 「書式変換関数」は output formatting function である。 formatting を「書式変換」と訳したのであろうか。 output が抜けている。

-8 行目。 「ここでは」は原文にない。

% 記号はそれぞれ他の(第2,第3,……の)引数の一つをどこに代入すべきか、 それをどんな形で印字すべきかを示している」だが、 「一つを」と言うと「一つだけ」を選んで代入するように思われる可能性がある。 「代入すべきか」の原語は substitute なので assign とは違う。 「各 % は, 他の(第二,第三,……の) 引数で置き換えるべき箇所と, それらの印字されるべき形式とを示している」 ぐらいか?

-6 行目。 「%d は整数の引数を表わすから」は「特定するから」。 あるいは「引数が整数だと特定するから」。

-2 行目。 「printf の最初の引数では,おのおのの % 記号は, それに対応する第2,第3などの引数と対になっている」は 「printf の第一の引数の % 構文は, それぞれ対応する第二,第三などの引数と対になっている」。

14 ページ

1 行目。 「意味のない答えが」は「間違った答えが」。

2 行目。 「ではない」はゴチにせず。

7 行目。 「ここでは」は原文になし。

9 行目。 「第7章の」は原文にない。

11 行目。 「さて」は原文になし。

14 行目。 「よく,それで」は原文になし。

16 行目。 「数字」は「数」。二箇所ある。

-7 行目。 「-17.8 ℃」の前に「約」「およそ」などを補う。 原文は「-17」であって「-17 ℃」ではない。

-6 行目。 「整数の代わりに,浮動小数点演算を使うべきである」は we should use floating-point arithmetic instead of integer なのでこれで正しいが、 integer のあとには arithmetic が省略されている。 翻訳で順序が逆になるなら、 「整数演算の代わりに浮動小数点を使うべきである」 とあとから出てくるほうを省略すべきではないだろうか?

-3 行目。 「摂氏-華氏温度対応表」は「華氏-摂氏〜」。

15 ページ

プログラムの次から数えて 1 行目。 「ただ」は原文になし。

プログラムの次から数えて 2 行目。 「変換の公式もより自然な形に直してある」は 「変換の公式はより自然なやりかたで書いてある」。

プログラムの次から数えて 4 行目。 「定数の中の小数点は浮動小数点を表わすから」とあるが、 これを読むと “小数点に浮動小数点とそうでない小数点とがあるのか?” と思ってしまう。 「それが浮動小数点数であることを表すから」。

-11 行目。 「整数値をもつことがわかっている場合でも」は 「整数値をもつ場合でも」。

-10 行目。 「浮動小数点定数に明示的に小数点を付けて書くのは」とあるが、 これを読むと “浮動小数点定数に小数点を付けないで書く方法があるのか?” と思ってしまう。 「明示的に小数点をつけた浮動小数点定数として書くことは」。 「それが浮動小数点数であることを」は 「それが浮動小数点数であるという性質を」。

-9 行目。 「ためである」は原文になし。

-8 行目。 「整数が浮動小数点数に変換されるときの詳しい規則」は The detailed rules for when ... だから 「整数がいつ浮動小数点数に変換されるかの詳しい規則」。 (変換されると決まったら規則はほぼ自明である。)

-5 行目。 「代入文」は「代入」。

-3 行目。 「自然な形で行われる」は「〜うまくゆく」? 「処理」は「操作」。

-1 行目。 「次に」は原文になし。 「変換指示子」は conversion specification だから「変換指示」?

16 ページ

1 行目。 「印字すべきことを表わす」は「印字せよと言っている」。

2 行目。 「しかも」は原文になし。

3 行目。 「するための指示である」は「せよと記述している」。 「これで」は原文になし。

8 行目。 「変換仕様」は「指示」。 「% は数が少なくとも6文字幅であることを表わす」は 「〜数は少なくとも六文字幅であると言っている」。

10 行目。 「%f」の前の and が訳されていない。

17 行目。 「さらに,printf では〜という区別が行なわれる」は Among others, printf recognizes ... だから 「printf は〜などを受けつける」ぐらいではなかろうか。 もしこうするなら「%o は8進」などは 「八進を表わす %o」としなければならない。


Iwase Zjuñici (岩瀬順一) 2001-10-21 (0) 22:42:04 +0900