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 procedural, programa��o orientada a objetos, programa��o funcional, programa��o 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 � realmente internacional: menos de 10% dos mais de 2500 assinantes da nossa lista de discuss�o s�o do Brasil. 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 lista s�o espa�os abertos para todos os interessados na linguagem Lua, desde aqueles que j� usam Lua at� os que tem 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 dentre 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� 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 and 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.4.7, contendo o c�digo fonte e a documenta��o, ocupa 365K comprimido e 1.3M descompactado. O fonte cont�m cerca de 31000 linhas de C. No Linux de 64 bits, o interpretador Lua contendo todas as bibliotecas padr�es de Lua ocupa 279K e a biblioteca Lua ocupa 464K.

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. Basta fazer um download e us�-la.

Lua tem import�ncia global

Lua � a �nica linguagem de programa��o com impacto mundial desenvolvida fora do primeiro mundo.

O projeto e a evolu��o de Lua foram apresentados em 2007 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.

Lua ganhou o Front Line Award 2011 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 video 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 Janeiro.