• Nenhum resultado encontrado

Desenvolvimento de Aplicações Interativas para o Sistema Brasileiro de TV Digital (SBTVD)

N/A
N/A
Protected

Academic year: 2021

Share "Desenvolvimento de Aplicações Interativas para o Sistema Brasileiro de TV Digital (SBTVD)"

Copied!
38
0
0

Texto

(1)

os gradua¸c˜

ao em Telem´

atica

-Desenvolvimento de Aplica¸c˜

oes Interativas para o

Sistema Brasileiro de TV Digital (SBTVD)

Manoel Campos da Silva Filho

Mestre em Engenharia El´

etrica / UnB

http://manoelcampos.com

Instituto Federal de Educa¸c˜ao, Ciˆencia e Tecnologia do Tocantins (IFTO/Palmas)

(2)

Roteiro

1

Introdu¸

ao `

a Linguagem Lua

Hist´

orico

Utiliza¸c˜

ao

Caracter´ısticas

Interpretador/Compilador Lua

Plugin LuaEclipse

Vis˜

ao Geral da Linguagem

Escrevendo no Terminal

Vari´

aveis e Coment´

arios

if/else

Concatena¸

ao e Inicializa¸

ao de diversas vari´

aveis

Operadores

Operadores

Operadores

New

New

2 / 38

(3)

Introdu¸c˜

ao `

a Linguagem Lua: Hist´

orico [?] [?] [?]

Nascida em 1993 na PUC-Rio, no laborat´

orio Tecgraf

Projetada para ser simples, pequena, r´

apida, port´

avel e f´

acil

de embutir em outras aplica¸

oes

Projetada para permitir a personaliza¸

ao de aplica¸

oes em

outras linguagens

Projeto iniciado por Roberto Ierusalimschy, Waldemar Celes e

Luiz Henrique de Figueiredo

(4)

Introdu¸c˜

ao `

a Linguagem Lua: Utiliza¸c˜

ao [?] [?]

Atualmente utilizada nas mais diversas ´

areas como:

simuladores de voo

jogos

IDE’s, editores de texto

processamento de imagens

Equipamentos de rede

rob´

otica, etc

Linguagem procedural padr˜

ao do subsistema Ginga-NCL do

middleware Ginga do SBTVD

(5)

Introdu¸c˜

ao `

a Linguagem Lua: Caracter´ısticas

Linguagem de script (interpretada/dinˆ

amica) estruturada

Possui recursos que possibilitam definir um modelo para

desenvolvimento Orientado a Objetos (mas n˜

ao ´

e o objetivo

da mesma)

apida, leve, port´

avel, simples, pequena (c´

odigo e

documenta¸

ao: 214KB compactado)

Embut´ıvel

Multiplataforma

Baseada em maquina virtual

Fracamente tipada

Possui Garbage Collection (Coleta de Lixo)

OpenSource (Licen¸ca MIT)

´

(6)

Introdu¸c˜

ao `

a Linguagem Lua: Interpretador/Compilador

Interpretador

Respons´

avel por interpretar c´

odigos lua e converter para

bytecodes para ser executado pela M´

aquina Virtual Lua (cerca

de 167KB em Linux)

Compilador

Uso opcional, quando se deseja gerar um arquivo com o

bytecode Lua e assim n˜

ao distribuir o c´

odigo fonte da

aplica¸

ao (apesar de poder-se descompilar o bytecode)

(7)

Introdu¸c˜

ao `

a Linguagem Lua: Plugin LuaEclipse

Plugin para o IDE Eclipse para desenvolvimento em Lua

Incorpora a documenta¸c˜

ao (LuaDoc) dos m´

odulos padr˜

oes de

Lua

Possui auto-completar, sintaxe colorida, debugger e exibi¸

ao

de erros

(8)

Introdu¸c˜

