Quantcast Descobrindo Lua - eLua Wiki
Locked History Attachments

Descobrindo Lua

Descobrindo Lua

Este documento não é uma apresentação completa nem oficial de Lua.

Ele se propõe apenas a facilitar a vida de quem não conhece bem Lua ainda e quer saber mais sobre essa tal linguagem tão falada.

O documento está em constante evolução e pode conter temporariamente trechos sendo editados de forma colaborativa e remota.

O que é Lua ?

Uma breve descrição de Lua pelos seus criadores: http://www.lua.org/portugues.html

O site oficial de Lua é o melhor ponto de partida para uma visão geral da linguagem, suas aplicações e o que a comunidade oferece:http://www.lua.org/

História de Lua contata pela equipe de desenvolvimento http://www.lua.org/history.html (em inglês)

Uma relação de grandes empresas e projetos que utilizam Lua: http://www.lua.org/uses.html

Uma compilação de impressões de gente famosa sobre Lua: http://www.lua.org/quotes.html

Artigos publicados pela equipe de criação de Lua: http://www.lua.org/docs.html#papers

Aspectos legais e detalhes da licença de Lua: http://www.lua.org/license.html Lua é Software Livre e de Código Aberto

Outras descrições de Lua: Wikipedia: http://en.wikipedia.org/wiki/Lua_(programming_language)


Documentação sobre Lua

Documentação Oficial produzida pela equipe de desenvolvimento de Lua:

Os documentos oficiais produzidos pela equipe de desenvolvimento Lua estão em: http://www.lua.org/docs.html

Os manuais completos das várias versões e em vários idiomas estão disponíveis on-line em http://www.lua.org/manual/

O livro Programming in Lua, de Roberto Ierusalimschy (em inglês), sobre a versão anterior (Lua 5.0) está disponível online na íntegra em http://www.lua.org/pil/.

A segunda ediçao do livro atualizada para Lua 5.1 só está disponível para a venda no exterior (~US$ 27,00 + frete)

O Reference Manual de Lua 5.1 só está disponível para venda no exterior (US$ 13,59 + frete)

É possível eventualmente comprar o livro (~R$ 50,00), o Reference Manual (~R$15,00) e o Lua Programming Gems (abaixo, ~R$ 50,00) aqui no Brasil. Checar com o Dado em dadosutter@esp.puc-rio.br.

Há versões oficiais do livro também em Alemão, Coreano e Chinês Uma tradução para Português está pronta e sendo revisada pela equipe de Lua para aprovação. Não há previsão de publicação desta versão ainda. "Lua - Conceitos Basicos e API C" http://www.keplerproject.org/docs/apostila_lua_2008.pdf

O texto "Uma Introdução à Programação em Lua", escrito pelo Roberto para o curso introdutório de Lua ministrado no JAI 2009 está disponível em http://www.lua.org/doc/jai2009.pdf

Mais informações sobre material disponível em Português: http://www.lua.org/portugues.html#sabermais

Outros livros sobre Lua e/ou relacionados:

edited by L. H. de Figueiredo, W. Celes, R. Ierusalimschy Lua.org December 2008 ISBN 978-85-903798-4-3

by Paul Emmeric Apress, July 2009 ISBN 1430223715.

by Miki Shimizu (in Japanese) Softbank Creative, December 2008 ISBN 4777514137.

by James Whitehead II, Bryan McLemore, and Matthew Orlando Wiley, May 2008 ISBN 0470229810.

by Yutaka Ueno (in Japanese) Softbank Creative, December 2007 ISBN 4797342722.

by Kurt Jung and Aaron Brow Wrox, February 2007, ISBN 0470069171.

by Paul Schuytema and Mark Manyen, Charles River Media August 2005 ISBN 1584504048

Mat BucklandISBN-10: 1556220782 ISBN-13: 978-1556220784

Paul Schuytema ISBN: 8522106150 ISBN-13: 9788522106158

by Makoto Hamanaka (in Japanese). Softbank Creative, September 2008 ISBN 4797348550.


Documentação mantida pela comunidade de usuários e desenvolvedores Lua:

Tutoriais em Português:

Blog versão_digital(): http://versaodigital.blogspot.com/

  • Por Bernardo Loureiro, Cid Boechat, Leandro Mello e Luiz Eduardo. (Obrigado !)

Tutoriais em Inglês: do LuaUsers: http://lua-users.org/wiki/LuaTutorial

