De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


A Lua é Nossa

Colaboração: Walter Rodrigo de Sá Cruz

Data de Publicação: 06 de Janeiro de 2006

Procurando uma linguagem pequena para embutir em seu programa (editor de texto, navegador, jogo, etc) como linguagem de script? Qual linguagem lhe vem a cabeça primeiro? Precisa ser uma linguagem rápida, pequena, e se você pretende embuti-la para que as pessoas usem, deve optar pela facilidade de sintaxe. Qual sua escolha ? Perl? Python? Ruby?

Bom, se você escolheu qualquer uma das três opções acima, sua resposta corre o risco de estar errada (mesmo com todo o crescimento do ruby em 2005)! A resposta, pelo menos para a maioria dos desenvolvedores de jogos (incluindo LucasArts e outros pesos pesados) é a brasileira Lua.

O manual a define como uma "linguagem de extensão desenvolvida para suportar programação procedural com facilidade para descição de dados.Oferece também bom suporte para programação orientada a objetos e programação funcional.". Ainda, segundo a documentação, é boa para ser usada como uma linguagem de configuração e script para qualquer programa que necessite dessas características. O editor de textos ScITE a usa como linguagem de script. O navegador de modo texto elinks também a utiliza.

Mas, o campo onde Lua tem seu maior destaque é nos jogos: os jogos "Grim Fandango", "Escape from Monkey Island IV" e "Battlefront II" da LucasArts usam Lua extensivamente. Segundo Roberto Ierusalimschy, em http://www.lua.org/press.html: "A linguagem C faz toda a parte de renderização (a parte gráfica, pesada, que inclui criar todos os detalhes da animação, sombras, e assim por diante). Já o script do jogo - o que o personagem faz, como reage a determinada conjuntura - é todo comandado por Lua. O designer do roteiro de jogo não trabalha em C, e sim programa em Lua."

Instalação

A versão atual é a 5.0. A versão 5.1 está nos últimos estágios de testes e deve ser lançada em breve, com poucas mudanças em relação a versão anterior.

Para o Debian, basta executar:

  apt-get install lua50

Existem pacotes rpm para o Fedora, Conectiva e outras distribuições.

Se você desejar compilá-la a partir dos fontes, pode baixá-los em http://www.lua.org/download.html

Lua como script?

Embora lua brilhe como linguagem embutida, pode ser usada como linguagem de script. Basta salvar o script e executá-lo no prompt de comando:

  lua script.lua

Para um exemplo simples da linguagem, mostro a seguir o código em Lua equivalente ao código em python disponível em http://www.pythonbrasil.com.br/moin.cgi/DeterminandoPrimos que é uma função que calcula todos os primos de 1 a 1000.

  limite = 1000
  
  c = 1
  p = 1
  primos = {2}
  for numero = 3,limite+1 do
     ehprimo = 1
        for key,i in pairs(primos) do
               c = c + 1
              if math.mod(numero,i)== 0 then
               ehprimo = 0
                break
               end
              if i > math.sqrt(numero) then
               break
              end
         end
            if ehprimo == 1 then
           table.insert(primos, numero)
          p = p + 1
     end
     end
  
     pr = table.concat(primos," ")
     print(pr)
     print("\n\nForam encontrados " .. p  .. " números primos.")
     print("Foram necessárias "  ..c .. " comparações.")

Para mais informações, visite os seguintes sites:

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Walter Rodrigo de Sá Cruz