Re: [stack] disallowing recursive definitions

Don Groves <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
On Mar 19, 2008, at 19:30 , Manfred Von Thun wrote:
>
> On 8/3/08 3:03 AM, "John Cowan" <[email protected]> wrote:
>>
>> ....
>> Assembler: the ultimate concatenative language....
>
> Indeed, except for those jumps, as of course you know. But the
> mention of assembler triggers an old memory about something
> I have wanted to write about for some time. It concerns not
> so much the high or low level of a concatenative language,
> but what its shortest programs are whose concatenation
> computes the composition of what those shortest programs
> are. In just about all concatenative languages the shortest
> programs are atoms like swap, +, map, 123, “hello”, [a b],
> the first three operators and the lest three push-ops. It is
> from atoms such as these that programs are constructed by
> concatenation. But could there not be small programs, not
> formed by concatenating with others to form their composition,
> which nevertheless have parts: MOLECULES
>
> An assembly program consists of a sequence of lines, each
> holding one instruction, to be executed in sequence unless
> intercepted by a jump instruction. Each instruction produces
> a change somewhere, and the concatenation of the lines
> produces the composition of the changes. But instructions
> have part, too. They consist of an operator such as mul, fetch,
> store, ..., each followed by several inscrutables having to
> do with where things come from and where they should go.
> So an instruction is a sort of molecule composed of several
> atoms. Now think of concatenative languages in which programs
> are concatenated from molecules, each consisting of an
> operator (like swap, + etc) together with additional parts
> that complete what is meant. Note that the additional parts
> are not further parameters that should be taken from the stack.
> What useful additional parts may there be?
>
> I would take a hint from unix,

It occurred to me a while back that the stack is to concatenative
languages as a pipe is to Unix programs and shell scripts.


> which has a rich collection of
> what are called filters, programs that take one input fil and
> produce one output file. The names of such programs, foo, bar,
> baz and zot, can be concatenated to form what is called a pipe:
> (here i dare not think what my mailer will do with the vertical bar)
>
> foo | bar | baz | zot
>
> and this concatenation will take one input file and produce one
> output file such that ... You guessed it. But each of these programs
> may have a useful default behaviour and also allow switches to
> modify the default. The switches are typically single letters
> precededd by a minus sign. So the pipe might actually look like
> this:
>
> foo –a –g | bar –x | baz -e –q –w –e –r | zot –m –d
>
> So in the terminology I am tempted to adopt, here we have
> the concatenation of four molecules or instructions,
> where the first instruction consists of  three atoms, namely
> a program and two switches.
>
> Apart from the pipe of output-input files, it may be necessary
> to use other files, and there are lots of ways of doing that.
>
> The upshot: have we in the concatenative world missed out
> on something useful by not allowing parts to the smallest
> programs. There is a lot one could and should discuss here,

Agreed!
--
don


> but not me, not tonight.
>
>   - Manfred
>
>
>
> [Non-text portions of this message have been removed]
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>
>


------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/concatenative/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/concatenative/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[email protected] 
    mailto:[email protected]

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
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.