LuaUsers:

  • Portal, em inglês, com excelente documentação mantida pela comunidade Lua.

Site: http://lua-users.org/ Wiki: http://lua-users.org/wiki/

LuaForge:

  • Portal e Repositório de projetos Open Source em Lua, em inglês.

    Segue o estilo do SourceForge mas apenas com projetos em Lua.

Site: http://luaforge.net/

LuaFAQs: Uma relação interessante e completa de perguntas e respostas sobre Lua, em inglês. Site: http://www.batbytes.com/luafaq/ Site: http://lua-users.org/wiki/LuaFaq


Listas de Discussão Lista Lua BR: Lista de discussão de usuários de Lua em Português.

Os criadores da linguagem participam ativamente da lista.

Site:

http://groups.google.com/group/lua-br Lua List: Lista oficial de discussão de usuários de Lua.

Em inglês.

Site:

http://www.lua.org/lua-l.html


Eventos de Lua
Lua Workshop 2005: San Diego, CA, USA

Patrocinado pela

Adobe Inc. Site:

http://www.lua.org/wshop05.html Lua Workshop 2006: Venlo, Holanda

Patrocinado pela

Océ Site:

http://www.lua.org/wshop06.html Lua no History of Programing Languages III - 2007: San Diego, CA, USA

Site:

http://www.universia.com.br/noticia/materia_dentrodocampus.jsp?not=37561 HOPL III -

http://research.ihost.com/hopl/HOPL-III.html Lua Workshop 2008: Washington, DC, USA

Site:

http://www.lua.org/wshop08.html Lua Workshop 2009: Rio de Janeiro, RJ, Brasil

PUC-Rio, dias 6 e 7 de outubro, precedendo o

SBGames 2009 Os slides das palestras estão disponíveis no site oficial do evento.

Os vídeos das palestras estão disponíveis em

http://www.lua.org/wshop09.html#videos (ou procure no

Portal PUC-Rio Digitalpor Lua)

Site: http://www.lua.org/wshop09.html http://www.lua.org/wshop08.html


Baixando e Utilizando Lua
Baixando Lua:<<BR>>
Para usar Lua não é preciso compilar todo o projeto do zero. Há versões prontas para uso em várias plataformas, mantidas no projeto

Lua Binaries.

  • Clique na opção

downloads e baixe a versão correspondente à sua plataforma.

O pacote de Lua não necessita de nenhuma

instalação, bastando unzipar o pacote para um diretório qualquer à escolha.

Para Windows:

  • Baixe o .ZIP da última versão, identificada como

x86 Executables.

  • Uma sugestão simples é unzipar onde os programas são geralmente instalados, em C:/Program Files/Lua

    Veja também abaixo, a opção interessante do projeto LuaForWindows.

Para Ubuntu Linux:

  • Procurar no Synaptic Package Manager por Lua 5.1 Selecionar o pacote Lua5.1, pode ser interessante selecionar o Lua5.1-doc para ter a documentação no PC (man, etc).

Para outras distros de Linux:

  • Para distros baseadas no gerenciador de pacotes apt-get, Lua pode ser instalada através da linha de comando:

sudo apt-get install lua5.1 Para Macintosh: http://lua.darwinports.com/

  • Há ainda inúmeras outras versões de binários executáveis, para o iPhone, para Android, para Sony Play Station e muitas outras plataformas.


Ambientes de desenvolvimento para Lua

  • O desenvolvimento em Lua se faz muito bem apenas com um editor de texto. Pra quem prefere, algumas ferramentas e ambientes gráficos de desenvolvimento estão disponíveis.

Dicas de como montar um bom e completo ambiente de desenvolvimento para Lua em Windows, por Marco Tulio: http://ecodex.wordpress.com/2010/07/27/ambiente-para-desenvolvimento-com-lua/#comment-2

  • ## documentar dicas da wiki EN

http://lua-users.org/wiki/LuaAddons Integrated Development Environments (IDEs):

  • ## Documentar.................

LuaForWindows:

  • Eclipse:

Eclipse + LuaEclipse Em Linux http://luaeclipse.luaforge.net/manual.html#installation Editores de texto com suporte a Lua: http://lua-users.org/wiki/LuaEditorSupport


Bibliotecas e Frameworks para desenvolvimento em Lua

