如何使用函数式语言实现语言?

时间:2011-11-16 17:32:50

标签: haskell resources language-design compiler-theory

我更喜欢 Haskell

我已经知道如何使用过程语言创建自己的语言(例如:C,Java,Python等)。

但是,我知道如何使用功能语言创建自己的语言(例如HaskellClojureScala)。

我已经读过:

互联网资源

  1. Write Yourself a Scheme in 48 Hours
  2. Real World Haskell - Chapter 16.Using Persec
  3. Writing A Lisp Interpreter In Haskell
  4. Parsec, a fast combinator parser
  5. Implementing functional languages: a tutorial
  6. 图书

    1. Introduction Functional Programming Using Haskell 2nd Edition -- Haskell
    2. StackOverflow(但使用过程语言)

      1. Learning to write a compiler
      2. create my own programming language
      3. 来源

        1. Libraries and tools/HJS -- Haskell
        2. 还有其他好的链接/来源吗?我想得到更多。

3 个答案:

答案 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.HOOPLControl.Unification库以及uuagc属性语法预处理器。您还可以在Haskell中编写模块化解释器时阅读https://wiki.ittc.ku.edu/lambda/images/e/e3/Modular-interpreters.pdf。另请注意,Parsec不是很快,对于非玩具项目,Happy / Alex可能更适合。