ao `

a Linguagem Lua: Vis˜

ao Geral

As vari´

aveis n˜

ao declaradas explicitamente como locais, por

padr˜

ao s˜

ao globais

Toda passagem de parˆ

ametro ´

e por referˆ

encia

O delimitador de strings pode ser ’ (ap´

ostrofo) ou ”(aspas)

O uso de ponto-e-v´ırgula (;) ao final de cada instru¸

ao ´

e

opcional e normalmente n˜

ao utilizado por programadores Lua

Pode-se usar ponto-e-v´ırgula (;) quando deseja-se escrever

arias instru¸c˜

oes em uma mesma linha

Todos os blocos de c´

odigo envolvidos em estruturas de sele¸

ao

ou la¸

cos de repeti¸

ao sempre tem um terminador end,

independente de quantas linhas de c´

odigo tenham

(9)

Introdu¸c˜

ao `

a Linguagem Lua: Escrevendo no Terminal

odigo Fonte 1:

Hello World

1 o s . e x e c u t e (” c l e a r ”)

2

3 p r i n t(”Meu p r i m e i r o p r o g r a m a em Lua ”)

4 p r i n t(” I n i c i a n d o o d e s e n v o l v i m e n t o de a p l i c a c o e s ”)

5

6 i o . w r i t e (” Nunca e s c r e v a LUA e s i m Lua , \ n ”)

7 i o . w r i t e (” p o r q u e n i n g u e m e s c r e v e JAVA e s i m J a v a . \ n ”) 8 i o . w r i t e (”O a u t o r da l i n g u a g e m a g r a d e c e : ) \ n \ n ”)

(10)

Introdu¸c˜

ao `

a Linguagem Lua: Vari´

aveis, Tipos e

Coment´

arios

Os tipos b´

asicos da linguagem Lua s˜

ao number, string, boolean,

table, function, nil, userdata e thread.

odigo Fonte 2:

Vari´

aveis/Tipos e Coment´

arios

1 −−C o m e n t a r i o de uma l i n h a 2 3 −−[[ C o m e n t a r i o de 4 v a r i a s l i n h a s 5 −−]] 6 7 −− V a r i a v e i s l o c a i s n u m e r i c a s 8 l o c a l n1 = 10 9 l o c a l n2 = 5 . 3 10 11 −− V a r i a v e l g l o b a l s t r i n g

12 nome = ” Manoel Campos ”

13 −−A f u n c a o p r i n t p o d e r e c e b e r q u a n t o s p a r a m e t r o s d e s e j a r

14 p r i n t ” E x i b i n d o v a l o r e s de v a r i a v e i s ”

15 p r i n t ( ” n1 = ” , n1 , ” n2 = ” , n2 , ”\ n ” )

16 p r i n t ( ” nome = ” , nome )

(11)

Introdu¸c˜

ao `

a Linguagem Lua: Estrutura de Sele¸c˜

ao if

Os parˆ

entereses s˜

ao opcionais

odigo Fonte 3:

if/else

1 −−G e r a um numero a l e a t o r i o e n t r e 1 e 100

2 math . r a n d o m s e e d ( o s . t i m e ( ) )

3 l o c a l x = math . f l o o r ( ( math . random ( ) ∗ 1 0 0 ) +1)

4 5 p r i n t(” x = ”, x ) 6 i f ( x < 5 0 ) t h e n 7 p r i n t(” x eh menor que 50 ”) 8 p r i n t(” nao ha um e l s e n e s t e i f \ n ”) 9 end 10 11 i f x < 10 t h e n 12 p r i n t(” x eh menor que 10 ”) 13 e l s e 14 p r i n t(” x eh m a i o r ou i g u a l a 10 ”) 15 end

(12)

Introdu¸c˜

ao `

a Linguagem Lua: Concatena¸c˜

ao e Inicializa¸c˜

ao

odigo Fonte 4:

Concatena¸

ao/Inicializa¸

ao de diversas vari´

aveis

1 −− I n i c i a l i z a n d o d i v e r s a s v a r i a v e i s 2 −−A v a r i a v e l x3 nao t e r a um v a l o r e s e r a n i l 3 l o c a l x1 , x2 , x3 = 1 0 , 20 4 5 −−Q u a l q u e r v a r i a v e l eh c o n v e r t i d a p a r a s t r i n g 6 −−a u t o m a t i c a m e n t e numa c o n c a t e n a c a o .

7 −−Nao s e pode c o n c a t e n a r uma s t r i n g a um v a l o r n i l , 8 −−da pau : (

9 p r i n t(” x1 = ” . . x1 . . ” x2 = ” . . x2 , ” x3 = ”, x3 )

(13)

Introdu¸c˜

ao `

