• Nenhum resultado encontrado

Descobrindo Lua. Sérgio Queiroz de Medeiros. Campus Party LabLua. Sérgio Queiroz de Medeiros Descobrindo Lua 1

N/A
N/A
Protected

Academic year: 2021

Share "Descobrindo Lua. Sérgio Queiroz de Medeiros. Campus Party LabLua. Sérgio Queiroz de Medeiros Descobrindo Lua 1"

Copied!
59
0
0

Texto

(1)

Descobrindo Lua

S´ergio Queiroz de Medeiros

smedeiros@inf.puc-rio.br LabLua

Campus Party 2009

(2)

Significado de LUA

I Leave Us Alone

I Little Useful Application

I Lua is Universally Applicable

I Lua is Ubiquitously ANSI (C)

I Lua is Undoubtlessly an Acronym

I Lua, the Undefined Acronym

I Lua ´e Um Acrˆonimo

(3)

Meu nome ´

e Lua, p**rra!

Defini¸c˜oes segundo o Wikcion´ario:

I (Astronomia) sat´elite natural da Terra, que se destaca no c´eu durante a noite

I (Astronomia) astro que ´e sat´elite natural de algum planeta

I (Ictiologia) peixe encontrado na costa portuguesa de formas

arredondadas e aparentemente sem barbatana traseira

(4)

Lua

I Uma linguagem de script:

I Robusta;

I R´apida;

I Port´avel;

I Linguagem de extens˜ao;

I Pequena;

I Livre;

(5)

Lua

I Alguma semelhan¸ca com outras linguagens de script (Perl,

Python, Tcl);

I Linguagem de descri¸c˜ao de dados (anterior a XML);

I Linguagem de extens˜ao extens´ıvel:

I Enfatiza o desenvolvimento em m´utiplas linguagens

(6)

Importˆ

ancia

I Unica linguagem criada em um pa´ıs em desenvolvimento a´

ganhar proje¸c˜ao mundial;

I De outra forma: ´unica linguagem relevante que n˜ao foi

desenvolvida no eixo EUA/Europa/Jap˜ao.

I Jap˜ao == Ruby

(7)

Usos de Lua

I Especialmente utilizada em jogos;

I Uma pesquisa informal feita em 2003 pelo sitegamedev.net

apontou Lua como a linguagem de script mais utilizada para jogos;

(8)

Lua em Jogos

I ”It is easy to see why Lua is rapidly becoming the de facto

standard for game scripting.- Artificial Intelligence for Games, Morgan Kaufmann,2006;

I ”It’s quite possible that game developers will look back at the 2000s as the decade of Lua- Game Programming Gems 5, Charles River Media, 2005.

(9)

Jogos que Usam Lua

(10)

Jogos que Usam Lua

(11)

Jogos que Usam Lua

(12)

Jogos que Usam Lua

(13)

Mais Aplica¸c˜

oes

I 63% of the main Lightroom-team authored code is

Lua.

Troy Gaul (Adobe Systems)

(14)

Mais Aplica¸c˜

oes

(15)

Mais aplica¸c˜

oes

I Impressoras Olivetti;

I P´os-produ¸c˜ao de filmes;

I Monitoramento remoto;

I Desenvolvimento Web;

(16)

Raz˜

oes para usar Lua

I Portabilidade I Simplicidade I Pequeno tamanho I ”Acoplabilidade” I Eficiˆencia

(17)

Portabilidade

I Lua roda em praticamente todas as plataformas conhecidas:

I Unix I Windows I Windows CE I Symbian I Palm I PS2

I Escrita em ANSI C ∩ ANSI C++

(18)

Simplicidade

I Somente um tipo num´erio (geralmente double);

I Um ´unico tipo de estruturas de dados:

I Tabelas

I Mecanismos ao inv´es de pol´ıticas

I e.g., orienta¸c˜ao a objetos;

(19)

Pequeno Tamanho

I Menos de 200k;

I Distribui¸c˜ao completa cabe (com folgas) em um disquete;

I N´ucleo + Bibliotecas

I N´ucleo com menos de 100k;

I Bibliotecas independentes (podem ser removidas).

(20)

Acoplabilidade

I Lua ´e uma biblioteca C;

I API simples e bem definida:

