[REBOL] Re: relative expressions
From: g:santilli:tiscalinet:it at: 2-Apr-2003 15:39
On Wednesday, April 2, 2003, 11:40:50 AM, you wrote:
BH> So, custom types would allow the REBOL interepreter to interpret these
BH> expressions directly.
Maybe not directly from the function interpreter, but directly in
the same way as you can now handle blocks, dates, urls, and so on.
You can have a set of generic functions that work on any new type
you happen to add to your application in the future...
BH> But I don't think that changing the actions will be entirely sufficient for
BH> reusability, although I do agree it could be very powerful.
Of course we'd really require that creating new datatypes was
allowed by the interpreter, and not just by using "hacks" like
BH> VID is building/maintaining state (e.g offset) as it processes the
BH> dialect. I know this seems obvious but I feel it is important to highlight
BH> that dialects may have this extra "between the lines" - value adding aspect.
Yes, and in some cases you'd need to make this "information"
explicit in some way, if you want to push reusability. However,
since dialects are domain specific languages, usually this
between the lines
is part of the specific domain too, so it
doesn't necessarily have to be made explicit.
Take a FACE as an example: it has everything it is needed to
render it, and you could render it on a PDF file instead of on a
window. If you had something that translated to PDF starting from
a FACE, you could use LAYOUT to create graphics for a PDF file.
You don't need to know how LAYOUT works internally etc. You just
need to know the concept of a "face".
BH> Also in relation to parsing dialects, I'd like to see a methodology for
BH> designing dialects so that they can be usefully mixed together (as I
BH> mentioned). Some sort of grammar convention might help here.
Maybe, but it is very dialect-specific anyway. I don't think it is
possible to have a solution that is so general to allow you to mix
any two dialects, mainly because mixing does not have any sense
for most two dialects.
BH> Yes custom types could be very important. Though they may not be so good for
BH> message passing between distributed systems because they might introduce
BH> unwelcome dependencies ("do you have custom type xyz-floating-graphic?").
Of course, and that is the reason why we have View as a single
executable. However, as soon as we try to modularize, we get to
this problem. A good solution is probably that of having all
instanced well synched, so that it is not possible to have two
different versions of the same application at the same time. (With
IOS you have this automatically, because your reblets are synched,
and if you change a reblet the change is reflected to all the
users.) Another way is to always provide fallbacks and default
behaviors in case of failure.
Gabriele Santilli <[g--santilli--tiscalinet--it]> -- REBOL Programmer
Amigan -- AGI L'Aquila -- REB: http://web.tiscali.it/rebol/index.r