Java Can';找不到支持运行固定数量的步骤然后暂停的语言(-解释器) 问题:

Java Can';找不到支持运行固定数量的步骤然后暂停的语言(-解释器) 问题:,java,runtime,virtual-machine,metaprogramming,julia,Java,Runtime,Virtual Machine,Metaprogramming,Julia,我正在寻找一种编程语言和运行时,它的执行可以按代码的步骤“计时”。 更具体地说,我需要一个语言运行时/解释器,它可以执行100个步骤(而不是行)。执行后,(运行时的)被调用方法返回,同时保持其状态。稍后,您可以告诉运行时继续执行100个步骤,以此类推。 它有点像只执行单个程序的VM 问题: 对于给定的语言,是否有满足这些条件的运行时 首选语言是Julia(julialang.org)和Java,但我期待着你们能为我提供的所有提示。(搜索关键字、实现中的问题、部分解决方案、支持它的其他语言等)

我正在寻找一种编程语言和运行时,它的执行可以按代码的步骤“计时”。 更具体地说,我需要一个语言运行时/解释器,它可以执行100个步骤(而不是行)。执行后,(运行时的)被调用方法返回,同时保持其状态。稍后,您可以告诉运行时继续执行100个步骤,以此类推。 它有点像只执行单个程序的VM


问题: 对于给定的语言,是否有满足这些条件的运行时

首选语言是Julia(julialang.org)和Java,但我期待着你们能为我提供的所有提示。(搜索关键字、实现中的问题、部分解决方案、支持它的其他语言等)


我需要它的原因: 我想为minecraft创建一个具有可编码块的mod,但为了防止整个minecraft世界因玩家错误而陷入困境,并且能够随时保存游戏/状态,我需要能够在固定时间内执行这些可编码块的代码,并保存该可编码块运行时的当前状态在任何一次跑步之后


Aaron aka rapus95

一个实用的解决方案可能是使用Java线程,并在达到时间限制时让计时器线程中断工作线程。然而,有一个称为“引擎”的有趣抽象,可以在Scheme中使用call/cc实现:这允许您将要做的工作(表示为0参数过程)与允许消耗的“燃料”量配对。“线程”在燃料耗尽时停止。

一个实用的解决方案可能是使用Java线程,并在达到其时间限制时让计时器线程中断工作线程。然而,有一个称为“引擎”的有趣抽象,可以在Scheme中使用call/cc实现:这允许您将要做的工作(表示为0参数过程)与允许消耗的“燃料”量配对。“线程”在燃料耗尽时停止。

几乎所有调试器都执行“1”步(“单步”),然后显示结果。您所指的调试器是否也能够保存其状态?(甚至在进程的生命周期->保存到文件等)在“整个内存状态”被隐式保留的假设下存在“单步执行”,这是大多数调试器操作的地方。除此之外,您似乎希望能够从内存图像中提取完整的解释器/执行状态(“保存游戏状态”),并将其保存/恢复到文件中。这要困难得多;您要么必须知道如何发现所有这些状态,要么必须设计解释器使您能够访问这些状态。由于没有任何事实,我敢打赌Minecraft并不是专门为您设计的。我假设您误解了我的用例,我需要解释器/调试器的运行时是可保存的,而不是Minecraft本身。因为如果调试器是,那么我可以暂停并存储调试器的当前状态,并告诉minecraft在其World中保存可编码块的状态我假设minecraft有自己的解释器;你肯定不打算再找一个/建造另一个?它是否提供单步功能?Minecraft会为你保存自己的状态吗?令人惊讶,但还行。为什么调试器真的需要保存自己的状态?大多数调试器都可以在应用程序处于任何状态时启动,让您检查状态并从那里开始。调试器可能有模式;然后可能需要保存一些内容。几乎所有调试器都执行“1”步(“单步”),然后显示结果。您所指的调试器是否也能够保存其状态?(甚至在进程的生命周期->保存到文件等)在“整个内存状态”被隐式保留的假设下存在“单步执行”,这是大多数调试器操作的地方。除此之外,您似乎希望能够从内存图像中提取完整的解释器/执行状态(“保存游戏状态”),并将其保存/恢复到文件中。这要困难得多;您要么必须知道如何发现所有这些状态,要么必须设计解释器使您能够访问这些状态。由于没有任何事实,我敢打赌Minecraft并不是专门为您设计的。我假设您误解了我的用例,我需要解释器/调试器的运行时是可保存的,而不是Minecraft本身。因为如果调试器是,那么我可以暂停并存储调试器的当前状态,并告诉minecraft在其World中保存可编码块的状态我假设minecraft有自己的解释器;你肯定不打算再找一个/建造另一个?它是否提供单步功能?Minecraft会为你保存自己的状态吗?令人惊讶,但还行。为什么调试器真的需要保存自己的状态?大多数调试器都可以在应用程序处于任何状态时启动,让您检查状态并从那里开始。调试器可能有模式;那么也许有什么可以挽救的。