Lua游戏开发(一)---Lua语言

本文介绍了Lua作为一种嵌入式脚本语言,其设计目标是简洁、高效和可移植。Lua5.0使用基于寄存器的虚拟机,不同于传统的堆栈式虚拟机。Lua具有动态类型,包括nil、boolean、number、string、table、function、userdata和thread等8种基本类型。表是Lua中的主要数据结构,可以模拟数组。文章还详细讨论了Lua的表、函数、闭包、线程和虚拟机的工作原理,展示了其高效性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

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型。(一些小型机缺乏支持double数据类型的硬件)

string:字节数组,有一个显示的长度,因此可以容纳任何二进制数,包括0。

table:关联数组,可以通过任何值(除nil)来索引,也能容纳任意值。

function:可以是Lua函数或根据Lua虚拟机接口函数的原型编写的C函数。

userdata:一个指向用户内存块的指针,分两种情况:

   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值