Share |
|
Please use this identifier to cite or link to this item:
https://tede.unioeste.br/handle/tede/6463
Tipo do documento: | Dissertação |
Title: | Suporte à Edição para Linguagens de Software: Práticas de Implementação com Language Server Protocol |
Other Titles: | Editing Support for Software Languages: Implementation Practices in Language Server Protocols. |
Autor: | Barros, Djonathan Douglas Santos |
Primeiro orientador: | Assunção, Wesley Klewerton Guêz |
Primeiro coorientador: | Berger, Thorsten |
Primeiro membro da banca: | Assunção, Wesley Klewerton Guêz |
Segundo membro da banca: | Silva, Ivonei Freitas da |
Terceiro membro da banca: | Lima, Fernando José Castor de |
Resumo: | A 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. |
Abstract: | 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 |
Keywords: | 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 |
CNPq areas: | METODOLOGIAS E TÉCNICAS DE COMPUTAÇÃO. |
Idioma: | por |
País: | Brasil |
Publisher: | Universidade Estadual do Oeste do Paraná |
Sigla da instituição: | UNIOESTE |
Departamento: | Centro de Ciências Exatas e Tecnológicas |
Program: | Programa de Pós-Graduação em Ciência da Computação |
Campun: | Cascavel |
Citation: | 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. |
Tipo de acesso: | Acesso Aberto |
Endereço da licença: | http://creativecommons.org/licenses/by/4.0/ |
URI: | https://tede.unioeste.br/handle/tede/6463 |
Issue Date: | 5-Dec-2022 |
Appears in Collections: | Mestrado em Ciência da Computação (CVL) |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Djonathan_ Barros.2022.pdf | Arquivo completo | 2.61 MB | Adobe PDF | View/Open Preview |
This item is licensed under a Creative Commons License