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

[REBOL] Re: A prototype typechecker

From: brett:codeconscious at: 9-Nov-2002 11:30

> JS> Am I right to assume that Rebol 'dialects mean exactly > JS> the same as what others call DSELs - Domain Specific Embedded > JS> Languages? > > Yes.
I experienced an ecclectic mixture of thoughts when reading this: 1) Guessing what others mean is always fraught :^) 2) "Domain Specific Embedded Language" doesn't sound like a useful description in the context of the goals of REBOL. "Dialect" by contrast involves human communication or at least human/computer interaction where Domain Specific Embedded Language has no such immediate meaning. Of course, I just impliedly excluded programming from human/computer interaction then, but I can do that because programmers are back to being ignored in this post IT bust :^) My real point though is that "Dialect" implies a different audience to Domain Specific Embedded Language (DSEL). I went searching using Google on "Domain Specific Embedded Language" to see what others mean by that. I found this quote "A DSEL is just a subroutine library, but written in a functional language such as Haskell." (*) Well to me that certainly doesn't sound like a good description of a dialect. I'm not entirely sure it is an accurate description of a domain specific embedded language either - but I'm not sure. Paul Hudak wrote: "... let's inherit the infrastructure of some other language---tailoring it in special ways to the domain of interest---thus yielding a domain-specific embedded language (DSEL)." (**) To me, in the context of REBOL, that last quote can provide useful understanding. But I still wonder. I agree with the last quote in general, that is REBOL dialects by definition inherit infrastructure (loaded datatypes) from their host language. But REBOL dialects do not inherit a grammar, the Dialect designer creates that. I wonder when "others" refer to DSELs in their language of interest - do they assume the grammar of the host language - perhaps even not concsiously? Maybe that is what the fellow in the first quote did.
>From the overview of "Expressions" in the REBOL core user guide:
Expressions can be processed in one of two ways: directly by the REBOL interpreter, or indirectly by a REBOL script. A script processed indirectly is called a dialect. A little further on in the user guide: "The distinction REBOL makes is that information is either directly or indirectly interpreted. The distinction is not whether information is code or data, but how it is processed." To me these descriptions invoke a broader sense of possibilities than the term DSEL does. In lines up with my believe that meaning is not *in* a message it is overlayed on a message when that message is interpreted, another reason I'm keen on REBOL. As a bit of a side note, I believe you can substitute "script" for "block" in that first user guide quote and conclude that any function that takes a block as an argument could in some sense be an interpreter of a dialect. So after all that I'd tend to a concisely answer the original questions with Probably Not - not exactly. Regards, Brett. Online references: (*) http://web.comlab.ox.ac.uk/oucl/research/areas/progtools/festabstracts/kevin .pdf (**) http://cs-www.cs.yale.edu/homes/hudak-paul/hudak-dir/ACM-WS/position.html