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

  1.       ╔═══════════════════════════════════════════════════════╗
  2.       ║ Lesson 1 Part 13.0  F-PC 3.5 Tutorial by Jack Brown   ║
  3.       ╚═══════════════════════════════════════════════════════╝
  4.  
  5.                   ┌─────────────────────────────┐
  6.                   │  Our Own Outer Interpreter  │
  7.                   └─────────────────────────────┘
  8.  
  9. The lesson 1 part 12.0 we presented the outer interpreter called MYQUIT
  10. which presented a picture of the parameter stack as the command line
  11. prompt instead of the usual  " ok ".  You should make sure that you have
  12. the outer interpreter MYQUIT in a file MYQUIT.SEQ so that you can load
  13. it whenever you need to experiment with the parameter stack.
  14.  
  15. The stack picture presented by MYQUIT is generated by F-PC's non
  16. destructive stack display command called .S   In Forth the period
  17. " . "  means print.   Using a period or dot by itself will print the top
  18. stack number ( the top stack number is the last number to be added to
  19. the stack)  In the parameter stack picture provide by .S ( print stack )
  20. the number to the extreme right is the top stack number.  The number in
  21. the square brackets [3] specifies how many numbers are on the parameter
  22. stack.
  23.  
  24.                 ┌──────────────────────────┐
  25.                 │  Sample Run with MYQUIT  │
  26.                 └──────────────────────────┘
  27. FLOAD MYQUIT
  28. MYQUIT
  29.  Stack Empty. > 11 22 <enter>          <--- put two numbers on stack
  30.  [2]     11      22 > 33 <enter>       <--- put 33 on the stack too
  31.  [3]     11      22      33 > . <enter> 33  <--- print top number.
  32.  [2]     11      22 > DEPTH <enter>    <--- fetch stack depth to top
  33.  [3]     11      22       2 > . <enter> 2   <--- print stack depth
  34.  [2]     11      22 > + <enter>        <--- add top two stack numbers
  35.  [1]     33 > . <enter> 33             <--- print the sum
  36.  Stack Empty. > 55 22 <enter>          <--- put two numbers on stack
  37.  [2]     55      22 > - <enter>        <--- find the difference
  38.  [1]     33 > . <enter> 33             <--- print the difference
  39.  Stack Empty. > 7 8 <enter>            <--- put two numbers on stack
  40.  [2]      7       8 > * <enter>        <--- find the product
  41.  [1]     56 > . <enter> 56             <--- print the product
  42.  Stack Empty. > 23 43 <enter>          <--- put two numbers on stack
  43.  [2]     23      43 > MIN <enter>      <--- leave smaller on stack
  44.  [1]     23 > . <enter> 23             <--- print the smaller number
  45.  Stack Empty. > 23 45 <enter>          <--- put two numbers on stack
  46.  [2]     23      45 > MAX <enter>      <--- leave the larger number
  47.  [1]     45 > . <enter> 45             <--- print the larger number
  48.  Stack Empty. > 66 3 <enter>           <--- put two numbers on the stack
  49.  [2]     66       3 > / <enter>        <--- find the quotient
  50.  [1]     22 > . <enter> 22             <--- display the quotient
  51.  Stack Empty. >                        <--- finished.
  52.  
  53. Do you know how to stop MYQUIT?  There are two ways. 1) Type QUIT to
  54. start the old outer interpreter. 2) Make an error, as the error recovery
  55. routine will start the old version of QUIT.  You can make an error by
  56. trying to execute a word that doesn't exist.  That should be no problem!
  57.  
  58. As an exercise try some of the above operators without MYQUIT running.
  59. Even without MYQUIT in operation you can display the parameter stack
  60. whenever you like by using the nondestructive stack print operator .S
  61.  
  62. In the above discussion we have been using the word print for . where it
  63. might have been better to use the word display since the number goes on
  64. the display screen and not the printer.  The reason we refer to " . " as
  65. the print operator is because it is a Forth tradition left over from the
  66. days when the human was connected to the computer via a teletype
  67. machine.  In those days print really meant print!
  68.  
  69.               ┌───────────────────────────────┐
  70.               │  Comments in Forth Programs.  │
  71.               └───────────────────────────────┘
  72.  
  73. There are two ways to place comments in a Forth Program.  The first is
  74. to place the comment in round brackets that some people call
  75. parentheses.  (  This is a comment )   You must include both a starting
  76. and closing round bracket.  The other common Forth commenting character
  77. is the back slash "  \  ".   Placing a backslash in you program means
  78. that anything on the line following the back slash will be ignored
  79. \ This is a comment to the end of the line. No end mark required.
  80.  
  81. ╓───────────────╖
  82. ║  Problem 1.7  ║
  83. ╙───────────────╜
  84. Experiment with the stack  operators  above.   Write  me  a  Forth 
  85. program or Forth word that uses  one or more of the operators  + , 
  86. - , * , / , MAX , MIN , and .   It is pretty hard to get this problem
  87. wrong!  Just about anything that does something useful will do.
  88.  
  89. ┌────────────────────────────────────┐
  90. │ Please move to Lesson 1 Part 14.0  │
  91. └────────────────────────────────────┘
  92.