当前位置:  开发笔记 > 编程语言 > 正文

有没有最近的Lua到JavaScript转换器或解释器?

如何解决《有没有最近的Lua到JavaScript转换器或解释器?》经验,为你挑选了2个好方法。

我需要找到一个好的Lua到JavaScript转换器; luaforj.org上的lua2js已经过时(大约3年左右,看起来它不适用于Lua 5.1),我还没有在Google上找到任何东西.

有没有人有任何其他转换器的经验?它应该适用于Lua 5.1,最好是基于.NET的,但.NET不是必需的.一个javascript lua解释器也可以工作.



1> Breton..:

一个新的挑战者出现了:Lua.js https://github.com/mherkender/lua.js

对于一些证明其成熟度的精彩演示,请参阅https://github.com/ghoulsblade/love-webplayer

Lua.js的工作原理是将Lua代码直接转换为ECMAscript(包括JavaScript,ActionScript),这使得它比尝试在JavaScript中实现Lua VM的解决方案具有重要的速度优势.



2> Javier..:

这是一个关于Lua列表的反复出现的问题,我猜是因为两种语言的表面相似性.

不幸的是,有许多重要的差异并不那么明显.使其工作需要一个针对JS而不是Lua的字节码的完整编译器,或者需要在JavaScript中重写Lua VM.

我不知道Lua2js的最初目标; 但如果它只是一个有限的"翻译者",那么编写想要翻译的Lua代码就会否定Lua的大部分(全部?)好处.例如,我不认为你可以使用函数作为表键,因为在JavaScript中键只是字符串(和数字?我不确定).

.NET选择更合理,可以更改现有编译器以发出CLR字节码而不是标准Lua字节码.即使CLR是针对其他类型的语言设计和优化的,它也非常通用,可以很好地运行.主要障碍是图书馆的可用性.

我刚刚发现的另一个选项是Roberto Ierusalmschy和Fabio Mascarenhas撰写的这篇论文,他们探索将LuaVM字节码转换为CLR字节码.

正如学术论文中通常的那样,没有迹象表明它的编写日期,所以我不知道它是否是新的,革命的或旧的和遗忘的.


我刚试过Firefox 3.6.6和Rhino 1.7r2.我用作密钥的任何非字符串值(函数,对象,布尔值,偶数)都被接受,并且似乎有效,直到我做了一个`for(k in t){console.log(k,typeof(k) );它是所有的字符串.在大多数情况下,只要它是一致的,它就没关系; 但是在Lua中它是不同的(除了'nil`之外的任何值都可以作为键),而且很多代码都依赖于它.如果你想要一个Lua-> JS'翻译器'你必须考虑这些事情,或者它只是带有Lua语法的JS.
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有