Um estudo sobre os mecanismos de concorrência da linguagem Go
Autor(a) principal: | |
---|---|
Data de Publicação: | 2019 |
Tipo de documento: | Trabalho de conclusão de curso |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFRJ |
Texto Completo: | http://hdl.handle.net/11422/11452 |
Resumo: | Este estudo explora a linguagem Go e seus mecanismos para programação concorrente. Apresenta-se uma visão geral da linguagem, destacando os recursos de concorrência oferecidos por ela. Soluções de problemas clássicos de concorrência e de padrões de computação distribuída são propostos e analisados, mostrando o uso dos diversos recursos providos por Go. As soluções apresentadas demonstram a simplificação de código por meio das abstrações oferecidas pela linguagem e pelo modelo de concorrência baseado em trocas de mensagens via canais de comunicação. Avalia-se também a possibilidade e dificuldades de estender a linguagem para oferecer uma implementação generalizada de corrotinas, usando como referência uma implementação na linguagem Lua. Por fim, apresentamos uma análise simplificada do desempenho do Go, comparando os tempos de execução de um algoritmo de multiplicação de matrizes entre duas soluções: uma desenvolvida em Go, e outra em C++. A linguagem C++ obteve desempenho superior a Go. |
id |
UFRJ_c8d7e991db1b33e3887d2cd6faca7cca |
---|---|
oai_identifier_str |
oai:pantheon.ufrj.br:11422/11452 |
network_acronym_str |
UFRJ |
network_name_str |
Repositório Institucional da UFRJ |
repository_id_str |
|
spelling |
Soares, João Luis da Silva Guiohttp://lattes.cnpq.br/0054098292730720http://lattes.cnpq.br/1766965412894981Moura, Ana Lucia dehttp://lattes.cnpq.br/7730721978822885Menasche, Daniel Sadochttp://lattes.cnpq.br/9931198850020140Rossetto, Silvana2020-03-10T15:06:38Z2023-11-30T03:03:50Z2019-08-28http://hdl.handle.net/11422/11452Submitted by Elaine Almeida (elaine.almeida@nce.ufrj.br) on 2020-03-10T15:06:38Z No. of bitstreams: 1 JLSGSoares.pdf: 670420 bytes, checksum: ad0016347c9626ef5b1572ab224f7872 (MD5)Made available in DSpace on 2020-03-10T15:06:38Z (GMT). No. of bitstreams: 1 JLSGSoares.pdf: 670420 bytes, checksum: ad0016347c9626ef5b1572ab224f7872 (MD5) Previous issue date: 2019-08-28Este estudo explora a linguagem Go e seus mecanismos para programação concorrente. Apresenta-se uma visão geral da linguagem, destacando os recursos de concorrência oferecidos por ela. Soluções de problemas clássicos de concorrência e de padrões de computação distribuída são propostos e analisados, mostrando o uso dos diversos recursos providos por Go. As soluções apresentadas demonstram a simplificação de código por meio das abstrações oferecidas pela linguagem e pelo modelo de concorrência baseado em trocas de mensagens via canais de comunicação. Avalia-se também a possibilidade e dificuldades de estender a linguagem para oferecer uma implementação generalizada de corrotinas, usando como referência uma implementação na linguagem Lua. Por fim, apresentamos uma análise simplificada do desempenho do Go, comparando os tempos de execução de um algoritmo de multiplicação de matrizes entre duas soluções: uma desenvolvida em Go, e outra em C++. A linguagem C++ obteve desempenho superior a Go.porUniversidade Federal do Rio de JaneiroUFRJBrasilInstituto de ComputaçãoCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO::LINGUAGEM FORMAIS E AUTOMATOSConcorrênciaGo (Linguagem de programação)Um estudo sobre os mecanismos de concorrência da linguagem Goinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisabertoinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRJinstname:Universidade Federal do Rio de Janeiro (UFRJ)instacron:UFRJORIGINALJLSGSoares.pdfJLSGSoares.pdfapplication/pdf670420http://pantheon.ufrj.br:80/bitstream/11422/11452/1/JLSGSoares.pdfad0016347c9626ef5b1572ab224f7872MD51LICENSElicense.txtlicense.txttext/plain; charset=utf-81853http://pantheon.ufrj.br:80/bitstream/11422/11452/2/license.txtdd32849f2bfb22da963c3aac6e26e255MD5211422/114522023-11-30 00:03:50.848oai:pantheon.ufrj.br:11422/11452TElDRU7Dh0EgTsODTy1FWENMVVNJVkEgREUgRElTVFJJQlVJw4fDg08KCkFvIGFzc2luYXIgZSBlbnRyZWdhciBlc3RhIGxpY2Vuw6dhLCB2b2PDqihzKSBvKHMpIGF1dG9yKGVzKSBvdSBwcm9wcmlldMOhcmlvKHMpIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBjb25jZWRlKG0pIGFvIFJlcG9zaXTDs3JpbyBQYW50aGVvbiBkYSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkbyBSaW8gZGUgSmFuZWlybyAoVUZSSikgbyBkaXJlaXRvIG7Do28gLSBleGNsdXNpdm8gZGUgcmVwcm9kdXppciwgY29udmVydGVyIChjb21vIGRlZmluaWRvIGFiYWl4byksIGUvb3UgZGlzdHJpYnVpciBvIGRvY3VtZW50byBlbnRyZWd1ZSAoaW5jbHVpbmRvIG8gcmVzdW1vKSBlbSB0b2RvIG8gbXVuZG8sIGVtIGZvcm1hdG8gZWxldHLDtG5pY28gZSBlbSBxdWFscXVlciBtZWlvLCBpbmNsdWluZG8sIG1hcyBuw6NvIGxpbWl0YWRvIGEgw6F1ZGlvIGUvb3UgdsOtZGVvLgoKVm9jw6ogY29uY29yZGEgcXVlIGEgVUZSSiBwb2RlLCBzZW0gYWx0ZXJhciBvIGNvbnRlw7pkbywgdHJhZHV6aXIgYSBhcHJlc2VudGHDp8OjbyBkZSBxdWFscXVlciBtZWlvIG91IGZvcm1hdG8gY29tIGEgZmluYWxpZGFkZSBkZSBwcmVzZXJ2YcOnw6NvLgoKVm9jw6ogdGFtYsOpbSBjb25jb3JkYSBxdWUgYSBVRlJKIHBvZGUgbWFudGVyIG1haXMgZGUgdW1hIGPDs3BpYSBkZXNzYSBzdWJtaXNzw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIGUgcHJlc2VydmHDp8OjbyBkaWdpdGFsLgoKRGVjbGFyYSBxdWUgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgc2V1IHRyYWJhbGhvIG9yaWdpbmFsLCBlIHF1ZSB2b2PDqiB0ZW0gbyBkaXJlaXRvIGRlIGNvbmNlZGVyIG9zIGRpcmVpdG9zIGNvbnRpZG9zIG5lc3RhIGxpY2Vuw6dhLiBWb2PDqiB0YW1iw6ltIGRlY2xhcmEgcXVlIGEgc3VhIGFwcmVzZW50YcOnw6NvLCBjb20gbyBtZWxob3IgZGUgc2V1cyBjb25oZWNpbWVudG9zLCBuw6NvIGluZnJpbmdpIGRpcmVpdG9zIGF1dG9yYWlzIGRlIHRlcmNlaXJvcy4KClNlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIGNvbnTDqW0gbWF0ZXJpYWwgZG8gcXVhbCB2b2PDqiBuw6NvIHRlbSBkaXJlaXRvcyBkZSBhdXRvciwgZGVjbGFyYSBxdWUgb2J0ZXZlIGEgcGVybWlzc8OjbyBpcnJlc3RyaXRhIGRvIGRldGVudG9yIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBlIGNvbmNlZGUgYSBVRlJKIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgZGUgcHJvcHJpZWRhZGUgZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3UgY29udGXDumRvIGRhIHN1Ym1pc3PDo28uCgpTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSDDqSBiYXNlYWRvIGVtIHRyYWJhbGhvIHF1ZSBmb2ksIG91IHRlbSBzaWRvIHBhdHJvY2luYWRvIG91IGFwb2lhZG8gcG9yIHVtYSBhZ8OqbmNpYSBvdSBvdXRybyhzKSBvcmdhbmlzbW8ocykgcXVlIG7Do28gYSBVRlJKLCB2b2PDqiBkZWNsYXJhIHF1ZSBjdW1wcml1IHF1YWxxdWVyIGRpcmVpdG8gZGUgUkVWSVPDg08gb3UgZGUgb3V0cmFzIG9icmlnYcOnw7VlcyByZXF1ZXJpZGFzIHBvciBjb250cmF0byBvdSBhY29yZG8uCgpBIFVGUkogaXLDoSBpZGVudGlmaWNhciBjbGFyYW1lbnRlIG8ocykgc2V1KHMpIG5vbWUocykgY29tbyBhdXRvcihlcykgb3UgcHJvcHJpZXTDoXJpbyhzKSBkYSBzdWJtaXNzw6NvLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIHBhcmEgYWzDqW0gZGFzIHBlcm1pdGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EsIG5vIGF0byBkZSBzdWJtaXNzw6NvLgo=Repositório de PublicaçõesPUBhttp://www.pantheon.ufrj.br/oai/requestopendoar:2023-11-30T03:03:50Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ)false |
dc.title.pt_BR.fl_str_mv |
Um estudo sobre os mecanismos de concorrência da linguagem Go |
title |
Um estudo sobre os mecanismos de concorrência da linguagem Go |
spellingShingle |
Um estudo sobre os mecanismos de concorrência da linguagem Go Soares, João Luis da Silva Guio CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO::LINGUAGEM FORMAIS E AUTOMATOS Concorrência Go (Linguagem de programação) |
title_short |
Um estudo sobre os mecanismos de concorrência da linguagem Go |
title_full |
Um estudo sobre os mecanismos de concorrência da linguagem Go |
title_fullStr |
Um estudo sobre os mecanismos de concorrência da linguagem Go |
title_full_unstemmed |
Um estudo sobre os mecanismos de concorrência da linguagem Go |
title_sort |
Um estudo sobre os mecanismos de concorrência da linguagem Go |
author |
Soares, João Luis da Silva Guio |
author_facet |
Soares, João Luis da Silva Guio |
author_role |
author |
dc.contributor.advisorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/0054098292730720 |
dc.contributor.authorLattes.pt_BR.fl_str_mv |
http://lattes.cnpq.br/1766965412894981 |
dc.contributor.author.fl_str_mv |
Soares, João Luis da Silva Guio |
dc.contributor.referee1.fl_str_mv |
Moura, Ana Lucia de |
dc.contributor.referee1Lattes.fl_str_mv |
http://lattes.cnpq.br/7730721978822885 |
dc.contributor.referee2.fl_str_mv |
Menasche, Daniel Sadoc |
dc.contributor.referee2Lattes.fl_str_mv |
http://lattes.cnpq.br/9931198850020140 |
dc.contributor.advisor1.fl_str_mv |
Rossetto, Silvana |
contributor_str_mv |
Moura, Ana Lucia de Menasche, Daniel Sadoc Rossetto, Silvana |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO::LINGUAGEM FORMAIS E AUTOMATOS |
topic |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO::LINGUAGEM FORMAIS E AUTOMATOS Concorrência Go (Linguagem de programação) |
dc.subject.por.fl_str_mv |
Concorrência Go (Linguagem de programação) |
description |
Este estudo explora a linguagem Go e seus mecanismos para programação concorrente. Apresenta-se uma visão geral da linguagem, destacando os recursos de concorrência oferecidos por ela. Soluções de problemas clássicos de concorrência e de padrões de computação distribuída são propostos e analisados, mostrando o uso dos diversos recursos providos por Go. As soluções apresentadas demonstram a simplificação de código por meio das abstrações oferecidas pela linguagem e pelo modelo de concorrência baseado em trocas de mensagens via canais de comunicação. Avalia-se também a possibilidade e dificuldades de estender a linguagem para oferecer uma implementação generalizada de corrotinas, usando como referência uma implementação na linguagem Lua. Por fim, apresentamos uma análise simplificada do desempenho do Go, comparando os tempos de execução de um algoritmo de multiplicação de matrizes entre duas soluções: uma desenvolvida em Go, e outra em C++. A linguagem C++ obteve desempenho superior a Go. |
publishDate |
2019 |
dc.date.issued.fl_str_mv |
2019-08-28 |
dc.date.accessioned.fl_str_mv |
2020-03-10T15:06:38Z |
dc.date.available.fl_str_mv |
2023-11-30T03:03:50Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
format |
bachelorThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
http://hdl.handle.net/11422/11452 |
url |
http://hdl.handle.net/11422/11452 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Federal do Rio de Janeiro |
dc.publisher.initials.fl_str_mv |
UFRJ |
dc.publisher.country.fl_str_mv |
Brasil |
dc.publisher.department.fl_str_mv |
Instituto de Computação |
publisher.none.fl_str_mv |
Universidade Federal do Rio de Janeiro |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRJ instname:Universidade Federal do Rio de Janeiro (UFRJ) instacron:UFRJ |
instname_str |
Universidade Federal do Rio de Janeiro (UFRJ) |
instacron_str |
UFRJ |
institution |
UFRJ |
reponame_str |
Repositório Institucional da UFRJ |
collection |
Repositório Institucional da UFRJ |
bitstream.url.fl_str_mv |
http://pantheon.ufrj.br:80/bitstream/11422/11452/1/JLSGSoares.pdf http://pantheon.ufrj.br:80/bitstream/11422/11452/2/license.txt |
bitstream.checksum.fl_str_mv |
ad0016347c9626ef5b1572ab224f7872 dd32849f2bfb22da963c3aac6e26e255 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFRJ - Universidade Federal do Rio de Janeiro (UFRJ) |
repository.mail.fl_str_mv |
|
_version_ |
1784097177763577856 |