Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol

Detalhes bibliográficos
Autor(a) principal: Barros, Djonathan Douglas Santos
Data de Publicação: 2022
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Biblioteca Digital de Teses e Dissertações do UNIOESTE
Texto Completo: https://tede.unioeste.br/handle/tede/6835
Resumo: Effectively using software languages, be it programming or domain-specific languages, requires effective editing support. Modern IDEs, modeling tools, and code editors typically provide sophisticated support to create, comprehend, or modify instances (programs or models) of particular languages. Unfortunately, building such editing support is challenging. While the engineering of languages is well understood and supported by modern model driven techniques, there is a lack of engineering principles and best practices for realizing their editing support. Especially domain-specific languages (often created by smaller organizations or individual developers, sometimes even for single projects) would benefit from better methods and tools to create proper editing support. We study aspects for implementing editing support in 30 language servers—implementations of the language server protocol (LSP), some of which support multiple languages. The LSP is a recent de facto standard to realize editing support for languages, separated from the editing tools (e.g., IDEs or modeling tools), enhancing the reusability and quality of the editing support. Witnessing the LSP’s popularity there are 125 language servers catalogated in a curated list. We identify concerns that developers need to take into account when developing editing support, and we synthesize implementation practices to address them, based on a systematic analysis of the servers’ source code
id UNIOESTE-1_9d5279742d0c959a3bcf1bdfc2f797df
oai_identifier_str oai:tede.unioeste.br:tede/6835
network_acronym_str UNIOESTE-1
network_name_str Biblioteca Digital de Teses e Dissertações do UNIOESTE
repository_id_str
spelling Assunção, Wesley Klewerton Guêzhttp://lattes.cnpq.br/2841032013026879Berger, ThorstenAssunção, Wesley Klewerton Guêzhttp://lattes.cnpq.br/2841032013026879Silva, Ivonei Freitas dahttp://lattes.cnpq.br/4053071719790087Lima Filho, Fernando José Castor dehttp://lattes.cnpq.br/7310046838140771http://lattes.cnpq.br/2716432720657376Barros, Djonathan Douglas Santos2023-09-27T19:21:48Z2022-12-05BARROS, Djonathan Douglas Santos. Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol. 2022. 97 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Estadual do Oeste do Paraná, Cascavel.https://tede.unioeste.br/handle/tede/6835Effectively using software languages, be it programming or domain-specific languages, requires effective editing support. Modern IDEs, modeling tools, and code editors typically provide sophisticated support to create, comprehend, or modify instances (programs or models) of particular languages. Unfortunately, building such editing support is challenging. While the engineering of languages is well understood and supported by modern model driven techniques, there is a lack of engineering principles and best practices for realizing their editing support. Especially domain-specific languages (often created by smaller organizations or individual developers, sometimes even for single projects) would benefit from better methods and tools to create proper editing support. We study aspects for implementing editing support in 30 language servers—implementations of the language server protocol (LSP), some of which support multiple languages. The LSP is a recent de facto standard to realize editing support for languages, separated from the editing tools (e.g., IDEs or modeling tools), enhancing the reusability and quality of the editing support. Witnessing the LSP’s popularity there are 125 language servers catalogated in a curated list. We identify concerns that developers need to take into account when developing editing support, and we synthesize implementation practices to address them, based on a systematic analysis of the servers’ source codeA utilização efetiva de linguagens de software, sejam elas de programação ou linguagens especificas de domínio, requer um suporte à edição efetivo. IDEs modernas, ferramentas de modelagem, editores de código tipicamente disponibilizam um suporte à edição sofisticado para criar, compreender ou modificar instâncias (programas ou modelos) de linguagens em particular. Infelizmente, implementar tal suporte é desafiador. Enquanto a engenharia de linguagens é uma disciplina bem conhecida e suportada por modernas técnicas dirigidas por modelo, há uma escassez de princípios e práticas para implementar o suporte a edição. Especialmente para linguagens especificas de domínio (que são geralmente criadas por organizações menores ou desenvolvedores individuais, algumas vezes somente para projetos únicos) se beneficiariam de melhores métodos e ferramentas para criar um suporte à edição apropriado. Nesse trabalho foram identificados aspectos de implementação para o suporte a edição em 30 servidores de linguagem que implementam o language server protocol (LSP), alguns desenvolvidos para suportar múltiplas linguagens. O LSP é um padrão consumado para implementar o suporte à edição para uma linguagem, separado das ferramentas de edição (ex., IDEs ou ferramenta de modelagem), aumentando o reúso e a qualidade do suporte a edição. Evidenciando a popularidade do LSP, existem 125 servidores de linguagem catalogados pela comunidade hoje em dia. Além dos aspectos de implementação que os desenvolvedores devem levar em consideração ao implementar o suporte à edição, foram sintetizadas práticas de implementação para endereça-los, baseado em uma análise sistemática do código-fonte desses servidores.Submitted by Rosangela Silva (rosangela.silva3@unioeste.br) on 2023-09-27T19:21:48Z No. of bitstreams: 3 Djonathan Douglas Santos Barros.pdf: 2670606 bytes, checksum: c80ae86201af9d24539a7c97e601833c (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)Made available in DSpace on 2023-09-27T19:21:48Z (GMT). No. of bitstreams: 3 Djonathan Douglas Santos Barros.pdf: 2670606 bytes, checksum: c80ae86201af9d24539a7c97e601833c (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) Previous issue date: 2022-12-05application/pdfpor6588633818200016417500Universidade Estadual do Oeste do ParanáCascavelMestrado em Ciência da ComputaçãoUNIOESTEBrasilCentro de Ciências Exatas e Tecnológicashttp://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccessEngenharia de linguagemAssistência de códigoCompreensão de códigoEditor de código-fontePráticas de implementaçãoLanguage engineeringCode assistanceCode comprehensionSource code editorimplementation practicesMETODOLOGIAS E TÉCNICAS DE COMPUTAÇÃO.Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server ProtocolEditing Support for Software Languages: Implementation Practices in Language Server Protocols.info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesis2214374442868382015600reponame:Biblioteca Digital de Teses e Dissertações do UNIOESTEinstname:Universidade Estadual do Oeste do Paraná (UNIOESTE)instacron:UNIOESTEORIGINALDjonathan Douglas Santos Barros.pdfDjonathan Douglas Santos Barros.pdfapplication/pdf2670606http://tede.unioeste.br:8080/tede/bitstream/tede/6835/9/Djonathan+Douglas+Santos+Barros.pdfc80ae86201af9d24539a7c97e601833cMD59CC-LICENSElicense_urllicense_urltext/plain; charset=utf-849http://tede.unioeste.br:8080/tede/bitstream/tede/6835/6/license_url4afdbb8c545fd630ea7db775da747b2fMD56license_textlicense_texttext/html; charset=utf-80http://tede.unioeste.br:8080/tede/bitstream/tede/6835/7/license_textd41d8cd98f00b204e9800998ecf8427eMD57license_rdflicense_rdfapplication/rdf+xml; charset=utf-80http://tede.unioeste.br:8080/tede/bitstream/tede/6835/8/license_rdfd41d8cd98f00b204e9800998ecf8427eMD58LICENSElicense.txtlicense.txttext/plain; charset=utf-82165http://tede.unioeste.br:8080/tede/bitstream/tede/6835/5/license.txtbd3efa91386c1718a7f26a329fdcb468MD55CC-LICENSElicense_urllicense_urltext/plain; charset=utf-849http://tede.unioeste.br:8080/tede/bitstream/tede/6835/2/license_url4afdbb8c545fd630ea7db775da747b2fMD52license_textlicense_texttext/html; charset=utf-80http://tede.unioeste.br:8080/tede/bitstream/tede/6835/3/license_textd41d8cd98f00b204e9800998ecf8427eMD53license_rdflicense_rdfapplication/rdf+xml; charset=utf-80http://tede.unioeste.br:8080/tede/bitstream/tede/6835/4/license_rdfd41d8cd98f00b204e9800998ecf8427eMD54tede/68352023-09-27 16:21:48.455oai:tede.unioeste.br:tede/6835Tk9UQTogQ09MT1FVRSBBUVVJIEEgU1VBIFBSw5NQUklBIExJQ0VOw4dBCkVzdGEgbGljZW7Dp2EgZGUgZXhlbXBsbyDDqSBmb3JuZWNpZGEgYXBlbmFzIHBhcmEgZmlucyBpbmZvcm1hdGl2b3MuCgpMSUNFTsOHQSBERSBESVNUUklCVUnDh8ODTyBOw4NPLUVYQ0xVU0lWQQoKQ29tIGEgYXByZXNlbnRhw6fDo28gZGVzdGEgbGljZW7Dp2EsIHZvY8OqIChvIGF1dG9yIChlcykgb3UgbyB0aXR1bGFyIGRvcyBkaXJlaXRvcyBkZSBhdXRvcikgY29uY2VkZSDDoCBVbml2ZXJzaWRhZGUgClhYWCAoU2lnbGEgZGEgVW5pdmVyc2lkYWRlKSBvIGRpcmVpdG8gbsOjby1leGNsdXNpdm8gZGUgcmVwcm9kdXppciwgIHRyYWR1emlyIChjb25mb3JtZSBkZWZpbmlkbyBhYmFpeG8pLCBlL291IApkaXN0cmlidWlyIGEgc3VhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyAoaW5jbHVpbmRvIG8gcmVzdW1vKSBwb3IgdG9kbyBvIG11bmRvIG5vIGZvcm1hdG8gaW1wcmVzc28gZSBlbGV0csO0bmljbyBlIAplbSBxdWFscXVlciBtZWlvLCBpbmNsdWluZG8gb3MgZm9ybWF0b3Mgw6F1ZGlvIG91IHbDrWRlby4KClZvY8OqIGNvbmNvcmRhIHF1ZSBhIFNpZ2xhIGRlIFVuaXZlcnNpZGFkZSBwb2RlLCBzZW0gYWx0ZXJhciBvIGNvbnRlw7pkbywgdHJhbnNwb3IgYSBzdWEgdGVzZSBvdSBkaXNzZXJ0YcOnw6NvIApwYXJhIHF1YWxxdWVyIG1laW8gb3UgZm9ybWF0byBwYXJhIGZpbnMgZGUgcHJlc2VydmHDp8Ojby4KClZvY8OqIHRhbWLDqW0gY29uY29yZGEgcXVlIGEgU2lnbGEgZGUgVW5pdmVyc2lkYWRlIHBvZGUgbWFudGVyIG1haXMgZGUgdW1hIGPDs3BpYSBhIHN1YSB0ZXNlIG91IApkaXNzZXJ0YcOnw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIGUgcHJlc2VydmHDp8Ojby4KClZvY8OqIGRlY2xhcmEgcXVlIGEgc3VhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyDDqSBvcmlnaW5hbCBlIHF1ZSB2b2PDqiB0ZW0gbyBwb2RlciBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyAKbmVzdGEgbGljZW7Dp2EuIFZvY8OqIHRhbWLDqW0gZGVjbGFyYSBxdWUgbyBkZXDDs3NpdG8gZGEgc3VhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyBuw6NvLCBxdWUgc2VqYSBkZSBzZXUgCmNvbmhlY2ltZW50bywgaW5mcmluZ2UgZGlyZWl0b3MgYXV0b3JhaXMgZGUgbmluZ3XDqW0uCgpDYXNvIGEgc3VhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyBjb250ZW5oYSBtYXRlcmlhbCBxdWUgdm9jw6ogbsOjbyBwb3NzdWkgYSB0aXR1bGFyaWRhZGUgZG9zIGRpcmVpdG9zIGF1dG9yYWlzLCB2b2PDqiAKZGVjbGFyYSBxdWUgb2J0ZXZlIGEgcGVybWlzc8OjbyBpcnJlc3RyaXRhIGRvIGRldGVudG9yIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBwYXJhIGNvbmNlZGVyIMOgIFNpZ2xhIGRlIFVuaXZlcnNpZGFkZSAKb3MgZGlyZWl0b3MgYXByZXNlbnRhZG9zIG5lc3RhIGxpY2Vuw6dhLCBlIHF1ZSBlc3NlIG1hdGVyaWFsIGRlIHByb3ByaWVkYWRlIGRlIHRlcmNlaXJvcyBlc3TDoSBjbGFyYW1lbnRlIAppZGVudGlmaWNhZG8gZSByZWNvbmhlY2lkbyBubyB0ZXh0byBvdSBubyBjb250ZcO6ZG8gZGEgdGVzZSBvdSBkaXNzZXJ0YcOnw6NvIG9yYSBkZXBvc2l0YWRhLgoKQ0FTTyBBIFRFU0UgT1UgRElTU0VSVEHDh8ODTyBPUkEgREVQT1NJVEFEQSBURU5IQSBTSURPIFJFU1VMVEFETyBERSBVTSBQQVRST0PDjU5JTyBPVSAKQVBPSU8gREUgVU1BIEFHw4pOQ0lBIERFIEZPTUVOVE8gT1UgT1VUUk8gT1JHQU5JU01PIFFVRSBOw4NPIFNFSkEgQSBTSUdMQSBERSAKVU5JVkVSU0lEQURFLCBWT0PDiiBERUNMQVJBIFFVRSBSRVNQRUlUT1UgVE9ET1MgRSBRVUFJU1FVRVIgRElSRUlUT1MgREUgUkVWSVPDg08gQ09NTyAKVEFNQsOJTSBBUyBERU1BSVMgT0JSSUdBw4fDlUVTIEVYSUdJREFTIFBPUiBDT05UUkFUTyBPVSBBQ09SRE8uCgpBIFNpZ2xhIGRlIFVuaXZlcnNpZGFkZSBzZSBjb21wcm9tZXRlIGEgaWRlbnRpZmljYXIgY2xhcmFtZW50ZSBvIHNldSBub21lIChzKSBvdSBvKHMpIG5vbWUocykgZG8ocykgCmRldGVudG9yKGVzKSBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgZGEgdGVzZSBvdSBkaXNzZXJ0YcOnw6NvLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIGFsw6ltIGRhcXVlbGFzIApjb25jZWRpZGFzIHBvciBlc3RhIGxpY2Vuw6dhLgo=Biblioteca Digital de Teses e Dissertaçõeshttp://tede.unioeste.br/PUBhttp://tede.unioeste.br/oai/requestbiblioteca.repositorio@unioeste.bropendoar:2023-09-27T19:21:48Biblioteca Digital de Teses e Dissertações do UNIOESTE - Universidade Estadual do Oeste do Paraná (UNIOESTE)false
dc.title.por.fl_str_mv Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol
dc.title.alternative.eng.fl_str_mv Editing Support for Software Languages: Implementation Practices in Language Server Protocols.
title Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol
spellingShingle Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol
Barros, Djonathan Douglas Santos
Engenharia de linguagem
Assistência de código
Compreensão de código
Editor de código-fonte
Práticas de implementação
Language engineering
Code assistance
Code comprehension
Source code editor
implementation practices
METODOLOGIAS E TÉCNICAS DE COMPUTAÇÃO.
title_short Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol
title_full Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol
title_fullStr Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol
title_full_unstemmed Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol
title_sort Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol
author Barros, Djonathan Douglas Santos
author_facet Barros, Djonathan Douglas Santos
author_role author
dc.contributor.advisor1.fl_str_mv Assunção, Wesley Klewerton Guêz
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/2841032013026879
dc.contributor.advisor2.fl_str_mv Berger, Thorsten
dc.contributor.referee1.fl_str_mv Assunção, Wesley Klewerton Guêz
dc.contributor.referee1Lattes.fl_str_mv http://lattes.cnpq.br/2841032013026879
dc.contributor.referee2.fl_str_mv Silva, Ivonei Freitas da
dc.contributor.referee2Lattes.fl_str_mv http://lattes.cnpq.br/4053071719790087
dc.contributor.referee3.fl_str_mv Lima Filho, Fernando José Castor de
dc.contributor.referee3Lattes.fl_str_mv http://lattes.cnpq.br/7310046838140771
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/2716432720657376
dc.contributor.author.fl_str_mv Barros, Djonathan Douglas Santos
contributor_str_mv Assunção, Wesley Klewerton Guêz
Berger, Thorsten
Assunção, Wesley Klewerton Guêz
Silva, Ivonei Freitas da
Lima Filho, Fernando José Castor de
dc.subject.por.fl_str_mv Engenharia de linguagem
Assistência de código
Compreensão de código
Editor de código-fonte
Práticas de implementação
topic Engenharia de linguagem
Assistência de código
Compreensão de código
Editor de código-fonte
Práticas de implementação
Language engineering
Code assistance
Code comprehension
Source code editor
implementation practices
METODOLOGIAS E TÉCNICAS DE COMPUTAÇÃO.
dc.subject.eng.fl_str_mv Language engineering
Code assistance
Code comprehension
Source code editor
implementation practices
dc.subject.cnpq.fl_str_mv METODOLOGIAS E TÉCNICAS DE COMPUTAÇÃO.
description Effectively using software languages, be it programming or domain-specific languages, requires effective editing support. Modern IDEs, modeling tools, and code editors typically provide sophisticated support to create, comprehend, or modify instances (programs or models) of particular languages. Unfortunately, building such editing support is challenging. While the engineering of languages is well understood and supported by modern model driven techniques, there is a lack of engineering principles and best practices for realizing their editing support. Especially domain-specific languages (often created by smaller organizations or individual developers, sometimes even for single projects) would benefit from better methods and tools to create proper editing support. We study aspects for implementing editing support in 30 language servers—implementations of the language server protocol (LSP), some of which support multiple languages. The LSP is a recent de facto standard to realize editing support for languages, separated from the editing tools (e.g., IDEs or modeling tools), enhancing the reusability and quality of the editing support. Witnessing the LSP’s popularity there are 125 language servers catalogated in a curated list. We identify concerns that developers need to take into account when developing editing support, and we synthesize implementation practices to address them, based on a systematic analysis of the servers’ source code
publishDate 2022
dc.date.issued.fl_str_mv 2022-12-05
dc.date.accessioned.fl_str_mv 2023-09-27T19:21:48Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv BARROS, Djonathan Douglas Santos. Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol. 2022. 97 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Estadual do Oeste do Paraná, Cascavel.
dc.identifier.uri.fl_str_mv https://tede.unioeste.br/handle/tede/6835
identifier_str_mv BARROS, Djonathan Douglas Santos. Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol. 2022. 97 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Estadual do Oeste do Paraná, Cascavel.
url https://tede.unioeste.br/handle/tede/6835
dc.language.iso.fl_str_mv por
language por
dc.relation.department.fl_str_mv 2214374442868382015
dc.relation.confidence.fl_str_mv 600
dc.rights.driver.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Estadual do Oeste do Paraná
Cascavel
dc.publisher.program.fl_str_mv Mestrado em Ciência da Computação
dc.publisher.initials.fl_str_mv UNIOESTE
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Centro de Ciências Exatas e Tecnológicas
publisher.none.fl_str_mv Universidade Estadual do Oeste do Paraná
Cascavel
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações do UNIOESTE
instname:Universidade Estadual do Oeste do Paraná (UNIOESTE)
instacron:UNIOESTE
instname_str Universidade Estadual do Oeste do Paraná (UNIOESTE)
instacron_str UNIOESTE
institution UNIOESTE
reponame_str Biblioteca Digital de Teses e Dissertações do UNIOESTE
collection Biblioteca Digital de Teses e Dissertações do UNIOESTE
bitstream.url.fl_str_mv http://tede.unioeste.br:8080/tede/bitstream/tede/6835/9/Djonathan+Douglas+Santos+Barros.pdf
http://tede.unioeste.br:8080/tede/bitstream/tede/6835/6/license_url
http://tede.unioeste.br:8080/tede/bitstream/tede/6835/7/license_text
http://tede.unioeste.br:8080/tede/bitstream/tede/6835/8/license_rdf
http://tede.unioeste.br:8080/tede/bitstream/tede/6835/5/license.txt
http://tede.unioeste.br:8080/tede/bitstream/tede/6835/2/license_url
http://tede.unioeste.br:8080/tede/bitstream/tede/6835/3/license_text
http://tede.unioeste.br:8080/tede/bitstream/tede/6835/4/license_rdf
bitstream.checksum.fl_str_mv c80ae86201af9d24539a7c97e601833c
4afdbb8c545fd630ea7db775da747b2f
d41d8cd98f00b204e9800998ecf8427e
d41d8cd98f00b204e9800998ecf8427e
bd3efa91386c1718a7f26a329fdcb468
4afdbb8c545fd630ea7db775da747b2f
d41d8cd98f00b204e9800998ecf8427e
d41d8cd98f00b204e9800998ecf8427e
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações do UNIOESTE - Universidade Estadual do Oeste do Paraná (UNIOESTE)
repository.mail.fl_str_mv biblioteca.repositorio@unioeste.br
_version_ 1848092784148348928