2010-10-21 27 views
19

我有很多用Erlang编写的代码,我想将它们包含在用Objective-C编写的应用程序中,例如在iPad上。理想情况下,我希望有一个封装Erlang运行时的对象;这可以像标准的Erlang外壳一样访问,如下所示:Erlang作为应用程序中的嵌入式系统?

ErlangRT *runtime = [[ErlangRT alloc] init]; 
ErlangValue *retval = [runtime execute:@"io:format(\"hello world~n\")"]; 

我不太关心性能等问题;我可以看到它是如何工作的,但由于我不太了解Erlang虚拟机的实现方式,所以我不知道它是如此简单或困难,或者如果有人已经做了类似的事情。我知道在Objective-C和Erlang之间还有其他的接口方式,但他们似乎假设在目标机器上安装了一个独立安装的Erlang系统。我宁愿它像一个图书馆,你只需链接到应用程序。

所以我的问题是:这是相对容易做到,和/或有人已经在此工作?

+2

这里的陷阱是“虚拟机器”。虽然工具的规则放松了,但静态链接代码的要求却没有。任何类型的JITing /编译/虚拟机 - ERL,Flash,.NET/Mono或其他都不赞成。虽然我确定给予足够的时间/金钱来创建ERL和运行时的嵌入式版本是“可行的”,但您不会将任何动态生成的代码放入AppStore中。由于这种阻碍,我怀疑任何人都承担了移植它的任务。 – stephbu 2010-10-21 19:51:29

+0

嗯,我会吃一点我的话 - 似乎http://sourceforge.net/projects/erlandstaticlib/是在这条道路上......不知道它是什么状态。规则仍然认为,出现在它的应用程序它只能是静态链接代码。 – stephbu 2010-10-21 19:57:35

+2

我的理解是,动态生成或下载代码是不受限制的,而解释现有的(即AppStore-vetted)嵌入代码是可以的。 – 2010-10-21 20:27:38

回答