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

时间:2010-05-27 17:16:51

标签: c++ programming-languages interpreter

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

4 个答案:

答案 0 :(得分:4)

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

有一本很棒的免费教科书叫做“编程语言:应用和解释”,它使用方案来构建越来越复杂的解释器。它也是编程语言功能的一个很好的介绍。

请在此处查看:http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/

如果Scheme不是你的一杯茶,可能值得研究。

答案 1 :(得分:2)

几步:

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

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

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

答案 2 :(得分:0)

看一下boost库“spirit”LL解析器。

答案 3 :(得分:0)

要创建解释语言,您需要创建两件事:

  • 语言语法的正式定义
  • 可以阅读和解释语言的解析器

一旦定义了语言本身,就有几种工具可以帮助创建语言解析器。经典工具包括lexyacc及其开源版本flexbison