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

[REBOL] Re: Fwd: Re: Re: On mutability and sameness

From: whip:cs:unm at: 20-Jun-2001 9:03

Hello, Robbo. [Jeff emailing from his school account -- looks down right now]
> REBOL AS IT'S OWN META-LANGUAGE > > I've read recently from Jeff & Joel, and other's in the previously, > that REBOL is it's own meta-language. > > This is bunk! or at least only partially true.
No, it's not bunk.
> Consider this model of REBOL addition... > > >> add: func [ x y ] [ + x y ] add 1 2 > == 3 > > Fine so far, however how do you define the '+ in the function body? > > If you say > > >> set '+ func [ x y ] [ add x y ] > > On the surface it looks okay, but try....
No, on the surface it doesn't look okay at all. You've defined the function ADD to depend on the function +, and you've defined + to depend on the function ADD. Something eventually has to be able to actually add two numbers.
> >> add 4 5 > ** Internal Error: Stack overflow Near: add x y > >> + 4 5 > ** Internal Error: Stack overflow Near: add x y > >> > > Your into infinite recursion here, so REBOL as a complete > meta-language is "insufficient".
So, I don't really understand. What are you trying to demonstrate with the above? . . .
> If this was the case there would be no need for RT Inc. to write > any more interpreters, we could simply write and extend REBOL in and > from REBOL and we'd all live happily ever after.
Written many dialects?
> Unfortunitely there are these "irreducibles" or "primitives" that > you simply MUST have to get the system up and running. > > It is for this reason that you sometimes have to use C or Java or > something else to "explain" or implement REBOL.
You don't "HAVE TO" use a low level language to "explain" a high level language.
> You can however devise a way to construct these "primitives" from > within REBOL / your "meta-language" then you get into the realms and > possibilities of META-COMPILATION which is a system written in > itself, however you still have to bootstrap the whole process from > something else first whether this be Assembler or C or Java or > whatever.
Are you sure this is necessary? Have you tried, or are you just speculating here?
> Forth proves this is possible and has had this capability for nearly > thirty years now, maybe someday REBOL will catch up & we'll be > dispensed with the need for RT to write our REBOL interpreters for > us, if we so choose of course. 8-)
That's right.. How uncool of RT to be writing our REBOL interpreters for us. The nerve of them!
> Oh Dear, why am I always so contrary?
I figure it's part of your PR effort. Play up on that martyr kind of thing.. :-)
> I don't know about painting that fence Jeff, maybe I should come > round from the wrong side of it and you can break the fence apart & > hit me over the head with it!
See, if you ask me, which you haven't, you're going about this all wrong. You're running out and rather recklessly trying to implement (or actually, trying to get someone else to implement for you) a language of great design and forethought (nearly 20 years in design and many man years of implementation) and yet you consistently seem to demonstrate rather questionable mastery of REBOL. If I were you and I was trying to clone REBOL, I'd do the following: First, become a true REBOL guru, mastering REBOL to a fine art, including all its different areas: dialecting, introspection, metaprogramming, networking, GUI, etc... True REBOL gurus can explain why there is dialecting in REBOL, how to make user defined ports, the reasoning behing MOLD/only, or LOAD/all, etc.. With all this understanding of the language, I'd help 1,000 newbies into the language. Now once my expertise in REBOL was solid and sure, and my commitment to the beauty of the design was complete, then and only then would I embark on the journey to clone REBOL. Here's my recommendations for the cloning phase (which you've already jumped ahead to): A. Drop the hokey PR gig. B. Produce something. Actions speak louder than words. What to produce? Well, an actual interpreter written in some compiled language is a lot to expect right away (or for a very long time). Unrealistic expectations are bad for any development project. The most rational approach would be to try and implement REBOL in REBOL first. You can learn a great deal more about the rules of the language as you put it together, and a working REBOL implementation of REBOL counts as producing something (you can actually take credit for having done something other than yack). Once you've gone through those exercises before actually attempting something compiled, the likelihood of you groking many of the finer aspect's of Carl's awesome design will be higher. Also, with that understanding of the design, the likelihood will be much lower that you'll end up creating some super mangled REBOL-like language that's only vaguely related and inappropriately compared. I only bring this all up because I think it's great that you're trying to clone REBOL, but like I've said, your approach just shocks my esthetics and sensibilities. (-8 I sort of think you want to have it all now, but I suspect you may have to live with RT writing your REBOL interpreter for you for a while yet... Just my opinion-- Best of luck! -jeff