Alunos. Hudson Martins da Silva Laércio Pedro Hoppe



Documentos relacionados
Ruby. Simplicidade e produtividade

História. Nasceu em 1993, numa discussão entre Yuhikiro Matsumoto e um colega.

Começando com Ruby on

Linguagem de Programação. Helder Lucas S. Silas Valdemar

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Ruby e Ruby on Rails

Bruno Jurkovski Lucas Fialho Zawacki. Site do curso:

Sistema Gerador de Anúncios para Compra e Venda On-line. Leandro de Oliveira ol.leandro@gmail.com

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Tudo o que Você Sempre Quis Saber Sobre Linguagens de Programação* (*Mas Tinha Medo de Perguntar) Diego Padilha Rubert FACOM

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Introdução à Linguagem

Linguagens de Programação 2015/1. Ruby. Diego Rodrigues Leonardo Rodrigues

2 echo "PHP e outros.";

Linguagens de Programação. Introdução. Carlos Bazilio

Sobre o Professor Dr. Sylvio Barbon Junior

Fonte (livro-texto): Conceitos de Linguagens de Programação, 4ed. Robert W. Sebesta

Programação Web Prof. Wladimir

Práticas de Desenvolvimento de Software

Allisson Barros 12/ Daniel Luz 13/ Leandro Bergmann 14/ Luiz Fernando Vieira 13/ Uriel Silva 12/

Programação Orientada a Objetos

Paradigmas de Linguagens de Programação

Tutorial Ruby versão 0.3 SOBRE O TUTORIAL

Java. Marcio de Carvalho Victorino

1.6. Tratamento de Exceções

Bruno Jurkovski Lucas Fialho Zawacki. Site do curso:

Linguagem de Programação Introdução a Linguagem Java

2 Orientação a objetos na prática

Orientação a Objetos com Java

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Linguagens de programação

Conteúdo Programático de PHP

PRESIDÊNCIA DA REPÚBLICA SECRETARIA-GERAL Secretaria-Executiva

Conceitos de Linguagens de Programação

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Linguagens de Programação. Linguagens de Script. Carlos Bazilio

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1

FBV - Linguagem de Programação II. Um pouco sobre Java

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Fundamentos de Programação II. Introdução à linguagem de programação C++

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Programação Orientada a Objetos

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Profº. Enrique Pimentel Leite de Oliveira

Adriano Reine Bueno Rafael Barros Silva

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Introdução à Linguagem Java. Departamento de Informática Prof. Anselmo C. de Paiva

CONVENÇÃO DE CÓDIGO JAVA

Herança e Polimorfismo de Inclusão

CURSO DE PROGRAMAÇÃO EM JAVA

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Figura 01 Kernel de um Sistema Operacional

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

UNIVERSIDADE PRESBITERIANA MACKENZIE FACULDADE DE COMPUTAÇÃO E INFORMÁTICA

PROGRAMA DE DISCIPLINA

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Python. Introdução à Programação SI1 - BSI

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

1. Apresentação Objetivos

Computação II Orientação a Objetos

Componentes da linguagem C++

Resumo da Introdução de Prática de Programação com C. A Linguagem C

JSP - ORIENTADO A OBJETOS

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

UFRPE Prof. Gustavo Callou

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Aspectos de Segurança em Programação com Java

Primeiro Curso de Programação em C 3 a Edição

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

Programação Orientada a Objetos em Java. Herança

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

PROGRAMA DE DISCIPLINA

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Capítulo 8. Software de Sistema

Programação Web com PHP. Prof. Wylliams Barbosa Santos Optativa IV Projetos de Sistemas Web

Introdução ao Javascript. Parte 2 Prof. Victor Hugo Lopes

Programação de Computadores - I. Profª Beatriz Profº Israel

INTRODUÇÃO À LINGUAGEM C/C++

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Sistemas Operacionais

Programação Orientada a Objeto em Python

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Minicurso de Python Aula 1. Raphael Lupchinski Marcelo Millani

Programação Orientada a Objetos em Java

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java

FundamentosemInformática

Fundament n os s da platafo f rm r a. NE N T André Menegassi

Programação de Computadores - I. Profª Beatriz Profº Israel

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Tutorial Básico. Instalando e testando o Ruby on Rails no Windows