LuaRocks: LuaRocks is a deployment and management system for Lua modules.

  • LuaRocks allows you to install Lua modules as self-contained packages called "rocks", which contain also version dependency information. This information is used both at install time, so that when one rock is requested all rocks it depends on are also installed, and at run time, so that when a module is required, the correct version is loaded.

    LuaRocks supports both local and remote rocks repositories. You can download and install LuaRocks on Unix and Windows.

    LuaRocks is free software and uses the same license as Lua 5.1.

Site: http://luarocks.org e http://luarocks.org/br Rocks: http://luarocks.luaforge.net/rocks/ Kepler:<<BR>> Kepler é uma comunidade de desenvolvedores de software livre usando

Luacomo uma opção viável de desenvolvimento de aplicações web. Kepler foi originalmente criado pela Fábrica Digital e Puc-Rio em 2004 mas já recebeu muitas

contribuiçõesdesde então. Inicialmente Kepler era distribuído como uma plataforma, mas com o tempo passou a ser uma coleção de diferentes projetos utilizando

LuaRockspara a instalação dos componentes e tendo vários deles baseados no

WSAPIcomo API do servidor web.

Sites: http://www.keplerproject.org/e

http://www.keplerproject.org/br eLua - Embedded Lua:

  • Nosso Framework de desenvolvimento Lua para o mundo embedded. O projeto oferece Lua para diversas plataformas e arquiteturas diferentes de microcontroladores. eLua roda em "bare metal", não dependendo de nenhum sistema operacional "por baixo" para ser utilizada.

Sites:http://www.eluaproject.nete

