K&R2の日本語訳について(第4章)
\documentstyle[ASCMAC,a4j,12pt]{jarticle}
\pagestyle{plain}
\begin{document}
\title{K&R2日本語訳訂正表}
\author{第4章}
\date{}
\maketitle
82 ページ,
3 行目,
「プログラム各部の操作の詳細部」
の私訳
「操作の詳細を,それを知る必要のないプログラムの部分から」。
「細部について知らなくても」は不要。
7 行目,
「便利さに応じて」は不要。
「一つあるいはそれ以上」は「一つあるいはそれより多くの」。
9 行目,
「関数」は「ライブラリ関数」。
15 行目,
「引数を適当にしておけば」は「引数をきちんと宣言しておけば」。
「必要な型変換」は「適当な型変換」。
\vspace{3mm}
83 ページ,
1 行目,
「マクロ拡張過程」は「マクロ展開プロセス」。
4 行目,
「UNIX ユーティリティ・プログラム」の「ユーティリティ」
は原文にない。
$-$8 行目,
「最少限」は「最小限」。
$-$1 行目,
「このインデックス」の「この」は不要ではないか。
\vspace{3mm}
84 ページ,
3 行目,
このあとに,原文ではカッコにくくられた文があるが,訳されて
いない。
私訳「標準ライブラリには,{\tt strindex} に似た関数 {\tt strstr} があるが,
これはインデックスの代わりにポインタを返す」。
8 行目
「新しい形」は「やや違った形」。
\vspace{3mm}
85 ページ,
ほぼまん中,
「これからもわかるように」は,原文になし。
$-$11 行目,
この後に,一つの文が訳からもれている。
私訳「戻り値の型が省略されれば,{\tt int} と仮定される。」
$-$10 行目,
行頭に,もう一文,もれている。
私訳「プログラムは,変数と関数の定義の集まりにすぎない。」
$-$1 行目
「必要がなければ」は不必要?
\vspace{3mm}
86 ページ,
5 行目,
「関数で返されない値は」は
「関数が値を返さなければ,``値'' は」。
14 行目,
「目的プログラム」は「オブジェクトコード」。
16 行目,
「そのファイル…」は
「そのファイルだけを再コンパイルし,
結果を前のオブジェクトファイルと共にロードすることができる」。
$-$8 行目,
「この {\tt cc} コマンド」の「この」は不要だと思う。
$-$7 行目,
「使っている」は「使う慣習である」。
演習 4-1,
「見つからなければ $-1$ を返す」が抜けている。
$-$2 行目,
「特殊関数」は,数学用語の特殊関数とは違うようなので,
何か別の訳語がほしいところである。
\vspace{3mm}
87 ページ,
4 行目,
「これは」は「この版は」。
6 行目,
「宣言する」は「宣言されている」。
7 行目,
「{\tt atof} 自身は {\tt int} でないので」とあるが,
原文は「{\tt atof} の返り値は {\tt int} でないので」だと思う。
$-$5 行目,
「非整数値」は「{\tt int} でない」。
$-$3 行目,
「向いているだけの」は,
原文では barely が使われているので,
もっと否定的なニュアンスだと思う。
「しか向かないような」?
\vspace{3mm}
89 ページ,
$-$6 行目,
「を本当にやるのだ」の原語は intended なので,
「は意図されたものである」くらいの感じ?
演習 4-2,
最後の部分は,「……,{\tt e} または {\tt E} およびオプションで
符号のつく指数がついてもよいとする。」か?
\vspace{3mm}
90 ページ,
$-$2 行目,
「以前よりもよりよい電卓プログラムをもう一つ書くことである。
このため,{\tt +}, {\tt -}, {\tt *}, {\tt /}, {\tt =} (答を印字するため)
を許すことにする」は
「演算子 {\tt +}, {\tt -}, {\tt *}, {\tt /} の使える
電卓プログラムを書くことである」。
({\tt =} が使えないことは、プログラムを見れば明らか。)
\vspace{3mm}
91 ページ,
2 行目,
「カッコを使わず」は「中置記法でなく」。
3 行目,
「ポケット電卓で」は
「ある種のポケット電卓や,Forth や Postscript のような言語で」。
4 行目,
「カッコ付き」は「中置記法」。
11 行目,
「きわめて簡単」は「単純」。
16 行目,
「この」は不要?
\vspace{3mm}
92 ページ,
1 行目,
「並べて」は「くりかえして」。
この文の次に,文が一つ抜けている。
「そして,次の演算子または被演算数をとってくる別個の関数があるべきである」。
6 行目,
「プッシュとポップという言葉のみを考えればよい」は,
「プッシュとポップをしさえすればよい」?
7 行目,
「スタックとそれに関連する情報は外部変数とし,…」は,
「スタックとそれに関連する情報は,
{\tt push} 関数と {\tt pop} 関数からはアクセスできるが,
{\tt main} からはできないような外部変数にする」。
$-$12 行目,
「あるいはそれ」は不要。
$-$7, $-$6 行目,
プログラムが違っている。
\begin{verbatim}
#include
#include /* atof() のため */
\end{verbatim}
が正しい。
\vspace{3mm}
94 ページ,
4 行目,
「スタック・ポインタ」でもよいが,
直訳は「次の空いているスタック位置」。
5 行目,
value stack は,「値のスタック」でいいのだろうか?
14 行目,
「スタックをポップし,一番上の値を返す」は
「スタックの一番上の値をポップして返す」。
$-$11 行目,
「本体以外で」は「外で」。
$-$9 行目,
「その表現は注意深く隠されているのである」は
「その表現は隠しておくことができる」(よくわからない)?
$-$4 行目,
「返せばよい」は「返す」。
\vspace{3mm}
95 ページ,
1 行目,
「数値の被演算数」は,おかしいと思う。
「被演算数」でよい?
$-$13 行目,
「このため,…」の一文は,違っていると思う。
私訳「しかし,その時には,プログラムは一文字読みすぎているのである。
その文字は,まだ読まなくてよい文字である」。
$-$1 行目,
「このバッファの中には」は,in the buffer のかかり方を誤解していると思う。
私訳
「バッファの中での現在の文字の位置を記録するインデックス変数も必要である」。
\vspace{3mm}
96 ページ,
2 行目,
「呼び出しの」は「呼び出しと呼び出しの」。
$-$12 行目,
私訳「押戻しに,単一の文字でなく,配列を使った」。
演習 4-3,
「これに…」は
「モデュロ(\verb"%")や負数が使えるようにせよ」。
(余計なことですが,負数のモデュロはどうするんでしょう?)
演習 4-4,
私訳
「ポップすることなくスタックの一番上の要素を印字するコマンド,
それを複製するコマンド,トップの二つの要素を交換するコマンドを
つけ加えよ」。
演習 4-6,
「与える」は,「使えるようにする」? %
「最近に」というと,あいまいな気がする。「最後に」? %
「印刷」は「印字」? %
\vspace{3mm}
97 ページ,
演習 4-10,
二つの文の間に
「こうすれば {\tt getch} と {\tt ungetch} は不要である」
がはいる。
13 行目,
「どのような」は「どのように」。
$-$9 行目,
「定義される」は「使える」。
$-$6 行目,
「引数」は「パラメータ」。
(原語 parameter(s) は,32 ページでは,そう訳されている。)
$-$5 行目,
「宣言された点からコンパイルされているファイルの終わりまで続く」。
$-$4 行目,
「は一つのファイルの中で上に示した順序で定義される。つまり」
は
「が一つのファイルの中でこの順序で定義されるなら,つまり」
か?
\vspace{3mm}
98 ページ,
4 行目,
「{\tt val} と {\tt sp}」は「{\tt sp} と {\tt val}」。
6 行目,
「そうである」は「見えない」。
7 行目,
「異なる」の前に
「外部変数が使われているソースファイルとは」を入れる。
9 行目,
「型やサイズなど」は「第一に型」。
$-$3 行目,
段落が一つ抜けている。
「外部変数の初期化は,定義のところでのみ可能である」。
$-$4 行目,
「さて」は不要。
\vspace{3mm}
99 ページ,
10 行目,
字下げ不要。
11 行目,
「当てはまる」は「適用される」。
12 行目,
「一つのファイルでの使用の後に」
は
「,一つのファイルで,それらの使用の後に」
の意か?
\vspace{3mm}
100 ページ,
$-$5 行目,
organization が「ファイル」と訳されているが,いいのか?
$-$1 行目,
私訳「それぞれのソースファイル内の関数が内輪で使用するためのもので」
\vspace{3mm}
101 ページ,
3 行目,
「外部的に {\tt static} な変数は」は「外部的な {\tt static} 変数は」。
5 行目,
「衝突を避けるために」は,原文にない。
7 行目,
日本語訳の読者は「静的 = {\tt static}」ということがわかるだろうか? %
「付けて」は「前に付けて」とする。
8 行目,
「,一つのファイルにコンパイルされると」は
「一つのファイルに収められていて,コンパイルされると」の意?
$-$11 行目,
「外部的な static 宣言」は,原文でも意味がよくわからない。
「外部的かつ static と宣言すること」の意?
$-$5 行目,
「行ったり来たり」は原文では coming and going だが,
意味は「生まれたり消えたり」だと思う。
$-$4 行目,
「単一の関数」は,何かしっくりしない。「その関数」ぐらいの感じ?
\vspace{3mm}
102 ページ,
9 行目,
行末近くの「宣言は」は原文にない。
$-$2 行目,
「右大カッコがくるまで」は「対応する」を前に補う。
\vspace{3mm}
103 ページ,
6 行目,
「プログラム中の他の」は「ブロックの外の」。
7 行目,
「初期化された」は「初期化される」?
8 行目,
「これに対し」は原文にない。
9 行目,
「のである」は不要。
$-$12 行目,
「整数」は「{\tt int}」。
$-$4 行目,
「値は」は「初期値は」。
$-$2 行目,
「宣言するときは」は「宣言するときに」。
「定数式」は「式」。
\vspace{3mm}
104 ページ,
4 行目,
「コンパイル時に」は「プログラムの実行前に」。
7 行目,
「前もって決まっていて正しいものであれば」は,原文と合わないと思う。
「前に定義されている値,さらには関数呼び出しも含む,任意の式でよい。」
$-$9 行目,
字下げ不要。
「どちらを好むかは」の次に「多分に」を入れる。
$-$6 行目,
「一方」は原文にない。
$-$1 行目,
「指定した」の前で段落を変える。
\vspace{3mm}
105 ページ,
2 行目,
「途中の配列要素」は「手前の値」。
3 行目,
「残念ながら」は原文にない。
$-$15 行目,
この一文は余分。
$-$13 行目,
「任意の先行する文字」とは何か? %
意味からすると,二ケタ目以上の部分,ということのようだ。
$-$12 行目,
「後尾の数字」は「最後の数字」?
\vspace{3mm}
106 ページ,
4 行目,
「例えば」は「それゆえ」。
5 行目,
「{\tt n = 123} を持つ」は「引数 {\tt n = 123} を受け取る」。
\vspace{3mm}
107 ページ,
12 行目,
ここでは「ツリー」という語が使われているが,
6.5 では「木」である。
4-12,
「演算」は「演習」。
$-$10 行目,
「コンパイレーション」は「コンピレーション」?
\vspace{3mm}
108 ページ,
$-$7 行目,
「行の後に置く」は「行の残りの部分である」。
$-$4 行目,
ここでは,token(s) が「文字記号」と訳されているようだ。
110 ページの最終行も同様。
\vspace{3mm}
109 ページ,
4 行目,
「呼び方」は「呼び出し」?
13 行目,
この max は,フォントが違っている。
「{\tt max}」とすべきである。
\vspace{3mm}
110 ページ,
5 行目,
「引用符付きの文字列の中には仮引数は入れられない」は
「仮引数は,引用符つきの文字列の中では置換されない」。
6 行目,
「パラメータを実引数で置き換える形で,引用符付き文字列に展開される」は
私訳
「パラメータを実引数で置き換え,引用符で囲んで文字列としたものに展開される。」
\vspace{3mm}
111 ページ,
演習 4-14,
「{\tt int}」は,取りのぞく。
9 行目,
「まず \verb"#if" 行で」は「\verb"#if" 行は」。
10 行目,
「後続する行」の「行」が,lines と複数であることが,訳文の
読者にわかるだろうか? 私の感覚では,次の一行だけが思い浮か
んでしまう。むしろ,「後続する部分」?
$-$4 行目,
「含ませる」の原語は include である。「インクルードさせる」の意?
$-$2 行目,
私訳:「次の一連は,名前 {\tt SYSTEM} をテストし,どのバージョン
のヘッダをインクルードするかを決定する。」
\vspace{3mm}
112 ページ,
11 行目,
字下げする。
「\verb"#ifdef" 行,\verb"#ifndef" 行は,名前が定義されているかどうかを
テストする特別な形である」。
(「ここで」って,どこなんだよー!)
\begin{flushright}
岩瀬順一
\end{flushright}
\enddocument