[REBOL] Re: Dialects - Bane or Blessing? (was: Teaching Rebol)
From: brett:codeconscious at: 26-Sep-2002 19:47
> I think dialects are something we're going to learn a lot more about as we
> start to really learn how to create and apply them. Since I think dialects
> are so important, I'd love to hear some other viewpoints about their pros
> and cons. This isn't a rant, or an attack on your view, but your note
> inspired me to think a bit and, now, ask more folks here to think a bit
> share their thoughts.
Gregg great post. I agree with it all, although I didn't quite understand
what you meant by "In a good dialect, there shouldn't be any *extra*
vocabulary or syntax. Just the dialect."
Last night I spent quite a while making a simple dialect more sophisticated.
It sort of evolved as I thought up interesting extra functionality to add.
But even while the functionality grows, the dialect grammar does not
necessarily grow as fast. A nice property. Leverage.
I'm evolving my dialect because I'm not an experienced grammar designer and
I find that choosing how to the structure of the grammar to be really hard.
But it is good experience. Thinking through these decisions makes me
appreciate just how much VID can be seen as a work of art. It also makes me
realise that having a cookbook for writing dialects in REBOL would be really
great. I've tried searching the internet for information on how to design a
good grammar and to me it seems as scarce as hen's teeth. Yes there's plenty
on how to parse one or compile one but not on how to make one conform to
your goals. It might also be nice to a sort of dialect framework - e.g the
structure of VID could be used in multiple domains so is it possible to make
it resuable as a quick start for someone building a new dialect? I guess
this situation of lack of grammar design information comes about because
designing a language is not ordinarily considered an developer activity -
more a software tools manufacturing activity - or maybe I was just looking
in the wrong place. Maybe REBOL will alter this situation.
In terms of example, at least some of the XML languages can be used to
reflect on. I mean XML is all about adding meta information to your base
information. REBOL dialects are too. So there can be a creative mixing of
ideas there. For me though I think the REBOL dialect approach is easier to
explore because the building blocks so naturally follow and are indistinct
from the supporting language.
In terms of internal REBOL dialects my favourite is VID naturally enough.
PARSE. CONTEXT, SECURE, COMPOSE, BUILD-TAG and rebsite index.r files provide
food for thought too.
Here are some external REBOL dialects I can name straight off:
Ingo Hohmann: TUI Dialect (Produce ASCII sequences)
Andrew Martin: -he just posted his list-
Joel Neely: generate-data (Generate test data from production rules)
David Oliva: Flash (SWF) Project
Gabriele Santilli: PDF-maker
Frank Sievertsen: lego (Lego-Cybermaster Robot control protocol),
irc-protocol, reb-log (Prolog dialect)
> << My main concern about Dialects is that the new extra vocabulary/syntax
> and lack of indication. >>
> How much "indication" a dialect provides will depend on the dialect. The
> PARSE dialect provides quite a bit of indication I think, which is
> in that context. Defining a grammar isn't the place to have lots of
> ambiguity. :)
I guess it depends on requirements. Its a hunch, but I think that if a
dialect is going to be stable and the outcomes change not much then perhaps
vocabularies / grammar can be minimal. But if the dialect has to grow over
time without breaking older messages then you might need to build in some
expansion flexibility or apparent redundancy. VID is amazingly extendable -
even to the point that a VID style can be designed to interpret the input
given to it as a special dialect in itself (within some limits of course). A
dialect within a dialect.