introdução a linguagem de programação ruby

39
Linguagem de Programação - Ruby Diego Rubin - [email protected]

Upload: diego-rubin

Post on 24-May-2015

8.185 views

Category:

Documents


6 download

DESCRIPTION

Apresentação utilizada em palestra na ETEC Prof. Armando Bayeux da Silva em 2008 e na Semana de Estudos do curso de Sistemas de Informação na faculdade Asser de Rio Claro em 2009.

TRANSCRIPT

Page 1: Introdução a Linguagem de Programação Ruby

Linguagem de Programação - Ruby

Diego Rubin - [email protected]

Page 2: Introdução a Linguagem de Programação Ruby

Ruby - IntroduçãoRuby - Introdução

● Desenvolvida por Yukishiro Matsumoto;● Lançada em 1995;● Baseado nas linguagens Perl, SmallTalk e

Python;● Escrita em C;● Famosa por causa do framework Rails;● Multiplataforma;● Versão 1.8

Page 3: Introdução a Linguagem de Programação Ruby

Ruby - CaracterísticasRuby - Características

● Interpretada;

Page 4: Introdução a Linguagem de Programação Ruby

Ruby - CaracterísticasRuby - Características

Uma Linguagem Interpretada● Não há compilação do código;

● A analise sintática acontece em tempo de execução;

Page 5: Introdução a Linguagem de Programação Ruby

Ruby - CaracterísticasRuby - Características

● Interpretada;● Tipagem dinâmica e forte;

Page 6: Introdução a Linguagem de Programação Ruby

Ruby - CaracterísticasRuby - Características

Tipagem● Não é necessário a declaração das variáveis;

Exemplo em Pascal

vari:integer

begini:= 5;

end.

Exemplo em Ruby

i = 5

i = “Inteiro”

● Tipagem forte;

● Objeto tem como limite a memória;

Page 7: Introdução a Linguagem de Programação Ruby

Ruby - CaracterísticasRuby - Características

● Interpretada;● Tipagem dinâmica e forte;● Obedece ao paradigma da orientação a

objeto;

Page 8: Introdução a Linguagem de Programação Ruby

Ruby - CaracterísticasRuby - Características

Orientação a Objetos● Considerada totalmente orientadas a objetos;

● Tipos primitivos são classes;

● Mixin's, uma alternativa a herança múltipla;

Page 9: Introdução a Linguagem de Programação Ruby

Ruby - CaracterísticasRuby - Características

● Interpretada;● Tipagem dinâmica e forte;● Obedece ao paradigma da orientação a

objeto;● Linguagem de propósito geral;

Page 10: Introdução a Linguagem de Programação Ruby

Ruby - CaracterísticasRuby - Características

Linguagem de Propósito Geral● Scripts● Aplicativos Desktop● Aplicativos Web● Serviços Web

Page 11: Introdução a Linguagem de Programação Ruby

Ruby - CaracterísticasRuby - Características

● Interpretada;● Tipagem dinâmica e forte;● Obedece ao paradigma da orientação a

objeto;● Linguagem de propósito geral;● E...

Page 12: Introdução a Linguagem de Programação Ruby

Ruby - CaracterísticasRuby - Características

É Livre

Page 13: Introdução a Linguagem de Programação Ruby

Instalando o InterpretadorInstalando o Interpretador

No Linux:

Nas principais distros ele já vem instalado, se não vier e só usar o gerenciador de pacotes deles.Tarball

$ tar -zxvf ruby-1.8.x.tar.gz$ cd ruby-1.8.x$ ./configure && make$ su# make install

No Windows:

Baixar o instalador no site oficial do ruby.Depois NNF.

Page 14: Introdução a Linguagem de Programação Ruby

Ferramentas - IRBFerramentas - IRB

Especie de “prompt de comando”.Muito útil para teste de código.

Instalação:

Em ambos os sistemas operacionais o IRB já é instalado com o interpretador,

Page 15: Introdução a Linguagem de Programação Ruby

Ferramentas - GEMFerramentas - GEM

Gerenciador de bibliotecas do Ruby.Possui funcionamento semelhante ao apt, yum, yast, etc...Possui mais de 3000 gems no repositório.

Instalação:

Como no caso do IRB, o gem já vem instalado com o interpretador.

Page 16: Introdução a Linguagem de Programação Ruby

