JosĂŠ Augusto N. G. Manzano
Novatec
Copyright © 2018 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates FC20180409 Revisão gramatical: Tássia Carvalho Editoração eletrônica: Carolina Kuwabata Capa: Carolina Kuwabata ISBN: 978-85-7522-668-1 Histórico de impressões: Abril/2018
Primeira edição
Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 – São Paulo, SP – Brasil Tel.: +55 11 2959-6529 Email: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec
capítulo 1
Introdução
Este capítulo apresenta informações sobre a linguagem brasileira de programação de computadores Lua, sua aquisição, instalação e uso inicial nos sistemas operacionais Mac OS X, Linux e Microsoft Windows.
1.1 Linguagem de programação Lua A linguagem brasileira de programação de computadores Lua foi apresentada em 1993 pelas mãos dos pesquisadores: Waldemar Celes, Roberto Ierusalimschy e Luiz Henrique de Figueiredo, colaboradores do Tecgraf/ PUC-Rio: Grupo de Tecnologia em Computação Gráfica, a partir de uma necessidade interna do Departamento de Informática em desenvolver e atender a parceria com a Petrobras. Após o trabalho com a Petrobras surgiram outros projetos envolvendo o uso e a aplicação da nova linguagem no desenvolvimento de um sistema de intranet para o Departamento de Informática da PUC-Rio, em 1994. Lua passou a ser utilizada em outros projetos, como o desenvolvimento de jogos pela empresa LucasArts, destacando-se Grim Fandango, Escape from Monkey Island, World of Warcraft, GTA IV, Crysis e Street Fighter 4. A LucasArts, do cineasta George Lucas, foi a primeira empresa a usar Lua para o desenvolvimento de jogos. Em seguida, vieram outras empresas, destacando-se Microsoft no desenvolvimento de jogos para o Xbox (UNIVERSIA, 2002), Adobe no desenvolvimento do programa Photoshop Lightroom e Wireshark da Wireshark Foudation (Info Exame, 2009). A linguagem Lua é usada em diversos países, como: Rússia, Dinamarca, Alemanha, Japão, Itália, Estados Unidos, Brasil, entre outros. 13
14
Introdução à linguagem Lua
Lua é descendente das linguagens SOL (Simple Object Language) e DEL (Data-Entry Language), anteriormente usadas em projetos de engenharia para a Petrobras. Então passou a estender aplicações de linguagens mais pesadas, como C e C++, sendo utilizada no desenvolvimento de sistemas de intranet, construção de sites para web e jogos eletrônicos. Lua é uma linguagem rápida, robusta, leve, de fácil aprendizagem, distribuída em regime de software livre. Combina uma estrutura sintática simples para o desenvolvimento de sub-rotinas com poderosas construções para descrição de dados. Opera dados de modo dinâmico não necessitando declarar os tipos de dados a serem utilizados. Talvez os usuários avançados se interessem no estudo do código-fonte da linguagem, disponível para a versão 5.3.4 (lançado em janeiro de 2017) em: https://www.lua.org/ftp/lua-5.3.4.tar.gz.
1.2 Obtenção do interpretador Lua Para utilizar a linguagem Lua, é necessário possuir instalado em seu computador o interpretador da linguagem que pode ser adquirido no site http://luabinaries.luaforge.net/ (Figura 1.1). Em seguida, escolha no menu lateral esquerdo a opção Download e, na lista apresentada, selecione a última versão disponível - no momento de elaboração deste texto, era 5.3.4. As opções para obtenção da linguagem Lua abrangem os sistemas operacionais Windows de 32 e 64 bits, Mac OS X e Linux de 64 bits. Copie para seu computador os arquivos binários executáveis e suplementares de biblioteca do sistema operacional desejado, podendo ser: Tabela 1.1 – Opções de download Microsoft Windows lua-5.3.4_Win32_bin.zip
Executável Windows x86
lua-5.3.4_Win32_dllw4_lib.zip
Biblioteca Windows x86 (Compatibilidade MingW 4) Executável Windows x64
lua-5.3.4_Win64_bin.zip
Capítulo 1 ■ Introdução
15
lua-5.3.4_Win64_dllw4_lib.zip
Biblioteca Windows x64 (Compatibilidade MingW 4)
Mac OS X Intel lua-5.3.4_MacOS1011_bin.tar.gz
Executável MacOS X Intel
lua-5.3.4_MacOS1011_lib.tar.gz
Biblioteca MacOS X Intel
Linux lua-5.3.4_Linux319_64_bin.tar.gz Executável Linux x64 lua-5.3.4_Linux319_64_lib.tar.gz
Biblioteca Linux x64
Os procedimentos de instalação descritos são o mais simples possível, garantindo o conjunto mínimo necessário para uso da linguagem a partir da linha de comando (CUI – Character User Interface ou CLI – Command Line Interface) de cada um dos sistemas operacionais citados. No caso do sistema operacional Microsoft Windows 32 bits (ou 64 bits), crie uma pasta a partir da raiz do disco rígido com nome lua5 e dentro dela descompacte os conteúdos dos arquivos baixados. No caso do sistema operacional Mac OS X ou Linux, crie a partir da pasta do usuário a pasta lua5, e descompacte nela os conteúdos dos arquivos baixados.
Figura 1.1 – Site LuaBinaries.
16
Introdução à linguagem Lua
Para usar o interpretador, vá à pasta lua5 por meio da janela Prompt do MS-DOS no Windows ou por meio da janela Terminal no Linux ou Mac OS X e informe no prompt a instrução: lua53 nome_do_programa.lua
Os programas escritos em Lua, quando gravados, devem ser acrescidos da extensão .lua para que o interpretador consiga identificar o programa a ser executado.
1.3 Interatividade A linguagem de programação Lua possui um ambiente de trabalho que pode ser usado interativamente. Nesse modo, é possível realizar algumas tarefas operacionais. Na linha de comando prompt (modo terminal) do sistema operacional em uso, faça a chamada do programa lua53, acione <Enter>. Será apresentada a mensagem de identificação: Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio >
O símbolo “>” caracteriza o prompt do ambiente interativo da linguagem Lua. Para sair do prompt do ambiente Lua e retornar ao terminal do sistema operacional, basta executar o comando os.exit() e, em seguida, acionar a tecla <Enter> ou <Return> ou ainda usar as teclas de atalho <Ctrl> + <c> ou as teclas de atalho <Ctrl> + <z> + <Enter>, dependendo do sistema operacional em uso. Dentro do ambiente interativo, é possível informar comandos com o sentido de obter respostas imediatas. Por exemplo, desejando-se obter o resultado da soma do valor 7.5 com o valor 4.8, basta executar a linha de comando: print(7.5 + 4.8)
Após acionar a tecla <Enter> ou a tecla <Return>, o resultado obtido será 12.3. Veja a seguir uma série de operações com cálculos matemáticos que podem ser efetivadas junto ao ambiente interativo.
Capítulo 1 ■ Introdução
17
print(-2 + -3) print(2 * 3) print(10 / 4) print(10 % 4) print(2 ^ 3) print(2 + 5 * 3) print(2 + (5 * 3)) print((2 + 5) * 3)
Os exemplos apresentados anteriormente resultam respectivamente nos valores: -5, 6, 2.5, 2, 8, 17 e 21. O ambiente interativo retorna mensagens de erro quando algo não é escrito dentro das regras sintáticas do ambiente. Por exemplo, execute o código: print(2 + + 3)
Ocorrerá a apresentação da mensagem de erro: stdin:1: unexpected symbol near '+'. Para obter resultados de cálculos matemáticos, pode-se substituir o comando print() pelo símbolo “=”, igual a, ou mesmo o omitir a partir da versão 5.3 da linguagem. Dessa forma, podem ser definidos os seguintes cálculos. =2*3 =2/3 =2+3 =2-3 2*3
2/3
2+3
2-3
Serão apresentados os resultados 6, 0.66666666666667, 5 e -1 para a execução de ambas as linhas. Os cálculos efetivados poderão trabalhar com outros formatos numéricos, como valores expressos em notação científica. Por exemplo, caso deseje obter o resultado decimal do valor 9.5e2, sendo: 9.5e2
O resultado apresentará o valor 950, pois se calcula o valor 9.5 multiplicando-se por 10 e elevando-se a potência 2, ou seja, 9.5 x 102. Experimente =9.5e-2 para obtenção do resultado 0.095.
18
Introdução à linguagem Lua
Outra possibilidade é o uso de valores hexadecimais convertidos em valores decimais. Por exemplo, observe os seguintes comandos. 0xa
0xA
0Xa
0XA
Ao serem executados, todos resultarão na apresentação do valor 10, pois o valor A hexadecimal é igual ao valor 10 em decimal. Não importa como é definido o valor, seja em formato de caractere maiúsculo ou formato de caractere minúsculo, o resultado será sempre apresentado. O ambiente interativo da linguagem Lua aceita o uso de variáveis. Por exemplo, informe as linhas de código seguintes acionando a tecla <Enter> ou <Return> para cada linha informada. A = 2 B = 3 print(A + B)
Observe o surgimento do valor 5 como resultado da operação. Um cuidado que se deve tomar na definição de variáveis é com relação ao nome atribuído. Por exemplo, as seguintes variáveis não são as mesmas, pois a linguagem Lua é do tipo case sensitive e diferencia caracteres maiúsculos de minúsculos. COR = 1 COr = 2 Cor = 3 cor = 4 cOR = 5 cOr = 6 CoR = 7 coR = 8 print(COR) print(COr) print(Cor) print(cor) print(cOR) print(cOr) print(CoR) print(coR)
Capítulo 1 ■ Introdução
19
Outro detalhe no uso e na definição de variáveis é a possibilidade de se efetivar a criação de múltiplas variáveis. Por exemplo, observe o código seguinte: CODIGO, NOME = 1965, "Manzano" print(CODIGO) print(NOME)
Note que serão apresentados os valores 1965 e Manzano. O símbolo “=” separa os conteúdos 123 e Paulo das variáveis CODIGO e NOME, fazendo a atribuição dos valores respectivamente às variáveis indicadas.