a Linguagem Lua: Operadores Aritim´

eticos

ao h´

a operadores un´

arios ++ e –

odigo Fonte 5:

Operadores

1 l o c a l x , y = 2 0 , 3 2 l o c a l soma = x+y 3 l o c a l s u b = x−y 4 l o c a l m u l t = x ∗ y 5 l o c a l d i v = x / y 6 l o c a l r e s t o = x%y 7 8 −−Quando d e s e j a −s e i m p r i m i r d i v e r s o s v a l o r e s , 9 −−pode−s e s e p a r a r c a d a v a l o r p o r v i r g u l a 10 −−ou c o n c a t e n a r ( t a n t o f a z ) 11 p r i n t(” x = ”. . x , ” y = ”. . y ) 12 p r i n t(” x + y = ” . . soma , ” x − y = ” . . s u b ) 13 p r i n t(” x ∗ y = ”. . mult , ” x / y = ” . . d i v ) 14 p r i n t(” x % y = ”. . r e s t o )

(14)

Introdu¸c˜

ao `

a Linguagem Lua: Operadores de Atribui¸c˜

ao e

Relacionais

= atribui¸c˜

ao

== igualdade

= diferen¸ca

¿, ¿=, ¡, ¡=

14 / 38

(15)

Introdu¸c˜

ao `

a Linguagem Lua: Operadores L´

ogicos

and (e)

or (ou)

not (n˜

ao)

(16)

Introdu¸c˜

ao `

a Linguagem Lua: Valores L´

ogicos

true (verdade) e false (falso)

Qualquer valor diferente de false e nil s˜

ao considerados

verdade (nil ´

e como null do Java)

At´

e 0 ´

e verdade em Lua

(17)

Introdu¸c˜

ao `

a Linguagem Lua: Valores L´

ogicos

odigo Fonte 6:

Valores L´

ogicos

1 l o c a l s = ” ” 2 −−T r a t a o v a l o r de s como b o o l e a n o 3 i f s t h e n 4 p r i n t(” s eh c o n s i d e r a d a t r u e ”) 5 e l s e 6 p r i n t(” s eh c o n s i d e r a d a f a l s e ”) 7 end 8 9 l o c a l v a l = n i l 10 −−T r a t a o v a l o r de v a l como b o o l e a n o 11 i f v a l t h e n 12 p r i n t(” v a l eh c o n s i d e r a d a t r u e ”) 13 e l s e 14 p r i n t(” v a l eh c o n s i d e r a d a f a l s e ”) 15 end

(18)

Introdu¸c˜

ao `

a Linguagem Lua: Valores L´

ogicos

odigo Fonte 7:

Valores L´

ogicos

1 l o c a l ok = 0 2 −−T r a t a o v a l o r de ok como b o o l e a n o 3 −−At´e o z e r o ´e c o n s i d e r a d o t r u e em Lua 4 i f ok t h e n 5 p r i n t(” ok eh c o n s i d e r a d a t r u e ”) 6 e l s e 7 p r i n t(” ok eh c o n s i d e r a d a f a l s e ”) 8 end 18 / 38

(19)

Introdu¸c˜

ao `

a Linguagem Lua: For

odigo Fonte 8:

For

1 −− f o r de 1 a 5 2 f o r i =1 , 5 do 3 i o . w r i t e ( i . .” ”) 4 end 5 p r i n t(” ”) 6 7 −− f o r de 5 a 1 8 f o r i =5 , 1 , −1 do 9 i o . w r i t e ( i . .” ”) 10 end 11 12 p r i n t(” ”)

(20)

New

Tabelas com ´ındices n˜

ao sequenciais

