27

Haskell で別の言語のコードを生成したいのですが、この問題にどのようにアプローチすればよいかわかりません。コード生成にも役立つ、Haskell での言語の抽象的でエレガントな表現を探しています。問題の言語は InstallScript です (言語リファレンス ガイドへのリンク)。InstallScript で採用されている言語構造を Haskell 型でキャプチャする方法、または同様のプロジェクトを参照してインスピレーションを得る方法について、誰かがヒントを提供してくれませんか?

4

1 に答える 1

21

これは、Haskell で解決する古典的な問題です。

  • 言語の抽象構文ツリーを定義する
  • きれいなプリンターを定義する (コードを生成するため)

ボーナスポイント:

  • パーサーを定義する
  • Haskell にターゲットを埋め込むことができるように、適切な Haskell コンビネータ ライブラリを記述します。
  • 抽象構文のオプティマイザーを作成する

Hackageには非常に多くの例があります (例: this one )。

于 2012-04-23T11:50:16.553 に答える