(基于堆栈的VM)实现列表/字符串

时间:2018-06-25 17:04:30

标签: stack virtual-machine interpreter

我正在为我的编程语言开发基于堆栈的VM。我设计的字节码可以推送/弹出值。目前,这些价值观可以设计为动态的。但是,当我想创建其他类型(如字符串或列表)时,我不知道什么是最佳选择。例如,对于一个简单的添加操作,我执行以下操作:

push 1
push 2
add

然后堆栈顶部将有3个。

列表

以下是实现动态元素列表的好方法吗?

push 1
push 2
push 3
list 2 # 2 to determine the list length

然后,堆栈应包含数字1,并在其顶部是列表。 我可以按照自己的意愿存储这些价值观,这就是我应该这样做的方式。列表操作看起来正确还是有更好的方法?

字符串

我应该这样做吗?

push "hi"

还是应该选择其他方式的列表列表?

push 1
push 2
push 104 # h letter in ascii
push 105 # i letter in ascii
string 2 # 2 to determine the string length

堆栈中将包含1、2,顶部是字符串“ hi”

如果字符串来自标准输入并且长度可变,那该怎么办?

对不起,我有很多问题!

0 个答案:

没有答案