Metatabelas: tostring, index(key), newindex(key,value)

Fun¸c˜

oes

Carregando arquivos de texto

Gravar arquivos de texto

Carregar c´

odigo lua a partir de strings/arquivos de texto

Gerar c´

odigo lua dinamicamente e salvar em arquivo

Carregar arquivos Lua com dofile

(21)

Introdu¸c˜

ao `

a Linguagem Lua: Criando M´

odulos I

odigo Fonte 9:

Criando m´

odulos

1 −−A v a r i ´a v e l G ´e uma v a r i ´a v e l

2 −− g l o b a l i m p l i c i t a m e n t e d e c l a r a d a 3 −−em t o d o s c r i p t l u a .

4 −−Por meio d e l a tem−s e a c e s s o

5 −−a q u a l q u e r f u n ¸c ˜a o ou o u t r a s v a r i ´a v e i s 6 −− g l o b a i s 7 8 −−As l i n h a s a b a i x o , c r i a m v a r i ´a v e i s 9 −− l o c a i s , a n t e s de d e f i n i r o s c r i p t 10 −−como um m´odulo ,

11 −−p a r a que a s mesmas possam

12 −−s e r a c e s s a d a s d e n t r o do m´odulo , 13 l o c a l G, p r i n t , i p a i r s =

14 G, p r i n t , i p a i r s

15

16 −−−Exemplo de m´odulo .

17 −−O nome do m´odulo ´e o nome do a r q u i v o .

(22)

Introdu¸c˜

ao `

a Linguagem Lua: Criando M´

odulos II

19

20 −−A b a i x o da l i n h a module , s ´o s e tem

21 −−a c e s s o , p o r p a d r˜a o , `a s v a r i ´a v e i s l o c a i s .

22 −−Nem a s f u n ¸c ˜o e s g l o b a i s como p r i n t 23 −−s e tem a c e s s o .

24

25 −−− R e a l i z a uma o p e r a ¸c ˜a o no f o r m a t o num1 op num2

26 −−s e n d o que o o p e r a d o r pode s e r +, −, ∗ ou /

27 −−@param num1 P r i m e i r o v a l o r da o p e r a ¸c ˜a o

28 −−@param op O p e r a d o r da e x p r e s s ˜a o (+ , −, ∗ ou / )

29 −−@param num2 Segundo v a l o r da o p e r a ¸c ˜a o

30 −−@ r e t u r n R e t o r n a o r e s u l t a d o da e x p r e s s ˜a o a r i t m ´e t i c a 31 f u n c t i o n c a l c u l a r ( num1 , op , num2 ) 32 i f op == ”+” t h e n 33 r e t u r n num1 + num2 34 e l s e i f op == ”−” t h e n 35 r e t u r n num1 − num2 36 e l s e i f op == ” ∗ ” t h e n 37 r e t u r n num1 ∗ num2 38 e l s e i f op == ” / ” t h e n 39 r e t u r n num1 / num2 22 / 38

(23)

Introdu¸c˜

ao `

a Linguagem Lua: Criando M´

odulos III

40 e l s e 41 p r i n t(” O p e r a d o r i n v ´a l i d o ”) 42 r e t u r n n i l 43 end 44 end 45 46 −−−C a l c u l a uma e x p r e s s ˜a o a r i t m ´e t i c a com 47 −−q u a n t i d a d e i n d e t e r m i n a d a de v a l o r e s 48 −−@param . . . L i s t a de v a l o r e s no f o r m a t o 49 −−num1 op num2 op numN

50 −−@ r e t u r n R e t o r n a o r e s u l t a d o da e x p r e s s ˜a o 51 f u n c t i o n c a l c E x p r e s s a o ( . . . ) 52 −−Pega t o d o s o s p a r ˆa m e t r o s e c r i a um v e t o r ( t a b e l a ) 53 l o c a l p a r a m s = { . . . } 54 −−P e r c o r r e o v e t o r de p a r ˆa m e t r o s . 55 −−A c a d a i t e r a ¸c ˜a o , a r m a z e n a o v a l o r 56 −−da p o s i ¸c ˜a o a t u a l do v e t o r em v a l 57 58 l o c a l i , r e s = 1 , 0 59 l o c a l num1 , num2 , op = 0 , 0 , ” ” 60

