创建语言解释器

Spa*_*Dog 5 programming-languages

我想了解语言解释器是如何工作的。你们能给我指出口译员如何工作的一般思路吗?

我的意思是,假设我有一些这样写的行

10  x = 200;
20  for r = x to 1000 step 1
25  z = r + 32;
30  print z;
40  next r;
50  end;
Run Code Online (Sandbox Code Playgroud)

构建可以运行类似内容的解释器的最佳方法是什么?

有一个包含所有允许的函数并搜索匹配项的大矩阵?例如第一行:它正在将 200 赋给变量 x,但这些是不存在的符号。

如果你们能给我指导的话...

谢谢你的帮助。

joh*_*nes 3

编译器的创建是一个复杂的话题(解释器可以看作是一种特殊的编译器)。

你必须首先解析它 - 尝试理解语法,然后创建一些内部表示(抽象语法树),然后创建一些执行逻辑。

维基百科建议http://mcs.une.edu.au/~comp319/