编写编译器的好语言

时间:2010-12-19 17:59:40

标签: compiler-construction programming-languages

我正在考虑在haskell中编写一个编译器,为了获得一些知识和经验,我将尝试为现有语言实现编译器。有人能给我一份适合这个的语言清单吗?

提前致谢

7 个答案:

答案 0 :(得分:8)

Pascal可能是一个好的开始 - 你可以一次编译它。 Lisp的一个子集可能对于掌握lambda提升的想法很有用。 ML或甚至是Haskell的一个子集可能有助于您理解类型推断。考虑使用LLVM作为后端,它将为您节省一些时间来实现无聊的东西。

答案 1 :(得分:5)

Scheme通常用于此目的。对于Haskell,甚至还有一个名为Write Yourself a Scheme in 48 hours的教程。

答案 2 :(得分:3)

编写编译器的最简单语言是现有的“深奥语言”,如brainfuck,因为它们具有最小的指令集和最简单的语法。您可以尝试使用更复杂的语言,但最好还是先用简单的方法来理解基础知识,然后再进一步了解。

答案 3 :(得分:2)

世界总是需要另一个c编译器:)

答案 4 :(得分:2)

PL / 0是一种用于教授编译器构造的简单语言。为了学生的利益,Samuel Williams在Python中编写了一个编译器(以及一个虚拟机):http://www.oriontransfer.co.nz/learn/pl0-language-tools/index

答案 5 :(得分:1)

据我所知,最容易编译的语言之一是Forth。我认为即使对于相对新手来说,为Forth编写一个编译器也是可以实现的。

答案 6 :(得分:1)

Oberon-2。就像Lua有短语无语法。

P.S。 Here你可以找到用Objective Caml编写的Oberon-2编译器。