如何在Python中创建编程语言

时间:2012-01-14 16:23:16

标签: python programming-languages

我已经看过许多用于编写编程语言的教程,但很少用Python编写。我想知道如何(相对容易地)使用Python创建编程语言。

2 个答案:

答案 0 :(得分:18)

不确定“创建编程语言”是什么意思。但我想你可能想读Peter Norvig的优秀文章(How to Write a (Lisp) Interpreter (in Python))。这显示了如何仅在90 lines of Python中构建Lisp解释器!

一旦理解了这一点,请尝试(An ((Even Better) Lisp) Interpreter (in Python))

答案 1 :(得分:10)

  1. 想象一下你的语言。你想要它看起来像什么?应该具备哪些功能?
  2. 想一想与您想要的语言尽可能相似的现有语言。如果关键字都不同,那就没关系,但是如果你决定制作Python,那么你不会从Lisp开始,因为结构基本上是非常不同的。
  3. 查找您在步骤2中选择的语言的现有语法。我在这里查看:http://www.antlr3.org/grammar/list.html。如果找不到,请再次执行第2步。
  4. 使用ANTLR(或任何解析器生成器理解您在步骤3中找到的语法),构建一个Python模块,该模块了解您在步骤2中选择的语言.ANTLR对Python“目标”有一定程度的支持(意味着解析器代码将在Python中,而不是使解析器能够理解Python语言)。如果您遇到C语言中的解析器代码(可能),请为其编写Python绑定(使用Boost Python可能最简单,但如果您对C和Python非常熟悉,则可以直接使用Python C API)。 LI>
  5. 开始对步骤3中的语法进行修改(首先是小步骤),使其更像您在步骤1中设计的语言。
  6. 仔细而有意识地做这些事情,经过几天的工作,你可能会为你的语言提供一个不错的解析器。然后你需要使用解析器的输出(如果使用ANTLR,考虑使用它可以为你生成的抽象语法树或AST)。然后,您需要将解析后的语法转换为目标语言,例如x86程序集或某些中间字节码,例如Java,Lua,Microsoft .NET或其他任何使用的字节码。

    祝你好运,并预先警告:这个过程需要很长时间才能做好。