[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Extensible syntax
The file is available at
On Thu, 11 Dec 2003, Matt Hellige wrote:
> [Tom Locke <email@example.com>]
> > Hi,
> > ...seeking links / advice...
> > I'm currently working on a language that is extensible in the same way
> > that "Lisp is a programmable programming language". The intention is to
> > come up with a language that can easily morph into a wide range of DSLs.
> > Lisp/Scheme provide exactly this facility, but every DSL must have
> > Lisp's syntax. What about lisp-like extensibility, plus extensible
> > syntax - i.e. a fully extensible set of prefix/infix/postfix operators
> > and compound statements (e.g. control structures)?
> > There's Dylan, with its template based macro system, but Dylan syntax is
> > only extensible within a fairly strict framework. It always looks like
> > Dylan. Agree?
> > Then there's Smalltalk et al, using blocks to provide extensible control
> > structures, but again the syntax is highly constrained.
> > Haskell has extensible prefix and infix operators, with user control
> > over precedence. This gets you quite far. I once built an XPath like
> > library in Haskell that tried to mimic regular XPath syntax, but you can
> > only get part of the way there.
> > Of course there's a ton of preprocessors that allow one to extend a
> > languages grammar, but this is something of a heavyweight approach, and
> > may suffer from lack of modularity?? I'm after something lightweight and
> > built-in, similar to the way Lisp lets me just fire off a defmacro as
> > easily as a defun.
> > Also of great interest is the ability to freely embed DSLs inside each
> > other. I don't think I've seen this done (except in Lisp where the
> > syntax doesn't change).
> > Thoughts? Links?
> You should also check out Donoval Kolbly's PhD dissertation,
> "Extensible Language Implementation." I believe you'd find it quite
> It used to be available online, but it seems to have been removed, and
> all the links I can find point to the same place. I could send it to
> you directly if you'd like.
> Matt Hellige firstname.lastname@example.org