Paradigmas de Linguagens de Programação. Aspectos Preliminares

Transcrição:

Alunos Hudson Martins da Silva Laércio Pedro Hoppe

Desenvolvida no Japão em 1995, por Yukihiro "Matz" Matsumoto. Linguagem de script. Mais poderosa do que Perl, e mais orientada a objetos do que Python. Escrita em C Uniu partes das suas linguagens favoritas: Perl, Smalltalk, Eiffel, Ada e Lisp. Equilibra a programação funcional com a programação imperativa.

Tento tornar o Ruby natural, não simples O Ruby é simples na aparência, mas muito complexo no interior, tal como o corpo humano. Inicialmente foram propostos dois nomes: Coral e Ruby Matsumoto escolheu Ruby por ser a pedra zodiacal de um de seus colegas. Totalmente livre. Não somente livre de custos, mas também livre para utilizar, copiar, modificar e distribuir.

* Lista de discussão em inglês chamada Ruby-Talk O primeiro livro em inglês, Programming Ruby, liberado gratuitamente para o público, ajudou no processo de adoção de Ruby por falantes do inglês. Por volta de 2005, o interesse pela linguagem Ruby subiu em conjunto com o Ruby on Rails, um framework de aplicações web popular escrito em Ruby. Eleita Linguagem de Programação do Ano em 2006 RubyForge: repositório de projetos

Ruby é compatível com os sistemas Windows, Linux e Mac OS. Os códigos binários podem ser obtidos no site: https://www.ruby-lang.org/pt/downloads/ No caso das versões Ubuntu/Debian do Linux e seus derivados, digite no terminal:

Estrutura Geral: Linguagem interpretada; Orientada à objetos ( tudo é objeto); Portável; Trabalha com herança, classes, métodos, polimorfismo e escalonamento; Sintaxe relativamente simples e de fácil compreensão Tipagem dinâmica mas forte A sintaxe é enxuta, quase não havendo necessidade de colchetes e outros caracteres. Linguagem de propósito geral

Ruby possui, assim como Python, um modo interativo onde é possível interpretar linhas de códigos instantaneamente:

Sintaxe limpa, simples e exata. Leitura natural e fácil escrita. O Ruby é simples na aparência, mas muito complexo no interior, tal como o corpo humano. Linguagem de Máquina + Linguagem Natural Exemplo:

Para inserir cométarios basta iniciar a linha com #. Exemplo

As palavras reservadas da linguagem Ruby são:

Por a tripagem ser dinâmica, não precisamos declarar o tipo de variável:

Podemos fazer uma conversão explícita das variáveis usando os métodos to_i (para int), to_f (para float) e to_s (para string)

As cadeias de caracteres (ou strings ) são representadas por aspas duplas ou simples: Podemos realizar operações sobre strings :

Ruby suporta um rico conjunto de operadores. A maioria dos operadores são na verdade chamadas de métodos. Por exemplo, a + b é interpretado como a.+(b), onde o método + é invocado pelo objeto a e tem como parâmetro de entrada b.

Semelhante ao if...else do C/C++ e Java if (teste lógico) comandos elsif comandos else comandos end

Semelhante ao Switch-Case do C/C++ e Java

Semelhante ao while do C/C++ e Java. Forma: while (teste lógico) end comandos

Semelhante ao for de Java. Forma: for variavel in intervalo end comandos

Semelhante ao do-while de C/C++. Forma: begin comandos end until (teste logico) Exemplo: i = 10 begin puts i i = i 1 end until (i == 0)

As funções, ou métodos como são chamados em Ruby, são definidos seguindo a forma: def nome_da_função(parametro1, parametro2,...) end <bloco de comandos> Exemplo: def dict(a, b) return a puts b end

Existem apenas duas estruturas de dados pré-definidas junto a linguagem. Arrays e Hash

Arrays são equivalentes aos vetores de C/C++, com exceção de serem dinamicamente alocadas e podem ter vários tipos simultaneamente.

Hashs são dicionários em que cada elemento do vetor é associado a uma chave.

Ruby, por ser uma linguagem orientada a objetos, possui também o conceito de classes. A definição de classe segue a regra: class Nome_da_classe end definições

