我听说在iOS AppStore中不允许即时编译的代码,因为禁止将可执行代码放在堆中。是这样吗?还是只是个谣言?
发布于 2011-02-25 03:27:18
不允许使用
发布于 2011-02-20 12:27:10
这就对了。您可以阅读iOS标准协议,在设置开发人员注册时需要接受该协议:
3.3.2应用程序不能下载或安装可执行代码。只有当所有脚本、代码和解释器都打包在应用程序中且未下载时,才能在应用程序中使用解释代码。唯一的例外是由苹果的内置WebKit框架下载并运行的脚本和代码。
发布于 2011-11-01 14:55:44
似乎允许将Javascript即时编译为
源代码文本。(不是开玩笑,有一个商业编译器可以做到这一点。)正在编译为字节码以供执行...
我还对在iOS上运行的编译器(不是即时编译器,而是真正的编程语言)进行了思考。我的想法是使用地址来实现伪操作码,而不是“传统的字节码”(每个伪操作码一个字节)。
一个ARM寄存器被保留为指向我的“字节码”的“代码指针”(这里称为"rCP")。伪操作码函数的最后一条指令是"ldmfd rCP!,{pc}“。这意味着函数的最后一条指令不是“返回”,而是跳转到下一个操作码。
使用这种方法,你会得到非常快的“字节码”。也许商业编译器是这样工作的。我不敢相信有一个在iOS上运行本机代码的即时编译器。
https://stackoverflow.com/questions/5054732
复制相似问题