(24)

Introdu¸c˜

ao `

a Linguagem Lua: Criando M´

odulos IV

61 f o r , v a l i n i p a i r s( p a r a m s ) do 62 i f i == 1 t h e n 63 num1 = v a l 64 e l s e i f i == 2 t h e n 65 op = v a l 66 e l s e i f i == 3 t h e n 67 num2 = v a l 68 r e s = c a l c u l a r ( num1 , op , num2 ) 69 num1 = r e s 70 i = 1 71 end 72 i = i +1 73 end 74 r e t u r n r e s 75 end 24 / 38

(25)

Introdu¸c˜

ao `

a Linguagem Lua: Usando M´

odulos I

odigo Fonte 10:

Usando m´

odulo criado

1 −−Se o a r q u i v o do m´odulo e s t i v e r 2 −−no mesmo d i r e t ´o r i o da a p l i c a ¸c ˜a o , 3 −− e l e ´e e n c o n t r a d o sem p r o b l e m a s . 4 −−Nos c a s o s de a p p s de TVD, 5 −−o s m ´o d u l o s l u a e s t a r ˜a o 6 −−j u n t o com a app 7 −−p a r a s e r e m e n v i a d o s v i a b r o a c a s t ( p o r e x e m p l o ) 8 −−A l i n h a a b a i x o u s a o meumodulo . l u a 9 −−que o b r i g a t o r i a m e n t e d e v e t e r s i d o 10 −− d e f i n i d o com a i n s t r u ¸c ˜a o m o d u l e 11 −− l ´a no a r q u i v o meumodulo . l u a 12 −−Se o a r q u i v o n˜ao ´e um m´odulo , 13 −−usa−s e d o f i l e ( ” n o m e d o a r q u i v o . l u a ” ) 14 r e q u i r e ” meumodulo ” 15 16 17 l o c a l num1 , op , num2 = 1 0 , ” $ ”, ” 5 ”

(26)

Introdu¸c˜

ao `

a Linguagem Lua: Usando M´

odulos II

19 −−a mesma d e v e s e r p r e c e d i d a p e l o

20 −−nome do mesmo ( f u n c i o n a n d o como um n a m e s p a c e ) 21 l o c a l r e s = meumodulo . c a l c u l a r ( num1 , op , num2 )

22 p r i n t( num1 , op , num2 , ”=”, r e s ) 23 24 l o c a l r e s = meumodulo . c a l c E x p r e s s a o ( 1 0 , ”−”, 3 , ”+”, 6 ) 25 p r i n t(” R e s u l t a d o =”, r e s ) 26 27 −−O c ´o d i g o d a q u i p r a b a i x o c a l c u l a o 28 −− r e s u l t a d o de uma e x p r e s s ˜a o , 29 −−mas u s a n d o a s f a c i l i d a d e s de l u a , 30 −−p o r meio da f u n ¸c ˜a o l o a d s t r i n g 31 l o c a l c o d i g o = ” r e s 1 = 10 − 3 ∗ 2 ” 32 −− U t i l i z a o s r e c u r s o s de l u a 33 −−p a r a a v a l i a r uma e x p r e s s ˜a o 34 −−ou q u a l q u e r c ´o d i g o l u a c o n t i d o 35 −−numa s t r i n g e e x e c u t a r . 36 −−N e s t e c a s o , c o n s i d e r a a t ´e 37 −−a p r e c e d ˆe n c i a d o s o p e r a d o r e s 38 l o c a l e x e c u t a , e r r o = l o a d s t r i n g( c o d i g o ) 39 −−Se o c ´o d i g o na s t r i n g do l o a d s t r i n g 26 / 38

(27)

Introdu¸c˜

ao `

a Linguagem Lua: Usando M´

odulos III

