:: Topo :: doCoding :: Linguagens de Programação :: Ruby :: FORPC101 ::

Week-11

Aprendizagem

Expressões Regulares

As expressões regulares são excelentes para pattern-matching e para processamento de texto. Uma expressão regular corresponde a uma forma simples de especificar um padrão a ser reconhecido numa sequência de caracteres.

Em Ruby, as expressões regulares são:

  1. instâncias de class Regexp.
  2. construídas normalmente com slashs: /pattern/.

A classe Regexp disponibiliza os métodos:

  1. match() - para verificar se o padrão é encontrada na sequência de caracteres - string. O resultado ou é nil ou é uma instância de classe MatchData.
  2. =~ - semelhante ao método match() mas que retorna a posição inicial na string onde começa o padrão, quando é encontrado.

A construção do padrão tem como caracteres especiais os seguiintes - que precisam de ser escaped com uma back-slash (\): ^, $, ? , ., /, \, [, ], {, }, (, ), +, *

Mais informações em Using Regular Expressions with Ruby.

Threads

Em Ruby uma thread é uma sequência de instruções em Ruby que executam - ou aparentam executar - em paralelo com a sequência de instruções principal do programa. As threads são implementadas dentro do interpretador Ruby - green threads - o que lhes permitem ser portáveis para diferentes sistemas operativos. No entanto, não se colhe os benefícios de native threads, pelo que pode ocorrer thread starvation - quando uma thread the baixa prioridade nunca consegue executar. Além disso, não tira partido de múltiplos processadores num só sistema.

Sockets

A classe BasicSocket, da qual derivam as restantes, deriva ela própria da classe IO.

As classes Socket existem na Standard Library Socket, devendo por isso ser incluída com:

require 'socket'

Os portos são agrupados em intervalos:

  • Well Known Ports - 0..1023
  • Registered Ports - 1024..49151
  • Dynamic and/or Private Ports - 49152..65535.

Exercícios

Esta semana não há exercícios.

Questionário

Referências

Considerações

Pontos Altos

Esta secção regista o que considero serem os pontos altos da linguagem Ruby quando comparada com outras linguagens que conheço.

  1. as threads são portáveis, e muito simples de usar.
  2. é muito fácil programar sockets com base na Standard Library Socket.
  3. Ruby une o poder e flexibilidade das expressões regulares com a simplicidade em as usar.

Pontos Baixos

Esta secção regista o que considero serem os pontos baixos da linguagem Ruby quando comparada com outras linguagens que conheço.

  1. as threads não são nativas, pelo que não tiram partido de múltiplos processadores e permitem a ocorrência de thread starvation.
 
docoding/languages/ruby/forpc101/week-11.txt · Modificado em: 2008/09/25 10:07 por straider     Voltar ao topo