• Nenhum resultado encontrado

fori=1,Ndoa[i]=0end Records --a.x´eomesmoquea["x"] locala.x="hello&#34

N/A
N/A
Protected

Academic year: 2022

Share "fori=1,Ndoa[i]=0end Records --a.x´eomesmoquea["x"] locala.x="hello&#34"

Copied!
30
0
0

Texto

(1)

A L IN G U A G E M L U A

RobertoIerusalimschy,PUC-Rio

Lua t he la n gu

a g e

1

(2)

R O T E IR O D A A P R E S E N T A C ¸ ˜ A O

Oque´e?

Ondeest´a?

Porqueusar?

Como´e?

Comofoi?

2

(3)

O Q U E ´ E L U A

•Maisumalinguagemdescript

n˜aototalmentediferentedePerl,Python,Tcl

•UmalinguagemdeDescric¸˜aodeDados

n˜aototalmentediferentedeXML

•Caracter´ısticasb´asicas:simples,por

t´atil,

eficiente,pequena

• ´Unicalinguagemdeprogramac¸˜aodesenvolvidaforadoprimeiromundoater aceitac¸˜aomundial

centenasdemilharesdeusu´arios

usadaporIntel,Conectiva,Microsoft,LucasArts,Petrobras,etc.

3

(4)

O N D E E S T ´ A

Nichoemjogos

LucasArts:GrimFandango,EscapeFromMonkeyIsland

BioWare:Baldur’sGate,MDK2

Microsoftgames:Mythica

freeware:Angband(RPG)

OutrosUsos

Conectiva:APT-RPM(padr˜aoparadistribuic¸˜oesRPM)

Intel:ferramentainternaparalayoutdechips

tomsrtbt:“ThemostLinuxononefloppydisk”

...

4

(5)

O N D E E S T ´ A

5

(6)

P O R Q U E L U A

Pequena

interpretadorcompletomaisbibliotecasb´asicastem140K

Por

t´atil

escritaemANSIC,compilaomesmoc´odigoemtodasasplataformas

Unix,Windows(incluindoCE),PlaystationII,OS/390,XBox,BeOS,DOS,

PalmOS,EPOC,sistemasembutidos,etc.

Eficiente

verwww.bagley.org/˜doug/shootout

6

(7)

P O R Q U E L U A . . .

•Acopl´avel

biblioteca,comAPIbemdefinidaesimplesparaC

bibliotecasb´asicasimplementadasemCatrav´esdaAPI

acopladaadiversaslinguagens:C/C++,Java,Fortran,Ruby,OPL(lin-

guagemdoEPOC),etc.

•Simpleseflex´ıvel

linguagempequena,compoucos(maspoderosos)mecanismos.

poucoscasosespeciais

7

(8)

C O M O ´ E L U A

Linguagemcomcaraconvencional

Gerˆenciaautom´aticademem´oria

tipagemdinˆamica

functionfact(n)

ifn==0then

return1

else

returnn*fact(n-1)

end

end

8

(9)

T A B E L A S

• ´UnicaestruturadedadosemLua

•Arraysassociativos

podemserindexadosporqualquervalor(n˜aoapenasstrings),earmazenar

qualquervalor

•Permiteimplementac¸˜aoeficienteesimplesdamaioriadasestruturasdedadosusadasnormalmente

arrays,records,conjuntos,matrizesesparsas,tabelas(!),etc.

•Implementac¸˜aoaltamenteotimizada

9

(10)

E S T R U T U R A S D E D A D O S

Arrays

locala={}

fori=1,Ndoa[i]=0end

Records

--a.x´eomesmoquea["x"]

locala.x="hello"

print(a.x)

Conjuntos:valorescomochaves

a[x]=true--inserex

a[x]=nil--removex

ifa[x]then...--testapertinˆencia

10

(11)

C O N S T R U T O R E S

•Express˜oesparacriareinicializartabelas

•EstiloEstrutura:

p={x=10,y=20}

print(p.x)-->10

•EstiloLista/Array:

p={"seg","ter","qua","qui","sex","sab","dom"}

print(p[3])-->qua

•EstiloMisto:

p={10,20,30;n=3}

11

(12)

D E S C R IC ¸ ˜ A O D E D A D O S

Construtoress˜aoumformatoadequadoparadescric¸˜aodedados

inspiradoemBiBTeX

Paralerumarquivodedados,bastaexecut´a-lo

Opc¸˜aoaXML

criadopornecessidade,bemantesdeXML(1993)

parsermaissimples,e(diferentementedeoutraslinguagens)bastanteefi-

ciente

temosdegrac¸aoutrasfacilidades,comocondicionais,var

i´av

eis(referˆencias

internas),coment´arios,etc.

12

(13)

<POEM>

