指定程序的运行时行为

发布于 2025-01-02 22:56:43 字数 498 浏览 0 评论 0原文

是否有任何语言/扩展允许程序员在特定代码段中定义程序的一般运行时行为?

某些垃圾收集语言允许您在运行时修改 GC 的行为。就像在 lua 中一样,collectgarbage 函数可以让你做到这一点。因此,例如,当您想要确保 CPU 资源不会用于代码关键部分的垃圾回收时,您可以停止 GC(之后再次启动 GC)。

我正在寻找一种通用方法来指定程序的预期行为,而不需要指定特定的 GC 调整。我什至对纸上的规范方法感兴趣(即程序员将编码的东西,但不是实际实现该行为的程序语法)。要点是,这可以用于指定不应中断的代码关键部分(延迟相关活动)或某些代码路径的其他预期属性(输出和输入或两个输出之间的最大时间、平均运行时间、 ETC)。

例如,此语法可能描述 LatencyDependentStuff 应该花费的最长时间为 5 毫秒:

requireMaxTime(5) {
   latencyDependentStuff();
}

以前有人在任何地方见过这样的事情吗?

Are there any languages/extensions that allow the programmer to define general runtime behavior of a program during specific code segments?

Some garbage-collected languages let you modify the behavior of the GC at runtime. Like in lua, the collectgarbage function lets you do this. So, for example, you can stop the GC when you want to be sure that CPU resources aren't used in garbage collection for a critical section of code (after which you start the GC again).

I'm looking for a general way to specify intended behavior of the program without resorting to specifying specific GC tweaks. I'm interested even in an on-paper sort of specification method (ie something a programmer would code toward, but not program syntax that would actually implement that behavior). The point would be that this could be used to specify critical sections of code that shouldn't be interrupted (latency dependent activity) or other intended attributes of certain codepaths (maximum time between an output and an input or two outputs, average running time, etc).

For example, this syntax might describe that maximum time latencyDependentStuff should take is 5 milliseconds:

requireMaxTime(5) {
   latencyDependentStuff();
}

Has anyone seen anything like this anywhere before?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文