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

Re: How to Design (Declarative) Programming Languages



It's a little hard to guess from your post what sort of "DSL" exactly 
your friend is working on, but let me make the following assumptions:
- There is some system out there, or maybe in the works, written in, 
say, C.
- It's going to have to be way more programmable than they can achieve 
by clicking buttons or writing "ini" files.
- Thus, they want to invent a new language that will make it easy to 
program their specific system.

May I suggest that instead of trying to reinvent the wheel, learning 
the contents of a college course or two, and delivering a novel proof 
of Greenspun's law, he consider a canned solution like GUILE? This has 
two advantages:
- Your friend can forget about having to understand the nit-picky 
details of syntax, semantics and implementation, as well as integration 
with the base system.
- He can focus purely on extending the canned embedded scripting 
language (with GUILE that's Scheme) to be a domain-specific language. 
This is much easier than rolling your own, and extensively described in 
books like SICP (Abelson & Sussman).

Please, please, don't flame. To most of us, those "nit-picky" details 
are some of the more interesting problems in CS. It's sort of like 
this: I'm very interested in knowing how to make the finest risotto or 
the best hot-and-sour; yet I sometimes eat canned spaghetti sauce.

	/jaap


On 17 Nov 2003, at 07:44, Jenkins, Steven wrote:
> I have a friend who is struggling to develop a DSL, and I've been 
> giving
> him advice.  However, I'm getting a bit tired of basically teaching him
> how to design a language,


========================================================================
Jaap Weel                   Campus address:        | dorm (626) 795-9748
Caltech, Blacker '05        Caltech MSC #874, Pasadena, CA 91126, U.S.A.
www.its.caltech.edu/~weel   Permanent address:     | home +31-46-4337033
E-mail: weel@caltech.edu    Kelderstraat 2-4, 6171 GB Stein, Netherlands
========================================================================