27

我想在 Haskell 中为另一种语言生成代码,但我对如何解决这个问题感到困惑。我正在寻找 Haskell 中语言的抽象和优雅表示,这对于代码生成也很有用。有问题的语言是 InstallScript(链接到语言参考指南)。有人可以提供有关如何捕获 Haskell 类型中 InstallScript 中使用的语言结构的提示(可能带有示例吗?),或者指出类似的项目以获得灵感?

4

1 回答 1

21

这是在 Haskell 中解决的经典问题。

  • 为您的语言定义抽象语法树
  • 定义一个漂亮的打印机(生成代码)

对于奖励积分:

  • 定义解析器
  • 编写一个不错的 Haskell 组合器库,让您将目标嵌入到 Haskell 中
  • 为您的抽象语法编写优化器

很多很多关于 Hackage 的例子(例如这个)。

于 2012-04-23T11:50:16.553 回答