Virtual machine 如果我的malbolge程序只包含一条指令,内存应该填充什么?
根据原始规范,Malbolge VM使用之前两个单元上的疯狂操作填充空内存单元。“未初始化的单元格通过对前两个单元格重复执行op来设置。”即 为了理智起见,如果程序只包含一条指令,我该怎么办Virtual machine 如果我的malbolge程序只包含一条指令,内存应该填充什么?,virtual-machine,esoteric-languages,malbolge,Virtual Machine,Esoteric Languages,Malbolge,根据原始规范,Malbolge VM使用之前两个单元上的疯狂操作填充空内存单元。“未初始化的单元格通过对前两个单元格重复执行op来设置。”即 为了理智起见,如果程序只包含一条指令,我该怎么办 或者我应该假设最后一个字符总是EOF?从实现和语言律师的角度来看,有两种选择- >P>如果我们将“前两个单元格”定义为字面上的前两个单元格,则单个的字符或空的MalbGe程序在语言中是“强>非法”,因为它不能按照规范执行。 >P>如果考虑 [M]=CRZ[M-2 ],[M-1 ] < /代码>,它会变得
或者我应该假设最后一个字符总是
EOF
?从实现和语言律师的角度来看,有两种选择-
- 根据指针的使用方式,最终可能会使用
而不是0xffffff
0xffff
无符号短
(或int
)作为内存指针。当您尝试从1
(m-2
)中减去2
)时,结果是0xffff
,十进制65535
(有关详细信息,请参阅答案),这只是略高于malbolge的59049
内存限制。该故障在正常机器上运行(几乎)完美,使用0xffff
单元进行疯狂的运算(甚至不会损害环境内存!),但在有限内存或虚拟机上将失败
- 如果手动运行,则假定它失败李>
- 如果在虚拟机上运行它,它会失败
- 如果在模拟器上运行它,可能会正常运行,但由于
是一个随机值的内存单元,导致环境内存中出现随机值,因此无法运行自身。另一方面,你能从单字节malbolge程序中得到什么0xffff
[m] = crz [m-2], [m-1]