Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!uunet!zephyr.ens.tek.com!tekcrl!tekgvs!toma From: toma@tekgvs.LABS.TEK.COM (Tom Almy) Newsgroups: comp.lang.forth Subject: Re: ANS TC Magnet for Interpreter Message-ID: <7274@tekgvs.LABS.TEK.COM> Date: 9 Apr 90 14:28:02 GMT References: <750.UUL1.3#5129@willett.UUCP> Reply-To: toma@tekgvs.LABS.TEK.COM (Tom Almy) Organization: Tektronix, Inc., Beaverton, OR. Lines: 37 In article <750.UUL1.3#5129@willett.UUCP> ForthNet@willett.UUCP (ForthNet articles from GEnie) writes: >The issue that the (indicated) implementation of COMPILE won't work with >native code compilations is an implementation problem of the tradeoffs in >selecting native code compilation. Well, you can put the blame anywhere you want. My native code compilers don't support COMPILE because there is no following token to compile. But I could make it work by taking COMPILE and the following token and generating code which would compile that token (either in a threaded or native code fashion). Frankly, since all the systems my NCC is on use a threaded code interpreter at compile time, there is no need for me to be concerned with this -- COMPILE can still be used in a threaded colon definition. >We need concensus about what these terms mean, else these confusions will >continue. To Tom Almy: As far as I know "native code compilation" is >terminology of your origin. Nope, I did not invent that term, it's been around for many years but not in the Forth community which has tended to be stuck on threaded code compilation -- a simpler, memory efficient, and portable technique. >To all: Forth programmers [...] were using "jsr threaded" implementations >since before the days of fig-FORTH [...] >I don't recall having heard "subroutine threaded code", in the sense used >in BASIS 11, prior to the X3.J14 deliberations. You were probably calling it "jsr threaded" because the machines you were using called the instruction "jsr"! But the real problem is that it shouldn't be called "threaded code" at all. It's really a simply generated native code. Once you've added the obvious in-line literal and control structure code it starts to look more and more like a true native code compiler (portability and decompilability* start to go away). Tom Almy toma@tekgvs.labs.tek.com Standard Disclaimers Apply * There's a word of my own invention!