EDSL
Embedded domain specific language
Haskellの文法で他の言語を記述できるしくみ
Haskell関係なくある概念かmrsekut.icon
メリット
何かしらのコード生成をしたいとき、例えばC言語を吐き出すDSLを作りたいときに、安易に思いつく方法は自作言語を定義して、そのparserを書いて、そのコード生成器を書いて、、という経路を辿るがそれは大変
そこでEDSLを使うことで、HaskellでC言語マクロを書くことができる
Haskellで書いた式をC言語にコンパイルできる
わざわざparserやコード生成器を書かなくていい
自作言語を定義するわけではなく、HaskellコードをCに変換するので、Haskellコードの正当性の評価にはHaskellコンパイラの恩恵を受けることができる
memo
HaskellでC言語マクロを書く
これが言語になる
実行するとC言語にコンパイルされる
書き心地はどっち似ている?
メリデメを知りたい
具体的な用途を知りたい
するためには何らかのライブラリが必要?
タグレスにすると中間コードを介さないらしい
ほんとにマクロ書いている感じになるのかmrsekut.icon
参考