40 −− f o r c o m p i l a d o com s u c e s s o , 41 −− l o a d s t r i n g r e t o r n a uma f u n ¸c ˜a o . 42 −−Se r e t o r n o u uma f u n ¸c ˜a o , 43 −−o c ´o d i g o f o i c o m p i l a d o , 44 −−a s s i m , b a s t a chamar a f u n ¸c ˜a o 45 −−r e t o r n a d a 46 i f e x e c u t a ˜= n i l t h e n 47 −−chama a f u n ¸c ˜a o que e x e c u t a r ´a 48 −−o c ´o d i g o c o m p i l a d o p e l a l o a d s t r i n g 49 e x e c u t a ( ) 50 p r i n t( c o d i g o ,”=”, r e s 1 ) 51 e l s e 52 p r i n t( e r r o ) 53 end

(28)

Introdu¸c˜

ao `

a Linguagem Lua: Tratamento de exce¸c˜

oes I

odigo Fonte 11:

Tratamento de Exce¸

oes com pcall

1 −−Se o a r q u i v o do m´odulo e s t i v e r 2 −−no mesmo d i r e t ´o r i o da a p l i c a ¸c ˜a o , 3 −− e l e ´e e n c o n t r a d o sem p r o b l e m a s . 4 −−Nos c a s o s de a p p s de TVD, 5 −−o s m ´o d u l o s l u a e s t a r ˜a o 6 −−j u n t o com a app 7 −−p a r a s e r e m e n v i a d o s v i a b r o a c a s t ( p o r e x e m p l o ) 8 −−A l i n h a a b a i x o u s a o meumodulo . l u a 9 −−que o b r i g a t o r i a m e n t e d e v e t e r s i d o 10 −− d e f i n i d o com a i n s t r u ¸c ˜a o m o d u l e 11 −− l ´a no a r q u i v o meumodulo . l u a 12 −−Se o a r q u i v o n˜ao ´e um m´odulo , 13 −−usa−s e d o f i l e ( ” n o m e d o a r q u i v o . l u a ” ) 14 r e q u i r e ” meumodulo ” 15 16 17 l o c a l num1 , op , num2 = 1 0 , ” $ ”, ” 5 ”

18 −−Ao chamar uma f u n ¸c ˜a o de um m´odulo ,

(29)

Introdu¸c˜

ao `

a Linguagem Lua: Tratamento de exce¸c˜

oes II

19 −−a mesma d e v e s e r p r e c e d i d a p e l o

20 −−nome do mesmo ( f u n c i o n a n d o como um n a m e s p a c e ) 21 l o c a l r e s = meumodulo . c a l c u l a r ( num1 , op , num2 )

22 p r i n t( num1 , op , num2 , ”=”, r e s ) 23 24 l o c a l r e s = meumodulo . c a l c E x p r e s s a o ( 1 0 , ”−”, 3 , ”+”, 6 ) 25 p r i n t(” R e s u l t a d o =”, r e s ) 26 27 −−O c ´o d i g o d a q u i p r a b a i x o c a l c u l a o 28 −− r e s u l t a d o de uma e x p r e s s ˜a o , 29 −−mas u s a n d o a s f a c i l i d a d e s de l u a , 30 −−p o r meio da f u n ¸c ˜a o l o a d s t r i n g 31 l o c a l c o d i g o = ” r e s 1 = 10 − 3 ∗ 2 ” 32 −− U t i l i z a o s r e c u r s o s de l u a 33 −−p a r a a v a l i a r uma e x p r e s s ˜a o 34 −−ou q u a l q u e r c ´o d i g o l u a c o n t i d o 35 −−numa s t r i n g e e x e c u t a r . 36 −−N e s t e c a s o , c o n s i d e r a a t ´e 37 −−a p r e c e d ˆe n c i a d o s o p e r a d o r e s 38 l o c a l e x e c u t a , e r r o = l o a d s t r i n g( c o d i g o ) 39 −−Se o c ´o d i g o na s t r i n g do l o a d s t r i n g

(30)

Introdu¸c˜

