Uma Linguagem de Domíınio Específico para Programação de Memórias Transacionais em Java

AUTOR(ES)
DATA DE PUBLICAÇÃO

2010

RESUMO

As arquiteturas multi-core influenciam diretamente no desenvolvimento de software. Para que os programas possam tirar proveito dessas arquiteturas e necessario que estes possuam varias atividades concorrentes e que possam ser alocadas aos cores dispon ıveis. Programas concorrentes para maquinas multi-core sao geralmente implementados usando threads e se comunicam atraves de uma memoria compartilhada. Para evitar que threads interfiram de maneira errada no trabalho de outras threads, as linguagens fornecem mecanismos de sincronizac ao, como por exemplo bloqueios. Mas sincronizac oes baseadas em bloqueios apresentam algumas armadilhas que dificultam a programac ao e sao propensas a erros (PEYTON JONES, 2007; HERLIHY; MOSS, 1993). Memorias transacionais fornecem um novo modelo de controle de concorrencia que nao apresenta as mesmas dificuldades encontradas no uso de bloqueios. Elas trazem para a programac ao concorrente os conceitos de controle de concorrencia usados h`a decadas pela comunidade de banco de dados. Construc oes em linguagens transacionais sao faceis de serem usadas e podem gerar programas altamente escalaveis (ADLTABATABAI; KOZYRAKIS; SAHA, 2006). O objetivo deste trabalho e apresentar a linguagem CMTJava. CMTJava e uma linguagem de domınio especıfico para programac ao de memorias transacionais em Java e foi criada visando facilitar a programac ao de maquinas multi-core. Seu sistema foi todo desenvolvido em Java e a forma de implementac ao pode ser aplicada em qualquer outra linguagem orientada a objetos que suporte closures, como por exemplo C#. CMTJava faz uso das chamadas monadas para compor ac oes transacionais. Ac oes transacionais podem ser combinadas para gerar novas transac oes e vale ressaltar que o sistema de tipos da linguagem CMTJava garante que ac oes transacionais somente serao executadas atraves da primitiva atomic. CMTJava apresenta todas as construc oes de memorias transacionais (atomic, retry, OrElse) e e a primeira extensao Java para transac oes que suporta a construc ao OrElse

ASSUNTO(S)

memórias transacionais ciencia da computacao linguagem de domínio específico, programação concorrente, linguagem java.

Documentos Relacionados