Métodos e atributos, semelhantemente a Java e C++ podem ser definidos como public, private e protected. Por defualt, métodos são públicos e atributos privados.

Ruby provém geradores automáticos de getters e setters em tempo de execução para os atributos com os comandos attr_writer: var para setters e attr_reader: var para getters. Existe ainda o attr_accessor: var que gera getters e setters

Ruby também possui o mecanismo de herança. A sintaxe: class Nome_da _classe <nome_da_classe_pai end comandos

Ruby não suporta herança múltipla, ao invés disso usa o recurso de mixins para emular a herança múltipla. class Pessoa < Mamifero # Herança de Mamifero include Humano # Emulando herança múltipla end

Pode-se dizer que todas as funções de Ruby são usam o polimorfismo paramétrico, a não ser que a função contenha alguma operação que a impeça.

Ruby suporta tratamento de exceções por meio da sintaxe: begin Código rescue Tratamento da exceção

Outros comandos para tratamento de exceções são: fail // semelhante ao throw do Java retry // Usado dentro do bloco rescue. Ele diz ao interpretador para novamente executar o bloco dentro de begin após o tratamento de exceção. ensure (código) // Comando que executa independentemente do sucesso ou fracasso dentro de begin.

Ruby possui suporte a concorrência por meio da classe Threads e o uso de semáforos por meio da classe Mutex.

Gerenciador de pacotes de Ruby. Disponibiliza um formato padrão para a distribuição de programas e bibiliotecas Ruby, são os pacotes denominados gems. Tem como fonte padrão o seu site oficial (rubygems.org), no site há espaço para desenvolvedores cadastrados disponibilizarem suas bibiliotecas para toda comunidade.

Aplicabilidade Concorrência Simulações, Robótica, Redes, Telefonia, Administração de Sistemas, Aplicações Web Sim (threds, semaforos) Confiabilidade Média Custo Baixo (Linguagem free, altamente portavel) Eficiência Excessões Facilidade de Aprendizado Baixa (Interpretada) Possui tratamento, a cargo do programador Boa Gerencia de Memória Integração Gabarge Colector Java, C#, PHP

Legibilidade Método de Projeto Passagem de parâmetros Polimorfismo Portabilidade Boa Interpretada, multiparadigma (funcional, OO, imperativa, reflexiva) Por cópia da referência Herança simples. Coerção. Não admite sobrecarga Alta (Linux, windows, Mac, etc) Redigibilidade Reusabilidade Excelente Alta Ortogonalidade Ruim Verificação de Tipos Tipagem dinâmica e forte

Ruby e suas tecnologias são utilizadas por grandes corporações em diversos tipos de aplicações, destinadas por exemplo, a telefonia, gerência de sistemas e redes, portais corporativos, comércio eletrônico, redes sociais e até mesmo robótica.

Segundo informação do site Workingwithrails, grandes empresas brasileiras como Rede Globo, Grupo Abril, Locaweb, e gigantes internacionais como BBC, AOL, Amazon, Groupon entre outras utilizam a tecnologia Ruby on Rails em suas organizações.

Framework livre de desenvolvimento web. Permite desenvolvimento rápido e fácil de aplicações, seguindo o padrão de arquitetura MVC (Model- View-Controller). Tem sido a maior razão para o sucesso de Ruby na web.

Implementação da linguagem Ruby para plataforma Java Roda sobre a JVM Threads Nativas JIT (Just-in-time compiler) Garbage colector Possibilidade de utilizar bibliotecas e classes Java Jar's, servlets, hibernate, JDBC, etc. Suporta Rubygems Suporta Rails

http://www.dotlib.com.br/i/4768a22a0d58da3cfa71294e 40ed6229.pdf http://www.ruby-lang.org http://pt.wikipedia.org/wiki/ruby_(linguagem_de_progra ma%c3%a7%c3%a3o) http://www.tryruby.org http://www.slideshare.net/belighted/ruby-vs-java http://www.urubatan.com.br/ruby-on-rails-x-java-web/ http://www.pardontheinformation.com/2008/09/java-vsruby-on-rails-it-is-dead-heat.html http://jruby.org/ http://rubyonrails.com.br http://rubygems.org/ http://www.youtube.com/watch?v=5b3qd2vmlws http://www.oficinadanet.com.br/artigo/1072/ruby_o_que _e