Parsing a very close approximation to what Haskell specifies isn't that hard. You just need some mild interaction between the parser and lexer.

Executing Haskell is more difficult, since you can't execute Haskell without first doing type checking.

        -- Lennart

On Thu, 10 May 2007, Andrew Coppin wrote:

Date: Thu, 10 May 2007 17:59:38 +0100
From: Andrew Coppin <[EMAIL PROTECTED]>
To: haskell-cafe@haskell.org
Subject: Re: [Haskell-cafe] Picking an architecture for a Haskell web app


No, you can do the GHCi trick, converting it to Core, perform a small
number of Core-to-Core transformations, convert it to bytecode,
interpret the bytecode. Compare this to the programmer time to
implement directly executing an interpetted expression, and it starts
to get complex.

One of the things on the long list of questions I haven't got round to asking yet is "is there some library that lets you execute arbitrary Haskell code from a string?" Clearly GHCi manages to do it without difficulty. Apparently hs-plugins allows this too, but... surely this is a sledgehammer to crack a nut? A Haskell program is just a set of graph rewrite rules, after all...

Also remember that evaluating an expression in Haskell is _really_
hard!

Really? Looks pretty damn simple to me...

The value depends on the types, there is loads of sugar, loads
of libraries etc. A Haskell compiler is a very hard thing to write, an
interepretter doesn't save much of that complexity.

Oh, yeah, well, definitely the hardest part is *parsing* Haskell. In particular, the fact that layout exists makes this problem essentually unsolvable. If I could figure out how to parse Haskell, executing it wouldn't be too hard. (Unless you wanted it to actually be capable of running *arbitrary* programs - ones that use FFI, concurrency, mutable state, exceptions, graphics, etc. Or if you want it to be *efficient*. If you just want to be able to run pure functional code and have it produce a correct result, that's quite easy.)

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe



        -- Lennart
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to