RubyForgeRubyForge

Repositório de projetos.Os principais projetos em Ruby são hospedados nele.Grande fonte de documentação.

Page 17: Introdução a Linguagem de Programação Ruby

SintaxeSintaxe

● Variáveis

● Blocos de Códigos

● Definição de Métodos

● IF – ELSE

● CASE

● WHILE

● FOR

● UNTIL

● Operadores Lógicos

● ARRAYS

● HASHES

● REQUIRE

Page 18: Introdução a Linguagem de Programação Ruby

Sintaxe - VariáveisSintaxe - Variáveis

→ Variáveis GlobaisAs variáveis globais devem começar com “$”.Exemplo:$i = “global”

def teste$i = “teste”

end

→ Variareis de InstanciaAs variáveis de instancia devem começar com “@”.Exemplo: class Pessoa

def set_nome(nome)@nome = nome

enddef get_nome

return @nomeend

end→ Constantes

Por padrão, constantes devem possuir todas as letras maiúsculas.

Exemplo: ARGV

Page 19: Introdução a Linguagem de Programação Ruby

Métodos/FunçõesMétodos/Funções

def nome_da_funcao(parametro1, parametro2, ...)<bloco de comandos>

end

Exemplo:def alo(nome)

puts “Oi #{nome}.”end

Parâmetro Variável:def alo(*args)

