Buscar

lua-all.signed

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

LINGUAGEM DE PROGRAMAÇÃO LUA
Karoline Reinert
Desenvolvimento de Aplicações na WEB (TES04)
Departamento de Ciência da Computação (DCC)
Centro de Ciências Tecnológicas (CCT)
Universidade do Estado de Santa Catarina (UDESC)
Joinville – SC – Brasil
(krlreinert@hotmail.com)
Abstract
This paper presents a bit about programming in LUA, its history, evolution, 
applications, advantages and disadvantages that this is a scripting language widely 
used in diverse areas ranging from software for embedded systems to large 
applications like Adobe Photoshop Lightroom. LUA is currently the most widely used 
language for programming games and is part of the GINGA standard for the Brazilian 
System of Digital TV. LUA is also widely used in security, and the scripting language 
embedded in tools such as Wireshark, nmap and snort. His library was written entirely 
in ANSI C, is a very portable tool the same source code can be compiled on any 
platform. Quickly became part of the list of 30 most used languages in the world, 
besides the presence of major companies like Incor, Intel, Microsoft and NASA, for 
example.
Keywords: Programming, LUA
Resumo
Este trabalho apresenta um pouco sobre a programação em LUA, sua história, 
evolução, aplicações, vantagens e desvantagens desta que é uma linguagem de 
scripts amplamente usada nas mais diversas áreas, desde software para sistemas 
embarcados, até grandes aplicativos como o Adobe Photoshop Lightroom. Lua é a 
linguagem mais usada atualmente para a programação em jogos e é parte do padrão 
GINGA para o Sistema Brasileiro de TV Digital. Lua também é muito usada na área de 
segurança, sendo a linguagem de script embutida em ferramentas como Wireshark, 
snort e nmap. Sua biblioteca foi escrita por inteiro em ANSI C, é uma ferramenta muito 
portátil o mesmo código-fonte pode ser compilado em qualquer plataforma. Passou a 
fazer parte rapidamente da lista das 20 linguagens mais utilizadas no mundo, além da 
presença em empresas importantes como o Incor, Intel, Microsoft e NASA, por 
exemplo.
Palavras Chaves: Programação, LUA
1. INTRODUÇÃO 
A linguagem de programação Lua tem conquistado os desenvolvedores de programas 
e aplicações aos poucos, graças a sua simplicidade, leveza e rapidez. Lua é uma 
linguagem de programação de extensão projetada para dar suporte à programação 
procedimental em geral e que oferece facilidades para a descrição de dados. A 
linguagem também oferece um bom suporte para programação orientada a objetos, 
programação funcional e programação orientada a dados. Lua foi planejada para ser 
utilizada por qualquer aplicação que necessite de uma linguagem de script leve e 
poderosa. Por ser uma linguagem de extensão, Lua não possui a noção de um 
programa principal: ela somente funciona embarcada em um programa cliente 
anfitrião, chamado de programa hospedeiro. Esse programa hospedeiro pode invocar 
funções para executar um pedaço de código Lua, pode escrever e ler variáveis Lua e 
pode registrar funções C para serem chamadas pelo código Lua.
2. HISTÓRIA
Lua é a única linguagem de programação 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 
Computação Gráfica) da PUC-Rio, a princípio, para ser usada em um projeto da 
Petrobras. Mas devido à sua eficiência, clareza e facilidade de aprendizado, passou a 
ser usada em diversos ramos da programação, como no desenvolvimento de jogos, 
controle de robôs, processamento de texto, entre outros. Também é freqüentemente 
usada como uma linguagem de propósito geral. 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. Assemelha-se com Python, Ruby e Icon, entre outras. 
Lua tem sido usada em várias aplicações, tanto comercial como não-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 coração, INCOR, radicalizou e 
desenvolveu todo seu sistema WEB para controle de suas UTIs em Lua.
2.1. Evolução
1993: Lua 1.0, aconteceu a primeira discussão pública sobre Lua, dada no VII 
Simpósio Brasileiro de Engenharia de Software;
1994: Lua 1.1, esta foi a primeira versão liberada para o público;
1995: foi liberada a versão 2.2;
1996: liberada a versão 2.4;
1997: liberada a versão 3.0. Começa aplicações para jogos;
1998: liberada a versão 3.1;
1999: liberada a versão 3.2.1 (com espelhos nos EUA e na Alemanha);
2000: liberada a versão 4.0 (com novos espelhos, no Japão e na Dinamarca);
2001: liberada a versão 4.1 (com novo espelho, agora a Rússia);
2002: liberada a versão 5.0(beta). Lua Biblioteca Design Workshop realizado na 
Universidade de Harvard;
2003: Lua se destaca como a linguagem mais popular para criação de scripts de 
jogos. É lançado o livro “Programming in Lua”. Liberada a versão 5.0.1;
2004: Liberada a versão 5.1;
2005: liberada a versão 5.1;
2006: liberada a versão 5.1.1. Feita a tradução do livro “Programming in Lua” para o 
alemão;
2007: Feita a tradução coreana do livro “Programming in Lua”. Artigo sobre LuaView 
aparece em LabVIEW Mundial (em italiano). Referência manual disponível em 
português e espanhol;
2008: publicado o livro “Introdução a Programação Lua” em japonês. Referência 
manual disponível em russo. Tradução chinesa do livro “Programming in Lua”. 
Lua Workshop 2008 realizado na Universidade George Washington em 
Washington. Publicado o livro “Lua Programação Gems”;
2009: Referência manual disponível em húngaro. Google apresenta o Android 
Scripting Ambiente com o apoio de Lua. Lua Workshop 2009 realizada realizada 
no Rio de Janeiro. Criada uma versão brasileira da lista de discussão sobre Lua;
2010: Adobe e Social Media Press junta-se a Lua no programa de patrocínio 
corporativo. Liberada a versão 5.2 (alfa);
2011: Referência manual disponível em alemão.
3. LINGUAGEM DE PROGRAMAÇÃO LUA
Lua foi desenvolvida inicialmente para ser embutida em aplicações escritas em outras 
linguagens, de forma que pudesse estendê-las. Pode ser usada para descrever dados, 
definir configurações e comportamentos do núcleo da aplicação escrito em outra 
linguagem. Lua também fornece mecanismos para ser estendida. Com a evolução da 
linguagem, Lua passou a ser vista também como uma linguagem de script auto-
suficiente e passou a ser usada para desenvolver diversas aplicações, mantendo as 
características de oferecer recursos poderosos para descrever dados e ser facilmente 
extensível.
A linguagem Lua é utilizada hoje em países como EUA, Japão, Dinamarca e 
Alemanha entre outros na criação de scripts, aplicação de games como os da LucasArt 
Entertainment, controle de robôs e testes de equipamentos. Para a Web, a Lua tem 
sido muito útil para a intercomunicação de bases de dados em sites dinâmicos. O 
código da linguagem é modular, podendo cada módulo ser eliminado no caso de a 
aplicação não precisar dele, o que deixa qualquer aplicação mais leve de se carregar. 
O maior atrativo para aquele que trabalhará com a linguagem é a possibilidade de 
construir um código através de meta-mecanismos, sem precisar despejar o conteúdo 
da linguagem propriamente dito, o que facilita a vida do programador e economiza 
tempo na conclusão do projeto.
A prática 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 páginas CGI/Lua (que é para a linguagem 
Lua o que o IIS é para o ASP) para escrever as páginas dinâmicas 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 necessário que os servidores Windows sejam 
trocados por Solaris, todo o trabalho não teria que ser refeito para a nova plataforma, 
bastando apenas recompilar o código C e configurar o novo Web Server.
A principal diferença em trabalhar com Lua é que esta pode ser integrada a outros 
programas. O interesse das empresas por Lua ocorre porque essa linguagem de 
programação ocupa pouco espaço no HD do computador, é mais rápida entre as 
chamadas linguagens de extensão - que é uma sub-divisão da linguagem de 
programação - e é mais fácil de interagir com outros programas.
A linguagem Lua tem vários “derivados''. O principal deles é o CGILua, que trabalha 
com aplicações WEB. O CGILua é um programa escrito em C onde você embute 
trechos escritos em Lua. E o executável do CGILua faz toda a comunicação desse 
trecho Lua com o protocolo http da Internet. Ou seja, ele faz o papel do CGI. Lua, com 
seus arquivos de configuração, possibilita que, ao mesmo tempo em que se cria a 
funcionalidade das páginas, elas estejam sendo diagramadas na produção, e os 
textos, elaborados por um redator - tudo ao mesmo tempo.
Em particular, Lua oferece um mecanismo de co-rotinas assimétrico, de primeira 
classe e com pilha. Co-rotinas, como implementadas por Lua, são bastante similares a 
linhas de execução (theads) cooperativas. Cada co-rotinas em Lua representa uma 
linha de execução independente, com sua própria pilha de chamadas (Por isso é 
classificada como stackful). Mas, ao contrário de um sistema multitheading 
convencional, não há preempção em um sistema de co-rotinas. Uma co-rotina só 
interrompe sua execução quando termina ou quando invoca explicitamente uma 
primitiva de suspensão (yiald).
3.1 Vantagens
• Rápida: Lua tem um ótimo desempenho comparado com outras linguagens de 
scripts interpretadas, sendo a mais rápida entre todas;
• Portátil: O mesmo trecho de código pode ser compilado em várias plataformas 
sem sofrer alterações. Lua roda em todos os tipos de Sistemas Operacionais;
• Embutível: Lua é rápida e pequena podendo facilmente ser embutida nas mais 
diversas aplicações. 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 e Ruby;
• Poderosa e Simples: 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;
• Pequena: Incluir Lua numa aplicação não aumenta quase nada o seu 
tamanho. O pacote de Lua 5.1.4, contendo o código fonte, documentação e 
exemplos, ocupa 860K descompactado;
• Livre: Lua é software livre de código aberto, distribuída sob a licença MIT. 
Pode ser usada para quaisquer fins sem burocracia, é só fazer o download e 
usá-la;
• Importância Global: O projeto e “a evolução de Lua” foram apresentados em 
junho de 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 (a 
primeira foi em 1978) e somente poucas linguagens são apresentadas a cada 
vez. A escolha de Lua para a HOPL III é um importante reconhecimento do seu 
impacto mundial. Lua é a única linguagem de programação de impacto 
desenvolvida fora do primeiro mundo, estando atualmente entre as 20 
linguagens mais populares na Internet (segundo o índice TIOBE, em 
Março/2011). 
3.2 Desvantagens
• Mais demorado que C;
• Vulnerabilidade: Foram identificadas e documentadas diversas vulnerabilidades 
de programação insegura em Lua. Tais como injeção de comandos, condição 
de competição, corrupção de arquivos e código malicioso, script cruzado 
armazenado, referência insegura a tabelas, injeção de SQL e mal uso de 
criptografia (estas vulnerabilidades, em outras linguagens de programação, 
estão amplamente documentas em catálogos conhecidos, como o OWASP Top 
10 (2010) e o CWE/SANS Top 25 (2010). Não foi encontrada documentação de 
vulnerabilidades de programação insegura em Lua e nem boas práticas de 
segurança de software em Lua). 
4. APLICAÇÕES
No mercado de softwares em geral:
• “Ginga NCL” – middleware padrão brasileiro para TV Digital;
• “Wireshark” – analisador de protocolos;
• “Snort” – detecção de “intrusos” e proteção do sistema;
• “Adobe Lightroom” – gerenciador e organizador de imagens;
• “nmap” – rastreador de redes para segurança;
• “Eyeon s Digital Fusion” – pós-produção de filmes;‟
• “INPE” – biblioteca GIS;
• “Olivetty” – firmware para impressoras;
• “Omnitronix” – monitoramento remoto;
• “RealTimeLogic” – servidores Web;
• “APT-RPM”, Conectiva – padrão para distribuições RPM;
• “Publique!” – gerenciador de conteúdo para web;
• “Sputnik” – wiki extensível disponível como software livre
Empresas diversas e importantes também aderiram à linguagem, empregando-a em 
aplicações das mais variadas:
• Hands: uso no desenvolvimento de navegadores de conteúdo para micros de 
bolso;
• Incor (Instituto do Coração em São Paulo): utilizada no servidor do sistema que 
monitora pacientes na UTI via Web;
• CPC 4400: placa de switch para rede Ethernet, a linguagem foi usada na 
criação de sua interface;
• Intel: empregada na ferramenta interna para layout de chips (processadores);
• Robô Crazy Ivan: Lua é um dos componentes do seu cérebro, responsável, 
segundo fabricantes do robô, pela parte lógica. Ivan ganhou o concurso de 
inteligência artificial da RoboCup 2000, concurso de robôs realizado na 
Dinamarca;
• AXAF (Advanced X-ray Astrophysics Facility): terceiro dos grandes 
observatórios espaciais lançados pela NASA, tem a tarefa de simular em 
imagens os sinais recebidos do espaço, Lua é uma das linguagens utilizadas 
para tal;
• NASA: Lua foi à linguagem usada no controle dos níveis de concentração de 
gases perigosos na preparação para o lançamento de ônibus espacial.
• Petrobras: principal usuária, utilizando principalmente em visualizações de 
perfis geológicos.
4.1 Aplicações em Jogos
Lua é atualmente a linguagem mais utilizada no desenvolvimento de aplicações para 
jogos (20% dos jogos são desenvolvidos com Lua, enquanto somente 7% usam 
Python, a segunda linguagem de script mais citada na pesquisa [2003] realizada pela 
gamedev.net um importante site para programadores de jogos). Devido ao seu 
pequeno tamanho, bom desempenho, portabilidade e facilidade de integração, Lua 
tem sido amplamente utilizada na indústria de jogos. Empresas como LucasArts, 
BioWare, Microsoft, Relic Entertainment, Absolute Studios e Monkeystone Games 
desenvolvem jogos usando Lua. Os principais jogos são:
• “Grim Fandango” - LucasArts;
• “World WarCraft” - Blizzard;
• “Sonic, the Hedgehdg” – SEGA;
• “FarCry” – UBISOFT;
• “The Sims2” – EA;
• “Sim City 4” – EA;
• “Warhammer Online – Age of Reckoning” – EA;
• “Supreme Commander” – THQ;
• “Heroes V” – UBISOFT;
• “Spell Force” – Solo Out;
• “S.T.A.L.K.E.R. – Shadow of Chernobyl” – THQ;
• “CRYSIS – EA”;
• “Dawn of War” – Relic;
• “NFL Fever 2004” – XSN Sports;
• “The Witcher” – Atari;
• “Amped – Freestyle Showboarding” – Microsoft;
• “Hulk – The Incredible” – SEGA;
• “Destroy all Humans!” – THQ;
• “Psychonauts” – MAJEACO;
• “MDK 2” - Interplay;
• “Escape from Monkey Island” – Lucas Arts (Neste jogo Lua recebeu uma 
homenagem (ANEXO II));
• “Baldur‟s Gate” - BioWare;
• “Impossible Creatures” – Relic, Microsoft Game Studios;
• “HomeWorld 2” – Relic”;
• “Links 2004” – XSN Sports;
• “Amped 3” – 2K Sports;
• “Soul Ride” - Slingshot;
• “Diner Dash 2 – Restaurant Rescue” – PlayFirst;
• “Top Spin 2” – 2K Sports;
• “NHL Rivals 2004” – XSNSports;
• “Grand Theft Auto” – Rockstar Games.
4.2 Aplicações no Sistema Brasileiro de TV Digital
A linguagem de programação Lua, é a linguagem procedural do subsistema Ginga-
NCL, parte integrante do sistema Ginga. Conforme Barbosa e Soares (2008), o 
middleware Ginga é uma combinação de tecnologias padronizadas e inovações 
brasileiras. Ele é subdividido em três componentes principais interligados. Os 
subsistemas são chamados de Ginga-J (para aplicações procedimentais Java), Ginga-
NCL (para aplicações declarativas NCL e NCLua [ programa Lua para plataforma de 
televisão digital ]) e o Ginga-CC (o núcleo comum). Além disso, há diversas APIs, 
pacotes de software e outros serviços de mais baixo nível, oferecidos ao middleware 
pelo sistema operacional ou outros componentes.
4.3 Aplicações para WEB
4.3.1 Kepler
Um exemplo de aplicação da linguagem de programação Lua na WEB é o projeto 
Kepler.
Kepler é uma comunidade de desenvolvedores de software livre usando Lua como 
uma opção viável de desenvolvimento de aplicações web, mantendo a característica 
multi-plataforma de Lua. Esse projeto desenvolveu uma arquitetura onde aplicações 
para a Web podem ser escritas utilizando uma API única denominada CGILua. 
Seguindo a linha multi-plataforma, Kepler disponibiliza disparadores de interpretadores 
Lua para as tecnologias web mais difundidas, entre elas: CGI, Módulos do Apache, 
módulos no IIS (Internet Information Server), FastCGI e Servlet Java. Além dos 
disparadores para tecnologias amplamente difundidas, o Kepler também oferece um 
servidor web escrito em Lua, chamado Xavante. Esse servidor também permite a 
execução de scripts Lua, entre eles os que usam a API CGILua.
Lua foi classificada como sendo o mais rápido comparado com Python, Perl, PHP e 
Ruby.
4.3.1.1 Aplicativos e frameworks
WSAPI - uma API que abstrai o servidor web para aplicações Lua, a base de muitos 
projetos;
Xavante - um servidor web feito em Lua que oferece uma interface WSAPI;
Orbit(br) - um framework MVC para Lua, baseado em WSAPI;
Sputnik - uma Wiki/CMS em Lua baseada em WSAPI.
4.3.1.2 Ferramentas de desenvolvimento
LuaDoc - uma ferramenta geradora de documentação para código fonte Lua;
LuaEclipse - uma IDe baseada em Eclipse para Lua;
LuaProfiler - um medidor de tempos de execução para Lua;
LuaRocks - um sistema de distribuição e gerenciamento de módulos Lua. Utilizado 
pela maioria dos projetos aqui apresentados;
RemDebug - um depurador remoto para Lua;
Shake - uma máquina de testes simples e transparente para Lua.
4.3.1.3 Outros projetos
CGILua - permite a criação de páginas utilizando LuaPages e LuaScripts, baseado em 
WSAPI (mas não mais mantido, agora aconselha-se usar Orbit, Sputnik ou WSAPI ao 
invés de CGILua);
LuaExpat - um parser SAX para XML baseado na biblioteca Expat;
LuaLogging - uma API para logging feita em Lua;
LuaSQL - uma interface simples de Lua para vários bancos de dados;
LuaZip - uma biblioteca para ler arquivos zip;
MD5/DES56 - facilidades para uso de MD5 e encriptação DES56 em Lua.
5. CONCLUSÃO
Após o termino deste trabalho, conclui-se que a linguagem de programação Lua, 
apesar de muitos ainda não conhecer, é uma linguagem muito vantajosa quando 
se trata de uma linguagem de scripts, de extensão. Principalmente na área de 
jogos, onde ela está tendo um maior destaque (embora seja usada para todo 
tipo de aplicação). Pois é pequena (leve), rápida, dinâmica, muito poderosa.
6. REFERÊNCIAS BIBLIOGRÁFICAS
“Publique!” Site desenvolvido em Lua, Disponível em http://www.fabricadigital.com.br 
Acessado em 20/03/2011.
Günter Heinrich Herweg Filho, “TV Digital, Lua introdução” Disponível em 
http://imasters.com.br Acessado em 20/03/2011.
“Kepler Project”, Comunidade de desenvolvedores de sites usando Lua, Disponível em 
http://keplerproject.org Acessado em 26/03/2011.
Site oficial da linguagem de programação Lua, Disponível em http://www.lua.org Acessado 
em 20/03/2011.
Leonardo Godinho da Cunha, “Modelos de Concorrência e Sandboxes Aplicados a Servidores 
HTTP em Lua”, Disponível em http://www.maxwell.lambda.ele.puc-rio.br Acessado 
em 26/03/2011.
“Linguagem de Programação Lua”, Disponível em http://www.oficinadanet.com.br Acessado 
em 20/03/2011.
“Ficha da Linguagem de Programação Lua”, Disponível em http://www.htmlstaff.org 
Acessado em 20/03/2011.
“As Facilidades da Programação Lua”, Disponível em http://www.portaldaprogramacao.com 
Acessado em 26/03/2011.
Adriano Pecenin, “Linguagem de Programação Lua”, Disponível em 
http://quatroliberdades.blogspot.com Acessado em 26/03/2011
“Linguagem de Programação Lua”, Disponível em http://www.gamedev.com.br Acessado em 
26/03/2011.
 
