しばらく前に新四年生の輪講を始めました。SICP日本語訳第二版の第三章から読み始めています。始めた翌日くらいに、たまたま出会った佐々木くん@法政大学からは「SICP は第一章と第二章がいいんですよ!」と言われてしまいました。そうかもしれないと思い始めています。
これから、ときどき SICP の内容について思うことを書くようにします。
*3.3.4 ディジタル回路のシミュレータ
[[こちらが原文:http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_sec_3.3.4%5D%5Dです。
** p. 162 第二段落
>1.1節でLispの勉強に利用した言語の一般的な視点を採用するなら、基本的な機能箱は言語の組込み要素であり、箱の結線は、組み合わせの手段を用意することであり、決戦のパターンを手続きとして規定するのは、抽象の手段として役立つ。
で、しばし立ち止まりました。「言語の一般的な視点」、「結線が組み合わせの手段を用意」、「抽象の手段」とは何か?
ここだけ読んでも意味不明です。で、1.1 節に戻ると冒頭にある以下に引用した箇条書きとみごとに対応していることが分ります。
>
– ”基本式” 言語が関る最も単純なものを表す。
– ”組み合わせ法” より単純なものから合成物を作る。
– ”抽象化法” 合成物に名をつけ、単一のものとして扱う。
さらに、p. 6 にはこれを Lisp にあてはめたものとして以下の箇条書きがあります。
>
– 数と算術演算子は基本的データと手続きである。
– 組み合わせ((S-式のうち括弧を使って書かれるもののことを「組み合わせ」と訳している。))の入れ子は演算を組み合せる手段である。
– 名前と値を対応づける定義は抽象のそこそこの手段である。
このことは SICP において通奏低音として、常に流れているようです。演習課題に取り組むときにも、これら三つがどのように表現されているのかを意識に留めることを求めているような気がします。
3.3.4 においては、ディジタル回路を表現する「言語」を通して、この考え方が具体的な形で述べられています。まず、この「言語」において Lisp の基本式(アトム)に該当するのは、inverter, and-gate, or-gate などの各種基本回路を表現するオブジェクトです。
次に p. 164 で登場する結線 (wire) は回路を繋ぎ合わせることで、より単純なオブジェクトを”組み合わせて”、より複雑な回路を合成する役目を果します。
最後に、p. 161 で見た半加算器は基本回路の組み合わせたオブジェクトなのですが、それ自体が基本回路と同じ構造を持つことにより、複雑な機能を抽象化することに成功しています。実際、基本回路を組み合わせて半加算器のと全く同じ手法によって、p. 162 では半加算器を材料として全加算器を作成しています。ここで、全加算器を作るのに、基本回路の組み合わせではなく、半加算器の組み合わせたことが重要です。
** p. 163: 問題 3.29
オアゲートをアンドゲートとインバータから構成する方法を考える課題。簡単な課題だから、回路図を描いてもすぐに見つけることができるけれども、簡単だからこそ、系統的な方法で探すべきではないだろうか?(1) N 個以下のゲートを用いて構成可能な回路をすべて列挙し、それぞれが目的とする回路となっているか否かを判断するとか、回路図を描くのは難儀だから (2) 回路図と等価な論理式を列挙して判定するとか、(3) Bool 代数の公理から導き出した定理から考えるとか、いくつかの系統的なアプローチがありえると思います。
** p. 166: 次第書き
「次第書き」という言葉を始めて目にしたような気がします。輪講に参加した学生さんたちも始めてで面喰った様子でした。英文を見ると agenda の訳のようです。
文脈から察するに、スケジュールとか予定表が現代的な訳のような気がします。それはともかく、次第書きとはなんのことなのかしばし考えて思いつきました。式典のプログラムのことを式次第と言いますよね?あれの記述のことを次第書きと言っているようです。少し気持ちよくなりました。
** p. 165: プローブ
ディジタル回路の結線の電圧を測定して知らせる機器を意味する probe がそのままカタカナになっています。工学部ではプローブというカタカナ語が定着しているのかな?「計測器」とか「探知器」とか「センサー」じゃ駄目?
Lambda the Ultimate経由で Sussmanの新しいTRを見ました:
The Art of the Propagator(http://lambda-the-ultimate.org/node/3250)。
ちっとも読んでませんが、SICPの結線の章を膨らませたもののようにみえます。
だからなんだというものでもありませんが、興味があればどうぞ。
工学部というかハードウェアの世界では、プローブで定着していますね。
うちの周りでは普通に通じています。
dagezi さん、どうもありがとうございます。全然、知りませんでした。面白そうですね。読んでみます。
carlos さん、ありがとうございます。やっぱり、そういう世界があるんですね。
アメリカでは大学の新入生でも普通に使う言葉なんだろうか?