[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Diversity - existence, value, and pursuit.

On 12/1/01 4:39 AM, "Michael Vanier" <mvanier@bbb.caltech.edu> wrote:

> Both ocaml and rebol have elements of this already.  Ocaml has camlp4,
> which allows user-definable syntax (but isn't trivial to learn, hence it's
> really for experts, which may be a good thing).  Rebol (which is much like
> scheme, as readers of this list know) has its dialects.  I'm not sure how
> much they're used in practice; maybe the rebolers can say something about
> this? 

REBOL dialects allow for domain-specific languages. The idea behind dialects
is to use REBOL to make a new syntax more appropriate for your problem
domain. Everything in REBOL can be overridden, so you can redefine any
existing keyword, etc. You can purchase specially made REBOL dialects from
REBOL Technologies, or build yourself them using REBOL/Core. The most
impressive use of REBOL dialects I've seen is VID, REBOL/View's Visual
Interface Dialect, which is used to create cross-platform GUIs in the
REBOL/View platform.

Note that the underlying semantics don't change with dialects, REBOL is
still a functional language.

On a related note, a little while back I started hacking on a REBOL/Core
work-alike language (tentatively titled "revolt") in Scheme (Scheme48 right
now [I couldn't compile MzScheme/DrScheme out of the box on Mac OS X 10.1.1
and haven't had time to muck with it], thinking about targeting Stalin as
well to get efficient C-to-object code) for the purposes of personal
edification, and because I'd like an open implementation of REBOL (or, more
legally accurate, a REBOL-like language).

> I think guile scheme took the wrong approach of saying they would generate
> _translators_ from other languages to guile.  The problem with this is that
> you not only have to support the other language's syntax, but also its
> semantics, even when the semantics are broken (e.g. python's non-support of
> closures until recently).  If you stick to syntax, this doesn't come up.

One of my favorite things to think about and occasionally hack on are
various attempts at automatically translating from one language to another.
It's an immense amount of work to do for large languages (originally CL
w/CLOS to & from Smalltalk-80, work unfinished, as you may imagine), and
generating efficient code in the target language is almost impossible. I'm
curious to know what others think about this as regards usefulness,
tractability, current research I haven't read yet, etc.

Dan Moniz <dnm@pobox.com> [http://www.pobox.com/~dnm/]