Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
RESUMO
Neste trabalho apresentaremos um pouco sobre linguagem brasileira de programao LUA atravs
de uma abordagem simples e informativa contando um pouco sobre sua histria, evoluo,
aplicaes vantagens e desvantagens desta que uma linguagem de scripts amplamente usada nas
mais diversas reas. Noes gerais de histrico demonstram seu proposito e seus domnios de
aplicao e exemplificam a aceitao do trabalho perante os outros pases. Alm disso, detalhes
mais especficos sero exemplificados como sua versatilidade para a utilizao em software para
sistemas embarcados at grandes aplicativos como o Adobe Phosthop Lihgtroom. Atualmente LUA
uma das linguagens mais utilizadas atualmente para a programao em jogos e tambm faz parte
do padro GINGA para o Sistema Brasileiro de TV Digital. A linguagem de programao LUA
tem sua biblioteca escrita por inteiro em ANSI C sendo por isso muito utilizada em na rea de
segurana e tambm sendo uma linguagem de script embutida em ferramentas como Wireshark,
snort e nmap.
A linguagem de programao LUA uma ferramenta muito porttil o mesmo cdigo-fonte pode ser
compilado em qualquer plataforma. Em pouco tempo passou a ser uma das 20 linguagens mais
utilizada atualmente no mundo, com isso teve sua presena em empresas muito importantes como
Incor, Intel, Microsoft e NASA.
1 INTRODUO
2
hospedeiro pode invocar funes para executar um pedao de cdigo LUA, pode escrever e ler
variveis LUA e pode registrar funes C para serem chamadas pelo cdigo LUA.
2 DESENVOLVIMENTO
2.1 HISTRIA
Lua a nica linguagem de programao genuinamente brasileira que foi aceita no mundo
todo. Foi criada em 1993 por Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar
Celes, desenvolvedores do TecGraf (Grupo de Tecnologia em Computao Grfica) da PUC-Rio, a
princpio, para ser usada em um projeto da Petrobras. Mas devido sua eficincia, clareza e
facilidade de aprendizado, passou a ser usada em diversos ramos da programao, como no
desenvolvimento de jogos, controle de robs, processamento de texto, entre outros. Tambm
freqentemente usada como uma linguagem de propsito geral. Verses da Lua antes da verso 5.0
foram liberadas sob uma licena similar licena BSD. A partir da verso 5.0, Lua foi licenciada
sob a licena MIT. Assemelha-se com Python, Ruby e Icon, entre outras. Lua tem sido usada em
vrias aplicaes, tanto comercial como no-comercial. A NASA at 2003 utilizava Lua para
controlar o armazenamento de gazes explosivo em nibus espaciais. E aqui mesmo no Brasil, o
instituto do corao, INCOR, radicalizou e desenvolveu todo seu sistema WEB para controle de
suas UTIs em Lua.
3
2.2 EVOLUO
1993: Lua 1.0, aconteceu a primeira discusso pblica sobre Lua, dada no VII
Simpsio Brasileiro de Engenharia de Software;
1994: Lua 1.1, esta foi a primeira verso liberada para o pblico;
1995: foi liberada a verso 2.2;
1996: liberada a verso 2.4;
1997: liberada a verso 3.0. Comea aplicaes para jogos;
1998: liberada a verso 3.1;
1999: liberada a verso 3.2.1 (com espelhos nos EUA e na Alemanha);
2000: liberada a verso 4.0 (com novos espelhos, no Japo e na Dinamarca);
2001: liberada a verso 4.1 (com novo espelho, agora a Rssia);
2002: liberada a verso 5.0(beta). Lua Biblioteca Design Workshop realizado na
Universidade de Harvard;
2003: Lua se destaca como a linguagem mais popular para criao de scripts de
jogos. lanado o livro Programming in Lua. Liberada a verso 5.0.1;
2004: Liberada a verso 5.1;
2005: liberada a verso 5.1;
2006: liberada a verso 5.1.1. Feita a traduo do livro Programming in Lua para o
alemo;
Lua foi desenvolvida inicialmente para ser embutida em aplicaes escritas em outras
linguagens, de forma que pudesse estend-las. Pode ser usado para descrever dados, definir
configuraes e comportamentos do ncleo da aplicao escrito em outra linguagem. Lua tambm
fornece mecanismos para ser estendida. Com a evoluo da linguagem, Lua passou a ser vista
tambm como uma linguagem de script auto-suficiente e passou a ser usada para desenvolver
diversas aplicaes, mantendo as caractersticas de oferecer recursos poderosos para descrever
dados e ser facilmente extensvel.
A linguagem Lua utilizada hoje em pases como EUA, Japo, Dinamarca e Alemanha
entre outros na criao de scripts, aplicao de games como os da LucasArt Entertainment, controle
de robs e testes de equipamentos. Para a Web, a Lua tem sido muito til para a intercomunicao
4
de bases de dados em sites dinmicos. O cdigo da linguagem modular, podendo cada mdulo ser
eliminado no caso de a aplicao no precisar dele, o que deixa qualquer aplicao mais leve de se
carregar.
O maior atrativo para aquele que trabalhar com a linguagem a possibilidade de construir
um cdigo atravs de meta-mecanismos, sem precisar despejar o contedo da linguagem
propriamente dito, o que facilita a vida do programador e economiza tempo na concluso do
projeto.
A prtica de como a linguagem LUA pode ajudar o programador, digamos que todo um
trabalho que poderia ser feito anteriormente em ASP para rodar em servidores Windows seja feito
utilizando o servidor de pginas CGI/Lua (que para a linguagem Lua o que o IIS para o ASP)
para escrever as pginas dinmicas e o LuaSQL para o acesso aos bancos de dados. Os beck-ends
seriam compilados em ANSI C ou em
Lua pr-compilado. Se, um dia, for necessrio que os servidores Windows sejam trocados
por Solaris, todo o trabalho no teria que ser refeito para a nova plataforma, bastando apenas
recompilar o cdigo C e configurar o novo Web Server.
A principal diferena em trabalhar com Lua que esta pode ser integrada a outros
programas. O interesse das empresas por Lua ocorre porque essa linguagem de programao ocupa
pouco espao no HD do computador, mais rpida entre as chamadas linguagens de extenso - que
uma sub-diviso da linguagem de programao - e mais fcil de interagir com outros programas.
A linguagem Lua tem vrios derivados''. O principal deles o CGILua, que trabalha com
aplicaes WEB. O CGILua um programa escrito em C onde voc embute trechos escritos em
Lua. E o executvel do CGILua faz toda a comunicao desse trecho Lua com o protocolo http da
Internet. Ou seja, ele faz o papel do CGI. Lua, com seus arquivos de configurao, possibilita que,
ao mesmo tempo em que se cria a funcionalidade das pginas, elas estejam sendo diagramadas na
produo, e os textos, elaborados por um redator - tudo ao mesmo tempo.
5
(theads) cooperativas. Cada co-rotinas em Lua representa uma linha de execuo independente, com
sua prpria pilha de chamadas (Por isso classificada como stackful). Mas, ao contrrio de um
sistema multitheading convencional, no h preempo em um sistema de co-rotinas. Uma co-rotina
s interrompe sua execuo quando termina ou quando invoca explicitamente uma primitiva de
suspenso (yiald).
2.4 VANTAGENS
Rpida: Lua tem um timo desempenho comparado com outras linguagens de scripts
interpretadas, sendo a mais rpida entre todas;
Porttil: O mesmo trecho de cdigo pode ser compilado em vrias plataformas sem sofrer
alteraes. Lua roda em todos os tipos de Sistemas Operacionais;
Embutvel: Lua rpida e pequena podendo facilmente ser embutida nas mais diversas
aplicaes. Lua usada para estender programas escritos no s em C e C++, mas tambm em Java,
C#, Smalltalk, Fortran, Ada, Erlang, e mesmo outras linguagens de script, como Perl e Ruby;
Poderosa e Simples: embora Lua no seja uma linguagem puramente orientada a objetos, ela
fornece meta-mecanismos para a implementao de classes e herana. Os meta-mecanismos de Lua
trazem uma economia de conceitos e mantm a linguagem pequena, ao mesmo tempo que permitem
que a semntica seja estendida de maneiras no convencionais;
Pequena: Incluir Lua numa aplicao no aumenta quase nada o seu tamanho. O pacote de
Lua 5.1.4, contendo o cdigo fonte, documentao e exemplos, ocupa 860K descompactado;
Livre: Lua software livre de cdigo aberto, distribuda sob a licena MIT. Pode ser usada
para quaisquer fins sem burocracia, s fazer o download e us-la;
Importncia Global: O projeto e a evoluo de Lua foram apresentados em junho de 2007
na HOPL III, a 3a Conferncia da ACM sobre a Histria das Linguagens de Programao. Essa
conferncia ocorre a cada 15 anos (a primeira foi em 1978) e somente poucas linguagens so
apresentadas a cada vez. A escolha de Lua para a HOPL III um importante reconhecimento do seu
impacto mundial. Lua a nica linguagem de programao de impacto desenvolvida fora do
6
primeiro mundo, estando atualmente entre as 20 linguagens mais populares na Internet (segundo o
ndice TIOBE, em Maro/2011).
2.5 DESVANTAGNS
Mais demorado que C;
CPC 4400: placa de switch para rede Ethernet, a linguagem foi usada na criao de sua
interface;
Rob Crazy Ivan: Lua um dos componentes do seu crebro, responsvel, segundo
fabricantes do rob, pela parte lgica. Ivan ganhou o concurso de inteligncia artificial da
RoboCup 2000, concurso de robs realizado na Dinamarca;
AXAF (Advanced X-ray Astrophysics Facility): terceiro dos grandes observatrios espaciais
lanados pela NASA, tem a tarefa de simular em imagens os sinais recebidos do espao, Lua
uma das linguagens utilizadas para tal;
NASA: Lua foi linguagem usada no controle dos nveis de concentrao de gases
perigosos na preparao para o lanamento de nibus espacial.
FarCry UBISOFT;
8
2.8 APLICAES NO SISTEMA BRASILEIRO DE TV DGITAL
A linguagem de programao Lua, a linguagem procedural do subsistema Ginga- NCL,
parte integrante do sistema Ginga. Conforme Barbosa e Soares (2008), o middleware Ginga uma
combinao de tecnologias padronizadas e inovaes brasileiras. Ele subdividido em trs
componentes principais interligados. Os subsistemas so chamados de Ginga-J (para aplicaes
procedimentais Java), Ginga- NCL (para aplicaes declarativas NCL e NCLua [ programa Lua
para plataforma de televiso digital ]) e o Ginga-CC (o ncleo comum). Alm disso, h diversas
APIs, pacotes de software e outros servios de mais baixo nvel, oferecidos ao middleware pelo
sistema operacional ou outros componentes.
9
3 CONSIDERAES FINAIS
Aps o termino deste trabalho, conclui-se que a linguagem de programao Lua, apesar de
muitos ainda no conhecer, uma linguagem muito vantajosa quando se trata de uma linguagem de
scripts, de extenso. Principalmente na rea de jogos, onde ela est tendo um maior destaque
(embora seja usada para todo tipo de aplicao). Pois pequena (leve), rpida, dinmica, muito
poderosa.
REFERNCIAS
Publique! Site desenvolvido em Lua, Disponvel em http://www.fabricadigital.com.br
Acessado em 10/04/2015.
Gnter Heinrich Herweg Filho, TV Digital, Lua introduo Disponvel em
http://imasters.com.br Acessado em 10/04/2015.
Kepler Project, Comunidade de desenvolvedores de sites usando Lua, Disponvel em
http://keplerproject.org Acessado em 10/04/2015.
10
As Facilidades da Programao Lua, Disponvel em http://www.portaldaprogramacao.com
Acessado em 10/04/2015.
Adriano Pecenin, Linguagem de Programao Lua, Disponvel em
http://quatroliberdades.blogspot.com Acessado em 10/04/2015.
Linguagem de Programao Lua, Disponvel em http://www.gamedev.com.br Acessado em
10/04/2015.