实时脚本语言+ MS DLR?

时间:2009-02-10 19:34:43

标签: scripting xbap dynamic-language-runtime

对于初学者,我应该让你们知道我想要做什么。我正在开发的项目有一个要求需要构建自定义脚本系统的要求。这将由使用该应用程序的非程序员使用,并且应尽可能接近自然语言。一个例子是,如果用户需要运行自定义模拟并绘制输出,他们将编写的代码需要看起来像

变量input1为10; 变量input2是20;

变量value1是AVERAGE(input1,input2);

变量condition1为真; if condition1然后PLOT(value1);

可能没有多大意义,但它只是一个例子。 AVERAGE和PLOT是我们想要定义的功能,不应该让它们改变它们,甚至不能看它们是如何工作的。 DLR可以这样吗?如果不是我们会有什么其他选择(从ANTRL开始定义语法然后继续?)?在未来,这可能需要使用XBAP和WPF运行,所以这也是我们需要考虑的事情,但是在dlr& XBAP。谢谢,希望这一切都有意义。

<小时/> Lua不是一个选择,因为它与他们已经习惯的不同。

Ralf,它会被动反应,并且说实话,结果应该回到用户的时间框架可能是1/100秒,一直到2周或一个月(非常复杂的数学函数)

基本上他们已经拥有了他们所购买的系统,可以完成他们需要的一些系统,并且包含了一个自定义脚本语言,可以完成我上面提到的并且他们不想学习新的语言,他们基本上只是想要我们复制它并添加功能。我想我会从ANTRL开始,然后从那里开始。

5 个答案:

答案 0 :(得分:3)

Lua

它小巧,快速,易于嵌入,可移植,可扩展且有趣!

答案 1 :(得分:1)

Lua绝对是软实时系统(如电脑游戏)的最佳选择。 有关详细的基准测试,请参阅http://shootout.alioth.debian.org/

然而,上次我检查时,Lua使用了标记 - 清除垃圾收集器,这可能导致实时系统中的截止期限和非确定性抖动。

答案 2 :(得分:1)

我相信您可以在理论上使用DLR,但我不确定XBAP(部分信任?)方案中的支持。

如果您托管DLR,您很快就可以利用IronRuby或IronPython脚本。您可能希望在创建自己的语言实现时查看这些实现。如果您将问题发布到IronPython mailing list我相信您会在XBAP方案周围得到更好的回复,并且其中的一些开发人员创建了ToyScript

答案 3 :(得分:0)

首先,我认为定义自己的语言不是的方式。

  • 主要是因为程序员非程序员可以获得的最大生产力提升是开发工具。你(以及我们其他人的99.9%)不会写出与他们的工具一样好的工具。
  • 语言设计很难
  • 语言支持和文档,也很难

我建议寻找预先构建的解决方案。如果你能找到一种可以锁定某些功能的语言,那将是一个很好的起点。 MatLab将是第一个出现在我脑海中的人。

最后,抛弃了自然语言部分,BASIC,COBOL和YA-TDWTF-Lang所有人都试过了它。


完全披露:我为一家正在开发广义领域特定语言“系统”的公司工作。它针对的是数据输入/文本输出应用程序,所以它不合适,而且还没有测试版。结果是我有点知识渊博和偏见。

答案 4 :(得分:0)

您想要实现什么样的实时要求?仿真是一种硬实时仿真(某种硬件在环仿真==&gt;截止时间小于1/1000秒)? 或者您希望脚本系统对用户输入“反应”==&gt; 1/10就足够了。

我不是MS DLR的专家,但据我所知,它不支持硬实时系统。您可能想要查看Java(RTSJ)的实时规范