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

  1.     ╔════════════════════════════════════════════════════════╗
  2.     ║   Lesson 1 Part 11.0  F-PC 3.5 Tutorial by Jack Brown  ║
  3.     ╚════════════════════════════════════════════════════════╝
  4.  
  5. Hello again!  Just can't stay away from the Tutorial Conference.  You
  6. may have heard that Forth is a stack based language and wonder why we
  7. haven't said any thing about stacks yet. We believe that most of the
  8. introductions to Forth that over emphasize the stack in the initial
  9. stages.  There is a lot of things we can learn before we focus on the
  10. stack.  Besides we are going to let Forth teach you all about its stack
  11.  
  12. By now you should feel comfortable working in the F-PC environment and
  13. should be writing and compiling short programs of your own using the
  14. EDitor.
  15.                    ┌───────────────────────┐
  16.                    │ The Outer Interpreter │
  17.                    └───────────────────────┘
  18. You are about to see some very powerful ideas.  The Forth development
  19. environment has what is called an "Outer Interpreter" and an "Inner
  20. Interpreter" (to me more correct we should really say that it has a lot
  21. of little inner interpreters).
  22.  
  23. The "outer interpreter" is that part of Forth environment that you
  24. interact with while you sit at the keyboard with the " ok " prompt on
  25. the screen.  The "outer interpreter" is an infinite loop that executes
  26. over and over again and might look something like this:
  27.  
  28.    outer interpreter:
  29.          step 1  Get a line of text from human.
  30.          step 2  Follow instruction in line of text entered by human
  31.          step 3  Display the " ok " prompt so human knows I'm done.
  32.          step 4  Go to step 1
  33.  
  34. Actually the "outer interpreter" is just a Forth word that is defined
  35. using the : ; pair.  The name of Forths outer interpreter is QUIT .
  36. you can VIEW QUIT if you like to see what the actual source code looks
  37. like.  But first I'll give you a simplified version of QUIT
  38.  
  39. : QUIT
  40.       BEGIN  CR QUERY      \ This is step 1
  41.              INTERPRET     \ This is step 2
  42.              ." ok"        \ This is step 3
  43.       AGAIN ;              \ This is step 4
  44.  
  45. Here is what actually happens if you do this!
  46.  
  47.   ok       <--- the ok prompt
  48.  
  49. : QUIT BEGIN CR QUERY INTERPRET ." ok" AGAIN ; <enter>
  50.  
  51. QUIT isn't unique  ok   <--- because there already is a QUIT
  52.  
  53. QUIT  <enter>           <--- execute the new outer interpreter
  54.  ok                     <--- hit return to get ok prompt from
  55.  ok                     <--- new outer interpreter.
  56.  
  57. Well we know you are skeptical, bet you don't believe that you just
  58. wrote and executed your very own outer interpreter!  But look very
  59. closely.  Do you notice anything different?  Try using HELP does it
  60. still work.  Does VIEW still work?  Does the EDitor still work?
  61. What has changed?
  62.  
  63. Well let's change the outer interpreter a little.  I never liked that
  64. " ok " prompt!  Also let's give our new outer interpreter a different
  65. name so that the skeptics will be convinced that there is no slight of
  66. hand.  Try the following outer interpreter called  MQUIT .
  67.   ok
  68.  
  69. : MQUIT BEGIN CR ." FPC>" QUERY INTERPRET AGAIN ; <enter> ok
  70. MQUIT  <enter>
  71. FPC>   <enter>       <--- New outer interpreter is running!!!
  72.  
  73.                   ┌─────────────────────────┐
  74.                   │  The Inner Interpreter  │
  75.                   └─────────────────────────┘
  76.  
  77. We will say more about the "Inner Interpreter(s)" later but for now
  78. let's just say that is the  lower level mechanism that executes one of
  79. our compiled colon defintions.  We will investigate many executable
  80. structures in our study of Forth ( constants and variables still to
  81. come) and each has its own inner interpreter.
  82.  
  83. ┌────────────────────────────────────┐
  84. │ Please move to Lesson 1 Part 12.0  │
  85. └────────────────────────────────────┘
  86.