[[|http://wiki.eluaproject.net]] GINGA - Lua na TV Digital brasileira:
Framework para desenvolvimento de aplicações para TV Digital

  • Com dois paradigmas de programação, um declarativo em Java e um procedural em NCL, linguagem nativa de Ginga que é básicamente Lua.

Site:http://www.ginga.org.br/

KIPP - Kepler for Cisco IP Phones:<<BR>>
Nosso Framework de desenvolvimento de aplicações para Telefonia IP em redes Cisco.

  • KIPP = Kepler for IP Phones O KIPP foi desenvolvido por nossa equipe no Led Lab, na PUC-Rio (

dadosutter@esp.puc-rio.br )

IUP - Portable Lua Interface:<<BR>> Biblioteca para desenvolvimento de aplicações Desktop em Lua.

  • Implementa objetos de interface com o usuário comuns, como janelas, menus, botões, checkboxes etc......

Site: http://www.tecgraf.puc-rio.br/iup (### Documentar lgob, Lua-GTK, QtLua,... Talvez uma seção só pra UIs .....) wxLua - wxWidgets for Lua;

  • wxLua is a set of bindings to the C++

wxWidgetscross-platformGUIlibrary for the

Luaprogramming language. You can write complex, graphical, interactive programs with

wxLuato develop and deliver your software with the programming ease of an interpreted language like Lua. Nearly all of the functionality of wxWidgets is exposed to Lua, meaning that your programs can have windows, dialogs, menus, toolbars, controls, image loading and saving, drawing, sockets, streams, printing, clipboard access...

Site:http://wxlua.sourceforge.net/ LHF Tools:

  • Bibliotecas do

Luiz Henrique Figueiredo, membro da Equipe de Desenvolvimento de Lua.

Site: http://www.tecgraf.puc-rio.br/~lhf/ftp/lua LuaGravity:

  • LuaGravity is a reactive language that implements the synchronous approach for concurrency. It is roughly based on Esterel and FrTime, two synchronous reactive languages, the former having an imperative style, the latter being functional.

LuaGravity is implemented as a set of runtime extensions to the Lua language.

Site: http://code.google.com/p/luagravity/ PLua - Lua no PalmOS:

  • Lua for PalmOS Limitado à Lua 5.0. O projeto não é de código aberto e foi interrompido por causa do final do PalmOS. Mas a última versão é funcional e bastante poderosa para aplicações em PalmOS.

Lista: http://tech.groups.yahoo.com/group/plua/ Love2D:
Framework para desenvolvimento de jogos 2D

Site: http://love2d.org

Wiki: http://love2d.org/wiki/Main_Page


Doc em Português:
http://love2d.org/wiki/love_(Português)(por Marcio F. Minicz)

pbLua - Lua no Lego:

  • Lua for Lego NXT

Site: http://www.hempeldesigngroup.com/lego/pbLua/ FSUIPC com plugin Lua - Lua for Microsoft Flight Simulator:

  • Lua para o Microsoft Flight Simulator

Infos:http://forums.simflight.com/viewtopic.php?f=54&t=73176 LFSLua - Lua in Live for Speed: Infos:http://www.lfsforum.net/showthread.php?t=19832 Outras bibliotecas e ferramentas interessantes:

Tecgraf tools:http://www.tecgraf.puc-rio.br/~lhf/ftp/lua/


Produtos Interessantes em Lua

  • Uma relação de projetos e produtos que usam Lua, conforme mencionado acima, está em

http://www.lua.org/uses.html

  • Podemos destacar ainda alguns projetos interessantes para usos gerais:

Sputnik:<<BR>> Sputnik é uma Wiki escrita em Lua.

  • É também uma plataforma para a construçao de um vasto número de aplicações web semelhantes às Wikis. Sputnik se baseia nas potencialidades de Lua como linguagem de extensão.

Site:http://sputnik.freewisdom.org/en/Sputnik

LuaEclipse:

Online Lua Demo:

  • Uma web aplication onde se pode programar, visualizar programas já feitos e executar programas em Lua, sem a necessidade de instalar nada em sua máquina.

Site: http://www.lua.org/cgi-bin/demo Games: (fonte www.lua.org)

Outras Aplicações:

  • Celestia uses Lua to expand its capabilities without recompiling its source code

  • Multimedia Fusion Developer 2 has a Lua extension that allows games and applications created with it to run Lua scripts.

  • Adobe Photoshop Lightroom uses Lua for its user interface

  • Lua Server Pages is a fast server side scripting language(web) suitable for CPU and/or memory constrained systems.

  • The window manager Ion uses Lua for customization and extensibility.

  • The packet sniffer Wireshark uses Lua for scripting and prototyping.

  • The Aegisub subtitles manipulation program uses Lua in its automation module, to generate advanced effects, such as karaoke.

  • Intellipool Network Monitor uses Lua for customization and extensibility.

  • Lua Player is a port designed to run on Sony Computer Entertainment's PlayStation Portable to allow entry-level programming.

  • CMUcam uses Lua for customization and extensibility as part of the CMUcam 3 scripter

  • lighttpd uses Lua for its Cache Meta Language, a sophisticated way to describe caching behavior.

  • The popular network mapping program nmap uses Lua as the basis for its scripting language, called nse.

  • The version control system Monotone uses Lua for scripting hooks.

  • MySQL Proxy provides Lua scripting hooks.

  • eyeon's Fusion compositor uses embedded Lua for internal and external scripts and also plugin prototyping.

  • The Snort Intrusion Detection/Prevention System version 3.0 uses Lua for its command line interpreter.

  • New versions of SciTE allow Lua to be used to provide additional features.

  • Version 2.01 of the profile management software for Logitech's G15 gaming keyboard uses Lua as its scripting language.

  • Electro a 3D engine developed by EVL Electronic Visualization Labs (from the University of Illinois at Chicago) is a visualization and game development environment that uses Lua as its core development language ([10]).

  • A new extended version of the TeX typesetting system using Lua as its embedded scripting language is currently under development and reached Beta status in August 2007 (LuaTeX).

  • FEMM, Finite Element Method Magnetics, an application that solves magnetic and electrostatic problems.

  • The Squeezebox Controller, a device controller to manipulate and control the Squeezebox (network music player) product line from Slim Devices/Logitech uses Lua to implement its Graphical user interface.

  • Anime Studio Pro by e frontier (formerly Moho) is a complete vector animation program featuring bones and inverse kinematics and which allows users to use Lua scripting to create and control new functions and effects.

  • Nanoki is a small, full featured wiki engine implemented in Lua

  • Publique é um gerenciador de conteúdo brasileiro escrito em Lua


Outros Links Relacionados
Ranking atual de Lua no TIOBE:<<BR>>
O índice da comunidade de programação TIOBE representa uma indicação de popularidade das linguagens atuais de programação.

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html


Compilando e Modificando Lua

  • Se você vai baixar o fonte do projeto para compilação e eventuais alterações, a página para downloads está em

http://www.lua.org/download.html

  • Temos um GDoc (não muito atualizado) sobre a

compilação de Lua em Ubuntue instruções detalhadas para todos os ambientes podem ser encontradas no arquivo INSTALL do pacote Lua.

  • O build de Lua é bem simples, baseado em make.