- 论坛徽章:
- 0
|
Lua 语言不是一门有完整库的语言,但是有扩展成任何编程泛型的能力。可以作为动态语言的引擎。Perl 社区的 Parrot 项目从2001年至今,已经背离了当初的简洁快速的风格,逐渐发展成一个庞大的项目。而 Lua 项目和当初 Parrot 的定位完全一致,可以做为所有动态语言的底层运行引擎。
为什么不用 JVM 或 LVM , 因为它们是基于栈的虚拟机,指令密度小,和寄存器无关。而 Lua 是一门有着基于寄存器的架构的虚拟机,这也是为什么有一个LuaJIT 项目的原因,因为计算机是原生的寄存器的运算设备。
基于寄存器的指令通常一条会涉及到三个寄存器,就好像 a = b + c , 在基于寄存器的架构中,是一条语句,而在基于栈的架构中,是三条语句或更多。
术业有专攻,不是 Lua 没有能力开发庞大完备的库,而是它从始至终就定位成一个底层引擎,简洁,快速,可扩展性强。经过近20年的发展,内核精致,近乎完美。
在我看来,所有的语言,除了语法,效率不同外,表达的是一样的算法,底层的编程模型,总能用另外一种语言用或多或少的代码模拟。
在语言开发领域,太多的重复工作,太多的重复建设。太多人纠结于语言本身的华丽表达和运行效率,而不注重算法。 |
|