介绍
Lua的设计和实现目标:提供一种嵌入式的脚本编程语言,简洁、高效、可移植并且是轻量级的。
传统上大部分虚拟机都是基于堆栈的,自Pascal的P-虚拟机开始一直到今天的Java虚拟机以及Microsoft.Net。Lua5.0的虚拟机是基于寄存器的虚拟机,Perl6(Parrot)也是。
简洁:寻求最简化的语言和最小化的源码(以C语言实现)。这也意味着Lua只有一些类似传统编程语言的简单的语法和少量的语言结构。
可移植:我们希望Lua能够在尽可能多的平台上运行。希望Lua内核能够在不做任何修改的情况下,在任何平台下都能顺利通过编译。并且希望Lua程序在任何平台下都不需要修改就能顺利执行,只要该平台上又一个Lua解释器。这也意味着需要用纯ANSI C实现Lua并注意移植问题,避开C语言及其库的阴暗面,并保证在C++编译器上也能顺利通过编译,而不希望看到警告信息。
可嵌入:Lua是一种可扩展的语言,我们希望能够容易地将Lua嵌入到应用程序中。
值的内部表示
Lua是动态类型的语言:类型是与值相关而不是与变量相关。Lua有8种基本的值类型:nil,boolean,number,string,table,function,userdate和thread。
nil:是标记类型,只有一种值,就是nil。
boolean:有true和false两种值。
number:双精度浮点数,对应C语言的double,不过可以在编译Lua的时候将其设置为float或long型。