Um estudo sobre os mecanismos de concorrência da linguagem Go

Detalhes bibliográficos
Autor(a) principal: Soares, João Luis da Silva Guio
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