c-wrapper

This entry was posted by on Friday, 10 March, 2006
> >http://homepage.mac.com/naoki.koguro/prog/c-wrapper/index-j.html >。Gauche の FFI をお手軽にするライブラリ? これは面白いねぇ。 > >GHC では、外部のライブラリを参照するとき > >foreign import ccall "stdio.h puts" puts :: CString -> IO () > >のような宣言を書いておく必要があり、非常に定型的な構造なので、ヘッダファイルから関数宣言を取り出し、型を発見して既知のものはそれっぽいものに変換して、この宣言のある程度までを自動生成するスクリプト、というのは前にちょろっと書いたことがある。折角だから >/prog/import_generator.hs > に置いとく。引数が void のときは上手くないとか、なんちゃってパーサなのでおかしなことは起こりがちとか、まあいろいろありますが。 > >ただ、それくらいはまあ、誰でも出来るし、必要になったら誰でもやる。でも、それをライブラリにするという発想はなかったなと。それに Haskell ではこういうことはできないのだよね。言語構造じたいをいじることは(Template Haskell みたいなメタプログラミングをしないかぎりは)出来ないので、ライブラリでポンと宣言すればおしまいというわけにはいかない。動的言語というけれど、こういう風に動的に名前空間が増えるかもしれない世界と静的な世界というのはあって、こういう場合には前者の方が強いのだなあとつくづく感じる。 > >というかそうか、書いてて気付いたがテンプレートメタプログラミングをすれば可能なのかなあ……。 >

Comments are closed.