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

Detalhes bibliográficos
Ano de defesa: 2010
Autor(a) principal: Echevarria, Marcos Gonçalves
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Catolica de Pelotas
Informática
BR
Ucpel
Mestrado em Ciência da Computação
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://tede.ucpel.edu.br:8080/jspui/handle/tede/110
Resumo: As arquiteturas multi-core influenciam diretamente no desenvolvimento de software. Para que os programas possam tirar proveito dessas arquiteturas ´e necess´ario que estes possuam v´arias atividades concorrentes e que possam ser alocadas aos cores dispon ´ıveis. Programas concorrentes para m´aquinas multi-core s ao geralmente implementados usando threads e se comunicam atrav´es de uma mem´oria 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 s ao propensas a erros (PEYTON JONES, 2007; HERLIHY; MOSS, 1993). Mem´orias transacionais fornecem um novo modelo de controle de concorr encia que n ao apresenta as mesmas dificuldades encontradas no uso de bloqueios. Elas trazem para a programac¸ ao concorrente os conceitos de controle de concorr encia usados h`a d´ecadas pela comunidade de banco de dados. Construc¸ oes em linguagens transacionais s ao f´aceis de serem usadas e podem gerar programas altamente escal´aveis (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 mem´orias transacionais em Java e foi criada visando facilitar a programac¸ ao de m´aquinas 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 m onadas 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 ser ao executadas atrav´es da primitiva atomic. CMTJava apresenta todas as construc¸ oes de mem´orias transacionais (atomic, retry, OrElse) e ´e a primeira extens ao Java para transac¸ oes que suporta a construc¸ ao OrElse