Linguagem de 
Programação LUA
Karoline Reinert
 
História
 A única linguagem brasileira;
 Criada em 1993, na PUC-Rio;
 Autores: - Roberto Ierusalimschy,
 - Luiz Henrique de Figueiredo,
 - Waldemar Celes
 Desenvolvedores na TecGraf;
 
História
 Atender a Petrobras;
 Devido a eficiência, passou a ser usada 
por outros ramos:
 Desenvolvimentos de jogos;
 Controle de robôs;
 Processamento de textos;
 Intercomunicação de base de dados em sites 
dinâmicos;
 Entre outros.
 
A linguagem
 Inicialmente desenvolvida para ser estendida;
 Linguagem de scripts auto-suficiente;
 Faz parte do desenvolvimento de várias 
aplicações, mantendo sempre suas 
características e sendo facilmente extensível.
 
A linguagem
 Usada em diversos países:
 EUA;
 Japão;
 Dinamarca;
 Alemanha;
 Rússia;
 Itália;
 Entre outros.
 
A linguagem
 Sua biblioteca foi programada C/C++;
 Semelhante a Python, Ruby e Icon;
 Pode ser rodada em qualquer plataforma;
 Estendida de qualquer linguagem de 
programação.
 
Vantagens
 Rápida;
 Portátil;
 Pequena (Leve);
 Poderosa e Simples;
 Livre;
 
