Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[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. >
> 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