
Dan Piponi wrote:
On Thu, Nov 13, 2008 at 11:08 AM, Andrew Coppin
wrote: In other words, Haskell is an excellent language for designing special-purpose compilers and interpretters for custom languages. ;-)
If I knew a damned thing about IA32 assembly and dynamic linkage, I'd be tempted to try it myself...
You could generate assembly language instructions directly.
Yeah. I figure if I knew enough about this stuff, I could poke code numbers directly into RAM representing the opcodes of the machine instructions. Then I "only" need to figure out how to call it from Haskell. It all sounds pretty non-trivial if you ask me though... ;-) [Don't some OS versions implement execution-prevention? Presumably you'd also have to bypass that in some platform-dependent way too...]
But if you use the Haskell LLVM bindings your generated code will be (1) platform independent and (2) optimised. I think there's a cool project lurking there.
Never heard of LLVM, but from the Wikipedia description it sound like warm trippy goodness. Pitty there's no Haddock. :-( [From the build log, it looks like it failed because the build machine doesn't have the LLVM library installed. Is that really necessary just for building the docs?]