K&R2(訳書訂正版)の訳文について

「プログラミング言語C第2版ANSI規格準拠(訳書訂正版)」(共立出版)の訳文について

気のついたところからぼちぼち書きます。いつまでかかるかはわかりません。

扉の裏

3行目、「The Cprogramming language」は「The C programming language」とする。

まえがき

2行目、「Cプログラミング言語」は「プログラミング言語C」とする。 これは本書の第1版のタイトルであり、同じ訳者によってこう訳されている。

第2章

2.5 算術演算子

50 ページ 18 行目、「うるう年(leap)」は「うるう(leap)年」。 "leap" 単独では「うるう年」という意味はもたないようである。

51 ページ 1 行目、「ところで」は原文になし。 「+と−は同じ優先度をもつが」の前に「二項の」を補う。 (原文では「−」のあとに「演算子」という語がはいっているが、 これは訳さないほうがよいと判断したのだろう。)

51 ページ 2 行目、「単項演算子の」は「単項の」。 「算術演算子は左から右へまとめられて評価される」は 「算術演算子は左から右へと結合する」。 たとえば a - b - c(a - b) - c であって a - (b - c) ではない、という意味だろう。 数学において (a + b) + c = a + (b + c) のような規則を結合法則(associative law)というので、 私訳では associate を「結合する」としてみた。 (なお、4 行目では associativity が「結合規則」と訳されている。)

第5章

5.3 ポインタと配列

119 ページ 5 行目、「次の宣言」から段落が変わる。

119 ページ 7 行目、「ものである」は不要。

119 ページ 9 行目、「先頭から」は原文になし。

119 ページ 9 行目、「pa が整数へのポインタだとすると,int *pa; と宣言され」は 「paint *pa; と宣言された整数へのポインタだとすると」。 あるいは「pa が整数へのポインタ、すなわち int *pa; と宣言されているとすると」。

119 ページ 14 行目、「a[O]」は「a[0]」。オウではなくゼロ。

120 ページ 2 行目、「一般に」は原文になし。 「pa+ipa の後の i 番目の要素を指すし」は 「pa+ipa から i だけ後の要素を指すし」のほうがわかりやすいかも。 そのあとも同様。

120 ページ 5 行目、「参照する。また」は原文通り「参照し、」でよいのでは?

120 ページ 7 行目、「当てはまる」は「正しい」。

120 ページ 11 行目、「インデックシング」は日本語としてはあまり使わないのでは? 「添字づけ」あるいは「添字」。 「非常によい」は「非常に緊密である」など。 上の「当てはまる」もそうだが、もっとピタッとはまる訳語があるのに使わないのはもどかしい感じがする。

120 ページ 12 行目、「配列」は「その配列」。 「番地」の原語は address で、ほかのところでは「アドレス」と訳されている場合もある。

120 ページ 14 行目、「と同義」は「の同義語」または「の別名」。 原語 synonym は名詞であるから。

120 ページ 15 行目、「代入式」は「代入」。 原語は assignment であって assignment expression ではない。 (後者も実在する述語である。A7.17 参照。)

120 ページ 17 行目、「さらに最初に見たとき驚くことは……という事実である」は 原文が Rather more surprising, at least at first sight, is the fact that ... だから 「驚くべきことに --- 少なくとも最初に見たときにはだが ---」ぐらいの感じか?

120 ページ 18 行目、「計算」は「評価」。 2.12 のセクション名では evaluate が「評価」と訳されているので同じであるほうがよいだろう。

120 ページ 19 行目、「この等式の両辺」は「この同等な両者」ぐらいの感じ。

120 ページ 20 行目、「は同じ」は「も同じ」。 「a のあとの i 番目の要素」 は原文では i-th element beyond a だが、 意味を考えれば 「a の次から数えて i 番目の要素」 ぐらいだろう。

120 ページ 21 行目、「式の中では添字でそれを使ってもよい」 は意味がとれない。原文は expressions may use it with a subscript だから 「式の中ではそれに添字をつけて使うことができる」ぐらいか?

120 ページ 22 行目、「ということになる」のあとは句点がきているが、 原文はセミコロン。それを訳文にも生かすなら、次の文の前に「すなわち」ぐらいをいれる? 「添字付き配列の表現」は原文では an array-and-index expression だから、 「『配列プラス添字』の式は」かもしれない。

121 ページ 23 行目、「として書くことができる」は「で書いたものと同値である」。 (こう言わないと逆について言及していないことになる。)

121 ページ 3 行目、「意味のある演算」は原語 legal であるから 「正しい」または「合法である」。 意味があるかどうかではなく、文法的に正しいかどうかがここでは問題なのである。 次の行では illegal を「正しくない」と正しく訳している。

121 ページ 5 行目、「先頭アドレス」は「先頭要素の位置」。

121 ページ 6 行目、「配列名のパラメータ」は「配列名パラメータ」のほうがよいと思う。

121 ページ 7 行目、「アドレスをもつ変数」は “それのアドレスを考えることができるような変数” の意味にとられるおそれがある。ここでの意味は「アドレスを格納している変数」である。

121 ページ 8 行目、「書いてみよう」は「書くことができる」。

121 ページ 17 行目、「ポインタ変数」は「ポインタ」。 「許される」は「完全に合法である」。

122 ページ 1 行目、「関数では……適当に判断して」は原文の the function can at its convenience believe that に当たるのだろうが、 この訳でいいのだろうか? 「適当に判断して」と言われると、 それはコンパイラが勝手にやってくれるという意味なのか、 判断するように関数を書けといわれているのか迷うと思う。 辞書を見ると at one's convenience は「都合のよいときに」の意味らしい……。

122 ページ 4 行目、「使うことで」は「渡すことで」。

122 ページ 9 行目、「サブ配列」の原語は 4 行目の「部分配列」のそれと同じく subarray である。

122 ページ 14 行目、「引数」は「パラメータ」。

122 ページ 15 行目のあとに、段落がひとつ抜けている。 試訳「後ろ向きの添字づけも、それらの要素が存在することが確かなら、可能である。 p[-1], p[-2] などは文法的に正しく、p[0] の直前の要素を指す。 もちろん、配列の境界の外にあるオブジェクトを指すのは非合法である」。

第7章

7.8 雑関数

7.8.2 文字クラスのテストと変換

202 ページ 30 行目、「……に使われる」は「……を行なう」。

202 ページ 31 行目、「cunsigned char あるいは EOF として表わし得る int である」は「cunsigned char として表わし得る int あるいは EOF である」。

203 ページ 15 行目、「ファイル fp へ文字 c または EOF を戻す」は「ファイル fp へ文字 c を押し戻し、c を返す。 エラーのときは EOF を返す」。

203 ページ 16 行目、「ungetc は、scanf, getc, getchar のような入力関数やマクロと共に用いてもよい」は 「ungetc は、scanf, getc, getchar のなどのいかなる入力関数とも合わせて用いることができる」だと思う。 どの入力関数で読み込んだ文字も押し戻せるし、 次にどの入力関数で読み出しても正しく読み出せる、の意味であろう。


すのもの 1999-03-27 18:45:00 +0900