我创建的XNA游戏,想创造我自己的脚本语言(非常简单的头脑你)。我知道有更好的方法去了解这一点(和我重新发明轮子),但我想学习经验多要高效和快速。

当在运行时代码面对,从我的理解,通常的做法是解析成机器代码或字节代码或别的东西,实际上是可执行文件,然后执行,对不对?但是,例如,Chrome浏览器在第一次来到了,他们说,他们的JavaScript引擎是快的,因为它编译的JavaScript成机器代码。这意味着其他引擎未被编译成机器代码。

我宁愿不编译到一个较低的语言,所以在那里为解析和执行代码的任何已知的现代技术不编译为低电平?也许类似解析代码转换成某种树,在树的分支,并比较每个符号和调用一些功能来处理该符号? (野生猜测并在黑暗中刺伤)

其他提示

Python是很大的作为脚本语言。我会建议你做一个C#的C API的绑定和使用。嵌入Python是容易的。你的应用程序可以定义在其内部Python解释可以访问模块函数,类型/类和变量。该应用程序还可以调用函数在Python脚本,并得到一个结果返回。这两个功能组合为您提供了双向通信方案。

基本上,你可以免费获得该Python语法和语义。什么,你需要实现你的应用程序公开到Python的API。一个例子可以是访问到游戏逻辑功能和呈现功能。然后Python脚本将定义哪些调用这些函数,和主机应用程序将调用Python函数(带参数)来完成工作。

编辑:好像IronPython的可以为您节省更多的工作。这是CPython的的C#实现,并有自己的嵌入API: http://www.ironpython.net/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top