[REBOL] Rebol von Neumann properties (RIP ifs-for-whomever cont.) Re:
From: lmecir::geocities::com at: 13-Oct-2000 22:14
Hi Joel,
I am sorry I wrote my previous post in a way you felt a need to apologize.
The fact is, that I was sorry about it right after I sent it. I knew I
wasn't totally right about the non-terminating issue. The only problem of
your code WRT termination is, that it doesn't terminate for some trivial
inputs, such as None supplied as the first argument.
[...snip...]
> REBOL definitely offers expressive power far beyond the reach of
> most of the current crop of programming languages, and I find it
> interesting to see just how far that can go.
>
[...snip...]
> REBOL (as a von Neumann language in the company of Lisp, PROLOG,
> etc.) gives us the ability to indulge in what I'll call "logical
> fractals" whose behavior is *SEVERELY* unobvious if we aren't
> aware of what we're getting into. Now, please hold that thought
> for a moment, while I draw in one other connection...
>
> In an essay (the ninth chapter of his book _Patterns_of_Software_,
> Rich Gabriel suggests four characteristics which a programming
> language must have to survive:
>
> * Languages are accepted and evolve by a social process,
> not a technical or technological one.
>
> * Successful languages must have modest or minimal
> computer resource requirements.
>
> * Successful languages must have a simple performance
> model.
>
> * Successful languages must not require users [to] have
> "mathematical sophistication."
>
> REBOL succeeds admirably on #2, and we're all working on #1 via
> this mailing list.
>
> #3 is more problematic. I've never seen an "official" model of
> REBOL semantics, but throughout my involvement with it I've
> been trying to come up with pieces of one (e.g., my earlier
> essays on SERIES! values). I still believe that there are many
> parts of REBOL that could be explained precisely and simply,
> but others that are not so clear. (Either in my poor head or
> in fact -- witness the differences in behavior when mutations
> are applied to BLOCK! versus LIST! values.)
>
> #4 is the most "dangerous" to REBOL, in that *EVERY* vNL of
> which I'm aware -- REBOL included -- requires at some point a
> fair bit of sophistication to understand, or at least to
> recognize when one is getting into deep waters.
>
> TYING IT ALL TOGETHER (at last!)
>
> I suspect that what we (computing folk in general) need before
> vNL languages in general -- and REBOL in particular -- will be
> widely accepted is the beginnings of a real grasp on "logical
> fractals" that let us use their power effectively and (mostly)
> safely. Of course, one approach is to say "Don't do that at
> all!" If I take that approach, I begin to wonder why I don't
> just stick to COBOL!
>
> OTOH, if I can begin to get a grip on when and how to use such
> "monsters" as:
>
> * mezzanine-level control constructs,
> * higher-order functions,
> * self-modifying, stateful values,
> * ...etc...
>
> I may be able to take advantage of REBOL's power -- using it
> more effectively -- and be able to explain/communicate its
> benefits more persuasively -- promoting its success more
> effectively.
>
I do like the notion of an Evolving Language. That means a language, whose
dictionary is easy to enlarge together with its syntactic/semantic rules.
All those properties are present in natural languages, like English, etc. To
enlarge a language there must be a possibility to speak about the language
in the language. As Carl likes to underline, an Evolving Language must be
its own metalanguage.
I don't think, that an Evolving Language must be able to do something like:
a: [append a [+ 1] 1]
do a
(a von Neumann property - Pure Self Modifying Code), but I do think, that an
Evolving language must be able to do:
a: create-a-translation-of something
do a
, which may be described as a von Neumann property of the language too, but
this is a code I would like to describe as a provision to understand
Something with new syntactic/semantic rules (a new dialect, if you like, but
it might not be a new dialect, but a new stage of the original language
evolution).
Regards
Ladislav