サスマン、エイブルソン、サスマン:計算機プログラムの構造と解釈 第二版

おそるべき大学初年級の教科書

作成日: 2002-03-31
最終更新日:

概要

計算機プログラムについて、 関数型言語の立場でできるあらゆる可能性を追求した浩瀚な著。 MIT (マサチューセッツ工科大学)で教科書として使われていた。原題 "Structure and Interpretation of Computer Program" の頭文字をとった SICP という名前で知られている。

感想

まえまえから気になっていたのだが、C マガジン 2002 年 4 月号に きだあきら氏がこの本を推薦した書評を見て買う決心がついた。 Scheme という Lisp 系の計算機言語でできることの極限を解説した教科書である。

訳者はこの本についての Web ページ (sicp.iijlab.net)を出している。 そこには訳者が見つけた誤植がいくつかあげられていたが、この中に載っていない誤植もあった。 たとえば、奥付の発行所が「ピアソンエ・デュケーション」になっているが、 正しくは「ピアソン・エデュケーション」である。 もちろんこれは訳者の責任ではない。

誤植のことはともかくとして、 真面目に読んでいて演習問題も一部は解いている。 しかし、大変な本である。 2002 年にみたときは、Amazon での書評が(最低の)1か(最高の)5しかなかった。 2011 年現在でも1から5にまんべんなく分布している。 私には内容の価値がわからず、訳の生硬さだけしかわからない最低人間であるが、 せめて3になるように努力して読みこなすしかないようだ。 ちなみにわたしは、処理系には guile を使って確かめていたが、 いくつかうまくいかない問題がある。 gauche を使えばうまくいくのではないかと思っている。

それでも訳について

訳の巧拙についてインターネット上では意見が分かれている。私としては、こうしたほうがよいという案を提示する。 インターネットで公開されている原書 http://mitpress.mit.edu/sicp/ を参考にした。

訳語の選択

拡散

p.168 の 3.3.5 項は制約の拡散と訳されている。原題は Propagation of Constraints であるので、 制約の伝搬と訳すのがよいと思う。拡散は不可逆的現象で、元へ戻すことができない、という意味に取れる。 伝搬であれば情報が落ちることなくすべて伝わり、元へ戻すこともできる、という意味をもつ。 p.262 の 脚注 61 では、3.3.5 節の制約伝搬システムと訳されている。 なお、ニューラルネットワークにおける back propagation という用語は逆伝搬法と訳されていた。

直截

p.25 では再帰的アルゴリズムのように直截的には書くことが出来ない.とある。 原文は、this is not written down so straightforwardly as the recursive algorithm. とあるから、直截的には、というのは straightforwardly に対応する。ただ、 直截的(ちょくせつてき)という単語はあまり見ない。同じ読みなら「直接」のほうが多い。 ただ調べてみると意味が異なる。直截は、「回りくどくなく、ズバリと」との意味であるし、 直接は、「他者や他物をさしはさむことなく」の意味である。 直截の対義語が曖昧であるのに対し、直接の反対は間接となる。

この文からすれば「すっきりと」ぐらいがいいのかもしれないが、情緒的に過ぎるかもしれない。 なお、この原本には straightforward ということばは頻出するので、それに対応して直截的ということばもよく出てくる。 straightforward に当てる訳語として「素直な」「直接的な」「率直な」「正直な」「簡単な」「複雑でない」「明白な」 「明示的な」「端的な」「くだけた」「単刀直入な」 なども考えられる。

また、34 の脚注(p.23)では、in a straightforward way直接的な方法でと訳しているので、 訳者は特に「直截」と「直接」を特に使い分けはしていないと思える。

標準部品化力

modularity の訳語。近年何かと○○力という題名の本が多いことからすると、 この訳語はその先鞭なのだろうか。 現在、modularity はモジュール性と訳すのがふつうである。たとえば、 Wikipedia のモジュールの項参照。

ためこみ

accumulation の訳語。これはこれでよいと思うが、 accumulator はアキュムレータとしている。これを「ためこみ器」とか「ためこみ子」と訳すべきなのだろうか。 私にはわからない。

RLC 回路

p.207 に RLC 回路がある。これはいいのだが、その次が抵抗,インダクタ,キャパシタである。 日本語としてはそれぞれ抵抗,コイル,コンデンサのほうが自然だ。 R, L, C については、訳者の「抵抗値,誘導係数,容量」よりは、「抵抗値,インダクタンス,静電容量」がよいと思う。

対位

p.366 問題5.52 では、「問題 5.51 の対位として」とあるが、対位ということばは単独では使わず、 「対位法」(counterpoint) などとして出てくる。この場合は原書はAs a counterpoint to exercise 5.51, とあるので 「問題 5.51 との対比で」とするのが妥当だろう。

役に立ったこと、笑ってしまったこと

オスカー・ワイルドの箴言

Alan Perils は、Oscar Wilde (オスカー・ワイルド)の箴言をもじって皮肉を言っている。曰く Lisp プログラマは全ての値を知っているがそのコストはどれについても知らない。 この原文は、Lisp programmers know the value of everything but the cost of nothing.である。 さて、オスカー・ワイルドは何と言ったのだろうか。 A man who knows the price of everything and the value of nothing. らしい。「ウィンダミア卿夫人の扇」という戯曲の第3幕、ダーリントン卿のセリフである。なんでも、 「皮肉屋ってどういうことだ?」という相手のセリフへの回答だからふるっている。 なお、現代では元の形が Nowadays people know the price of everything and the value of nothing. に変えられて紹介されていることもある(2014-05-18)。

MIT とハーバード大学

p.74 で、MIT の初代総長 William Barton Rogers について述べられている。 どうやら、ハーヴァード大学は MIT を乗っ取ろうとしたらしい。まったく。

共同銀行口座の持ち主たち

3.4 節では並列性に焦点を当てて解説されている。実例としては銀行口座へのアクセスである。 さて、 3.4.1 項で共同銀行口座を持っているのは Peter と Paul である。 どちらもイニシャルが P でわかりにくい。なぜこんな固有名詞を選んだのだろう、 と思っていたら、問題3.38 (p.178) では次の文で始まっていたのに気付いた。

Peter,Paul と Mary が最初 100 ドルあった共同銀行口座を所有していたとする.

ああそうか、PPM のことか。ではなぜ PPM なのだろう。 まさか「花はどこへ行った」Where has all the flowers gone? のパロディ、Where has all the money gone? ではないだろうな。

聖書の時代

p. 270 にこうある。

WM の妻であり,かつ SW の息子であるなら,SM の息子である」 (聖書の時代には,現代より遥かに真であると考えられる.)

このカッコ内の注釈がいい。

婚姻関係

p.276 には次のコードがある。無限ループの説明の項である。

(assert! (married Minnie Mickey))

Minnie といえばミニーマウスだし、Mickey といえばミッキーマウスだ。二匹は結婚しているのだろうか。 Wikipedia で調べた限り、この二人は恋仲にはあるが結婚はしていないはずである。

書 名計算機プログラムの構造と解釈 第二版
著 者サスマン、エイブルソン、サスマン
訳 者和田 英一
発行日
発行元ピアソン・エデュケーション
定 価円(本体)
サイズ??版
ISBN???
その他??

まりんきょ学問所読んだ本の記録 > サスマン、エイブルソン、サスマン:計算機プログラムの構造と解釈 第二版


MARUYAMA Satosi