我更喜欢 Haskell 。
我已经知道如何使用过程语言创建自己的语言(例如:C,Java,Python等)。
但是,我知道如何使用功能语言创建自己的语言(例如Haskell
,Clojure
和Scala
)。
我已经读过:
还有其他好的链接/来源吗?我想得到更多。
答案 0 :(得分:4)
Programming Languages: Application and Interpretation经常用于编程语言课程,并且可以在线免费获取。它使用Scheme。
Types and Programming Languages是另一本处理类型系统(包括实现)的令人难以置信的书,尽管只能以死树格式提供。它使用ML(它代表了我注意到的列表中缺少的一大类函数式语言)。
Racket(以前称为PLT Scheme)是一种强调制作自己的子语言的功能语言。
答案 1 :(得分:3)
另请阅读:
我也认为Jacques Pitrat的最新着作Artificial Beings - the conscience of a conscious machine会给你非常有趣的见解。
答案 2 :(得分:0)
还要查看Compiler.HOOPL和Control.Unification库以及uuagc属性语法预处理器。您还可以在Haskell中编写模块化解释器时阅读https://wiki.ittc.ku.edu/lambda/images/e/e3/Modular-interpreters.pdf。另请注意,Parsec不是很快,对于非玩具项目,Happy / Alex可能更适合。