I modelo de pilha I Biderecional; I Acoplada em: I C/C++ I Java I Fortran, I C# I Perl I Ruby I Ada I etc

(21)

Eficiˆ

encia

I Benchmarks independentes mostram Lua como uma das mais

r´apidas linguagems de script interpretadas com tipagem dinˆamica;

I Lua n˜ao ´e r´apida somente em benchmarks.

(22)

Lua x Ruby

(23)

Lua x Perl

(24)

Lua x PHP

(25)

Lua x Python

(26)

LuaJIT

I Compilador Just In Time para Lua;

(27)

Hist´

oria de Lua

(28)

Como tudo come¸cou

I Lua nasceu em 1993, dentro do Tecgraf, na PUC-Rio;

I Criadores:

I Roberto Ierusalimschy;

I Luiz Henrique de Fiqueiredo;

I Waldemar Celes.

(29)

O Ambiente

I Tecgraf foi criado em 1987;

I Laborat´orio de pesquisa e desenvolvimento;

I Parceria com a PETROBRAS;

I Pol´ıtica de reserva de mercado para hardware e software;

I Vigorou de 1977 a 1992;

I Precisa de alguma coisa? Fa¸ca!

(30)

Predecessoras

I DEL - Linguagem para Especifica¸c˜ao de Di´alogos

I Util para a descri¸c˜´ ao de dados;

I Falta de estruturas de controle;

I Pouco poder de express˜ao.

I SOL - Simple Object Language

I Linguagem para descri¸c˜ao de objetos;

I Sintaxe inspirada noBibTeX.

I Ausˆencia de mecanismos de abstra¸c˜ao mais poderosos.

(31)

DEL + SOL = ?

I DEL e SOL compartilhavam v´arios problemas;

I Achar uma solu¸c˜ao comum:

I Roberto Ierusalimschy (SOL)

I Luiz Henrique (DEL)

I Waldemar Celes (SOL)

(32)

Precisa-se de uma linguagem

I Estruturas de controle, sub-rotinas, atribui¸c˜ao;

I Capaz de descrever dados facilmente;

I Port´avel;

I Converse amigavelmente com C;

I Sintaxe f´acil.

(33)

1993

I Tcl estava dispon´ıvel;

I Scheme e Lisp tamb´em;

I Python estava nascendo;

I Vamos fazer nossa pr´opria linguagem! :-)

(34)

Adeus, SOL!

I SOL estava saindo de cena;

I um novo nome foi sugerido...

(35)

Bem-vinda, Lua!

(36)

Lua 1.0

I Chamada de 1.0 posteriormente;

I “The simplest thing that could possibly work”

I tabelas implementadas via listas!

I Implementa¸c˜ao padr˜ao:

I yacc + lex

I m´aquina de pilha

I Menos de 6000 linhas de c´odigo C.

(37)

Lua 1.0

I Expectativas: solucionar problemas com SOL e DEL

I dispon´ıvel para uso em outros projetos do Tecgraf

