是否有用于表达公式的DSL?

时间:2013-07-05 00:05:15

标签: javascript ruby embed dsl

我需要在后端和前端分享一些财务公式。这样做的一种方法是对服务器进行AJAX调用以获得结果,但我们希望避免这种情况,因为我们希望我们的UI能够立即显示反馈。

目前我们正在使用Ruby和Javascript,我有一个解决方案,其中公式是用JS编写的,Ruby调用Node来运行服务器上的公式。

我想找到一些与语言无关的东西,因为我们可能会开始在后端使用Go。

我在想这两个地方都可以使用DSL或某种迷你语言,但还没找到。你知道任何有关金融公式的DSL吗?或者也许是可以从Javascript和Ruby运行的迷你语言?

2 个答案:

答案 0 :(得分:1)

由于您的约束是公式在浏览器和服务器上本地运行,因此您会遇到编译为js和所需服务器语言的语言的交集(在此案例Go) - 基本上没什么。

IMO您当前的方法非常有意义 - 为什么不继续使用节点?您可以通过公式代码完美地分离关注点。

如果是性能问题,请查看其他server languages that can compile to js

的列表

其中,我喜欢Haxe project,但不幸的是,它并没有以Go为目标。它还增加了一个当前方法没有或不需要的抽象层。

如果您想使用脚本语言而不是编译目标,您可以在Lua中编写公式 - 如果您包含Lua VM并且还在您的服务器上,则可以在浏览器中以脚本语言的形式使用{3}}

答案 1 :(得分:0)

表达数学公式的最便携/广泛使用的语言是TeX,Mathematica,Matlab,R。也许你应该从中选择。 Wolfram Alpha识别TeX,可以根据它进行计算。如果您有使用Mathematica,Matlab或R编写的公式,那么可能您可以让相应的软件计算,然后只收到结果;没有翻译语言。