Boa noite computêros, foi lendo a revita Espírito Livre que eu fiquei conhecendo a Linguagem de Programação Lua, desde então eu venho dando uma pesquisada e começando a brincar um pouco com ela…

Antes de mais nada devo agradecer ao Lázaro Reinã que foi quem fez o artigo para a revista…

lua

  • O que é Lua? (Não, não é o satélite natural do planeta Terra…)

Lua é uma linguagem de programação poderosa, rápida e leve, projetada para estender aplicações.

Lua combina sintaxe simples para programação procedural com poderosas construções para descrição de dados baseadas em tabelas associativas e semântica extensível. Lua é tipada dinamicamente, é interpretada a partir 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.

  • Um pouco de História:

Lua foi criada em 1993 por Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes, membros da Computer Graphics Technology Group na PUC-Rio, a Pontifícia Universidade Católica do Rio de Janeiro, no Brasil. Versões da Lua antes da versão 5.0 foram liberadas sob uma licença similar à licença BSD. A partir da versão 5.0, Lua foi licenciada sob a licença MIT.

Alguns de seus parentes mais próximos são o Icon para sua concepção e Python para a sua facilidade de utilização por não-programadores. Em um artigo publicado no Dr. Dobb’s Journal, os criadores da Lua também afirmam que Lisp e Scheme foram uma grande influência na decisão de desenvolver o quadro como a principal estrutura de dados de Lua. Lua tem sido usada em várias aplicações, tanto comerciais como não-comerciais.

  • Características:

Lua é normalmente descrito como uma linguagem de múltiplos paradigmas, oferecendo um pequeno conjunto de características gerais que podem ser estendidas para encaixar diferentes tipos de problemas, em vez de fornecer uma especificação mais complexa e rígida para combinar com um único paradigma. Lua, por exemplo, não contém apoio explícito à herança, mas permite que ela seja executada com relativa facilidade com metatables. Do mesmo modo, Lua permite que programadores quando implementam nomes, classes, e outras funções, o emprego de poderosas técnicas de programação funcional e completos escopos lexicais.

Lua é uma linguagem que suporta apenas um pequeno número de estruturas, tais como dados atômicos, valores booleanos, números (dupla precisão em ponto flutuante por padrão), e strings. As estruturas de dados comuns, tais como matrizes, conjuntos, tabelas, listas, e registros podem ser representados por meio da Lua. Lua não foi construída com suporte para programação orientada a objeto.

  • Alguns Exemplos de códigos:

Como foi postado anteriormente aqui no blog, existe o clássico olá mundo para o lua. (veja olá mundo para outras linguagens)

print "Olá Mundo";

Exemplo de implementação do algoritmo de fatorial recursivo:

function fact(n)
   if n == 0 then
      return 1
   else
      return n * fact(n - 1)
   end
end
  • Finalizando:

A linguagem de programação Lua está sendo muito utilizada pelas empresas atualmente, acreditem ou não, até mesmo a NASA já utilizou a Lua… (a Lua foi pro espaço – trocadilho sem vergonha).

Gostei da linguagem Lua e espero em breve estar aprofundando mais sobre ela…

Agora uma curiosidade, uma linguagem que surgiu aqui no Brasil não possui muitas notícias por aqui, mas lá fora é muito utilizada, um exemplo disso é os rankings das linguagens de programação mais populares, o qual destaca a Lua em 19º no ranking de popularidade…

  • Links úteis:

Site oficial (em inglês)

Site oficial (em português)

Manual de Referência (em português)