2009-12-21 60 views
9

有没有人知道在Erlang中执行脚本语言解释器(适合游戏的东西)?像Javascript或Lua就好。Erlang脚本语言解释器

+1

为什么要用Erlang编写Javascript或Lua解释器?你认为你会从这样的事情中得到什么样的好处? – 2009-12-21 20:32:47

+1

我正在Erlang编写游戏服务器,我希望玩家能够编写服务器上运行的游戏脚本。 – Paul 2009-12-22 16:58:01

+0

在某些情况下,不要将Erlang用作暴露的脚本语言是非常重要的原因。如果你打算让玩家创建脚本,那么你需要一种方法来隔离他们可以做什么。你可能会这样做的一个例子就是泥巴。 将一些类型的解释器放入erlang中将是一种允许玩家创建内容的好方法,但仍然能够限制脚本可以采取的操作。 – 2010-08-27 20:24:29

回答

5

你可以尝试C/C++ port driver运行lua(或其他)语言解释器,erlua更可能是你需要的(它通过端口驱动程序工作,我猜)。

3

Erlang本身可以用作脚本语言。请参阅Erlang文档中的escript

+1

这很酷,但我正在寻找一种类似于我提到的两种语言。我有一种感觉,Erlang本身不会做出如此出色的脚本语言。 =/ – Paul 2009-12-21 06:52:01

3

我第二个Vijay的建议是使用Erlang本身。不过,我还要指出Reia的存在,这似乎正是你所要求的。

编辑:对,所以有erlyjs,一个JavaScript编译器针对Erlang虚拟机。我不知道这个项目在哪个阶段的发展,它的进展如何,等等,但你可以检查一下。不知道是否需要提前编译JS代码,你需要亲自看看...

Here你会发现代码库的几个github分支之一。所有在Erlang,据我所见。

再次,这不是一个成熟的产品。但随后,随着CouchDB的兴起,类似这样的事情在某些重要方面实际上可能会有用......所以它可能有望在某种程度上早日实现成熟。

+0

也许我没有足够清楚,但我不打算在另一种语言中编写Erlang程序(如在编译为Erlang字节码的程序中)。我在找的是一个在Erlang中编写的解释器。 – Paul 2009-12-21 06:54:15

+0

那么,从Reia的主页上看:“Reia(发音为RAY-uh)是一种类似Ruby/Python的脚本语言”。它将程序编译为字节码,但Python也是如此 - 在这两种情况下,它都会在需要时动态发生。语法与Erlang IMO完全不同。我想这不像JS/Lua,但至少值得一看。无论如何,我不确定是否无法在基于Erlang的引擎上运行JavaScript;将查找和更新,如果我找到了一些东西。 – 2009-12-21 07:02:53

+0

是的,erlyjs看起来像一个很棒的项目,不幸的是github版本看起来相当不成熟,并且所有这些都可用。原来的谷歌代码回购神秘消失:http://code.google.com/p/erlyjs/ 我也研究了CouchDB如何处理JavaScript,并且我看到它产生了SpiderMonkey进程。也许我可以找到一种方法来将V8嵌入Erlang Cnode中... Bummer。不过感谢您的帮助! – Paul 2009-12-21 07:22:27

0

这个问题出现在谷歌搜索 - 但评论不回答原来的要求。原始海报正在寻找的答案是github上的luerl - https://github.com/rvirding/luerl

Luerl是lua 5.3 vm在Erlang中实现的,由Robert Virding - 最初的Erlang开发人员之一开发。