Lua和C之间的关系是什么?

Lua和C之间的关系是什么?,c,lua,C,Lua,几周后我在一家软件公司实习,想知道我是否应该开始一个软件程序员的学徒期。我有一些(非常)通过游戏与Lua打交道的基本经验,这是我在实习简历中提到的,他们告诉我,他们有一个项目,我可以在这个项目上积累经验。 所以我决定多学点知识,和Lua打交道——这让我想到了这个问题 我知道Lua是一种脚本语言,它通常嵌入到C程序中。据我所知,Lua本身是用非常基本的C语言编写的,如果单独使用,它也有自己的解释器。如果是这样,是否正确: 无论我是使用Lua单机版还是嵌入到C编程环境中,底层的Lua都将始终使用C代

几周后我在一家软件公司实习,想知道我是否应该开始一个软件程序员的学徒期。我有一些(非常)通过游戏与Lua打交道的基本经验,这是我在实习简历中提到的,他们告诉我,他们有一个项目,我可以在这个项目上积累经验。 所以我决定多学点知识,和Lua打交道——这让我想到了这个问题

我知道Lua是一种脚本语言,它通常嵌入到C程序中。据我所知,Lua本身是用非常基本的C语言编写的,如果单独使用,它也有自己的解释器。如果是这样,是否正确:

无论我是使用Lua单机版还是嵌入到C编程环境中,底层的Lua都将始终使用C代码

因为它是一种脚本语言,所以我在Lua中使用命令时基本上是访问和命令底层C命令,就像告诉C做什么一样

无论我是使用Lua单机版还是嵌入式C语言编程 环境,底层it将始终使用C代码

C通常是一种编译语言,因此在运行时,Lua的C源代码不再相关。但是从C源代码派生的机器代码将始终参与执行Lua代码,因此从这个意义上说是的

然而,这并不一定意味着您需要了解任何关于C的知识才能编写Lua代码

既然它是一个 脚本语言,我在Lua中对命令的处理基本上是 访问和命令底层C命令,如告诉C什么 怎么办

称Lua为“脚本语言”更多地与Lua代码的形式及其创作灵感有关,而不是与Lua的工作方式有关。尽管有任何独立的解释器,但它被设计为嵌入到程序中,用于这些程序的脚本行为。当然,所有这些都是用C实现的,但是作为一个Lua程序员,您不应该将其视为Lua包装相应的C函数


事实上,作为Lua程序员,您可能根本不需要考虑它。但是,如果您确实考虑过它,那么一个更好的模型是基于Lua的脚本环境以特定于程序的方式包装程序数据和行为。

Lua是一种解释性语言,或者wiki非正式地将其称为“软件处理”语言。Lua被编译成字节码(不要与机器码混淆),并在运行时由软件解释器执行。C是一种编译语言,从源代码编译成机器代码并由硬件执行。如果你想变得技术化,C源代码在编译时就不再是C了


我痴迷地使用Lua,为了使用它,我几乎不厌其烦。我尝试在我的所有项目中实现它,即使是已经使用解释语言的项目。单靠Lua,您肯定可以取得很大的进步,但我强烈建议您学习一些C语言,以便扩展功能。至少要学习如何制作可以作为Lua模块加载的DLL。或者,如果您使用LuaJIT,学习C将非常方便,因为您可以直接使用FFI调用C导出的库函数。我最后的建议是,您应该了解解释语言和Lua的缺点。如果你的软件需要高度安全或稳定,足以自动驾驶飞机,那么你当然不想使用它。在这方面,需要现代C++的教育。

基本上是正确的。Perl和Python也是如此。