home *** CD-ROM | disk | FTP | other *** search
/ ftp.cse.unsw.edu.au / 2014.06.ftp.cse.unsw.edu.au.tar / ftp.cse.unsw.edu.au / pub / doc / papers / misc / cs.toronto.edu:programming / bornat.errata < prev    next >
Encoding:
Text File  |  1992-10-18  |  2.7 KB  |  61 lines

  1. Understanding and Writing Compilers
  2. by Richard Bornat
  3. ISBN 0 333 21732 2
  4. published by Macmillan
  5.  
  6. Errata from Geoff Collyer.
  7.  
  8. General comments:  stack manipulation, especially procedure entry and
  9. exit, assumes it is okay to reference beyond top of stack, which is not
  10. true in the presence of interrupts which use the same stack.  Should
  11. adjust T first, move to -1(T) second (as on PDP-11 UNIX with hardware
  12. SP and either kernel stack and hardware interrupts or user stack and
  13. signals (software interrupts)).
  14.  
  15. fig 2.5: minute is a name, not a number
  16. fig 3.12: missing " in Error() call after case ifsymbol
  17. p.68: footnote 1 is missing a period
  18. p.91: page heading & number are missing; footnote 1 contains the typo
  19.     `sytactic' rather than `syntactic'
  20. fig 7.4: SKIPGT should be SKIPLE
  21. fig 7.17: label missing
  22. p.140: `bounds of of the vector' has one too many `of's in 2nd paragraph
  23. fig 9.5: error checking code is too late, should be before ADD
  24. fig 9.7: JSUB 2, should be JSUB L,
  25. fig 9.18: missing . in nodep^left
  26. fig 10.4: optimised order: y := 3 should be y := 4
  27. fig 10.12: ``DO 1 K=1,'' is missing 50
  28. p.170: .PP When the same optimisations are performed with the *the*
  29. fig 12.3: uses != instead of the correct \=
  30. fig 12.10: disagrees with p. 208; roles of p1 & p3 should be swapped (verify)
  31. fig 13.5 remove ``,'' in ``ADDn,''
  32. fig 13.9 ``RETNi ,0(L)'' should be ``RETNi ,0(T)''
  33. fig 13.15 `declpart^node' should be `nodep.declpart'?
  34. p.227 ``F and T registers'' should be ``F and E registers''
  35. ch. 14 - alternately do GC my way (see attachment)
  36. fig 14.9 omit 2nd ``counter''? are start & mem supposed to be the same?
  37. fig 14.11 ``a.tail :='' will produce a cycle; should be ``b.tail :=''?
  38. fig 15.4 first ``T->P'' should be ``F->P''
  39. p.262 in 10., 0 <= i <= n should be 1 <= i <= n
  40. fig 15.10 S1, S2, S3 in Input: should be E2, S1, S2
  41. fig 15.2 ``1. n'' should be ``1..n''
  42. p.224 2nd complete paragraph: sentences can also start with + or - terminals
  43. p.281 footnote is missing ``1''
  44. fig 16.13 `default' needs `:' after it
  45. fig 16.17b ``both alpha and gamma'' should be ``both alpha and beta'';
  46.     in (iv.b), FIRST* symbols of delta may follow the LAST* symbols of
  47.     both gamma *and* alpha
  48. fig 16.29 tree for B shows last node of 4 on its 1st line pointing at 5;
  49.     should be B.  Tree for E is missing loop from 2nd (t,i) to
  50.     (a,(t,+),NULL)
  51. fig 16.30 :=+ should be +:=
  52. p.313 how can the input of fig 17.7 use the matrix of fig 17.6?
  53.     [in] != [a-g]; i is identifiers and n is numbers?
  54.     this is not made explicit anywhere
  55. p.344 2nd word (therefore) needs a capital
  56. fig 18.21 won't accept fig 18.22's input; add ``E->@V''?
  57. fig 18.23 don't understand Formal production
  58. p.374 last line: ``... of it *it* quickly'' - too many `it's
  59.  
  60. p.380 is a wonderful denunciation of ld -s & strip
  61.