我正在为我的编程语言开发基于堆栈的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”
如果字符串来自标准输入并且长度可变,那该怎么办?
对不起,我有很多问题!