Path: csiph.com!usenet.pasdenom.info!aioe.org!.POSTED!not-for-mail From: "Rod Pemberton" Newsgroups: comp.lang.forth Subject: Re: Epic Fail Date: Sun, 20 Apr 2014 19:47:37 -0400 Organization: Aioe.org NNTP Server Lines: 41 Message-ID: References: <53525f40$0$27137$e4fe514c@dreader35.news.xs4all.nl> <53540000$0$24957$e4fe514c@dreader36.news.xs4all.nl> NNTP-Posting-Host: CNsg4fVcCsvs3UaOgZtQCw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Opera Mail/12.16 (Linux) X-Notice: Filtered by postfilter v. 0.8.2 Xref: csiph.com comp.lang.forth:29743 On Sun, 20 Apr 2014 13:12:32 -0400, Albert van der Horst wrote: > In article , > Andrew Haley wrote: >> Albert van der Horst wrote: >>> The alternative to Gforth is what I do in ciforth, define all low level >>> words in assembler by hand, define the threading mechanism in >>> assembler, >>> define the looping mechanism in assembler. By saying defined in Forth, >>> you muddy the waters. I'd say defined in assembler, this way like >>> Gforth >>> ciforth admits to using external tools to get the executables right, >>> either a c-compiler plus linker or an assembler plus linker. >> >> Sure, that's OK until you get the Forth bootstrap going. > > There you are. This illustrates why jonesforth is popular. > The idea that you make a Forth only to use it as a scaffolding is > a couple of DAN-grades (belts) away from the average starting > programmer in Forth or aspirate compiler-builder. > Exactly, in addition to the "primitives" (low-level) words, you need a handful of high-level Forth definitions, pre-compiled, to bootstrap Forth, such as FIND : ; as well as the inner and outer interpreters. A novice is nowhere near ready to implement the more difficult components. Of course, Andrew knows this, or he should, having done so ... The real advantage of a Forth like Jonesforth is that it's coded in assembly for a widely available x86 assembler, which means it can be compiled for a variety of different operating systems, or it can be fixed easily. The hard work of implementing the low-level stuff is finished. I.e., it's a throw-back to the fig-Forths in assembly of yesteryear. It's easy for a novice to get working. Assemble and go. Rod Pemberton