Lua (linguagem de programação): diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
TheVulcan (discussão | contribs)
Linha 21:
'''Lua''' é uma [[linguagem de script]] [[Linguagem imperativa|imperativa]], [[Programação procedural|procedural]], pequena, reflexiva e leve, projetada para expandir aplicações em geral, por ser uma linguagem extensível (que une partes de um programa feitas em mais de uma linguagem), para prototipagem e para ser embarcada em softwares complexos, como [[Videogame|jogos]]<ref name="tecgraf">{{citar web|título=A Linguagem Lua e suas Aplicações em Jogos|url=http://www.tecgraf.puc-rio.br/~lhf/ftp/doc/wjogos04.pdf|acessodata=15 de Março de 2013|autor=Waldemar Celes|coautores=Luiz Henrique de Figueiredo, Roberto Ierusalimschy|ano=2004}}</ref> . Assemelha-se com [[Python]], [[Ruby (linguagem de programação)|Ruby]] e [[Icon (linguagem de programação)|Icon]], entre outras.
 
Lua foi criada por um time de desenvolvedores do [http://www.tecgraf.puc-rio.br Tecgraf] da [[Pontifícia Universidade Católica do Rio de Janeiro|PUC-Rio]], a princípio, para ser usada em um projeto da [[Petrobras]]. Devido à sua eficiência, clareza e facilidade de aprendizado, passou a ser usada em diversos ramos da programação, como no desenvolvimento de jogos (a [[LucasArts]], por exemplo, usou a linguagem no jogo [[Escape from Monkey Island]]), controle de robôs, processamento de texto, etc. Também é freqüentementefrequentemente usada como uma linguagem de propósito geral.
 
Lua combina programação procedural com poderosas construções para descrição de dados, baseadas em tabelas associativas e semântica extensível. É tipada dinamicamente, interpretada a partir de [[bytecode]]s, e tem gerenciamento automático de memória com coleta de lixo. Essas características fazem de Lua uma linguagem ideal para configuração, automação (scripting) e prototipagem rápida.
 
== História ==
Lua foi criada em [[1993]] por [[Roberto Ierusalimschy]], Luiz Henrique de Figueiredo e Waldemar Celes, membros dado Computer Graphics Technology Group na PUC-Rio, a Pontifícia Universidade Católica do Rio de Janeiro, no [[Brasil]]. Versões da Lua antes da versão 5.0 foram liberadas sob uma licença similar à [[licença BSD]]. A partir da versão 5.0, Lua foi licenciada sob a [[licença MIT]].
 
Alguns de seus parentes mais próximos são o Icon, por sua concepção, e Python, por sua facilidade de utilização por não-programadores. Em um artigo publicado no ''Dr. Dobb's Journal'', os criadores da Lua também afirmam que [[Lisp]] e [[Scheme]] foram uma grande influência na decisão de desenvolver a tabela como a principal estrutura de dados de Lua. Lua tem sido usada em várias aplicações, tanto comerciais como não-comerciais.
 
O primeiro projeto utilizando a linguagem em jogos foi em [[1997]] quando a [[LucasArts]] a utilizou como linguagem de script no jogo [[Grim Fandango]].<ref name="tecgraf" />
 
== Características ==
Lua é normalmente descritodescrita como uma linguagem de múltiplos paradigmas, oferecendo um pequeno conjunto de características gerais que podem ser estendidas para encaixar diferentes tipos de problemas, em vez de fornecer uma especificação mais complexa e rígida para combinar com um único paradigma. Lua, por exemplo, não contém apoio explícito à herança, mas permite que ela seja executada com relativa facilidade com metatables. Do mesmo modo, Lua permite que programadores quando implementam nomes, classes, e outras funções, o emprego deempreguem poderosas técnicas de programação funcional e completos escopos lexicais.
 
Lua é uma linguagem que suporta apenas um pequeno número de estruturas, tais como dados atômicos, valores booleanos, números (dupla precisão em ponto flutuante por padrão), e strings. As estruturas de dados comuns, tais como matrizes, conjuntos, tabelas, listas, e registros podem ser representados por meio da Lua. Lua não foi construída com suporte para programação orientada a objeto.