创建解释语言的过程是什么?

Bab*_*ker 5 c++ interpreter programming-languages

我想创建一个非常简单的实验性编程语言.我可以查看哪些资源来概述创建解释语言的过程.我将使用c ++来构建和编译解释器.

小智 5

您需要实现解析器和解释器。

有一本很棒的免费教科书,名为“编程语言:应用程序和解释”,它使用方案来构建越来越复杂的解释器。它还可以很好地介绍编程语言的功能。

在这里查看: http: //www.cs.brown.edu/~sk/Publications/Books/ProgLangs/

如果您不喜欢Scheme,那么它可能值得研究一下。

  • 呵呵Scheme和C++相差甚远。 (2认同)

JSB*_*ոգչ 5

几个步骤:

首先,构建词法分析器和解析器。使用 lex 和 yacc 等常用工具,或者使用 Antlr 等更现代的框架(这是我推荐的),这确实很容易做到。这些工具将为您的目标语言生成源代码,然后您可以对其进行编译并包含在您的项目中。

词法分析器和解析器将构建源文件的内部表示。有几种不同的方法可以解决这个问题:

  1. 字节码模型中,源文件被编译为低级内部语言,您可以为其编写直接执行操作的字节码解释器。例如,这就是 Perl 和 .NET 语言的工作方式。
  2. 对象树模型中,源文件被编译成对象树,其中每个对象都知道如何执行自身。解析完成后,您只需调用Exec()根对象(根对象又调用Exec()其子对象等)。这基本上是我用于解释型域特定语言Phonix的方法。