Falando de Lua...

LUA
Enviado por Eclesiastes em Ter, 06/02/2007 - 19:24.LUA

Lua é uma linguagem de programação poderosa e leve, projetada para estender aplicações. Lua também é frequentemente usada como uma linguagem de propósito geral. Lua é software livre de código aberto.

Lua combina sintaxe simples para programação procedural com poderosas construções para descrição de dados, baseadas em tabelas associativas e semântica extensível. Lua é tipada dinamicamente, é interpretada a partir de bytecodes para uma máquina virtual, e tem gerenciamento automático de memória com coleta de lixo incremental. Essas características fazem de Lua uma linguagem ideal para configuração, automação (scripting) e prototipagem rápida.
Um conceito fundamental no projeto de Lua é fornecer meta-mecanismos para a implementação de construções, em vez de fornecer uma multidão de construções diretamente na linguagem. Por exemplo, embora Lua não seja uma linguagem puramente orientada a objetos, ela fornece meta-mecanismos para a implementação de classes e herança. Os meta-mecanismos de Lua trazem uma economia de conceitos e mantêm a linguagem pequena, ao mesmo tempo que permitem que a semântica seja estendida de maneiras não convencionais. Ter uma semântica extensível é uma das características mais marcantes de Lua.
Lua é uma engine que você pode acoplar à sua aplicação. Isso significa que, além de sintaxe e semântica, Lua fornece uma API que permite a aplicação trocar dados com programas Lua e estender Lua com funções C. Nesse sentido, Lua pode ser vista como um framework para construção de linguagens dedicadas a domínos específicos.

Tipos básicos
- Números (number) - São sempre ponto flutuante.
- Booleanos (boolean) - Um tipo tradicional. Introduzindo na versão 5.0.
- Tables (table) - Implementa várias estruturas de dados. (Vetores, records, matrizes e objetos)
- Funções (function) - Valor de primeira ordem.
- Strings (string) - Podem ser delimitados por ', " ou [[ ]].
- Dados do usuário (userdata) - Permite armazenar um ponteiro qualquer de C.
- Nil (nil) - Também conhecido como Null.
- Corotinas (thread).

Origem
Lua foi projetada e implementada por uma equipe no laboratório Lablua da PUC-Rio (Pontifícia Universidade Católica do Rio de Janeiro). Lua nasceu e cresceu no Tecgraf, o Grupo de Tecnologia em Computação Gráfica da PUC-Rio. Tanto o Tecgraf quanto Lablua são laboratórios do Departamento de Informática.

Características

  • Da mesma família de Perl, Tcl, Python, etc;
  • Linguagem embutida;
  • Sintaxe simples e clara;
  • Tipagem dinâmica;
  • Coleta de lixo
  • Grande poder de descrição de dados;
  • Leve. Uma linguagem simples e pequena com poucos conceitos;
  • Portável. (escrita em ANSI C clean)
  • Execução controlada; Executa em PalmOS, EPOC (Symbian), Brew (Qualcomm), Playstation II, XBox, sistemas embutidos, mainframes, etc.
  • Eficiente; Mais rápida que Perl, Python, Tcl, etc. http://shootout.alioth.debian.org/gp4/lua.php
  • Fácil de ser embutida; C/C++, Java, Fortran, Ruby, OPL (EPOC), c#, etc.

Curiosidades
Função que retorna múltiplos valores.
Exemplo:

  1. function foo()
  2.     return 'foo', 'bar'
  3. end
  4.  
  5. x, y = foo()
  6.  
  7. print(x)
  8. print(y)

Função definida dentro de uma função (closures), com total acesso as variáveis locais. (lexical scoping)
Exemplo:

  1. function foo()
  2.     local str = 'foo!'
  3.  
  4.     return function ()
  5.         return str
  6.     end
  7. end
  8.  
  9. print(foo()())
  10.  
  11. -- Ou:
  12. -- f = foo()
  13. -- print(f())

Entre outras que estarei abordando em breve...

Para quem desejar conhecer projetos desenvolvidos com Lua: http://www.lua.org/uses.html

Bibliografia



Enviado por Tobias Taurian Viana (não verificado(a)) em Seg, 02/04/2007 - 11:20.

Bom quando eu li o artigo me surgiram algumas dúvidas, tipo é possível criar aplicações somente usando Lua ou ela só é utilizada em conjunto com outras linguagens? E se for possível que tipos de aplicações seriam possiveis de ser feitas? Desktop, web ou ambas?

vlw ae felipe T+

Enviado por Eclesiastes em Seg, 02/04/2007 - 13:32.

É possível criar aplicações usando somente Lua. Tanto desktop como web, e inclusive há um CMS feito em Lua, o Publique! E para desktop há diversas libs, como GTK, Qt, GD, etc. Veja em http://lua-users.org/wiki/LibrariesAndBindings.

[]s

Enviado por Leonardo (não verificado(a)) em Qui, 13/09/2007 - 07:53.

Onde posso achar um passo a passo de instalação e configuração?
Grande abraço!