为什么Lua库是用C代码编写的

为什么Lua库是用C代码编写的,c,lua,C,Lua,我已经开始对Lua进行一些研究,我对Lua的工作原理感到非常困惑: 上面说 你还需要一个C或C++编译器,因为LUA头和库是用C.编写的。 这意味着,我只需要一个C/C++编译器来执行Lua,因为库和头都是用C编写的。这意味着我编写和/或使用的所有库都是C代码 我可能误解了这一点,但对我来说,这意味着: 我用Lua编写了一些代码,在编译之前它会被翻译成C代码?或者,我导入的库和写为Lua代码之间有什么区别? < P>这些指令是为了将Lua嵌入到C或C++程序中。在这种情况下,您需要与C API交

我已经开始对Lua进行一些研究,我对Lua的工作原理感到非常困惑:

上面说

你还需要一个C或C++编译器,因为LUA头和库是用C.</P>编写的。 这意味着,我只需要一个C/C++编译器来执行Lua,因为库和头都是用C编写的。这意味着我编写和/或使用的所有库都是C代码

我可能误解了这一点,但对我来说,这意味着:


我用Lua编写了一些代码,在编译之前它会被翻译成C代码?或者,我导入的库和写为Lua代码之间有什么区别?

< P>这些指令是为了将Lua嵌入到C或C++程序中。在这种情况下,您需要与C API交互,以便Lua在程序中运行Lua脚本

如果你想用纯Lua编程,你只需要Lua解释器Lua


Lua脚本在执行前不转换为C。< /P> < P>这些指令是将Lua嵌入到C或C++程序中。在这种情况下,您需要与C API交互,以便Lua在程序中运行Lua脚本

如果你想用纯Lua编程,你只需要Lua解释器Lua


Lua脚本在执行之前不会转换为C。

还有一件事需要提及:许多Lua库(如Lua socket)都是在C上编写的,所以您需要编译器来使用它们


他们为什么使用C?因为它们在纯lua中做不到的事情,例如,由于lua的可移植性,使用internet。

还有一件事需要提及:许多lua库(如lua socket)都是在C上编写的,所以您需要编译器来使用它们


他们为什么使用C?因为他们用纯lua做不可能的事情,例如,由于lua的可移植性,他们使用internet。

是的,lua的重要部分是用C编写的,例如实际的编译器和解释器,以及一些库。然而,你只需要编译器一次,就可以构建编译器、解释器和用C编写的Lua库。一旦构建,你就不再需要C编译器了。我不能完全回答这个问题,但是很多语言使用C或其他类似的语言来实现其内部功能或库。我想到的一些例子是MATLAB和Python。虽然理论上你可以用其他语言构建自己的Lua库,但你需要翻译组成API的Lua头的相关部分。这很可能比它的价值更麻烦。如果您想将LUA嵌入到用不同语言编写的应用程序中,您需要该语言中的一些库来直接与LUA交互。LUA是用C编写的。如果您使用C,您可能应该使用一个旨在将LUA嵌入C的库。这将不可避免地在某个点上有一些调用直接与LUA C代码交互。Java、Python和您正在使用的任何东西都是一样的。是的,Lua的重要部分是用C编写的,例如实际的编译器和解释器,以及一些库。然而,你只需要编译器一次,就可以构建编译器、解释器和用C编写的Lua库。一旦构建,你就不再需要C编译器了。我不能完全回答这个问题,但是很多语言使用C或其他类似的语言来实现其内部功能或库。我想到的一些例子是MATLAB和Python。虽然理论上你可以用其他语言构建自己的Lua库,但你需要翻译组成API的Lua头的相关部分。这很可能比它的价值更麻烦。如果您想将LUA嵌入到用不同语言编写的应用程序中,您需要该语言中的一些库来直接与LUA交互。LUA是用C编写的。如果您使用C,您可能应该使用一个旨在将LUA嵌入C的库。这将不可避免地在某个点上有一些调用直接与LUA C代码交互。Java、Python和您正在使用的任何东西都一样。谢谢。这意味着,只要我做了一些与网络相关的事情,它基本上就是一个C库,我在纯lua中什么都做不了?我说得对吗?@Rüdiger是的,你说得完全对。当然,如果使用相同的ABI操作系统+体系结构,您可以在本地计算机上构建库并复制到主机。谢谢。这意味着,只要我做了一些与网络相关的事情,它基本上就是一个C库,我在纯lua中什么都做不了?我说得对吗?@Rüdiger是的,你说得完全对。当然,如果使用相同的ABI操作系统+体系结构,您可以在本地计算机上构建库并复制到主机。好的,当我只需要提供一个C编译器来嵌入我的Lua代码时,Lua解释器在哪里?Lua代码以前没有编译过,但也没有转换成C代码,它是如何执行的?@Rüdiger,Lua库包含一个虚拟机的解释器。编译Lua脚本是为了指示
当Lua库加载脚本时,此VM的初始化。命令行解释器只是Lua库的一个接口。好吧,当我只需要提供一个C编译器来嵌入我的Lua代码时,Lua解释器在哪里?Lua代码以前没有编译过,但也没有转换成C代码,它是如何执行的?@Rüdiger,Lua库包含一个虚拟机的解释器。当Lua库加载脚本时,Lua脚本被编译为该VM的指令。命令行解释器只是Lua库的一个接口。