08.02.2015 Views

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

Programação Funcional e Concorrente com Scheme

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

notas de aula - Jerônimo C. Pellegrini<br />

12.1.4 Seleção de mensagens por predicado . . . . . . . . . . . . . . . . . . 274<br />

12.1.5 Seleção de mensagens por casamento de padrões . . . . . . . . . . . 274<br />

12.2 Mensagens síncronas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274<br />

12.2.1 Seleção de mensagens . . . . . . . . . . . . . . . . . . . . . . . . . . . 276<br />

13 Formalismos e Paradigmas usando troca de mensagens 279<br />

13.1 Communicating Sequential Processes e mensagens síncronas . . . . . . . . 279<br />

13.1.1 Motivação: problemas <strong>com</strong> objetos . . . . . . . . . . . . . . . . . . . . 279<br />

13.1.2 Conceitos fundamentais do CSP . . . . . . . . . . . . . . . . . . . . . 280<br />

13.1.2.1 Criação de processos paralelos . . . . . . . . . . . . . . . . . 281<br />

13.1.2.2 Eventos de <strong>com</strong>unicação . . . . . . . . . . . . . . . . . . . . 283<br />

13.1.2.3 Escolha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286<br />

13.1.3 occam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287<br />

13.2 O modelo Actor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288<br />

13.2.1 Programando no modelo Actor . . . . . . . . . . . . . . . . . . . . . . 290<br />

13.2.1.1 Comportamentos . . . . . . . . . . . . . . . . . . . . . . . . 290<br />

13.2.1.2 Criação de atores . . . . . . . . . . . . . . . . . . . . . . . . 291<br />

13.2.1.3 Criação de tarefas . . . . . . . . . . . . . . . . . . . . . . . . 291<br />

13.2.1.4 Declarações de interface <strong>com</strong> o mundo externo . . . . . . . 291<br />

13.2.1.5 O ator determina seu substituto . . . . . . . . . . . . . . . . 291<br />

13.2.2 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292<br />

13.2.2.1 Fatorial recursivo <strong>com</strong> mensagens . . . . . . . . . . . . . . 292<br />

13.2.2.2 Pilha <strong>com</strong> troca de mensagens . . . . . . . . . . . . . . . . . 293<br />

13.2.2.3 Quicksort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295<br />

13.2.2.4 Programação genética . . . . . . . . . . . . . . . . . . . . . . 296<br />

13.2.2.5 Fluxo em redes . . . . . . . . . . . . . . . . . . . . . . . . . . 297<br />

13.2.3 Implementações do modelo Actor . . . . . . . . . . . . . . . . . . . . 297<br />

13.3 Termite <strong>Scheme</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297<br />

13.3.1 Facilidades de alto nível . . . . . . . . . . . . . . . . . . . . . . . . . . 299<br />

13.3.1.1 Processamento seletivo de mensagens . . . . . . . . . . . . 299<br />

13.3.1.2 Casamento de Padrões . . . . . . . . . . . . . . . . . . . . . 301<br />

13.3.1.3 Procedimentos remotos síncronos . . . . . . . . . . . . . . . 302<br />

13.3.2 Fechos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302<br />

13.3.3 Exceções e processos ligados . . . . . . . . . . . . . . . . . . . . . . . 302<br />

Versão Preliminar<br />

13.3.4 Continuações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302<br />

13.3.4.1 Migração de processos . . . . . . . . . . . . . . . . . . . . . 302<br />

13.3.4.2 Clonagem de processos . . . . . . . . . . . . . . . . . . . . . 303<br />

13.3.5 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303<br />

vi<br />

[ 27 de outubro de 2010 at 15:47 ]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!