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

[REBOL] Re: Dialects - Bane or Blessing? (was: Teaching Rebol)

From: brett:codeconscious at: 26-Sep-2002 19:47

Hi all,
> 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
and
> 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
to
> learn > 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
valuable
> 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. Regards, Brett.