ao `

a Linguagem Lua: Tratamento de exce¸c˜

oes III

40 −− f o r c o m p i l a d o com s u c e s s o , 41 −− l o a d s t r i n g r e t o r n a uma f u n ¸c ˜a o . 42 −−Se r e t o r n o u uma f u n ¸c ˜a o , 43 −−o c ´o d i g o f o i c o m p i l a d o , 44 −−a s s i m , b a s t a chamar a f u n ¸c ˜a o 45 −−r e t o r n a d a 46 i f e x e c u t a ˜= n i l t h e n 47 −−chama a f u n ¸c ˜a o que e x e c u t a r ´a 48 −−o c ´o d i g o c o m p i l a d o p e l a l o a d s t r i n g 49 e x e c u t a ( ) 50 p r i n t( c o d i g o ,”=”, r e s 1 ) 51 e l s e 52 p r i n t( e r r o ) 53 end 30 / 38

(31)

Introdu¸c˜

ao `

a Linguagem Lua: Shell Script I

Da mesma forma que pode-se criar arquivos *.sh para

executar comandos do shell e automatizar tarefas em sistemas

operacional da fam´ılia UNIX, pode-se usar lua para isto.

A grande vantagem ´

e que lua ´

e bem mais simples que as

linguagens tradicionais de Shell Script, al´

em do que, se vocˆ

e

a conhece Lua, ´

e menos trabalho.

Para um script lua executar como um shell script, basta incluir

a marca¸c˜

ao conhecida como shebang ou hashbang