Importância Global
 Participação na HOPL III, em 2007;
 3ª Conferência sobre a História das 
Linguagens de Programação;
 Acontece a cada 15 anos;
 Poucas linguagens são escolhidas;
 Importante reconhecimento do impacto 
mundial.
 
Desvantagens
 Mais demorado que C;
 Vulnerabilidade, programação insegura 
(TV Digital).
 
Aplicações (Geral)
 “Ginga NCL” – Padrão brasileiro para TV Digital;
 “Wireshark” – Analisador de protocolos;
 “Snort” – Detecção de “intrusos” e proteção do sistema;
 “Adobe Lightroom” – Gerenciador e organizador de 
imagens;
 “nmap” – Rastreador de redes para segurança;
 “Olivetty” – Firmware para impressoras;
 “Omnitronix” – Monitoramento remoto;
 “RealTimeLogic” – Servidores Web;
 “Publique!” – Gerenciador de conteúdo para web;
 
Importantes Aplicações
 Hands: uso no desenvolvimento de navegadores de 
conteúdo para micros de bolso;
 Incor (Instituto do Coração em São Paulo): utilizada no 
servidor do sistema que monitora pacientes na UTI via 
Web;
 CPC 4400: placa de switch para rede Ethernet, a linguagem 
foi usada na criação de sua interface;
 Intel: empregada na ferramenta interna para layout de chips 
