Introdução a LUA, uma poderosa linguagem de programação

Neste artigo conheceremos um pouco sobre Lua, que é uma maravilhosa linguagem de programação que aparentemente veio pra ficar.

[ Hits: 65.374 ]

Por: André em 03/05/2010 | Blog: http://127.0.0.1


O primeiro contato



Vamos começar fazendo o clássico "Ola mundo!", que é como um teste drive na programação. :-)

Comece indo no Geany em "Documento", depois em "Definir tipo de arquivo" e logo após vá em "Linguagens de script". Lá você encontrará diversas linguagens de script como Perl, Python, Ruby, Java script, Matlab, Lua entre muitas outras. Enfim, selecione a linguagem Lua.

Agora vamos criar nosso Ola mundo.

#!/usr/bin/lua
print "Ola mundo!"

Salve como intro.lua e interprete com o comando:

lua intro.lua

E como saída você deve ter:

Ola mundo!

Vamos agora brincar com algo mais interessante, vamos utilizar arrays na linguagem Lua. Insira o script:

#!/usr/bin/lua
array = {"a","b","c"}
print (array[3])

Neste caso ele imprime o terceiro elemento do nosso array, o que neste caso seria:

c

Agora, se eu quisesse imprimir o número de elementos que eu tenho eu meu array, eu utilizaria:

