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

[REBOL] rebol weak points (i think) Re:(9)

From: g:santilli:tiscalinet:it at: 14-Sep-2000 16:31

[Petr--Krenzelok--trz--cz] wrote:
> > > Compiling the compiler into the runtime? Compilers can be small.. > > > > Even if it has to be smart enough to compile REBOL? > > IF Rebol would be properly modularized, e.g. much earlier discussion about one and only > /Core.exe, others as loadable components, or just ability to 'package appropriate components into > one .exe, even compiler could be separate component, no?
You can't know what the input to compile will be, so you'll have to include everything.
> > Would that really be faster than the current interpreter? Just a > > bit, I think. Is that worth the effort? > > Huh, just only a bit?
Yup. The compiler doesn't know that IF means if, does it?
> > But then again you need the compiler in the runtime; I have dubts > > that such a "REBOL compiler" could be dramatically faster than the > > current interpreter. If you, instead, express the speed critical > > parts with an ad hoc designed compilable dialect, and then compile > > those, you get a dramatic speed improvement with just a little > > effort. > > sounds interesting, is it achievable? What would such "dialect" look like, what exactly should be > its purpose? Could you explain a little bit, please?
Imagine you have the ability to MAKE NATIVE! passing a binary containing the (relocatable) machine code. You can easily write a compiler in REBOL that takes some language (even C) and translates it to machine code. Something like: my-native: make native! compile { for (int i=1; i<=10; i++) { sum += i; } } (Let's ignore argument passing etc.). Or you could use a REBOL dialect: my-native: make native! compile [start [integer!] end [integer!] /local sum [integer!]] [ for i 1 10 1 [ sum += i ] return sum ] For platform independency, you'd need to compile to some form of bytecode. Also, the compiler could be native in REBOL, so you'd be able to write: my-native: make native! [...] [...] etc. Regards, Gabriele. -- Gabriele Santilli <[giesse--writeme--com]> - Amigan - REBOL programmer Amiga Group Italia sez. L'Aquila --