(processadores);
 Robô Crazy Ivan: Lua é um dos componentes do seu 
cérebro, responsável, segundo fabricantes do robô, pela 
parte lógica. Ivan ganhou o concurso de inteligência artificial 
da RoboCup 2000, concurso de robôs realizado na 
Dinamarca; 
 
Importantes Aplicações
 AXAF (Advanced X-ray Astrophysics Facility): terceiro dos 
grandes observatórios espaciais lançados pela NASA, tem 
a tarefa de simular em imagens os sinais recebidos do 
espaço, Lua é uma das linguagens utilizadas para tal;
 NASA: Lua foi à linguagem usada no controle dos níveis de 
concentração de gases perigosos na preparação para o 
lançamento de ônibus espacial.
 Petrobras: principal usuária, utilizando principalmente em 
visualizações de perfis geológicos. 
 
Aplicações em Jogos
 Foi com o “Grim
Fandango” que a Lua
se consagrou no
mundodos games;
 Empresa americana
LucasArts, em
1993.
 
 Exemplo de 
utilização:
 Em FarCry, Lua é 
usada para 
configurar o uso de 
armas, gráficos e 
sons durante o jogo, 
além do 
comportamento da 
excepcional 
inteligência artificial 
dos adversários. 
 
Aplicações WEB
 CGILua:
 É um programa escrito em C onde você embute 
trechos escritos em Lua. E o executável do 
CGILua faz toda a comunicação desse trecho Lua 
com o protocolo http da Internet. 
 O principal usuário no Brasil é a “Fábrica 
Digital”;
 Que escreveu sua ferramenta de edição Web, o 
Publique!, todo em Lua e usa a linguagem 
derivada para conectá-lo à Grande Rede;
 
Reconhecimento
 “Com a utilização de Lua, a Fábrica Digital pôde 
aumentar de forma significativa a produtividade 
da equipe de desenvolvimento e produção de 
páginas HTML. A facilidade de programação e 
os recursos de configuração da linguagem 
permitiram o desenvolvimento de produtos 
extremamente flexíveis” - disse André Carregal, 
gerente de desenvolvimento da Fábrica Digital. 
 
 
 
Conclusão
 É uma linguagem pouco conhecida;
 Vantajosa, quando se trata de uma 
linguagem de scripts, de extensão;
 Leve, rápida, dinâmica, fácil, etc.
 
Dúvidas?