我希望用户能够在我的程序中编写自己的数学函数。这些功能可能与其他人共享,并在他们的机器上本地运行。代数是图灵完备的。这是否意味着我应该警告我的程序的用户运行数学的潜在危险?如果这是一个愚蠢的问题,很抱歉:(
编辑:我正在做一个简单的日记,但条目具有动态计算的属性。我正在考虑使用bc来运行用户定义的函数。如果表达式没有结束,则很容易为用户修复问题,因为他们可以在程序之外修改表达式。但假设用户A向用户B发送他们的日记。我应该警告用户B打开他们的日记不安全吗?
例如,您可以使用带有递归的图灵完全语言,但限制每个用户脚本的堆栈大小和运行时间(以杀死繁忙的海狸(。如果它被实现为某种VM,这将非常容易。你也可以有一个完整的函数语言来确保终止(但这不会解决繁忙的海狸问题(。