Example: marketing

Capítulo 3 Uma Introdução à Programação em Lua

Cap tulo 3 Uma Introdu o programa o em LuaRoberto IerusalimschyAbstractLua is a scripting language widely used in several areas, from desktop applications, such as AdobePhotoshop Lightroom, to software for embedded systems. It is the leading language for scriptinggames and it is part of Ginga, the standard middleware for theBrazilian Digital TV system. Lua is alsofrequently used in security, being the scripting language embedded in tools like Wireshark, snort, text presents the Lua language emphasizing its unconventional mechanisms. The goal is tointroduce the language together with some non-conventional programming techniques, such as higher-order functions, coroutines, and APIs between languages.

mas os programas interpretados não terão acesso às variáveis e funções de- ... Mesmo na progra-mação em ponto grande (programming in the large) a gerência automática de memória tem um impacto significativo, ao simplificar as inter faces entre com-ponentes. (Como um exercício, pegue a API de qualquer biblioteca C de porte

Tags:

  Programa, Progra

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of Capítulo 3 Uma Introdução à Programação em Lua

1 Cap tulo 3 Uma Introdu o programa o em LuaRoberto IerusalimschyAbstractLua is a scripting language widely used in several areas, from desktop applications, such as AdobePhotoshop Lightroom, to software for embedded systems. It is the leading language for scriptinggames and it is part of Ginga, the standard middleware for theBrazilian Digital TV system. Lua is alsofrequently used in security, being the scripting language embedded in tools like Wireshark, snort, text presents the Lua language emphasizing its unconventional mechanisms. The goal is tointroduce the language together with some non-conventional programming techniques, such as higher-order functions, coroutines, and APIs between languages.

2 The text assumes some programmingmaturity from the reader and some knowledge about the C language, for the discussion about theLua C uma linguagem descriptamplamente usada nas mais diversas reas, desde grandesaplicativos para desktops, como o Adobe Photoshop Lightroom, at software para sistemas embarca-dos. Lua a linguagem mais usada atualmente para scripting em jogos, e parte do padr o Gingapara o Sistema Brasileiro de TV Digital. Lua tamb m muito usada na rea de seguran a, sendo alinguagem descriptembutida em ferramentas como Wireshark, snort e texto apresenta a linguagem Lua com nfase nos seus mecanismos menos objetivo introduzir a linguagem e ao mesmo tempo apresentar algumas t cnicas de programa on o convencionais, como o uso de fun es de mais alta ordem, co-rotinas e APIs entre do leitor alguma maturidade na rea de programa o e conhecimento da linguagem C,para a discuss o da API entre Lua e Introdu oO objetivo deste texto introduzir o leitor programa o nalinguagem que o leitor (voc )

3 Possui uma certa maturidade emprograma ocom alguma linguagem IerusalimschyProgramar em Lua n o muito diferente de programar em outraslingua-gens din micas, mas diferente. Cada linguagem apresenta caracter sticaspr prias, e um bom programador sabe explorar as caracter sticas particularesde cada linguagem. Neste texto, vamos procurar enfatizar asparticularidadesde Lua, aspectos que tornam a programa o em Lua diferente daprograma oem outras linguagens din micas. Em particular, em Lua, temos como impor-tantes diferenciais o uso de t cnicas de programa o funcional, o uso ub quode tabelas como estruturas de dados para os mais variados fins, o uso de co-rotinas e a comunica o com c digo escrito em , ent o programar em Lua n o t o diferente de programar em outraslinguagens din micas.

4 Mas afinal, o que uma linguagem din mica? Comoocorre frequentemente em computa o, esse termo n o possuiuma defini oprecisa e universalmente aceita. Mas existe um certo consenso de que lingua-gens din micas apresentam as seguintes caracter sticas:Interpreta o din mica:isso significa que a linguagem capaz de executartrechos de c digo criados dinamicamente, no mesmo ambientede exe-cu o do programa . Como exemplos dessa facilidade temos a fun oloadstringem Lua e a fun oevalem Scheme/Lisp e din mica forte:tipagem din mica significa que a linguagem faz veri-fica o de tipos em tempo de execu o do programa . Linguagenscomtipagem din mica em geral n o possuem declara es de tipos no c digoe n o fazem verifica o de tipos em tempo de compila o.

5 Tipagemforte significa que a linguagem jamais aplica uma opera o a um ncia autom tica de mem ria din mica (coleta de lixo):isso significa quen o precisamos gerenciar mem ria explicitamente no nosso programa ;em especial, n o h necessidade de um comando para liberar mem riaap s seu geral, linguagens din micas s o interpretadas, e n o compiladas parac digo nativo da m quina; mas essa uma caracter stica das implementa esdessas linguagens, n o das linguagens em si. Obviamente, ascaracter sti-cas acima favorecem uma implementa o via um interpretadore dificultam aconstru o de caracter sticas, a interpreta o din mica a mais exclusiva de lin-guagens din micas.

6 Obviamente, em qualquer linguagem Turing-completa po-demos escrever um interpretador para a pr pria linguagem, mas os trechos dec digo interpretados n o ser o executados no mesmo ambiente do programainterpretador. Por exemplo, podemos escrever um interpretador para C em C,mas os programas interpretados n o ter o acesso s vari veis e fun es de-claradas no programa compilado onde o interpretador est sendo de n o ser uma caracter stica exclusiva de linguagens din micas, ager ncia autom tica de mem ria um mecanismo importante dessa lista, porhaver uma enorme diferen a entre programarmos em uma linguagem com e2 programa o em Luaem uma linguagem sem ger ncia autom tica de mem ria.

7 Mesmo na progra -ma o em ponto grande (programming in the large) a ger ncia autom tica demem ria tem um impacto significativo, ao simplificar as interfaces entre com-ponentes. (Como um exerc cio, pegue a API de qualquer biblioteca C de porterazo vel e verifique quanto de sua complexidade devida ger ncia de me-m ria.)Na verdade, existe um cont nuo entre linguagens est ticas edin micas. Porexemplo, Java uma linguagem muito mais din mica do que C, pois apresentager ncia autom tica de mem ria, um certo grau de tipagem din mica e um me-canismo embrion rio de interpreta o din mica (por meio dacarga din micade classes, que por sua vez podem ser criadas dinamicamente).

8 Mesmo entreas linguagens reconhecidamente din micas existem diferen as. Por exemplo,nem todas as linguagens din micas t m ger ncia autom tica de mem ria so-bre m dulos ou se destaca de outras linguagens din micas por ser uma linguagem descript. Uma linguagem de script uma linguagem projetada para controlar ecoordenar componentes geralmente escritos em outra linguagem. As primei-ras linguagens de script foram as linguagens deshelldo Unix, usadas paraconectar e controlar a execu o de programas. Apesar de v rias linguagensdin micas poderem ser usadas para script, poucas foram projetadas para essafinalidade. Lua seguiu um caminho criado por Tcl [Ousterhout1990], onde alinguagem estruturada como uma biblioteca C com uma API quepermitetanto c digo na linguagem chamar fun es escritas em C como c digo C cha-mar fun es escritas na linguagem.

9 Lua se destaca de outras linguagens descript por sua simplicidade, portabilidade, economia de recursos e desempe-nho [Ierusalimschy et al. 2007]. Como usar LuaA linguagem Lua conta com uma nica implementa o principal, mantidapelos autores da linguagem no , mas essa implementa oconta com diversas distribui es mantidas por desenvolvedores muitos usos reais de Lua, o interpretador distribuido embutido na apli-ca o final. Afinal, um dos principais objetivos de Lua exatamente esse tipode uso. Nesses casos, detalhes de como usar Lua s o dependentes da apli-ca o. Esses detalhes incluem que editor usar, onde e como armazenar osprogramas, como executar um programa , etc.

10 Neste texto, como n o estamosvisando nenhuma aplica o particular, vamos usar o interpretador indepen-dente (stand alone) de m quinas Windows, uma tima op o de instala o a distribui oLua for Windows(LfW).1 Essa distribui o um pacote completo para Win-dows, incluindo n o apenas o interpretador Lua com suas bibliotecas padr o,1 Ierusalimschymas tamb m um editor e v rias bibliotecas extras m quinas Linux n o h uma receita pronta, dada a diversidade dedistribui es de Linux. Compilar Lua em uma m quina Linux muito simplese r pido. Algumas distribui es j v m com Lua instalado pordefault. Outrasoferecem pacotes prontos: por exemplo, em Ubuntu e Debian, basta instalaro , que o interpretador com as bibliotecas padr o.


Related search queries