Foto ilustrativa do produtor Roberto Ierusalimschy

Projeto relacionado a:

Roberto Ierusalimschy
Imagem promocional do produto Lua

Lua

Tecnologia Programação Software Ferramenta Educação
Ver página do projeto

Este link pode ser comercial e gerar comissão para o site, sem alterar o preço para o leitor. Compare informações, preço e disponibilidade antes de decidir.

Linguagem de programação leve e embarcável criada na PUC-Rio em 1993, com Roberto Ierusalimschy como arquiteto-chefe.

Lua é a linguagem de programação que Roberto Ierusalimschy projeta desde 1993, com Luiz Henrique de Figueiredo e Waldemar Celes, na PUC-Rio. Leve, embarcável e distribuída sob licença MIT, ela existe para entrar dentro de outros programas: jogos, ferramentas, middleware, módulos da Wikipédia. Não compete como substituta universal de Python. Compete como interpretador pequeno com interface clara em C.

O site oficial, lua.org, descreve a linguagem como poderosa, eficiente e portátil, com tipagem dinâmica, máquina virtual de registradores e coleta de lixo. O interpretador cabe em dezenas ou poucas centenas de kilobytes, conforme a plataforma. O pacote-fonte de uma versão recente ocupa da ordem de 390K compactado. Esse número importa: é o argumento de quem precisa de script sem inflar o binário hospedeiro.

Como a linguagem funciona na prática

Lua combina sintaxe procedural com uma estrutura de dados central, a tabela, que serve de array, dicionário, objeto e namespace. Funções são valores de primeira classe. Há corrotinas, closures e metatabelas para estender a semântica. Não há um sistema de classes nativo; herança e encapsulamento se constroem com esses mecanismos. A equipe chama isso de meta-mecanismos: em vez de entregar cada recurso pronto, entrega um jeito de o programador montar o recurso.

A implementação é uma biblioteca em C, no subconjunto comum a C e C++. O programa hospedeiro liga a biblioteca, empurra valores numa pilha e expõe funções nativas. Por isso Lua aparece em World of Warcraft, Angry Birds, Adobe Lightroom, no middleware Ginga de TV digital e nos módulos Scribunto da Wikipédia. O programador da aplicação escreve o núcleo em C ou C++; o conteúdo, a regra de jogo ou a extensão ficam em Lua.

  • Linguagem de extensão criada em 1993 no Tecgraf da PUC-Rio.
  • Licença MIT, código aberto, uso comercial permitido sem taxa.
  • Manual de referência oficial em lua.org, mantido pelos três autores.
  • Implementação pequena, portátil e pensada para ser embarcada via interface em C.

Versões, manual e comunidade

A linguagem teve versões sucessivas desde o início dos anos 1990. O manual de cada série — 5.1, 5.2, 5.3, 5.4 e seguintes — é a definição normativa, assinada por Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes. Há também implementações independentes, como o LuaJIT, para quem precisa de compilação just-in-time. O núcleo de referência continua o código da PUC-Rio.

A comunidade se organiza em lista de discussão, workshops e no próprio site. Lua.org deixa claro que o nome se escreve Lua, não LUA, e que a linguagem hoje vive no LabLua, no Departamento de Informática da PUC-Rio, depois de ter nascido no Tecgraf. Comprar o livro oficial ou doar ao projeto são as formas públicas de apoiar a manutenção, já que o software em si não cobra licença.

Quando Lua é a escolha certa

Lua faz sentido quando o programa principal já existe e precisa de script interno: regras de jogo, filtros, configuração, plugins, lógica de interface. Faz menos sentido como primeira linguagem de um curso introdutório que espera ecossistema web enorme, embora seja ensinada em disciplinas de linguagens precisamente por ser pequena o bastante para se entender inteira.

Quem chega pela fama dos games encontra uma linguagem sóbria, com 21 palavras-chave e um núcleo que cabe na cabeça. Quem chega pela pesquisa de Roberto Ierusalimschy encontra o mesmo objeto: um desenho que recusa inchar para parecer moderna. O download, o manual e o histórico estão em lua.org. O livro do arquiteto-chefe aprofunda o uso. A linguagem, em si, continua gratuita.

Página vinculada ao projeto

Para consultar a página vinculada a este projeto, acesse Lua.


O que você acha deste Projeto?

O projeto Lua entrega o que promete? Foi uma boa experiência de aprendizagem ou serviço? Mande o seu feedback franco.

Outros projetos do mesmo autor

Se você se interessou por Lua, talvez também queira conhecer outros projetos de Roberto Ierusalimschy.

Ver perfil completo
Programando em Lua
Programando em Lua
Edição brasileira do livro oficial de Lua, escrita por Roberto Ierusalimschy e publicada pela LTC em terceira edição.
00%
00%
Programming in Lua
Programming in Lua
Livro oficial da linguagem Lua, quarta edição de Roberto Ierusalimschy, atualizado para Lua 5.3 e publicado por Lua.org.
00%
00%