#!/usr/bin/lua
array = {"a","b","c"}
print (#array)

Como saída eu teria:

3

Esse 3 é porque eu tenho 3 elementos em meu array, são eles: a, b, c.

Vamos aumentar isso aí...

#!/usr/bin/lua
array = {"a","b","c", "d", "e", "f"}
print (#array)

Ele irá imprimir:

6

Trabalhando com variáveis

Vamos ver como é simples trabalhar com variáveis em Lua. Experimente interpretar o código:

#!/usr/bin/lua
a = 1
print(a)

Interpretando teríamos:

1

Isso porque nós imprimimos o valor da variável a.

Vamos fazer algo mais interessante agora, imprimir mais de uma variável de uma vez só.

#!/usr/bin/lua
a = 1
b = 2
c = 3
print(a, b, c)

Como saída teríamos:

1   2   3

Vamos utilizar o array e uma variável, mas como? Dando como valor da variável um array.

#!/usr/bin/lua
array = {"1", "2", "3"}
a = #array[1]

print(a)

Neste caso seria impresso:

1

Simples, não acham?!

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. O primeiro contato
   3. Um pouco mais sobre variáveis em Lua
   4. Conclusão
Outros artigos deste autor

SDL e C - Uma dupla sensacional

Operadores com a linguagem C

Pentesting on PHP apps: XSS

Livestation - Assista TV em seu GNU/Linux

Introdução ao Fortran (parte 1)

Leitura recomendada

Wordpress em 30 segundos com WP-CLI

Introdução ao Fortran (parte 1)

Cansou do Konsole e GNOME-Terminal? Existem outros terminais, escolha o seu!

Algoritmos em Shell Script

Discar BrasilTelecom com PPPOE no Ubuntu 6.10

  
Comentários
[1] Comentário enviado por /bin/laden em 03/05/2010 - 17:12h

Fraquíssimo hein!

[2] Comentário enviado por andrezc em 03/05/2010 - 17:13h

é mesmo ?! Publica um melhor.

[3] Comentário enviado por /bin/laden em 03/05/2010 - 17:36h

Não preciso ficar publicando artiginhos toscos só pra ganhar uns pontinhos!

Sem mais delongas, fui!

[4] Comentário enviado por wellingtoncunha em 03/05/2010 - 17:37h

Nossa mas como os cara inventa linguagem de Programação só para gerar modinha. Para mim linguagens de programação mesmo só tem C e Assembly.
Parabens pelo post.

[5] Comentário enviado por andrezc em 03/05/2010 - 17:41h

@/bin/laden

é, você é fera mesmo, e repito, tosco né ?! Aposto que não sabe a metade...

[6] Comentário enviado por vinipsmaker em 03/05/2010 - 17:48h

Deixando de lado a flame war que iniciaram aí em cima:

Já que lua não tem um desempenho maior que C/C++ e a produtividade maior que Python, fiquei com a dúvida:
Qual as vantagens de Lua sobre outras linguagens, será que sua integração com outras linguagens é superior?

Li que Lua é uma "linguagem perfeita para scripts", mas depois desse tutorial "aprenda muito rápido" fiquei com a dúvida de qual suas vantagens (claro que você não a inventou e não tem obrigação de defender a linguagem, mas acho que você poderia me ajudar com isso).

[7] Comentário enviado por /bin/laden em 03/05/2010 - 18:05h

E para finalizar com elegância esse flame:

function validaTosquice(artigo)
if artigo == "tosco" then
return true
else
return true -- Ainda continua sendo tosco!
end
end

[8] Comentário enviado por andrezc em 03/05/2010 - 18:16h

@vinipsmaker

O que vejo como vantagem em Lua é : pode-se unir partes de um programa feitas em mais de uma linguagem, como visto na Wiki, leve, flexivel e rápida. Não explorei por total a linguagem ainda, mas ando lendo muito sobre ela, e quem sabe fazer programas para uso profissional nela. Mas por enquanto, estou só me aventurando mesmo. Mas comparado ao C, eu ficaria com o C, para ser sincero.

@/bin/laden

Obrigado pelo seu código tosco e por perder seu tempo lendo meu artigo.

bjunda!



[9] Comentário enviado por vinipsmaker em 03/05/2010 - 18:16h

#include <chuck_norris.h>
#include "vol/artigo/introducao_a_lua.h"

void foobar(Comentarista &comentarista)
{
if(comentarista.type() == FLAMER)
chuck().roundhouse_kick(comentarista);
}

int main()
{
for_each(comentarias.begin(), comentaristas.end(), foobar);
return 0;
}

[10] Comentário enviado por andrezc em 03/05/2010 - 18:18h

@vinipsmaker,

Põe um return main(); daí entra em um loop infinito de roundhouse_kick no troll


:^)

[11] Comentário enviado por Teixeira em 03/05/2010 - 18:51h

Mas, onde é que eu encontro exemplos de programas mais aprimorados em LUA, ou seja, que façam alguma coisa realmente útil?

( Não estranhe nem se ofenda: Eu faço essa pergunta com relação a TODAS as linguagens chamadas de "fáceis" ).

Para mim não basta ser fácil: Tem de ser útil.

A propósito: Já vi exemplos de "Hello World!" até na lingua da sogra...

E aquela alusão ao LISP ( "Lots of Infernal Stupid Parenthesis" ) me fez tremer nos alicerces...
É o caso: Para quem PRECISA de LISP, pode ser o paraíso. Para quem não precisa, é o poço do fedor eterno. Mesma coisa o Fortran, Algol, Forth, etc., etc., etc.

[12] Comentário enviado por andrezc em 03/05/2010 - 19:08h

Caro Teixera,

um bom exemplo de aplicação "útil" em Lua, seria os jogos...

http://www.amazon.com/Game-Development-LUA/dp/1584504048

[13] Comentário enviado por jhugor em 03/05/2010 - 20:01h

Parabens pelo artigo junior, sua disposicao ja ajudou muito a este iniciante aqui!

Hoje sei que poderia optar em programar em java, c, perl, lua e ruby! Antes disto nao sabia!

Acredito que saber nao ocupa espaco e que le teus artigos quem quer! Ou sao obrigados?

Te agradeco pelo tempo disposto a ajudar aqueles que ainda nao sabem nada e que tambem sao integrantes deste forum!

Existem pessoas que se esquecem que um dia comecaram do zero!

E tem uma coisa que nao entendo: O que valem estes pontos no forum? Custam algo pra alguem?

Num forum Tux onde compartilhar deveria ser a ideia temos pessoas que querem criticar?

Se eu leio algo que nao gosto simplesmente ignoro!

Acho deselegante este bate-boca aqui! Sinceramente queima o filme do forum!

Lamentavel!

[14] Comentário enviado por andrezc em 03/05/2010 - 20:33h

Caro jhugor,

primeiramente obrigado pelo comentário construtivo e por sucumbir a sua opinião sobre o assunto., sim, é deselegante e sem um pingo de educação ficar brigando e trollando pela internet, atitude indiscutível. Só que como o cara veio de babaquisse, não pude ficar quieto.

Um abraço.

[15] Comentário enviado por roberto_espreto em 03/05/2010 - 21:03h

Pessoal, independente se artigo ficou bom ou não, levem em consideração o tempo que o autor levou para construí-lo. Nunca nenhum artigo que foi colocado aqui no vivaolinux ou que ainda será colocado agradará a grande massa! Se quer avaliar um artigo, avalie, mais avalie com algum embasamento sobre o porque acha-o fraco! Simplesmente não ridicularize o autor, mostre-o o que falta ou até mesmo faça um melhor! É cada um que aparece!

Acho a linguagem lua extremamente excelente pra os meus propósitos, tenho desenvolvido scripts com a linguagem LUA para interagir com o Metasploit, simplesmente fantástico pra mim!
Uma recomendação Junior, faça uma segunda parte e cale a boca de muita gente!

Abraços!

®

[16] Comentário enviado por andrezc em 03/05/2010 - 21:13h

Roberto, tirei o chapéu pra você agora, estou totalmente de acordo com seu comentário. E sobre a segunda parte, começarei a trabalhar nela neste domingo.


Como você disse, não é legal o cara chegar e falar: ta errado! Tá ruim!, mas não dizer o que estar errado, enfim, fazer uma critica construtiva.

Obrigado, um abraço.

[17] Comentário enviado por rodrigo.slacklin em 03/05/2010 - 23:59h

Antes de mais nada, espero que aceite minha crítica (mostrando assim ser sábio e ver que errou), diferente do que fez com @/bin/laden

(eu tive que recuperar minha senha de tanto tempo que eu não logo aki...)

Infelizmente para o SITE, compartilho da mesma opinião dele, estou muito desanimado com o rumo que o vivaolinux está tomando (site que já me ajudou umas 4 ou 5 vezes) mas tenho me assistido entrando cada vez menos por aqui...

...

Então, começar um artigo para leigos que NÃO SABEM NADA de programação (como você se defenceu nos comentários) com o título Introdução a LUA, UMA PODEROSA LINGUAGEM DE PROGRAMAÇÃO, está totalmente equivocado, você nem se quer faz uma introdução a essa linguagem, e muito menos explica o porque do PODEROSA, na hora que eu li o título, eu falei 'NOSSAAA, karaca, isso deve ser foda mesmo!' mas você simplesmente joga 5 linhas de LÓGICA, nem programação é cara, isso pra mim é python como você disse... e INFELIZMENTE, nao vi nada de poderosa nela.

Por favor, seja sábio e humilde, escreva um outro artigo, melhor, explicando os porques e praques, e mostrando como, nao simplesmente falando 'está sendo muito usada para jogos..' isso eu sei, mas agora pq? (sim, seu quisesse procurar jah tinha ido, mas penso que C99 ainda é insubstituível´) assim você vai conseguir se redimir, pra um usuário de gentoo...

Abraços e boa sorte.
@/bin/laden fez um breve resumo disso tudo.

[18] Comentário enviado por morvan em 04/05/2010 - 00:04h

Boa noite, Junior Linux.
Muito bom artigo, já que o seu caráter é introdutório. Considero que o roberto_espreto tem razão, ou seja, você deve fazer um artigo mais aprofundado. Este, sabe-se que fora feito com o fito de nos apresentar a linguagem. Para quem programa em Python, acredito ser uma curva muito suave de aprendizagem.

Parabéns por contribuir com a comunidade.

Morvan, Usuário Linux #433640.

[19] Comentário enviado por thiagorabelo em 04/05/2010 - 11:21h

Eu também compartilho da opinião de que o artigo ficou um pouco fraco, mas reconheço a boa vontade do nosso amigo Junior. Eu já tinha ouvido falar de Lua e justamente isso que foi dito(que a linguagem eh boa pra jogos) mas não ficou claro de onde vem todo esse poder. Portanto acho que fica aí uma crítica para que você possa se aprimorar na escrita de seus artigos! Até porque quando a gente pára pra escrever, também aprendemos muito! Sei que não é fácil escrever um artigo bacana, mas isto já fooi um bom começo! Agora o que num pode é o pessoal chegar excrotizando pq o artigo não atendeu as espectativas! Tem que pegar leve! Todo mundo ta aqui pra aprender, se já sabe tudo então nem precisa vir ao forum!
Parabéns pelo artigo! Continue postando!

[20] Comentário enviado por JoseRenan em 04/05/2010 - 19:28h

LUA tem a ver com Tibia, não?

[21] Comentário enviado por gokernel em 06/05/2010 - 10:49h

Oi tentando responder ao Vinips:
------------------------------------------------------------------------------------------
Já que lua não tem um desempenho maior que C/C++ e a produtividade maior que Python, fiquei com a dúvida:

Qual as vantagens de Lua sobre outras linguagens, será que sua integração com outras linguagens é superior?
------------------------------------------------------------------------------------------

1 - É impossível uma linguagem script ser superior a linguagem em que foi gerada(C).

2 - Vantagens de Lua sobre outras?
1 - Velocidade, Lua é umas das linguagens mais rápida conhecida.
2 - Tamanho... quando for tentar extender algo usando Python ou Perl então vc vai entender o que estou falando.

Para velocidade teste você mesmo:
http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=lua&lang2=yarv

gokernel
gokernel@hotmail.com

Abraços.

[22] Comentário enviado por swfly@zipmail.co em 29/01/2012 - 23:16h

Para quem interessar já tem um livro brasileiro sobre a linguagem lua http://clubedeautores.com.br/book/122264--Lua__Programacao_de_Computadores.

[23] Comentário enviado por jarlisson em 27/07/2012 - 12:15h

Me lembro a primeira vez que usei um linux...há quase 15 anos, quando meu irmao instalou...nem lembro qual era, devia ser conectiva.
Mas era algo bem tenso de usar, existiam poucas informaçoes...as que tinham era ingles (nao era normal todo mundo manjar ingles, como manjam hoje) e buscávamos a informaçao sob conexoes de 56k (alguns, 28k).

Hoje temos bem mais, graças a pessoas querendo oferecer mais, e ainda vem gente reclamar. Ridículo.

E eu venho ouvido falar bastante sobre Lua, principalmente em relaçao a jogos.

[24] Comentário enviado por make.believe em 14/04/2013 - 16:50h


[...]assim você vai conseguir se redimir, pra um usuário de gentoo...[...]

Abraços e boa sorte.
@/bin/laden fez um breve resumo disso tudo.


Gentoo.... grandes b*****... pura perda de tempo.

[25] Comentário enviado por AlvesUeliton em 06/08/2016 - 21:12h

O jogo PointBlank com a engine criada pelos sul coreanos possui vários arquivos em lua.

[26] Comentário enviado por morvan em 06/08/2016 - 23:08h

Boa noite.
À guisa de contribuição para com o debate sobre as duas linguagens (Lua e Python, minha preferida), desenvolvedor explica porque, em situação específica, ou seja, em determinado módulo, ele substituiu o Python por Lua e obteve, com isso, dois ganhos: consistência e praticidade. O primeiro porque o código em Python tinha problemas na implementação, sendo muito sensível à versão empregada (de fato, há algumas diferenças de implementação e de sintaxe entre o 2.x e o 3.x. Alguns comandos passam a ser função e temos mais métodos de tratamento de erro a partir do 2.7.x); e, por último, praticidade. Com a implementação em Lua o código ficou mais portável e menos dependente de biblioteca. Não achei convincentes as explicações do autor. Penso que ele acabou gerando o que ele mais alegou querer inibir, no artigo: flame.
Mas admito que gostei de sua postura antiflame, mesmo com a incongruência.
O Elo de Acesso, em inglês, é este:
https://www.distelli.com/blog/using-lua-for-our-most-critical-production-code ... (via BR-Linux).

Morvan, Usuário GNU-Linux #433640. Seja Legal; seja Livre. Use GNU-Linux.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts