【发布时间】:2017-11-26 06:51:29
【问题描述】:
对于一个项目,我要求我的用户能够以字符串的形式提供一个简单的函数,并且我希望能够从我的程序中对其进行评估。
假设函数签名始终是int f(int a, int b)
我想这样做,以便我的用户可以提供用基本语言编写的 f 的实现。 例如:
return a*b;
if(a ==1) return b else return 3
在我的程序中,我希望能够解析用户输入函数,使其成为我的 C# 代码中真正的可调用函数。我只需要基本的功能,比如基本的数学知识和条件(甚至循环都不需要)。
是否存在一种基本的“语言”,可以让我解释这些定义为输入的函数并将它们转换为可调用代码? 例如,我认为使用 Lua 来做这种矫枉过正?
理想情况下,我想要一些开源的东西,代码库最少,而且质量很好。这样的事情存在吗?理想情况下,它还应该具有多种语言的实现,例如 C# 和 Java。 我知道编写自己的解析器的诱惑很大,但我觉得必须有一个开箱即用的解决方案来解决我的问题
【问题讨论】:
-
我使用 javascript,我首选的 javascript 引擎是 jint github.com/sebastienros/jint
标签: c# scripting scripting-language