【发布时间】:2010-03-10 00:05:11
【问题描述】:
我正在尝试了解语言解释器的工作原理。你们能给我指出口译员的工作原理吗?
我的意思是,假设我有一些这样写的行
10 x = 200;
20 for r = x to 1000 step 1
25 z = r + 32;
30 print z;
40 next r;
50 end;
构建一个可以运行类似程序的解释器的最佳方法是什么?
有一个包含所有允许函数的大型矩阵并搜索匹配项?第一行,例如:它是把 200 赋给一个变量 x,但是这些是不存在的符号。
如果你们能给我指路……
感谢您的帮助。
【问题讨论】:
-
为此编写解释器(或编译器)是一件非常复杂的事情。我不是这方面的专家,但在我的大学里,他们有一门名为编译器技术的课程,我的几个朋友参加了该课程。如果我没记错的话,它由 4 个步骤组成,首先是编写一些代码模式(就像你已经拥有的那样),然后他们使用一个程序来查看它并找到模式,然后他们构建可用于构建树的标记的代码。然后他们构建编译器。如前所述,我对此了解不多,但有人告诉我这根本不容易。
-
谢谢.. 这就是重点。我想大致了解一下。
-
编译器和解释器资源的规范问题是stackoverflow.com/questions/1669/learning-to-write-a-compiler。那里列出了一些资源(如 Crenshaw 教程),它们的级别非常简单。