Skip to content

Commit

Permalink
Added translator's note; Miscellaneous fixes.
Browse files Browse the repository at this point in the history
  • Loading branch information
hiroshi-manabe committed Oct 20, 2015
1 parent 7b78af7 commit 29d0161
Showing 1 changed file with 89 additions and 8 deletions.
97 changes: 89 additions & 8 deletions src/jsicp.tex
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,7 @@
\vspace{1.26em}
\noindent
日本語: by \href{http://github.com/minghai/sicp-pdf/}{minghai} based on 2.andresraba5.2 (March 31, 2014).
Decent Japanese version by \href{http://github.com/hiroshi-manabe/sicp-pdf/}{Hiroshi Manabe} based on 2.andresraba5.2 (October 12, 2015).

\end{small}

Expand Down Expand Up @@ -525,7 +526,88 @@ \chapter*{非公式日本語版}
\chapter*{非公式日本語版 翻訳改訂版}
\addcontentsline{toc}{chapter}{非公式日本語版 翻訳改訂版}
\label{Unofficial Japanese Edition Revised Translation}
当面、非公式日本語版をもとに改訂作業を進めています。作業が終わり次第、翻訳改訂版についてのコメントを加える予定です。

この翻訳改訂版は、minghai氏の非公式日本語版(以降、minghai氏版)のあまりにも惨憺たる翻訳を見かねて、
原著から翻訳をし直したものです。この翻訳を進めるにあたっては、minghai氏版の訳を置き換えていくと
いうやり方で進めていきました。しかし、差分を取ればわかっていただけると思いますが、minghai氏版の
テキストは痕跡を留めていないはずです。この方式を採ったのは、``そびえ立つクソの山''を少しずつ
置き換えていくことによってやる気を出すという、主にモチベーション上の理由によるものです。
もしminghai氏版の痕跡が(誰が訳しても同じようになるものを除いて)あるとすれば、それは作業漏れが
残っているということですので、ご報告いただければ幸いです。

用語については、無用の混乱を避けるため、和田英一氏によるオンライン版\href{http://sicp.iijlab.net/}
{「計算機プログラムの構造と解釈」}(以下、和田氏版)にできるだけ追従するようにしました。
もちろん、訳文はすべて自分で一から作り上げたものです。用語の追従によって著作権やライセンス上の
問題が発生することはないと信じていますが、問題があるようであればお教えいただければと思います。

以下、minghai氏版に対して否定的なことを書くことになるため、人身攻撃をするつもりはない、
また人身攻撃と受け取られるような部分があれば真剣に対応するということをあらかじめ表明しておきます。

minghai氏版を見たときの衝撃は、これまでにも何回も受けたことのある種類のものでした。ちょっと原文と
比較するだけで、数限りなく致命的な誤訳が出てくる。またひとつ、とんでもない翻訳が世に出てしまった。
なぜこういう悲劇はなくならないのか……。

私はそれまでにも SICP という本については聞いたことがあり、一度はしっかり読んでみたいと思って
いたところでした。そこに出てきたminghai氏版がこの有様だったため、書籍のほかにオンラインでも
公開されている和田氏版に目を向けてみました。見ると、硬い印象の訳文で、すっと頭に入ってきにくい
ところはあるものの、真面目に時間をかけて読めば解読できるものでした。何より、(序文を除けば)致命的な
誤訳は多くありません。それだけでも、minghai氏版よりはるかに優れていることは明らかでした。
喩えるなら、和田氏版がこちこちに固くなった乾いたケーキだとすると、minghai氏版は柔らかい腐った
ケーキというところでしょうか。

私としては、もしminghai氏版がなければ、和田氏版の訳書を購入して勉強して、それで済ませていたはずの
ところです。訳文は硬いとはいえ読めないことはなく、英語で読むよりは速く進められそうでした。
ほかのこなれていない訳書同様、不満を持ちながら読み、それで終わりだったはずです。

しかし、minghai氏版が出てきたことで、状況は大きく変わりました。minghai氏版は無料のPDFなので、
有料の書籍とオンラインHTMLという和田氏版よりアクセスが容易です。さらに、和田氏版は(Amazonの
レビューにもあるように)翻訳の評判がよくありませんが、minghai氏版はですます調で一見親しみやすく、
中身が腐っていることがすぐにはわかりません。

これでは、SICPの評判を聞いて勉強しようとした人が、minghai氏版に流れてしまうのではないか。
私のその危惧は、Twitterのタイムラインで現実化していました。タイムラインでもminghai氏版に手を
伸ばそうとしている人がいたため、和田氏版をお勧めしておきました。もちろん、その人は氷山の一角で、
実際には少なからぬ人たちがminghai氏版に流れていることは確実でしょう。

文体が硬くて意味の取りにくい翻訳の場合、もたらす被害は限られています。訳文が直訳調で読みにくければ、
読者はなんとか読み解く努力をするか、読むことをあきらめて訳者を責めるか(これはAmazonレビューで
起こっていることです)のどちらかの行動を取るでしょう。後者の人に対しては(有料で購入した場合)
金銭的な損害を与えているかもしれませんが、それがすべてです。どうしても読みにくければ、原文で読む
ことになるでしょう。いずれにせよ、翻訳が存在しなかった場合以上の害悪はありません。

しかし、表面上読みやすそうな腐った翻訳は、はるかに深刻な害悪をもたらす可能性があります。
実際には誤訳のために訳文が意味不明になっているだけなのに、理解できないのは書いてある内容が
難しすぎるためだ、それを理解するだけの頭脳が自分にないためだ、と読者は思い込んでしまうかも
しれません。それだけはどうしても避けたいところです。

それらのことを考え合わせた結果、SICP を原文から翻訳しながら勉強していくことにしました。
始めたとき、毎日一時間というペースで進めていくと決め、数日間やってみた進捗状況から翻訳が
終わるまでの期間を見積もったところ、どうやら一年ぐらいかかりそうだとわかりました。一年と
いうのは長い時間です。心がくじけそうになりつつも、ミヒャエル・エンデの「モモ」を思い出し、
その日その日の分だけを考え、続けていきました。毎日夜9時からを定刻としていたため、Twitterでは
「時報」と言ってくれる人もいました。

そして先日、ようやく翻訳とチェック作業が終わりました。期間は予定通り一年程度でした。勉強を
兼ねての翻訳だったため、中身を理解しながら、練習問題もできるだけ(といっても、\link{第3章}の
途中あたりでリタイアしましたが)解いていきました。前評判に違わず、SICPの内容はとても充実して
いました。翻訳前に危惧していたような、「この時間で何ができたか」と後悔するようなことには
ならずにすみました。

もちろん、私のこの翻訳が完全だとは思っていません。しかし、致命的な誤訳が何百箇所もあって
どこから手をつけていいかもわからないような``そびえ立つクソの山''でないことは保証します。
この本の内容が理解できないとすれば、それは翻訳がおかしいからではありません。もちろん、
内容が難しすぎるためでも、それを理解するだけの頭脳がないためでもありません。足りないのは
時間をかけた読み込みです。じっくりと一文一文の意味を考え、サンプルコードを動かし、できるだけ
練習問題を解いていけば、それで十分です。この本は、読者を置き去りにしようとするような本では
ありません。

最後に、日本語版のテンプレートを提供していただいたことについて、minghai氏に深く感謝します。
minghai氏の日本語版テンプレートがなければ、私の{\TeX}や{\LaTeX}についての限られた知識では
日本語訳を行うことはできなかったでしょう。

それでは、SICP日本語版をお楽しみください。

真鍋宏史

%============================================================================================================

Expand Down Expand Up @@ -1432,11 +1514,11 @@ \subsection{組み合わせの評価}
評価しなければいけないことになります。このことを奇妙に思われるかもしれません。
この時点では、左端の要素というと、\code{+}や\code{*}といった、足し算やかけ算のような
組み込みの基本的な手続きを表す演算子でしかありえないからです。のちに、
演算子がそれ自身組み合わせ式であるような組み合わせを使うことが便利だということを
演算子がそれ自身複合式であるような組み合わせを使うことが便利だということを
学びます。}


再帰という考えが、深くネストした組み合わせ式をどれだけ簡潔に表現できるかという
再帰という考えが、深くネストした複合式をどれだけ簡潔に表現できるかという
ところに注目してください。再帰がなければ、かなり複雑な手続きになるところです。
例えば、次の式の評価する場合について考えます。

Expand Down Expand Up @@ -1829,8 +1911,7 @@ \subsection{条件式と述語}

この時点で私たちが定義できる種類の手続きは、表現力がとても乏しいものです。
というのは、検査を行う方法がなく、また検査の結果によって異なる演算を行う
ということもできないからです。例えば、次のような規則に従って、
数値が正か負かゼロかを検査して絶対値を求めるという手続きを定義することはできません。
ということもできないからです。例えば、次のような規則によって数値が正か負かゼロかを検査して絶対値を求めるという手続きを定義することはできません。
\begin{comment}

\begin{example}
Expand Down Expand Up @@ -1903,7 +1984,7 @@ \subsection{条件式と述語}
真か偽のどちらかを返す手続きについても使われます。絶対値の手続き\code{abs}は、
\code{>}, \code{<}, \code{=}という基本述語を使っています。
\footnote{\code{abs}は、このほかに``マイナス''演算子\code{-}も使っています。
これは、\code{(- x)}のように被演算子をひとつ取り、符号の反転を表します。}
これは、\code{(- x)}のようにひとつの被演算子とともに使われる場合、符号の反転を表します。}
これらは、二つの数値を引数として取り、最初の数が二番目の数に比べて
大きいか、小さいか、同じかという検査を行い、その結果に従って真か偽かを返すというものです。

Expand Down Expand Up @@ -2157,7 +2238,7 @@ \subsection{例: ニュートン法による平方根}
普通、命令的な(どうやるか)記述が関心の対象です。
\footnote{宣言的記述と命令的記述は、数学とコンピュータサイエンスのように
密接に関係しています。例えば、プログラムによって計算された答えが``正しい''か
どうかを決めるには、そのプログラムについての宣言的な文を作ります
どうかと言うことは、そのプログラムについての宣言的な文を作るということになります
これまでに、プログラムの正しさを証明する技術を確立することを目的とした膨大な量の
研究がありますが、このテーマの技術的な難しさは、命令的な文(それによってプログラムを
構築する)と宣言的な文(物事を推理する)との間の移行について、うまく折り合いをつける
Expand Down Expand Up @@ -2282,7 +2363,7 @@ \subsection{例: ニュートン法による平方根}
例えばCやPascalで書けるようなものであれば、どんな純粋な数値計算のプログラムでも
書けるということを示しています。コンピュータに何かを繰り返し実行させる繰り返し(ループ)と
いう構造をこの言語に組み込んでいないことを考えると、これは驚くべきことのように
思えるかもしれません。その一方で、\code{sqrt\-/iter}は、繰り返しを達成することは
思えるかもしれません。しかし、\code{sqrt\-/iter}は、繰り返しを達成することは
手続きを呼ぶという通常の能力だけでできるということの実例となっています。
\footnote{繰り返しを実装するために手続き呼び出しを使うことの効率の問題について
心配されている読者の方は、\link{1.2.1節}の``末尾再帰''についての説明を見てください。}
Expand Down

0 comments on commit 29d0161

Please sign in to comment.