Apresentação da Linguagem Lua

Renato Maia, mestre e doutor em Informática pela PUC-Rio, compareceu na USP para falar sobre a linguagem de programação Lua. Ela é uma linguagem de características dinâmicas desenvolvida no Brasil e utilizada em todo o mundo em centenas de projetos relevantes.

  • Interpretação de Código


code = loadstring( " print( ’ H e l l o , Wo r l d ! ’ ) " )
code ( ) --> H e l l o , Wo r l d !

  • Tipagem dinâmica


a = 1
print( a+a ) −−> 2
a = " a "
print( a+a ) −−> attempt to perform arithmetic on global ’ a ’

  • Coleta automática de lixo


file = assert( io.open( "file.txt " , " w" ) )
file : write( a )
file : close( )
file = nil --> conteudo de 'file’ vira lixo a ser coletado

  • Reflexão compulacional


function string:trim( )
  return self:match ( " ^%s*( . −) % s * $ " )
end

user name = " admin "
print ( username:trim( ) ) −−> admin

Lua é uma linguagem de extensão extensível. É uma biblioteca ANSI C, ou seja, um subset do C. Foi construída na PUC-Rio entre 1993-2009.

A aplicabilidade de Lua é bastante vasta. Usada no Adobe Photoshop Lightroom, Ginga TV Digital, Firmware de impressoras, Analisador de protocolos, Pós Graduação de Filmes, Servidores Web (RealTimeLogic),  Jogos, etc.

Imagem14

Após a palestra, fizemos o DOJO com a participação especial do Renato Maia.

Para detalhes mais técnicos, você pode conferir os ótimos slides do Renato clicando no link:

apres-lua-RenatoMaia

Outra documentação interessante:

http://www.lua.org/manual/5.1/pt/

Publicado em Dojo, linguagens. 2 Comments »

Mudando o paradigma com Haskell

Aprender coisas novas é divertido. Para nós, desenvolvedores, aprender uma linguagem nova também será divertido e , com certeza, nos tornará melhores programadores.

Muitas pessoas se deparam com um problema e pensam como seria implementar a solução na linguagem de programação que está aconstumado. Porém não existe a linguagem ideal para todos os problemas, não existe a linguagem “bala de prata” (Vejam essa tradução).

Devemos saber aplicar a ferramenta certa para cada problema, e se só conhecemos uma linguagem, nunca saberemos se tem maneiras melhores de resolver algo.

Agora, falando de Haskell:

“Haskell é uma linguagem funcional, de concepção moderna, cuja base é a fundamentação matemática do cálculo lambda. Apresenta conceitos diferenciais como tipagem polimórfica, avaliação preguiçosa, funções de alta-ordem e sobrecarga de funções. Seu ambiente operacional se baseia em um esquema de carregamento de módulos que apresentam funções específicas com um amplo espectro de aplicações.” (Livro de Haskell)

Essa linguagem segue um paradigma de programação funcional e foi a linguagem que influenciou o Python. O Python é outra linguagem que venho me interessando bastante.

Outras linguagens que seguem a linha de programação funcional são ErlangR (estatística), Mathematica (matemática simbólica) J e K (análise financeira) e XSLT. Importantes influências na programação funcional foram o cálculo lambda, as linguagens de programação APL e Lisp, e mais recentemente ML.

Eu estive no DOJO SP e comentei sobre um problema que resolvemos com Haskell nesse blog. Interessante que o problema foi muito bom para entender e aplicar TDD.

O Phillipe Calçado escreveu um excelente post aqui. O Leandro Silva também escreveu um bem legal aqui.

Publicado em Dojo, linguagens. Tags: , , . 1 Comment »