[Top][All Lists]

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

Re: What is Guile?

From: Jeff Read
Subject: Re: What is Guile?
Date: Mon, 8 Sep 2003 20:33:19 -0400
User-agent: Mutt/1.4i

On Mon, Sep 08, 2003 at 02:39:12PM -0700, Jonathan Bartlett wrote:
> The idea comes from Scheme itself - it doesn't really have a syntax.  It's
> just a raw parse tree with some primitives.  Using a combination of
> function definitions, macro definitions, etc., you can easily modify
> scheme to work like any system you want.  Then you just need a parser to
> convert the raw code into a parse tree, and have your scheme interpretter
> run your parse tree.
> Basically, what you would need is the following:
>  a) a flag in Guile so that you could specify which parser / language
> module to use
>  b) the ability to create both macros and definitions within a closed
> environment which can be applied to a list (i.e. parse tree - I believe
> this is already there)
>  c) an interface definition for parsers and language providers.

Don't forget d) parsers and language modules for various languages. :) They 
probably have to be written in Scheme, and it seems that there are few people 
willing to do one, or at least, willing to stick to it long enough so that it's 
a recognizable form of the target language.

Converting language X to Scheme, and then interpreting the Scheme is an 
interesting academic idea but if technology doesn't work for people then it 
doesn't work. Guile isn't the fastest Scheme interpreter in the world, and 
adding another layer of parsing and conversion will simply make things slower. 
If given the choice between a slow, subtly incompatible Perl substitute and 
Perl, most developers will simply embed Perl. Same goes for Python, or whatever 
other language you can think of. There's also the taste aversion to Scheme to 
overcome. GIMP appears to be migrating from Scheme to Perl as its embedded 
language of choice. Alternatively they will target JVM or MSIL bytecode.

Making Guile compile to, say, the Parrot VM before execution and then writing 
compilers that do X-language->Scheme->Parrot, might be an interesting way to 
go. Nevertheless, there are numerous marketing hurdles to overcome, the 
public's taste aversion to Scheme being just one of them. The only way I see 
Guile becoming everybody's favorite multilingual embedded interpreter is if the 
FSF really put its weight behind it as The Official GNU Way To Go. That's how 
free software authors standardized on the creeping horror that is Autoconf 
(which I'm writing a replacement for (in Guile!)). :)

Jeffrey T. Read
"I fight not for me but the blind babe Justice!" --Galford

reply via email to

[Prev in Thread] Current Thread [Next in Thread]