I Correspondeu `as expectativas:

I Programas daquela ´epoca ainda usam Lua

I Foi um grande sucesso no Tecgraf

(38)

Usando Lua adoidado

(39)

Lua 1.1

I 1994: primeira vers˜ao lan¸cada publicamente;

I V´arios usu´arios reais;

I Manual de referˆencia;

I Defini¸c˜ao e documenta¸c˜ao da API com C;

I Licen¸cas para uso comercial negociadas.

(40)

Ganhando o Mundo

I Artigo publicado em 1996 na revista Dr. Dobb’s;

I Bret Mogilefsky (LucasArts);

I 1998: lan¸camento de Grim Fandango;

Atremendous amount of the game was written in Lua

I Mesa redonda na Game Developer’s Conferece (principal

evento para desenvolvedores de jogos).

(41)

Lua rocks!

To: "’lua@icad.puc-rio.br’" <lua@icad.puc-rio.br> Subject: LUA rocks! Question, too.

Date: Thu, 9 Jan 1997 13:21:41 -0800 Hi there...

After reading the Dr. Dobbs article on Lua I was very eager to check it out, and so far it has exceeded my expectations in every way! It’s elegance and simplicity astound me. Congratulations on developing such a well-thought out language.

Some background: I am working on an adventure game for the LucasArts Entertainment Co., and I want to try replacing our older adventure game scripting language, SCUMM, with Lua.

(42)

Lua Bar

(43)

lua-l

I 1997: cria¸c˜ao da lista de discuss˜ao de Lua;

I Principal f´orum da linguagem;

I Menos de 10% dos usu´arios s˜ao do Brasil;

I Mais de 50000 mil mensagens.

(44)

Lua 5

I Vers˜ao 5.0 lan¸cada em 2003 e vers˜ao 5.1 em 2006

I Livro texto (Programming in Lua)

I Pontos chave:

I Co-rotinas

I Sistema de m´odulos

I Fun¸c˜oes anˆonimas com escopo l´exico

I M´aquina virtual de registradores

I Coleta de lixo incremental

(45)

Linhas de C´

odigo com o Tempo

(46)

Evolu¸c˜

ao

I Enfase nos requisitos originais:ˆ

I ”minimalismo pragm´atico”

I mecanismos mais gerais

I ˆenfase em fun¸c˜oes

(47)

Lua atualmente

I Site com mais de 4.000 visitas por dia

I de mais de 100 pa´ıses

I mais 14.000 downloads por mˆes

I Lista com mais de 1.700 participantes

I Compromisso com estabilidade

I Lua 4.0 ficou mais de dois anos sem altera¸c˜oes

I Lua 5.0 foi lan¸cada em mar¸co de 2003

(48)

Lua Atualmente

I Licen¸ca atual: MIT

I uso livre, n˜ao ”viral”

I Modelo de desenvolvimento centralizado

I Participa¸c˜ao da comunidade:

I lista

I patches para vers˜oes alternativas

I Wiki da comunidade: http://lua-users.org/wiki

(49)

Lua Atualmente

I LuaForge

I Servi¸co de hospedagem de projetos Lua;

I Hospeda mais de 400 projetos de mais de 1500 usu´arios;

I Alguns projetos: I LuaSocket I LuaSQL I Kepler I LuaEclipse I LuaEdit

(50)

Lua Atualmente

I LuaWorkshop:

I Encontro da comunidade Lua

I 2005: Estados Unidos;

I 2006: Holanda;

I 2008: Washinghton D.C., Estados Unidos.

(51)

Lua Atualmente

I Pesquisa envolvendo Lua

I LabLua

I Laborat´orio na PUC-Rio coordenado por Roberto Ierusalimschy

I http://www.lua.inf.puc-rio.br/

(52)

Lua Atualmente

I Fiel aos requisitos originais:

I Simplicidade;

I Portabilidade;

I Extensibilidade;

I Pequeno tamanho.

I Entre as 20 linguagens mais populares (segundo TIOBE).

(53)

Popularidade

(54)

Livros

Programming in Lua, 2006 Lua 5.1 Reference Manual, 2006

(55)

Livros

(56)

Livros

Beginning Lua Programming, 2007 Game Development With Lua, 2005

(57)

Livros

World of Warcraft, 2008 Introductory Lua Programming, 2007

(58)

Livros

Lua Programming Gems, 2008 First Lua Programming, 2008

(59)

Descobrindo mais

http://www.lua.org/

Referências

Documentos relacionados

Valores médios e desvio padrão de motilidade total (MT), motilidade progressiva (MP), velocidade angular progressiva (VAP), velocidade linear progressiva (VSL),

Com o objetivo de compreender como se efetivou a participação das educadoras - Maria Zuíla e Silva Moraes; Minerva Diaz de Sá Barreto - na criação dos diversos

É Professor da Classe de Flauta na Academia Nacional Superior de Orquestra (ANSO) e Professor de Música de Câmara na Escola Superior de Música de Lisboa

A todos nós, serenas Vinte e Quatro horas de Sobriedade, carregadas de toda a  

No caso dos blocos de constituintes de substâncias com estrutura e propriedades físico- químicas semelhantes, podem ser aplicados métodos QSAR utilizando um cenário de pior caso

(2016), selecionando genótipos de tomateiro para processamento com alto teor de zingibereno, concluíram que a seleção indireta de plantas com alto teor de zingibereno é eficiente

[r]

Faremos o cálculo do determinante pela regra de Sarrus: replicamos as duas primeiras colunas da matriz, somamos o produto dos termos da. diagonal principal e