home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / forth / compiler / fpc / tutor / l1p075 < prev    next >
Text File  |  1990-05-16  |  3KB  |  60 lines

  1.        ╔══════════════════════════════════════════════════════╗
  2.        ║  Lesson 1 Part 7.5  F-PC 3.5 Tutorial by Jack Brown  ║
  3.        ╚══════════════════════════════════════════════════════╝
  4.  
  5.                   ┌────────────────────┐
  6.                   │  Crashing  Forth   │
  7.                   └────────────────────┘
  8.  
  9. WARNING WARNING!!!  it is very easy for an inexperienced FORTH
  10. programmer to CRASH the system.  You have probably already done it! The
  11. reason is that most FORTH words take parameters preceding the word.  If
  12. you don't provide parameters or give invalid ones all #$!! will break
  13. loose.  There are also common FORTH words that look harmless.    The
  14. word  TYPE  is an example.   If you want to crash your FORTH system
  15. type:    TYPE <enter>    and prepare to reset!! We will talk about the
  16. correct way to use TYPE later. Other words to avoid are FILL ERASE
  17. CMOVE MOVE , that is until you are sure you are feeding them valid
  18. parameters on the stack.
  19.  
  20. Another common error is leaving out the trailing " of the ."   " pair
  21. This will produce very odd results.   Go back to you phone list and
  22. remove a " and experience the weird sensation!   Much better for it to
  23. happen when you are prepared for it.
  24.  
  25. The concept behind this next crash technique is a little advanced but
  26. most beginners probably do this many times with out knowing what has
  27. happened. Have you noticed that the <enter> key and the "right square
  28. bracket key" or " ] " are located very close together?  It turns out
  29. that " ] " is a Forth word and very often a novice and even intermediate
  30. Forth programmers will accidentally strike the " ] " key instead of the
  31. <enter> key.  Often they are so quick that they don't even realize that
  32. the wrong key has been pressed and will quickly press <enter> again.
  33. Here is what HELP ]  says about this Forth word.
  34.  
  35. ]               ( -- )
  36.  
  37. The Compiling Loop. First sets Compile State. Looks up the next word in
  38. the input stream and either executes it or compiles it depending upon
  39. whether or not it is immediate. If the word is not in the dictionary, it
  40. converts it to a number, either single or double precision depending on
  41. whether or not any punctuation was present. Continues until input stream
  42. is empty or state changes.
  43.  
  44. So, what does this mean?  Well, you won't get the " ok " prompt any more
  45. and every thing you type will get compiled into the dictionary.  It will
  46. appear that the system has gone dead!  Forth will not recognize any
  47. words at all.  Most novices will resort to resetting the machine and
  48. curse at Forth!
  49.  
  50. But there is an easy solution.  " ] " turns the compiler on.  Guess
  51. what...  " [ " or "left square bracket" will turn the compiler off
  52. again.  You should start up Forth now and try this CRASHing technique.
  53. We can tell you from experience that out of a class of 10 people there
  54. will be 2 that  can't  reach  the  <enter>  key  and  hit  "  ]  "
  55. occasionally.
  56.  
  57. ┌───────────────────────────────────┐
  58. │  Please move to Lesson 1 Part 7.6 │
  59. └───────────────────────────────────┘
  60.