gpt4 book ai didi

smalltalk - 在 Smalltalk 中构建解释器

转载 作者:行者123 更新时间:2023-12-04 06:43:03 26 4
gpt4 key购买 nike

我需要用 smalltalk 语言构建一个解释器。它将解释一种具有很少固定指令集的简单语言,其中只有 2 种数据类型,并以后缀方式评估表达式。语言本身是逐行解释的,解释器会在遇到错误的指令集时抛出错误。

请帮助,如何开始使用这个解释器。应该使用什么样的数据结构从用户输入中提取数据并根据语言的指令集对其进行评估。

谢谢。

最佳答案

这听起来并不难实现。

使用堆栈可以轻松实现后缀语言。在 Smalltalk 中,堆栈可以是 OrderedCollection您在其上使用 addLast:removeLast方法。

如果逐行解释语言,您的解释器主循环可能如下所示:

instructions := sourceCode subStrings: (Character cr asString).
instructions do: [:eachInstruction | ...]

构建代码的一种方法是创建一个 Interpreter具有堆栈成员变量和每个语言指令的方法的类。

这些指令方法可能类似于:
addInstruction
| op1 op2 |
op1 := stack removeLast.
op2 := stack removeLast.
stack addLast: (op1 + op2).

关于smalltalk - 在 Smalltalk 中构建解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com