コンパイラ – 原理と構造 – 初版 正誤表
コンパイラ – 原理と構造 – 初版 正誤表

第 7 章 インタープリタ

  1. 66.

    141ページ 18行目

    誤:

    n | s | true  | false

    正:

    [[c]]


  2. 67.

    141ページ 20行目

    誤:

    nは整数,sは文字列定数を表す.

    正:

    [[c]]は定数の実行時表現を表す.


  3. 68.

    144ページ 9行目

    誤:

    Eval(E,(e1e2))=(Eval(E,e1),Eval(E,e2))

    正:
    Eval(E,(e1e2))=
    let v1=Eval(E,e1)
    v2=Eval(E,e2)
    in if v1wrong and v2wrong then (v1,v2) else wrong

  4. 69.

    144ページ 12行目

    誤:

    if v1=(v1,v2) then

    正:

    if v=(v1,v2) then


  5. 70.

    144ページ 13行目

    誤:

    Eval(E,prim(pe1e2‘‘)’’ヌケ)=

    正:

    Eval(E,prim(pe1e2))=


  6. 71.

    144ページ 20行目

    誤:

    if v=𝚝𝚛𝚞𝚎 then

    正:

    if v=true then


  7. 72.

    145ページ 2行目

    誤:

    sub(x,1)

    正:

    prim(sub, x, 1)


  8. 73.

    147ページ (評価式の3行目)

    誤:

    (rec)   Ee1Rec(E0,f0,x0,e0) Ee2v2 E0{f:Rec(E0,f0,x0,e0),x:v2}e0v Ee1e2v

         

    正:

    (rec)   Ee1Rec(E0,f0,x0,e0) Ee2v2 E0{f0:Rec(E0,f0,x0,e0),x0:v2}e0v Ee1e2v


  9. 74.

    148ページ 16行目(T3の導出ラベル)

    誤:

    (app)

    正:

    (rec)


  10. 75.

    150ページ 17行目

    誤:

    _require "../absyn/Syntax.smi"

    正:

    _require "../parser/Syntax.smi"


  11. 76.

    152ページ 25行目

    誤:

    Value.valueToString

    正:

    V.valueToString


  12. 77.

    153ページ 2行目

    誤:

    Eval.smiの使用宣言のために
       _require "../eval/Eval.smi"
    を追加する.

    正:

    以下の使用宣言を追加する
       _require "../eval/Eval.smi"
       _require "../eval/Value.smi"


  13. 78.

    153ページ 6行目(ページレイアウト保存のため)

    誤:

    Mainコマンドが生成されるはずである.以下は実行例である.

    正:

    Mainコマンドが生成される.以下は実行例である.


  14. 79.

    153ページ (9行目)

    誤:

    fun f x = if eq(x,1) then 1 else mul(x, f sub(x,1));

    正:

    fun f x = if prim(eq, x, 0) then 1 else
               prim(mul, x, f prim(sub, x, 1));


  15. 80.

    153ページ 11行目

    誤:

    val f = (fix f(x) => if prim(eq,x,1) then 1 else )

    正:

    val f = (fix f(x) => if prim(eq,x,0) then 1 else )