什么是LUA语言? 在WAF中起到什么作用

         outputo-20210606-151534-448-mtje.png

lua是一个非常小但是很完整的动态语言。这个组织是在1993年由罗伯托·伊尔莎姆西,路易·恩里克·德菲格雷多和瓦尔德马·塞雷斯创建的。Lua拥有一整套简洁、强大的特性和易用的CAPI,可以方便地嵌入和扩展特定领域的概念。在专有软件领域,Lua非常著名。例如,在许多游戏中,如暴雪的魔兽世界、CrylykGmbH的Crysis、Adobe的PhotoshopLigyroom,它们都被用于脚本和用户界面。该软件继承了Lisp和heme,可能还有AWK;在设计上与JavaScript、Icon、Tcl相似。让我们看看Lua的创建者说了什么。怎样定义Lua?LuizHenriquedeFigueiredo:一种嵌入式,轻量级,快速,功能强大的脚本语言。YertoIerusalimschy:令人遗憾的是,越来越多的人把“脚本语言”当作“动态语言”。甚至Erlang或deme现在也被称为脚本语言。这种情况非常糟糕,因为我们不能准确地描述特定的动态语言。Lua是一种脚本语言,在最初的意义解释中,它通常用于控制用其他语言编写的其他组件。使用Lua设计软件时,人们应该注意什么?路易:我想我们应该按卢阿的方式行事。不要用其他语言来模拟你所使用的一切。你实际上应该使用该语言提供的功能。对于使用任何语言,我都感觉如此。在Lua方面,语言的功能主要是以指用表的形式来表示所有东西,以元方法来提供优雅的解决方案。科罗廷呢谁应该是Lua用户?Roberto:我认为大部分没有脚本的应用程序都能从Lua获益。Louise:问题是大部分设计师很久以来都没有意识到这种需求。如果有很多代码是用C或C++写的,那就太晚了。软件设计者从一开始就应该考虑脚本。这样可以使他们更加灵活。并且能更好的把握性能问题。完成这些操作后,它们将被迫考虑性能关键和无损伤的部分。但如果这些性能不太重要,那么就需要用脚本来处理,因此开发周期短,速度快。在安全性方面,Lua可以为程序员提供什么?Lua解释器的核心部分是作为一个“独立应用程序”来构建的。这一术语来自superc,意思是这一部分没有使用任何与外部环境有关的东西(不依赖于stsuperc、malloc等)。扩展库提供了全部这些功能。利用该架构,程序可以轻松限制对外部资源的访问。具体地说,我们可以在Lua自身内创建一个沙箱,以消除我们认为有危险的操作从沙箱外部环境中消失。(例如,打开文件等等。Luiz:Lua还提供用户定制的调试钩子,可用于监视Lua程序的运行情况。通过这种方式,我们可以在lua运行太久或使用太多内存时从外部中断它的执行。

分享: