Por que converter LUA para C?
O Lua é implementado em C e projetado como um convidado de script incorporado; o C é o hospedeiro. A semântica do Lua - indexação de tabelas baseada em 1, metatables, corrotinas, garbage collection - não possui equivalentes diretos em C, razão pela qual nenhum transpiler de uso geral foi construído. O par de formatos lista zero programas para esta conversão.
Como converter LUA para C
Lua C API FREE
Incorpore o interpretador Lua no seu projeto C e carregue o arquivo .lua em tempo de execução usando a Lua C API. Este é o padrão convencional para chamar a lógica Lua a partir de um programa hospedeiro em C.
luastatic FREE
Execute luastatic yourscript.lua liblua.a para vincular o script .lua e o runtime do Lua em um binário nativo. O resultado é um executável, não o código-fonte C, mas funciona sem uma instalação separada do Lua.
Sobre estes formatos
Um arquivo LUA é um código-fonte escrito em Lua, uma linguagem de script leve criada em 1993. Qualquer editor de código (VS Code, Notepad++) o abre para leitura ou edição. Para executá-lo,…
Abrir detalhes de .LUA →Um arquivo .c é um código-fonte C - texto simples que um programador escreve e que um compilador transforma em um programa executável. Abra-o para leitura em qualquer editor de texto…
Abrir detalhes de .C →Qualidade e o que observar
- Não existe um transpiler Lua para C de uso geral; as metatables, corrotinas e o garbage collection do Lua não têm equivalentes diretos em C.
- Se o objetivo for desempenho, reescreva apenas o gargalo como um módulo de extensão C (
.soou.dll) que o Lua carrega comrequire- o padrão padrão para código Lua crítico em termos de desempenho. - O luastatic no Linux ou macOS produz um binário ELF ou Mach-O, não um
.exe; compile na plataforma de destino.
Perguntas frequentes
Por que alguns sites listam Lua para C como uma conversão possível?
Uma IA pode ajudar a traduzir Lua para C?
Como chamo funções Lua a partir de um programa C?
.lua em tempo de execução e chame as funções Lua a partir do C usando as funções da API fornecidas pela distribuição Lua.