Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!rochester!uhura.cc.rochester.edu!sunybcs!bingvaxu!vu0141 From: vu0141@bingvaxu.cc.binghamton.edu (vu0141) Newsgroups: comp.lang.forth Subject: Re: RepTil I am, therefore I was Summary: An addedum Message-ID: <1985@bingvaxu.cc.binghamton.edu> Date: 9 Mar 89 15:09:06 GMT References: <1980@bingvaxu.cc.binghamton.edu> <1983@bingvaxu.cc.binghamton.edu> Reply-To: vu0141@bingvaxu.cc.binghamton.edu (Fred Schiff) Organization: SUNY Binghamton, NY Lines: 26 I forgot to mention it, but comments are included within the definition. It wasn't that important in what I was writing but NOW verbs (Forth's IMMEDIATEs, except the verb NOW is placed after the DO: instead of after the end of the definition, which Urieli says is confusing) work by doing their job and then compiling in a "dummy" verb which is usually a no-op, (sometimes it has a job to do, of course) but which the decompiler is smart enough to print out as the original verb. Thus ?IFTRUE in a definition does its business with the return and symbol stacks and compiles ?IFTRUE% the runtime word which tests the top of the parameter stack when it is executed within a definition. Upon decompilation you get the original definition back. The article, skips lots of the implementation details but does give definitions for the inner and outer interpreter, and all of the structure words. Its token threaded by the way. Or more accurately "status-threaded" meaning that each word has a 16-bit header which has the definition's length (so that they can be moved around in memory) and a number of bit-flags which give information (NOW word, indent left/right in decompilation, ROM word which should not be moved, etc.) Also the names of words, code for words, and data space for variables and constants are all kept in separate areas of memory. Fred Schiff (vu0141@bingvaxu.cc.binghamton.edu)