args.each {|a| puts “Oi #{a}”}end

O Comando return:

def soma(a,b)a + b

end

def dict(a,b)return aputs b

end

Page 20: Introdução a Linguagem de Programação Ruby

Sintaxe – BlocosSintaxe – Blocos

do<comandos>

end

Ou

{<comandos>

}

Implementação:def metodo

yieldend

Utilização:

metodo { <comandos> }

Com Parâmetros:def metodo(n)

yield(n)end

Utilização:

metodo(2) {|i| i + 3}

Page 21: Introdução a Linguagem de Programação Ruby

Sintaxe – IFSintaxe – IF

if (booleano)comandos

end

Exemplo

if (i == 5)puts(i)

end

ouputs(i) if (i == 5)

Page 22: Introdução a Linguagem de Programação Ruby

Sintaxe – IF - ELSESintaxe – IF - ELSE

if ( teste logico) comandos

elsecomandos

endExemplo

if ( i.nil?) puts(“Valor de i é nil”)

elseputs(i)

end

Page 23: Introdução a Linguagem de Programação Ruby

Sintaxe – Operadores LógicosSintaxe – Operadores Lógicos

Operadores Função && E|| OU! NÃO

== IGUAL!= DIFERENTE

andornot

Page 24: Introdução a Linguagem de Programação Ruby

1º Exemplo : Fatorial1º Exemplo : Fatorial

def fatorial(n) if(n > 1) n * fatorial(n-1) else 1 endendputs fatorial(ARGV[0].to_i)

Page 25: Introdução a Linguagem de Programação Ruby

Sintaxe – CaseSintaxe – Case

case ( variavel) when valor

comandoswhen valor2

comandoselse

comandosend

Exemplo1

case (i)when 1..6

puts(“esta entre 1 e 6”)when 8

puts (“i igual a 8”)else

puts (“nao sei”)end

Exemplo2

case (i)when 1..6

puts(“esta entre 1 e 6”)when “string”

puts (“i não e inteiro”)else

puts (“nao sei”)end

Page 26: Introdução a Linguagem de Programação Ruby

Sintaxe – WHILESintaxe – WHILE

while (teste logico) comandos

end

Exemplo

while (i < 10)puts ii = i +1

end

Page 27: Introdução a Linguagem de Programação Ruby

Sintaxe – UNTILSintaxe – UNTIL

begin comandos

end until (teste logico)

Exemplo

i = 10begin

puts ii = i – 1

end until ( i == 0)

Page 28: Introdução a Linguagem de Programação Ruby

Sintaxe – FORSintaxe – FOR

for variavel in intervalocomandos

end

Exemplo

for i in 0..10puts i

end

Page 29: Introdução a Linguagem de Programação Ruby

Sintaxe – ARRAYSSintaxe – ARRAYS

Construtor:nome_array = []

Atribuindo Valores:

nome_array[0] = 5nome_array[1] = “String”nome_array[2] = Pessoa.new

Exemplo 1:

for i in 0..3puts nome_array[i]

end

Exemplo 2:

nome_array.each { |i| puts i}

Page 30: Introdução a Linguagem de Programação Ruby

Sintaxe – HASHESSintaxe – HASHES

Construtor:nome_hash = {}

Atribuindo Valores:

nome_hash= {1 => 2, “a” => “b” }nome_hash[“palavra”] = “word”nome_hash[“classe pessa”] = Pessoa.new

Exemplo:

Saída do exemplo acima no irb.

irb(main):014:0> nome_hash=> {5=>10, "pessoa"=>#<Pessoa:0xb7c853f4>, "a"=>"b", 1=>5}

Page 31: Introdução a Linguagem de Programação Ruby

MódulosMódulos

module Nome_do_modulocomandos

end

Exemplo:module Lobo

def self.uivar“ahuuu”

endend

Saída:

irb(main):036:0> Lobo.uivar=> "ahuuu"

Page 32: Introdução a Linguagem de Programação Ruby

Classes - ConstruçãoClasses - Construção

class Nome_da_classecomandos

end

Exemplo 1:class Pessoa

def set_nome(nome)@nome = nome

enddef get_nome

@nomeend

end

Instanciando 1:pessoa = Pessoa.new

Observação:O nome das classes devem começar com uma letra maiúscula

Exemplo 2:class Pessoa

def initialize(nome)@nome = nome

enddef set_nome(nome)

@nome = nomeenddef get_nome

@nomeend

endInstanciando 2:pessoa = Pessoa.new(“Exemplo”)

Page 33: Introdução a Linguagem de Programação Ruby

Classes - HerançaClasses - Herança

class Nome_da_classe < Nome_da_classe_paicomandos

end

Exemplo 1:class Estudante < Pessoa

def set_ra(ra)@ra = ra

enddef get_ra

@raend

end

Instanciando 1:estudante = Estudante.new

Exemplo 2:class Estudante < Pessoa

def initialize(nome,ra)@nome = nome@ra = ra

enddef set_ra(ra)

@ra = raenddef get_ra

@raend

end

Instanciando 2:estudante=Estudante.new(“Exemplo”, 001)

super

Page 34: Introdução a Linguagem de Programação Ruby

Classes – Método SingletonClasses – Método Singleton

Consiste em definir um metodo para uma instancia que a classe pai não possui.

Exemplo:class Mamifero

def produz_leiteputs “usa como alimento para seus filhotes”

enddef possui_pelos

puts “possui pelos”end

end

morcego = Mamifero.newdef morcego.voa

puts “um mamifero que voa”end

Page 35: Introdução a Linguagem de Programação Ruby

Classes – Attribute Readers e WritersClasses – Attribute Readers e Writers

Gera, em tempo de execução, os métodos setters e getters dos atributos.

Exemplo:

class Pessoaattr_accessor :nome

end

→ Para gerar somente os settersattr_writer :nome

→ Para gerar somente os gettersattr_reader :nome

Page 36: Introdução a Linguagem de Programação Ruby

Classes – Mixin'sClasses – Mixin's

Alternativa a herança múltipla

class Nome_da_classe < Nome_da_classe_paiinclude nome_do_modulo

end

Exemplo:

class Lobisomen < Pessoainclude Lobo

end

Page 37: Introdução a Linguagem de Programação Ruby

Sintaxe – REQUIRESintaxe – REQUIRE

Importa arquivos de código.Equivalente ao “uses” do Pascal.

Exemplo:

require “arquivo_de_classes.rb”require “libmysql”require “rexml/document”

Page 38: Introdução a Linguagem de Programação Ruby

2º Exemplo - Ordenar2º Exemplo - Ordenar

arq_novo = File.open("lista_ordenada.txt", "w")File.open("lista.txt").sort.each do |nome| arq_novo.puts nomeend

Page 39: Introdução a Linguagem de Programação Ruby

Link`sLink`s

Site Oficial, onde pode ser baixado o interpretador:http://www.ruby-lang.org/

RubyForge:http://www.rubyforge.org/

Site Oficial do Binding do Gtk para o Ruby:http://ruby-gnome2.sourceforge.jp

Meu blog:Http://diegorubin.github.com

Repositório do Minicurso no GitHubhttp://github.com/diegorubin/Minicurso-Asser/