<TITLE>LinesWritteninEarlySpring</TITLE>

<AUTHOR>

<FIRSTNAME>William</FIRSTNAME>

<LASTNAME>Wordsworth</LASTNAME>

</AUTHOR>

<STANZA>

<LINEN="1">Iheardathousandblendednotes,</LINE>

<LINEN="2">WhileingroveIsatereclined,</LINE>

<LINEN="3">Inthatsweetmoodwhenpleasantthoughts</LINE>

<LINEN="4">Bringsadthoughtstothemind.</LINE>

</STANZA>

<STANZA>

<LINEN="5">Toherfairworksdidnaturelink</LINE>

<LINEN="6">Thehumansoulthatthroughmeran;</LINE>

<LINEN="7">Andmuchitgriev’dmemyhearttothink</LINE>

<LINEN="8">Whatmanhasmadeofman.</LINE>

</STANZA>

</POEM>

13

(14)

POEM{

TITLE="LinesWritteninEarlySpring",

AUTHOR={firstname="William",lastname="Wordsworth"};

STANZA{

LINE{N=1;"Iheardathousandblendednotes,"},

LINE{N=2;"WhileingroveIsatereclined,"},

LINE{N=3;"Inthatsweetmoodwhenpleasantthoughts"},

LINE{N=4;"Bringsadthoughtstothemind."},},

STANZA{

LINE{N=5;"Toherfairworksdidnaturelink"},

LINE{N=6;"Thehumansoulthatthroughmeran;"},

LINE{N=7;"Andmuchitgriev’dmemyhearttothink"},

LINE{N=8;"Whatmanhasmadeofman."},}}

14

(15)

E D A ´ I ?

•Podemosfazeromesmoemv´ariasoutraslinguagens

•Masarquivosdedadospodemsermuitograndesquandovistoscomoprogra-

mas...

•Paraumarquivocom100K,Luaotrataem1.2seg,Perlem5.3seg,ePython

em16.8seg.

•Paraumarquivocom1M,Luaotrataem12seg,PerlePythonderrubama

m´aquina(“trash”).

15

(16)

F A C IL ID A D E S F U N C IO N A IS

Luaintegrapoderosasfacilidadesfuncionais

masdentrodeumalinguagemconvencional;n˜aoforc¸aoprogramadora

outroparadigma

Func¸˜oesdeprimeiraclasse;visiblidade

l´exica localalunos={"maria","jo˜ao","suzana"}

localnotas={maria=10,jo˜ao=6.5,suzana=8.7}

table.sort(alunos,function(a,b)

returnnotas[a]<notas[b]

end)Implementac¸˜aoeficiente

16

(17)

C O R O T IN A S

multi-threadingcooperativo

•Bemmaisleve(emaissimples)quemulti-threading“real”

•Implementac¸˜aototalmentepor

t´atil!

17

(18)

C O M O F O I : O I N ´ IC IO

Motivac¸˜aoindustrialdupla

DentrodeumaparceriacomaPetrobras

PGM(ProgramaGr´aficoMestre)necessitavadeumalinguagemde“descric¸˜ao

dedados”

XMLseriaumaboaopc¸˜ao,masissoera1993...

ED:programadeentradadedados,

j´atinhaumalinguagemde“descric¸˜ao”,

masprecisavadefacilidadesoperativas

ProblemaaindarecorrenteemXML

18

(19)

P R O G R A M A G R ´ A FI C O M E S T R E

19

(20)

L U A V E R S ˜ A O 1 .0

BatizadadeVers˜ao1.0aposteriori

Thesimplestthingthatcouldpossiblywork

Implementac¸˜ao“padr˜ao”,comyacc/lex

Sucessodep´ublico(noTecgraf)

usadacomsucessonoPGMenoED,logousadaemoutrosprojetos

tamb´em

20

(21)

L U A V E R S ˜ A O 1 .1 — 1 9 9 4

•Maiseficiente

•Primeiradistribuic¸˜aop´ublicaviaInternet

ftp

•Licenc¸alivreparausoacadˆemico,restritivaparausocomercial

C´odigoaberto,masn˜aolivre

problemascomaconcorrˆencia(Tcl,Perl,...)

21

(22)

L U A 2

Lua2.1(Fevereiro1995)—2.5(Novembro1996)

Primeiravers˜aocomlicenc¸alivre(“freesoftware”)

licenc¸apr´opria,posteriormentereconhecidapelaFSFeOS

fallbacks:mecanismodeextens˜ao

suporteparaprogramac¸˜aoOO

Pattern-matching

viabiblioteca

CGILua(HTMLLua):primeiravers˜aoentre1994–1995

22

(23)

E X P O S IC ¸ ˜ A O I N T E R N A C IO N A L

