A Linguagem de Programação Lua

O que é Lua?

Lua é uma linguagem de programação poderosa, eficiente e leve, projetada para estender aplicações. Ela permite programação em vários estilos: procedural, orientada a objetos, funcional, orientada a dados, e descrição de dados.

Lua combina sintaxe procedural simples com poderosas construções para descrição de dados baseadas em tabelas associativas e semântica extensível. Lua é tipada dinamicamente, é executada via interpretação de bytecodes para uma máquina virtual baseada em registradores, e tem gerenciamento automático de memória com coleta de lixo incremental. Essas características fazem de Lua uma linguagem ideal para configuração, automação (scripting), e prototipagem rápida.

Quais as origens de Lua?

Lua é inteiramente projetada, implementada, e desenvolvida no Brasil, por uma equipe na PUC-Rio (Pontifícia Universidade Católica do Rio de Janeiro). Lua nasceu e cresceu no Tecgraf, o então Grupo de Tecnologia em Computação Gráfica da PUC-Rio. Atualmente, Lua é desenvolvida no laboratório LabLua do Departamento de Informática da PUC-Rio.

Como saber mais sobre Lua?

Os principais textos em português sobre Lua são o livro Programando em Lua e o manual de referência, que é a definição oficial da linguagem Lua.

Programando em Lua por Roberto Ierusalimschy
LTC, 2015
ISBN 9788521626992

compre aqui com 20% de desconto

Temos também alguns textos introdutórios:

Temos ainda slides de palestras e algumas reportagens sobre Lua.

Esta página é apenas um resumo do site de Lua. O resto do site, incluindo a maior parte da documentação técnica sobre Lua, está em inglês pois Lua é software de exportação e é usada em vários produtos e projetos no mundo todo. A comunidade de Lua é internacional; a nossa lista de discussão tem membros de vários países. Participe também da lista Lua BR em português. Todos são bem-vindos!

Como contribuir para a comunidade Lua?

Você pode contribuir para a comunidade de várias maneiras: respondendo perguntas sobre Lua (nas listas Lua BR e lua-l, no chat, em stackoverflow e pt.stackoverflow, etc.), colaborando no wiki, respondendo a nossa pesquisa, adicionando um logo de Lua na sua página da web, e escrevendo e compartilhando ferramentas e bibliotecas para Lua.

Como participar da comunidade Lua?

Você pode participar da comunidade Lua se inscrevendo na lista de discussão Lua BR, cujo tráfego é em português, ou na lista lua-l, cujo tráfego é em inglês.

Ambas as listas são espaços abertos para todos os interessados na linguagem Lua, desde aqueles que já usam Lua até os que têm apenas curiosidade de saber mais sobre a linguagem. Todos são bem-vindos!

Participe de Lua BR e dê sugestões de como podemos atingir efetivamente a comunidade Lua no Brasil.

Você pode conhecer pessoalmente parte da comunidade Lua internacional participando de um Lua Workshop.

Como apoiar o projeto Lua?

Você pode apoiar o projeto Lua comprando livros publicados por Lua.org e fazendo uma doação.

Lua.org é Associada da Amazon e recebemos comissões por compras qualificadas feitas por meio de links neste site.

Por que escolher Lua?

Lua é linguagem estabelecida e robusta

Lua é usada em muitas aplicações industriais (e.g., Adobe's Photoshop Lightroom), com ênfase em sistemas embutidos (e.g., o middleware Ginga para TV digital) e jogos (e.g., World of Warcraft e Angry Birds). Lua é atualmente a linguagem de script mais usada em jogos. Lua tem um sólido manual de referência e existem vários livros sobre a linguagem. Várias versões de Lua foram lançadas e usadas em aplicações reais desde a sua criação em 1993.

Lua é rápida

Lua tem uma merecida reputação de ótimo desempenho. Outras linguagens de script aspiram ser "tão rápidas quanto Lua". Vários benchmarks mostram Lua como a linguagem mais rápida entre as linguagens de script interpretadas. Lua é rápida não só em programas específicos para benchmarks, mas no dia-a-dia também. Porções substanciais de aplicações grandes são escritas em Lua.

Se você precisar de ainda mais velocidade, experimente LuaJIT, uma implementação independente usando um compilador just-in-time.

Lua é portátil

Lua é distribuída via um pequeno pacote e compila sem modificações em todas as plataformas que têm um compilador C padrão. Lua roda em todos os tipos de Unix e Windows, e também em dispositivos móveis (usando Android, iOS, BREW, Symbian, Windows Phone), em microprocessadores embutidos (como ARM e Rabbit, para aplicações como Lego MindStorms), e até em mainframes IBM.

Lua é embutível

Lua é uma engine rápida e pequena que você pode facilmente embutir na sua aplicação. Lua tem uma API simples e bem documentada que permite uma integração forte com código escrito em outras linguagens. É simples estender Lua com bibliotecas escritas em outras linguagens. Também é simples estender programas escritos em outras linguagens com Lua. Lua é usada para estender programas escritos não só em C e C++, mas também em Java, C#, Smalltalk, Fortran, Ada, Erlang, e mesmo outras linguagens de script, como Perl e Ruby.

Lua é poderosa (e simples)

Um conceito fundamental no projeto de Lua é fornecer meta-mecanismos para a implementação de construções, em vez de fornecer uma multidão de construções diretamente na linguagem. Por exemplo, embora Lua não seja uma linguagem puramente orientada a objetos, ela fornece meta-mecanismos para a implementação de classes e herança. Os meta-mecanismos de Lua trazem uma economia de conceitos e mantêm a linguagem pequena, ao mesmo tempo que permitem que a semântica seja estendida de maneiras não convencionais.

Lua é pequena

Incluir Lua numa aplicação não aumenta quase nada o seu tamanho. O pacote de Lua 5.5.1, contendo o código fonte e a documentação, ocupa 390K comprimido e 1.5M descompactado. O fonte contém cerca de 32000 linhas de C. No Linux de 64 bits, o interpretador Lua contendo todas as bibliotecas padrão de Lua ocupa 293K e a biblioteca Lua ocupa 484K.

Lua é livre

Lua é software livre de código aberto, distribuída sob uma licença muito liberal (a conhecida licença MIT). Lua pode ser usada para quaisquer propósitos, incluindo propósitos comerciais, sem qualquer custo ou burocracia. É só baixar e usar.

Lua tem importância global

Lua é a única linguagem de programação com impacto mundial desenvolvida fora do primeiro mundo.

Em 2007, o projeto e a evolução de Lua foram apresentados na HOPL III, a 3a Conferência da ACM sobre a História das Linguagens de Programação. Essa conferência ocorre a cada 15 anos (em 1978, 1993, 2007, 2021) e apresenta linguagens de impacto. A escolha de Lua para a HOPL III é um importante reconhecimento do seu impacto mundial.

Em 2011, Lua ganhou o Front Line Award da Game Developers Magazine na categoria ferramentas de programação.

Em 2017, Lua foi exibida na exposição Inovanças - Criações à Brasileira, no Museu do Amanhã no Rio de Janeiro, como uma das "criações pensadas e desenvolvidas por brasileiros que transformam vidas no país e no mundo". Veja o vídeo de abertura e leia o catálogo. Veja o video sobre Lua.

Em 2022, Lua recebeu a Medalha Pedro Ernesto, a comenda máxima da cidade do Rio de Janeiro.