[stack] Re: Yet another?

"pml060912" <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
--- In [email protected], "Don Groves" <dgroves@...> wrote:
>
> Hello all,
> 
> The trouble with languages such as Joy, which I fell in love with a
> couple of years ago, is that, when I hang around them long enough,
> they get under my skin. They get into my mind and after a while, take
> on a life of their own. My only relief from this situation is to write
> one myself, so I am hereby announcing the birth of Catenate, yet
> another concatenative language.

.
.
.

> Although it is coming along nicely, I haven't anything yet to publish
> for others to try but I wanted to introduce myself to the group and
> start joining in on the discussions of this highly interesting topic.
> 
> Sincerely,
> 
> Don Groves

That's roughly how I got here. My occasional work on my own
concatenative language, Furphy, is on the page
http://member.netlink.com.au/~peterl/furphy.html (though that might
not be true after next week, when I may have to change ISPs - buy now
while stocks last). So far I don't have a whole language, just paper
models and constructs I have tested out on top of Forth. The next
stage, if I get around to it, is to implement that in an Eforth like
way on top of Perl or Euphoria to snarf (piggyback) their garbage
collection while I prototype a bit more, and maybe their associative
indexing too. It doesn't seem worth committing to a more efficient
machine code implementation including the work of implementing garbage
collection etc. until I'm sure I know what I've got. I've got some of
Henry Baker's ideas in mind about that, as food for thought (e.g. an
instruction stack instead of a return stack, and making a whole new
copy on any DUP to simplify freeing up).

There is one construct I found that I really like, so far. That is to
compile new words anonymously, using unrecognised words to flag both
termination and naming, with end of source terminating the final
anonymous word which is then executed/evaluated. That allows a simple
compile and go behaviour without modes or immediate words, although I
shall probably provide some for implementing syntactic sugar more
conveniently (a preprocessor could provide it, so this doesn't break
the fundamental model).

Another construct is more fundamental but not as aesthetically
pleasing to my eyes, the pair FREEZE and THAW to cause and complete
partial evaluation so that IF - which has to be eager - can have a
workaround for lazy evaluation that works a bit like the referencing
workaround in plain vanilla C to make argument passing by value
achieve the effect of passing by name. And I am considering making a
user interface that is somewhat spreadsheet oriented, drawing on work
done for the Z88 and the Canon Cat, though that is further down the
track and I may never get there. P.M.Lawrence.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.