{"id":3868,"date":"2015-12-07T08:00:05","date_gmt":"2015-12-07T10:00:05","guid":{"rendered":"http:\/\/inf.ufpel.edu.br\/site\/?p=3868"},"modified":"2015-12-07T08:00:05","modified_gmt":"2015-12-07T10:00:05","slug":"banca-de-tcc-alvaro-joan-goncalves-dos-santos","status":"publish","type":"post","link":"https:\/\/wp.ufpel.edu.br\/computacao\/ccomp\/banca-de-tcc-alvaro-joan-goncalves-dos-santos\/","title":{"rendered":"Banca de TCC: \u00c1lvaro Joan Gon\u00e7alves dos Santos"},"content":{"rendered":"<p style=\"text-align: center\"><strong>UNIVERSIDADE FEDERAL DE PELOTAS<\/strong><br \/>\n<strong> CENTRO DE DESENVOLVIMENTO TECNOL\u00d3GICO<\/strong><br \/>\n<strong> TRABALHO DE CONCLUS\u00c3O DE CURSO<\/strong><\/p>\n<p style=\"text-align: center\">Apresenta\u00e7\u00f5es Finais (2015\/2)<\/p>\n<p style=\"text-align: center\">Compilador CMTJava para Java 8<br \/>\npor<br \/>\n\u00c1lvaro Joan Gon\u00e7alves dos Santos<\/p>\n<p>Curso:<br \/>\nCi\u00eancia da Computa\u00e7\u00e3o<\/p>\n<p>Banca:<br \/>\nProf. Andr\u00e9 Rauber Du Bois (orientador)<br \/>\nProf. Maur\u00edcio Lima Pilla (co-orientador)<br \/>\nProf. Gerson Geraldo Homrich Cavalheiro<br \/>\nProfa. Luciana Foss<\/p>\n<p>Data: 09 de Dezembro de 2015<\/p>\n<p>Hora: 09:00h<\/p>\n<p>Local: Audit\u00f3rio Acad\u00eamico<\/p>\n<p><!--more-->Resumo do Trabalho: Com o surgimento dos processadores multicore \u00e9 indispens\u00e1vel a aplica\u00e7\u00e3o do paradigma de programa\u00e7\u00e3o paralela no modo de pensar. A tecnologia atual conta com m\u00e1quinas multicore que usam threads, nesse contexto surgem novos conceitos como mem\u00f3ria compartilhada e mecanismos de sincroniza\u00e7\u00e3o. Apesar da divis\u00e3o de trabalho entre m\u00faltiplas threads ser fortemente beneficiado pelas m\u00e1quinas multicore, encontramos dificuldades ao programar paralelamente. Quando trabalha-se com threads umas das maiores preocupa\u00e7\u00f5es \u00e9 a da condi\u00e7\u00e3o de corrida e deadlocks. Mecanismos como locks controlam os acessos, entretanto, ao mesmo tempo aumentam a complexidade e sua pr\u00f3pria serializa\u00e7\u00e3o. Mem\u00f3rias transacionais s\u00e3o uma \u00f3tima alternativa para programa\u00e7\u00e3o de m\u00e1quinas multicore. Por trazer o conceito de transa\u00e7\u00e3o de banco de dados, que \u00e9 implementado de modo que a\u00e7\u00f5es sejam executadas como opera\u00e7\u00f5es at\u00f4micas. A linguagem CMTJava permite programar utilizando a abstra\u00e7\u00e3o de mem\u00f3rias transacionais em uma linguagem baseada em Java. CMTJava implementa objetos transacionais onde seus atributos s\u00e3o acessados por m\u00e9todos especiais, get e set, de forma at\u00f4mica. A contribui\u00e7\u00e3o desse trabalho \u00e9 a implementa\u00e7\u00e3o de um compilador para transformar c\u00f3digo CMTJava em bytecodes Java. Essa ferramenta j\u00e1 existe, entretanto, \u00e9 implementada usando uma proposta antiga de BBGGA closures. Esse trabalho utiliza Java 8 no qual j\u00e1 vem com suporte a express\u00f5es lambda (closures) nativamente, por\u00e9m com sintaxe e sem\u00e2ntica diferentes das utilizadas na solu\u00e7\u00e3o atual.<\/p>\n<p>Para mais informa\u00e7\u00f5es acesse: <a href=\"http:\/\/inf.ufpel.edu.br\/notcc\/doku.php?id=bancas:2015_2\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/inf.ufpel.edu.br\/notcc\/doku.php?id=bancas:2015_2<\/a><br \/>\n&#8212;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO TECNOL\u00d3GICO TRABALHO DE CONCLUS\u00c3O DE CURSO Apresenta\u00e7\u00f5es Finais (2015\/2) Compilador CMTJava para Java 8 por \u00c1lvaro Joan Gon\u00e7alves dos Santos Curso: Ci\u00eancia da Computa\u00e7\u00e3o Banca: Prof. Andr\u00e9&#46;&#46;&#46;<\/p>\n","protected":false},"author":881,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,19,17],"tags":[],"class_list":["post-3868","post","type-post","status-publish","format-standard","hentry","category-ccomp","category-ecomp","category-noticia"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paGhNl-10o","_links":{"self":[{"href":"https:\/\/wp.ufpel.edu.br\/computacao\/wp-json\/wp\/v2\/posts\/3868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.ufpel.edu.br\/computacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.ufpel.edu.br\/computacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.ufpel.edu.br\/computacao\/wp-json\/wp\/v2\/users\/881"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.ufpel.edu.br\/computacao\/wp-json\/wp\/v2\/comments?post=3868"}],"version-history":[{"count":0,"href":"https:\/\/wp.ufpel.edu.br\/computacao\/wp-json\/wp\/v2\/posts\/3868\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.ufpel.edu.br\/computacao\/wp-json\/wp\/v2\/media?parent=3868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.ufpel.edu.br\/computacao\/wp-json\/wp\/v2\/categories?post=3868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.ufpel.edu.br\/computacao\/wp-json\/wp\/v2\/tags?post=3868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}