[stack] Re: Yet another?

"pml060912" <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
--- In [email protected], Don Groves <dgroves@...> wrote:
>
> Thanks, Christopher and Peter for your kind replies.
> 
> I've looked at Cat before, Christopher, and found it very impressive!  
> I'll be
> most pleased if Catenate ever approaches Cat's level of sophistication.
> 
> I just tried to read up on Furphy but the url wasn't found, so Peter  
> may be
> changing his ISP even sooner that he thought.

I checked, and it's actually at
http://member.netlink.com.au/~peterl/furphy.htm - I was quoting an
earlier version from before the ISP moved everything around to suit
itself. If you get there you'll see that I too looked at a fair bit of
Henry Baker's thinking on linearity. The idea of not having to make
repeated copies by passing a reference to one function after another
sort of works, but it forces you into continuation passing (or
something very like it), which may not suit the internal logic of the
functions - or your own personal style. There's no real saving if the
function effectively has to copy to have something to work with itself.

One thing I thought of that would help with linearity is to define
Forth style @ and ! in terms of DUP, DROP and an inherently
conservative/linear MEMSWAP ( newconts addr --- oldconts addr ) or
possibly with stack effects the other way around, and maybe in terms
of SWAP and other inherently conservative/linear stuff too. Then a
wide range of behaviour can be built on the @ and ! even if those
don't get made publicly available in the main language, and you only
need to get DUP and DROP respecting the linearity to carry everything
else. You can implement dedicated efficient versions later, but this
lets you have everything in a prototype carried on a small base that
you can more easily test fully. This is paper model stuff I have only
sketched out so far, not prototyped yet.

The thing that reminded me of that is, MEMSWAP does naturally work in
that continuation passing way just to be conservative/linear. You have
to throw away an unwanted address on purpose, separately. PML.
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.