如何使用函数式语言来实现语言?
我更喜欢 Haskell。
我已经知道如何用过程语言创建我自己的语言(例如:C、Java、Python 等)。
但是,我知道如何使用函数式语言创建自己的语言(例如 Haskell、Clojure 和 Scala) 。
我已经读过:
互联网资源
书籍
StackOverflow(但使用过程语言)
来源
还有其他好的链接/来源吗?我还想再买一些。
I prefer Haskell.
I already know How to create my own language with Procedural Language (for example: C, Java, Python, etc).
But, I know How to create my own language with Functional Language (for example Haskell
, Clojure
and Scala
).
I've already read:
Internet Resources
- Write Yourself a Scheme in 48 Hours
- Real World Haskell - Chapter 16.Using Persec
- Writing A Lisp Interpreter In Haskell
- Parsec, a fast combinator parser
- Implementing functional languages: a tutorial
Books
StackOverflow (but with procedural language)
Source
Are there any other good links/sources? I would like to get some more.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
编程语言:应用程序和解释在编程语言课程中经常使用,并且可以免费在线获取。它使用方案。
类型和编程语言是另一本关于类型系统(包括实现)的令人难以置信的书,尽管仅以死树格式提供。它使用 ML(它代表了一个重要的函数式语言家族,我注意到你的列表中缺少它)。
Racket(以前称为 PLT 方案)是一种函数式语言,强调创建自己的子语言。
Programming Languages: Application and Interpretation is frequently used in programming language classes, and is available online for free. It uses Scheme.
Types and Programming Languages is another incredible book dealing with type systems (including implementation), though only available in dead tree format. It uses ML (which represents a significant family of functional languages that I noticed was missing from your list).
Racket (formerly called PLT Scheme) is a functional language that emphasizes making your own sub-language.
另请阅读:
我还认为 Jacques Pitrat 的最新书 人造生物 - 有意识的良心机器会给你非常有趣的见解。
read also:
I also think that Jacques Pitrat's latest book Artificial Beings - the conscience of a conscious machine will give you very interesting insights.
另请查看 Compiler.HOOPL 和 Control.Unification 库,以及 uuagc 属性语法预处理器。您还可以阅读 https://wiki.ittc.ku .edu/lambda/images/e/e3/Modular-interpreters.pdf 关于在 Haskell 中编写模块化解释器。另请注意,秒差距不是很快,对于非玩具项目 Happy/Alex 可能更适合。
Take also a look at Compiler.HOOPL and Control.Unification libraries, and uuagc attribute grammar preprocessor. You also can read https://wiki.ittc.ku.edu/lambda/images/e/e3/Modular-interpreters.pdf on writing modular interpreters in Haskell. Also note that Parsec is not very fast and for non-toy projects Happy/Alex may be suited better.