•Noin´ıciode1995,criamosaprimeirahomepagedeLua

•Trocademensagenscomv´ariosusu´ariosemv´ariasinstituic¸˜oes

•Emjunhode1996,saiartigonaSoftware:Practice&Experience

•Emdezembrode1996,artigonaDr.Dobb’s

•Noin´ıciode1997,criamosalistadediscuss˜ao

•Emmeadosde1997,prˆemioCOMPAQ

23

(24)

L U A E M J O G O S

BretMogilefsky<[email protected]>

"’[email protected].br’"<[email protected]r>LUArocks!Question,too.

Thu,9Jan199713:21:41-0800

there...

readingtheDr.DobbsarticleonLuaIwasveryeagertocheckit

andsofarithasexceededmyexpectationsineveryway!It’sandsimplicityastoundme.Congratulationsondevelopingsuchwell-thoughtoutlanguage.

background:IamworkingonanadventuregamefortheLucasArtsCo.,andIwanttotryreplacingourolderadventuregame

language,SCUMM,withLua.

24

(25)

L U A 3

•Lua3.0(Julho1997)—Lua3.2(Julho1999)

•Em1998,surgiuologodeLua:

Lua

the langu

ag e

•Tamb´emem1998,CameronLaird(quemantinhaumacolunasobrelinguagens

descriptnaSunWorld)escreveusobreLua:

Itsuserbaseisalsosmall;theremightbeonlyafewtensofthousands

ofLuaprogrammersintheworld.They’reveryfondofthislanguage,

though,andtheimminentexplosionofubiquitousembeddedprocessing

(computersinyourcar,inyourplumbing,andinyourkitchenappliances)

canonlyworkinfavorofLua.

•Paran´os,essa“pequena”basedeusu´arioseramuitomaiordoqueima-

gin´avamos

25

(26)

L U A 4

Lua4.0(Novembro2000–Marc¸o2003)

C´odigoem“cleanC”(intersec¸˜aoentreCeC++)

Finalde2000,s´eriedereportagensnoBrasil

Emmarc¸ode2001,novoenderec¸oemwww.lua.org

cortesiadeumusu´ario

Poucodepois,sitedosusu´ariosdeLua(lua-users.org)

wiki,gerenciadosemnossaparticipac¸˜ao

Ap´osdoisanos,um´unicorelease4.0.1corrigindobugs

menosdedezbugs

26

(27)

L U A 5

•Lanc¸adaemmarc¸o2003

•Corotinas,visibilidade

l´exica,

melhoresfacilidadesparam´odulos

•Implementac¸˜aocomv´ariasnovidades:

m´aquinavirtualviaregistradores

novoalgoritmoparatabelas

27

(28)

L U A A T U A L M E N T E

Sitecomquase1000visitasdi´arias

vindasdemaisde80pa´ıses

Listacommaisde400participantes

15%doBrasil

cortesiadaConectiva

m´ediademaisdedezmensagenspordia

Usadaemcentenas(milhares?)deprodutos

Manualtraduzidoparacoreanoejaponˆes

28

(29)

L U A A T U A L M E N T E

•Quasedezanosdeevoluc¸˜ao

•Compromissosfortescomestabilidade

Lua4.0ficoumaisdedoisanossemalterac¸˜oes

•Requisitosoriginaismantidos

simplicidade

portabilidade

extensibilidade

pequenotamanho

eficiˆencia

29

(30)

Lua the la ng u

a g e

www .lua.org

30

Referências

Documentos relacionados

[r]

FABRICADOS COM TUBOS DE AÇO CARBONO DE NO MÍNIMO 2&#34; X 2 MM, 1&#34; X 1,50 MM; 3&#34; 1/2 X 2 MM, 3/4 X 1,50 MM, ROLAMENTO DUPLOS, PINTURA A PÓ ELETROSTÁTICA, SOLDA MIG,

a) Fotocópia da Carteira de Identidade - RG, acompanhada do original. b) Fotocópia do Título de Eleitor com o comprovante de votação na última eleição, acompanhada do

Montados de fábrica para as chaves de torque da nova Série W (Edição X): acrescente um &#34;P&#34; ao sufixo &#34;X&#34; na nomenclatura da ferramenta, i.e.: W2000PX. Encomende

Como resultado, no espectro de função resposta do detector a uma fonte monoenergética com energia na faixa utilizada em raios X para diagnóstico, aparecerá um

Aprova as (IR 60 – 10) Instruções Reguladoras para a Organização e o Funcionamento do Programa de Atualização dos Diplomados pela Escola de Comando e Estado-Maior do

[r]

9As tarifas deverão ser diferenciadas segundo as categorias de uso e faixas de consumo, assegurando-se o subsídio dos clientes de maior para os de menor poder aquisitivo, assim