[Haskell] Scripting language: is Haskell a good choice?

Davor Cubranic cubranic at gmail.com
Fri Jan 27 13:33:22 EST 2006


Jules,

If you're looking for a text on implementing interpreters using functional
programming languages, Essentials of Programming Languages by Friedman et
al. is a good start. It uses Scheme instead of Haskell, but it might be
helpful when you're reading Haskell code, like samples that come with the
Parsec library, or Graham's Swish project.

Also, Autrijus Tang, the author of Pugs mentions a couple of textbooks that
he found invaluable while working on Pugs, although I think they're at a
more advanced level, so you might not want to start off with them:
http://svn.perl.org/perl6/pugs/trunk/docs/01Overview.html

Davor


On 1/26/06, Graham Klyne <GK at ninebynine.org> wrote:
>
> I used Haskell to implement a kind of scripting language, and it seemed
> most
> usable to me.
>
> I particular, I liked the fact that it was possible to write a Parsec
> parser
> that "compiles" script language expressions directly into executable
> Haskell
> functions, avoiding the need for a separate interpretation layer, and
> because of
> this I think performance is probably quite respectable.  Higher order
> functions
> are, I believe, a real boon for this kind of work.
>
> My work in this area is a bit stale, but can be found at:
> http://www.ninebynine.org/RDFNotes/Swish/Intro.html
> The particular module that "compiles" script language to functions is
> here:
> http://www.ninebynine.org/Software/Swish-0.2.1/HaskellRDF/SwishScript.hs
>
> The parser assembles a list of function that uses the "SwishState helper
> functions" as primitives, and operate in the SwishStateIO monad - an I/O
> monad
> that also incorprates some specific state that is used by my interpreter.
> Upper-level functions are 'parseScriptFromString' and 'script'.
>
> #g
> --
>
> Jules Jacobs wrote:
> > Hi,
> >
> > I would like to create a scripting language, similar to Ruby, Perl and
> > Python. Pugs, written in Haskell, is a Perl6 implementation. Is Haskell
> > a good choice for me? I have no experience with Haskell (yet), but I
> > like the concept of functional programming. Because Haskell will
> > probably be too slow for the final implementation, I will have to
> > rewrite it in C or maybe D. Haskell can be very useful as a
> > test/prototype implementation, where speed is not very important. But
> > will I be able to create a clean, and easy to understand implementation
> > in Haskell? The scripting language will be object oriented, and
> > imperative. Is that a problem because Haskell is functional, or is there
> > be an obvious and nice way to implement an imperative scripting
> language?
> >
> > The language is very dynamic, and the source-tree needs to be in memory
> > because it is modifiable at run-time.
> >
> > Would it be good to do this in Haskell, and port it to C if I like the
> > implementation, or start in C? Keep the parser/lexer for the source code
> > in Haskell, but port only the interpreter to C?
> >
> > What would be a good place to start? I am reading Yet Another Haskell
> > tutorial, and I've read the first 6 of two dozen lessons in Haskell.
> > What to do next, practice/read more/start with the implementation of the
> > scripting language?
> >
> > Thanks in advance,
> >
> > Jules
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > Haskell mailing list
> > Haskell at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell
>
> --
> Graham Klyne
> For email:
> http://www.ninebynine.org/#Contact
>
> _______________________________________________
> Haskell mailing list
> Haskell at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org//pipermail/haskell/attachments/20060127/ba25b51b/attachment.htm


More information about the Haskell mailing list