🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.misc
Article #7141

Re: GNU Extension Language -- Scheme compatible?

#7141
From: John Lundin
Date: Sat, 29 Oct 1994 02:01
69 lines
4701 bytes
In article <ROCKWELL.94Oct27194455@nova.umd.edu>,
Raul Deluth Miller <rockwell@nova.umd.edu> wrote:
>I merely wish to point out that some of these criticisms are unjust,
>and, to put it bluntly, flame bait.

Hm.  That went well.  8-(  Lets see if I can do better this time.

Raul has a point... my commentary came out much harsher than intended.
Lance, I hope you weren't offended.  It was not intended as flame or bait.
These are my opinions, not absolute facts, and do not reflect, etc, etc.

For context, I began using forth in the late 70s.  It and its variants (such
as stoic) do indeed make useful glue languages... but for internal projects.
Forth is a very good tool-building language.  Too good.  I would be reluctant
to give access to the core forth language to an end-user.  It's too easy to
crash existing implementations, and too hard to figure out why.  Writing a
more rugged extension language in it would make more sense, but the end-user
wouldn't "see" the forth core and the safer extensions would be slower.

The languages that I had most fun using have been forth, icon, and lisp...

>John Lundin:
>.   It is also less suited for large projects than TCL, and for all of
>.   the same reasons.  (Forth enthusiasts: please flame by email.)
>Not the same reasons -- for example, TCL is typically about 100-200
>times slower than Forth.  TCL spends a lot of the time doing symbol...

We can argue the speed business offline if you like.  It's true enough.
Large projects being slow is a familiar complaint about forth interpreters.
The same was true of lisp, maybe more so.  I would expect to hear it of tcl.
Remedies can be implemented.  My feeling is that lisp has more remedies now.

I'm curious about your 100-200 times figure.  What were your benchmarks?  My
experience has been that once you start doing similar glue-type things, the
string handling and calls mask out a lot of language speed differences.

Tell you what.  Most dictionaries are linked lists of pointers to words.  Why
not go one step further and use "link threading" so that each word pointer is
followed by a link to the next word pointer in order?  This at most doubles
your dictionary size, but you can reclaim some if you use a secondary space
for your string area and keep separate headers, as some other forths do.  The
linking adds some inner interpreter overhead, say, about as much as token
threading, and gives you even more flexibility in rearranging the dictionary.
What you wind up with looks a lot like a primitive lisp interpreter.  (grin)

The design goal, as stated, calls for something that you can implement lisp
and tcl in efficiently.  Thanks to language similarity and rush, this is true
of scheme.  I have seen (and written) lisp interpreters in forth, but they
were slow and I have not seen any equivalent compiler projects.  Yet.

>. - It has a much smaller user base.  The language is less publicised
>Smaller than what?  How measured?

(blink) I assumed this was obvious.  Smaller than lisp's.  Emacs alone should
take care of that.  Most CS departments teach some lisp, but forth?  Compare
sales of books, amount of code, available software using the language, etc.

>>...Have you seen a good, fast, free, portable and C-based forth? ...
>Try Will Baden's "ThisForth" ... no GUI yet...  it wouldn't be hard to add
>TK.  [And there are plenty of forths with GUIs -- I won't bore you...]

I will.  And please bore me with that list.  Email preferred.

>None of which is an endorsement for Forth as an extension language --

Really?  I'd endorse it as "an" extension language.       -john

John Lundin Jr  lundin@urvax.urich.edu   "A pentagram approaches a circle for
U of Richmond   lundin@boojum.urich.edu   sufficiently large values of five."
Technical Details
Message-ID: <38sae8$8ms@nomad.urich.edu>
Path: arc1-ca.pugleaf.net!nntp.gmd.de!xlink.net!howland.reston.ans.net!math.ohio-state.edu!caen!hearst.acc.Virginia.EDU!gossip.urich.edu!boojum.urich.edu!lundin
References: <9410190420.AA02904@mole.gnu.ai.mit.edu> <thinmanCyAr6E.F7@netcom.com> <38p80s$m66@nomad.urich.edu> <ROCKWELL.94Oct27194455@nova.umd.edu>

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: f891f,7bed394fdd959032
X-Google-Attributes: gidf891f,public
X-Google-Thread: 1025b4,ac872aeb9debba6b
X-Google-Attributes: gid1025b4,public
X-Google-ArrivalTime: 1994-10-29 03:15:53 PST
Path: arc1-ca.pugleaf.net!nntp.gmd.de!xlink.net!howland.reston.ans.net!math.ohio-state.edu!caen!hearst.acc.Virginia.EDU!gossip.urich.edu!boojum.urich.edu!lundin
From: lundin@boojum.urich.edu (John Lundin)
Newsgroups: comp.lang.misc,gnu.misc.discuss
Subject: Re: GNU Extension Language -- Scheme compatible?
Date: 29 Oct 1994 02:01:44 GMT
Organization: University of Richmond
 thinman@netcom.com
Lines: 70
Message-ID: <38sae8$8ms@nomad.urich.edu>
References: <9410190420.AA02904@mole.gnu.ai.mit.edu> <thinmanCyAr6E.F7@netcom.com> <38p80s$m66@nomad.urich.edu> <ROCKWELL.94Oct27194455@nova.umd.edu>
NNTP-Posting-Host: boojum.urich.edu