Programming languages 哪些真正的编程语言易于编写解释器?

Programming languages 哪些真正的编程语言易于编写解释器?,programming-languages,interpreter,Programming Languages,Interpreter,哪些真正的编程语言易于编写解释器 “真正”的语言对我来说,是可以用来编写小项目的语言,而不是简单的语言 (我问这个问题是因为我想做一些业余项目。)原始的沃思帕斯卡是一个很好的候选,并且经常在解析器生成器中用作演示。它的语法是LL(1),另外相当严格,因此很容易解析。就功能而言,它也相当有限 不过,您可能想稍微修改一下它-例如,您可能想忽略指针,但支持一级字符串。Scheme或任何lisp变体 SICP中的元循环计算器是在Scheme中编写Scheme解释器的练习。这是一个常见的第一年CS项目。我

哪些真正的编程语言易于编写解释器

“真正”的语言对我来说,是可以用来编写小项目的语言,而不是简单的语言


(我问这个问题是因为我想做一些业余项目。)

原始的沃思帕斯卡是一个很好的候选,并且经常在解析器生成器中用作演示。它的语法是LL(1),另外相当严格,因此很容易解析。就功能而言,它也相当有限


不过,您可能想稍微修改一下它-例如,您可能想忽略指针,但支持一级字符串。

Scheme或任何lisp变体

SICP中的元循环计算器是在Scheme中编写Scheme解释器的练习。这是一个常见的第一年CS项目。

我认为是一种标记语法语言,Liran。 语法结构便于解析,因为代码块在开始标记和结束标记之间清晰地划分。理论上,您可以轻松地构建一个1级解释器,直接解析和运行代码

也就是说,目前还没有任何标记语言能够在我看来您所针对的上下文中做有意义的事情(您可能想要编写自己的)。下一个最佳选择可能是功能最少的语言,最好不支持过程编程。像BASIC这样的语言应该很容易为其构建1级解释器

第二个最好的可能是早期的脚本语言,它没有提供太多的语法元素,而且复杂性相当短。不过我想不起来

但也许最好的选择是让你设计自己的语言。解释器变得更容易构建,因为您对语言语法有深入的了解,并且可以在解释器中控制您自己的语言结构和语义


坚持使用1级解释器是因为你提到过你想让它变得简单。

在我的大学操作系统课上,我们为Db(D-flat)编写了一个解释器。这是非常简单和明确的。好的,现在我只需要输入这个,因为我需要至少15个字符的答案,但是最小的Forth实现是几KB。很难想象还有其他语言有这么小的核心。可能是McCarthy 1958的Lisp原版,其中函数是手工编译的。

为编程编写解释器非常容易 语言(一旦你知道怎么做-但它是好的 记录在案)。Forth已用于解决现实问题 40多年了

也许这太容易了,但在这个过程中你会学到很多

一个轻松的(在线)介绍正在进行中
Leo Brodie的“出发”一词。

世界语应该很简单。:)这有点欺骗性,;虽然语法当然不难解析,但Scheme和其他LISP变体的功能在解释器中实现起来可能相当困难。特别是Lambdas和tail递归有很多缺陷。你能提供一个与这种语言相关的链接吗,我似乎找不到它……你说得对。我在网上也找不到它,除了这个课程的网站。也许这是我们班的一种虚构语言。不管怎样,这里有一个到正式语言定义的链接:也许它基于Dobbs博士期刊中描述的系统(周围有人知道DDJ吗?)。在这篇文章()中,阿尔·史蒂文斯宣布了D-Flat的想法,并在随后的文章中描述了它的发展。对于那些不知道的人来说,SICP是一本名为《计算机程序的结构和解释》的书(免费在线)。