Compiling Haskell code through LLVM

by syoyo

(via reditt/haskell)

http://augustss.blogspot.com/2009/06/more-llvm-recently-someone-asked-me-on.html

Hoho, its quite interesting!

– Parse Haskell into untyped AST
– Untyped AST -> Typed AST convertion
– Codegen LLVM IR

It’s valuable for me to learn how GADTs are used in constructing the compiler.

[Ja]

Haskell コードを Parsec でパースして untyped AST に変換,
Untyped AST を型付けして Typed AST に変換,
そこから LLVM IR を出してネイティブにコンパイル,
それを Haskell から呼び出すというサンプル.

サンプルコードなので, コンパイルできる Haskell コードは簡単なものだけど,
ここまで実現できるよ, というよい例ですね.

GADTs の使いかたとか型付けモジュールの書き方はいろいろと参考になる部分があります.

Advertisements