O documento apresenta uma introdução à linguagem de programação Lua, descrevendo suas principais características como tipagem dinâmica, gerenciamento automático de memória e fácil integração com C/C++. O documento também discute como Lua é frequentemente usada como linguagem secundária em jogos e aplicativos para implementar recursos específicos através de scripts.
2. Por que Lua?
Linguagem de sintaxe simples
Relatos de bom desempenho
Grande portabilidade para diferentes
plataformas
Pequeno footprint
Fácil integração com C/C++
3. Também usada como linguagem
secundária
Implementação de recursos específicos dentro de
uma aplicação
Utilização de DSLs (Domain Specific Languages)
Exemplo:
I.A. em jogos
6. Características do Lua
Linguagem interpretada
Tipagem dinâmica
Gerência automática de memória
7. Linguagem interpretada
O código criado é executado por meio de um
interpretador
Vantagens:
Independente de plataforma
Sintaxe tende a ser mais ”alto nível"
Gestão automática de memória
Desvantagens:
Teoricamente menos eficiente do que uma
linguagem compilada
8. Tipagem dinâmica
Não fazemos a declaração dos tipos de
dados
A verificação do tipo de dados ocorre em
tempo de execução
9. Exemplos de diferentes tipos de
tipagem
Java (tipagem estática):
String nome = “Leonardo”;
Lua (tipagem dinâmica):
nome = “Leonardo”
10. Vantagens da tipagem dinâmica
Código mais “limpo”
Menor tamanho do código
Conversão de dados se torna mais simples
11. Desvantagens da tipagem
dinâmica
Pode dificultar o entendimento do código (alguns
preferem saber os tipos de dados que são usados)
Pode dificultar a identificação de erros no código
Faz menos uso dos recursos de autocompletar das
IDEs
12. Gerência automática de memória
Não nos preocupamos em alocar ou liberar
memórias de nossas variáveis
Vantagem:
Simplifica a programação
Desvantagem:
Oferece menos flexibilidade para a gestão de
memória em situações críticas
13. Show me the code!
• Sem { } (chaves)
• Sem tipos de dados
• Uso de then, do, etc
14. Observações
Lua é case-sensitive
Não há formatação rígida
Comentários iniciam com --
15. Variáveis em Lua
Não se declara o tipo, apenas o nome da
variável e seu valor
Exemplo:
denominador = 2
16. Tipos de dados
nil
Boolean
Number (flutuantes e double)
String
Table
17. Escopo de variáveis
Globais
Uma vez declaradas, podem ser usadas em qualquer
parte do programa
Locais
Uma vez declaradas, somente são usadas dentro do
bloco em que foram declaradas
19. Observações
Se a variável local tiver o mesmo nome da global, então
prevalece o uso da variável local
Fonte: Fábrica de código – Curso de Lua 3.2