我一直在从头开始实现自己的脚本语言+虚拟机,以进行一个小型实验。脚本阅读器解析脚本并将其转换为运行时引擎将执行的指令流。
一开始我没有考虑它,但现在我想包括流控制(循环、分支等)。我对语言理论并不精通,只是看了一些例子来寻找灵感。
但是 x86 和 java 虚拟机都有大量用于流控制的指令。在 x86 中,有很多指令基于标志的状态和其他指令以一种或另一种方式操纵相关标志的状态进行跳转。在 Java 中似乎有 16 条指令可以进行某种比较和条件跳转。
这可能是有效的或受硬件特定原因的激励,但这不是我想要的。
我正在寻找一种精简、优雅的流控制解决方案,它只需要一些专门的指令,并且实现和维护起来不太复杂。
我非常有信心我可以想出一些可行的方法,但我宁愿提高我的知识而不是重新发明轮子。非常欢迎任何解释或相关材料的链接!