2012-04-22 5 views
19

Haskellで別の言語用のコードを生成したいのですが、この問題にどう対処するのが難しいですか? 私はHaskellの抽象的かつエレガントな表現を探しています。これはコード生成にも役立ちます。問題の言語はInstallScriptです(言語リファレンスガイドのlink)。誰かが、HaskellタイプのInstallScriptで採用されている言語構造をキャプチャする方法や、インスピレーションのために同様のプロジェクトを指す方法についてのヒントを(多分例を挙げて)提供してもらえますか?Haskellで別の言語のコードを生成する

+6

オブジェクト言語の抽象構文ツリー(InstallScript)を表現するための抽象型の定義と実装が必要です。 –

+0

@BasileStarynkevitch:これを行うプロジェクトを指摘できますか?私は例と巧妙なトリックを探しています... – akosch

+5

[nsisパッケージ](http://hackage.haskell.org/package/nsis-0.1.2)を見てみたいかもしれません。 – bzn

答えて

17

これはHaskellで解決する問題です。これはclassicです。

  • は(コードを生成するために)ボーナスポイントのために

をプリティプリンタを定義して使用する言語の抽象構文木を定義します。

  • パーサ
  • 書き込みaを定義しますあなたがHaskellにターゲットを埋め込ませるための素敵なHaskellコンビネータライブラリ
  • あなたの抽象構文のためのオプティマイザを書く

Hackageにはmany, many examplesがあります。 this one)。

関連する問題