(http://wiki.linuxquestions.org/wiki/Shebang), um

coment´

ario na primeira linha do arquivo que indica qual o

programa que deve interpretar o mesmo quando este for

executado.

(32)

Introdu¸c˜

ao `

a Linguagem Lua: Shell Script II

odigo Fonte 12:

Lua como Shell Script

1 #!/ u s r / b i n / l u a 2 −−O c ´o d i g o a c i m a p e r m i t e e x e c u t a r 3 −−o s c r i p t l u a com . / n o m e d o s c r i p t . l u a 4 −−( sem p r e c i s a r u s a r o comando l u a a n t e s ) 5 −−d e s d e que o a r q u i v o t e n h a p e r m i s s ˜a o 6 −−de e x e c u ¸c ˜a o em l i n u x 7 −−( chmod a+x n o m e d o s c r i p t . l u a p r a d a r p e r m i s s ˜a o ) 8 9 −−−Usando l u a como s h e l l s c r i p t 10 11 −−Pega p a r ˆa m e t r o s de l i n h a de comando 12 l o c a l a r g s = { . . . } 13 14 o s . e x e c u t e (” c l e a r ”) 15 16 −−D´a um p i n g no e n d e r e ¸c o r e c e b i d o p o r p a r ˆa m e t r o 17 −−Se r e t o r n a r z e r o , ´e p o r q u e e x e c u t o u o p i n g e 18 −−o h o s t r e s p o n d e u , 32 / 38

(33)

Introdu¸c˜

ao `

a Linguagem Lua: Shell Script III

19 −−c a s o c o n t ´a r i o , r e t o r n a um v a l o r d i f e r e n t e de z e r o 20 i f o s . e x e c u t e (” p i n g ”. . a r g s [ 1 ] . .” −c 3 ”)==0 t h e n 21 p r i n t(” p i n g o u ”) 22 e l s e 23 p r i n t(”N˜AO PINGOU”) 24 end

(34)

Introdu¸c˜

ao `

a Linguagem Lua: LuaRocks

O luarocks ´

e uma ferramenta, que como o apt-get, permite

baixar pacotes lua.

Para baix´

a-lo execute sudo apt-get install luarocks

Baixando alguns m´

odulos

sudo luarocks install luasocket

sudo luarocks install luadoc

sudo luarocks install luasec

(35)

Introdu¸c˜

ao `

a Linguagem Lua: LuaDoc I

O LuaDoc ´

e uma ferramenta de documenta¸c˜

ao de c´

odigos

lua, assim como o JavaDoc.

Para baix´

a-lo execute sudo luarocks install luadoc ou sudo

apt-get install luadoc

odigo Fonte 13:

Exemplo de m´

odulo documentado com LuaDoc

1 l o c a l G, p r i n t , l o a d s t r i n g = G, p r i n t , l o a d s t r i n g

2

3 −−−Exemplo de m´odulo ( Documentando um m´odulo ) .

4 −−Os c o m e n t ´a r i o s i n i c i a d o s com −−−

5 −−s ˜a o i n t e r p r e t a d o s p e l o l u a d o c p a r a

6 −−g e r a r a d o c u m e n t a ¸c˜a o do c ´o d i g o f o n t e do p r o j e t o .

7 −−O nome do m´odulo ´e o nome do a r q u i v o .

8 module ” meumodulo ”

9

10 −−−C a l c u l a uma e x p r e s s ˜a o a r i t m ´e t i c a com

(36)

Introdu¸c˜

ao `

a Linguagem Lua: LuaDoc II

13 −−@ r e t u r n R e t o r n a o r e s u l t a d o da e x p r e s s ˜a o 14 f u n c t i o n c a l c u l a r ( e x p ) 15 l o c a l e x e c u t a , e r r o = l o a d s t r i n g(” r e t u r n ”. . e x p ) 16 i f e x e c u t a ˜= n i l t h e n 17 r e t u r n e x e c u t a ( ) 18 e l s e 19 p r i n t( e r r o ) 20 r e t u r n n i l 21 end 22 end

odigo Fonte 14:

Exemplo de app documentada com LuaDoc

1 −−−Exemplo de u s o do m´odulo c r i a d o 2 r e q u i r e ” meumodulo ” 3 4 5 l o c a l e x p = ” 10 − 3 ∗ 2 ” 6 l o c a l r e s = meumodulo . c a l c u l a r ( e x p ) 7 p r i n t( exp , ” = ”, r e s ) 36 / 38

(37)

Introdu¸c˜

ao `

a Linguagem Lua: LuaDoc III

Para gerar a documenta¸c˜

ao, crie um diret´

orio doc dentro do

diret´

orio da aplica¸

ao

Execute o comando: luadoc *.lua -d doc

Abra o index.html no diret´

orio criado.

Para corrigir os acentos nos HTML gerados:

http://goo.gl/Dlb55

(38)

New

Analisando desempenho de programas Lua: luaprofiler, top,

htop, collectgarbage(”count”).

Tratando XML em Lua

POO em Lua

Referências

Documentos relacionados

Corol´ ario: podemos utilizar arrays e hashes com seus elementos (escalares) sendo referˆ encias para outros arrays e hashes.. Uso de

Escreva um programa em Perl que leia da entrada padr˜ ao uma lista de strings e, ao final do processo, imprima a lista em ordem reversa (para fazer depois no PC, utilize Control+D ou

Uma colora¸c˜ ao das arestas de um grafo ´e uma atribui¸c˜ ao de cores ` as suas arestas tal que arestas adjacentes recebem cores diferentes... 2 Colora¸c˜ oes m´ınimas e

Uma colora¸c˜ ao das arestas de um grafo ´e uma atribui¸c˜ ao de cores ` as suas arestas tal que arestas adjacentes recebem cores diferentes... 2 Colora¸c˜ oes m´ınimas e

Caso o usu´ ario deseje executar novamente um mesmo comando ´ e necess´ ario apenas cha- mar na shell uma referˆ encia ao comando desejado com o caracter “!”, como mostra o exemplo

As entradas de referˆ encia do arquivo .bib s´ o aparecer˜ ao na p´ agina de referˆ encias se forem citadas no texto. No fim do

Exemplos de fun¸ c˜ oes em m´ odulos pr´ e-definidas em Lua I io : m´ odulo de fun¸ c˜ oes de entrada e sa´ıda (input &amp; output). I io.read: fun¸ c˜ ao para capturar

Uma vari´ avel do tipo de uma classe ´ e apenas uma referˆ encia, um endere¸co de mem´ oria que refere uma zona de mem´ oria (“semelhante” a um apontador em C). A uma instˆ