Re: [stack] Barebone implementation of concatenative language in c or c++

John Cowan <[email protected]> Tue, 18 May 2010 23:31:01 -0400
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
Ruurd scripsit:

> We seem to disagree about what a language is. In my dictionary a
> language consists of: pronunciation, syntax, semantics. It seems to me
> that stack or rewriting is part of the semantics and therefore part of
> the language. If I have a simple expression like: 2 3 +, there is no
> way for you to convince me that this must be executed on a stack. I
> only see three symbols that in the next evaluation step are replaced
> by one symbol.

If you only look at the simple case 2+3, C looks pure and functional too.
You have to examine the totality of the language.  But whether a stack
is used or a series of rewrite rules is an implementation detail.

> Making a lazy Joy is quite unnecessary, because there is already a lazy
> library: http://www.latrobe.edu.au/philosophy/phimvt/joy/jp-reprod.html

That library is about lazy lists, not about Haskell-style pervasive
laziness.  In Haskell, all primitive functions notice whether their
arguments are datums or thunks, and if they are thunks, they get forced;
this is not provided in Joy.

-- 
But that, he realized, was a foolish            John Cowan
thought; as no one knew better than he          [email protected]
that the Wall had no other side.                http://www.ccil.org/~cowan
        --Arthur C. Clarke, "The Wall of Darkness"