SemanticDB: a common data model for Scala developer tools (invited talk)

Q4 Social Sciences
E. Burmako
{"title":"SemanticDB: a common data model for Scala developer tools (invited talk)","authors":"E. Burmako","doi":"10.1145/3281074.3281076","DOIUrl":null,"url":null,"abstract":"Nowadays, there is a clear trend towards standards for communication between developer tools. Language Server Protocol (LSP), a protocol that connects programming language implementations and text editors, has gained strong industrial support and at the time of writing has implementations for many programming languages and editors. Build Server Protocol (BSP) follows in LSP’s tracks with an ambition to define a protocol for communication between language servers and build tools. While lots of work in the open-source community has been invested in unifying user experience (by codifying commonly used operations like go to definition or find all references), relatively less work went into unifying implementor experience. For example, at the moment, there exist five different LSP implementations for Scala. They all implement the same protocol that works with code, but they all use different data structures to represent that code. In this talk, we will present SemanticDB - a data model for semantic information such as symbols and types about programs in Scala and other languages. We will discuss our experience of building an ecosystem of developers tools around SemanticDB and using these tools on Twitter source code - arguably the largest Scala codebase on the planet. SemanticDB is joint work between Eugene Burmako, Twitter and Ólafur Páll Geirsson, EPFL who together developed and maintain the open-source specification and implementations at https://github.com/scalameta/scalameta. The project has received contributions from the Advanced Scala Tools team at Twitter - Eugene Burmako, Shane Delmore, Max Ovsiankin and Uma Srinivasan - as well as many open-source enthusiasts.","PeriodicalId":38836,"journal":{"name":"Meta: Avaliacao","volume":"32 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2018-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Meta: Avaliacao","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3281074.3281076","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q4","JCRName":"Social Sciences","Score":null,"Total":0}
引用次数: 1

Abstract

Nowadays, there is a clear trend towards standards for communication between developer tools. Language Server Protocol (LSP), a protocol that connects programming language implementations and text editors, has gained strong industrial support and at the time of writing has implementations for many programming languages and editors. Build Server Protocol (BSP) follows in LSP’s tracks with an ambition to define a protocol for communication between language servers and build tools. While lots of work in the open-source community has been invested in unifying user experience (by codifying commonly used operations like go to definition or find all references), relatively less work went into unifying implementor experience. For example, at the moment, there exist five different LSP implementations for Scala. They all implement the same protocol that works with code, but they all use different data structures to represent that code. In this talk, we will present SemanticDB - a data model for semantic information such as symbols and types about programs in Scala and other languages. We will discuss our experience of building an ecosystem of developers tools around SemanticDB and using these tools on Twitter source code - arguably the largest Scala codebase on the planet. SemanticDB is joint work between Eugene Burmako, Twitter and Ólafur Páll Geirsson, EPFL who together developed and maintain the open-source specification and implementations at https://github.com/scalameta/scalameta. The project has received contributions from the Advanced Scala Tools team at Twitter - Eugene Burmako, Shane Delmore, Max Ovsiankin and Uma Srinivasan - as well as many open-source enthusiasts.
SemanticDB: Scala开发工具的通用数据模型(特邀演讲)
如今,开发人员工具之间的通信标准有一个明显的趋势。语言服务器协议(LSP)是一种连接编程语言实现和文本编辑器的协议,已经获得了强大的工业支持,并且在撰写本文时已经为许多编程语言和编辑器实现了实现。构建服务器协议(BSP)遵循LSP的轨迹,其目标是定义语言服务器和构建工具之间的通信协议。虽然开源社区在统一用户体验方面投入了大量的工作(通过编纂常用操作,如查找定义或查找所有引用),但在统一实现者体验方面投入的工作相对较少。例如,目前Scala有五种不同的LSP实现。它们都实现与代码一起工作的相同协议,但是它们都使用不同的数据结构来表示代码。在这次演讲中,我们将介绍SemanticDB——一个用于Scala和其他语言程序的语义信息(如符号和类型)的数据模型。我们将讨论围绕SemanticDB构建开发人员工具生态系统的经验,并在Twitter源代码(可以说是世界上最大的Scala代码库)上使用这些工具。SemanticDB是由Eugene Burmako, Twitter和Ólafur Páll Geirsson, EPFL共同开发和维护的开源规范和实现在https://github.com/scalameta/scalameta。该项目收到了来自Twitter高级Scala工具团队的贡献——Eugene Burmako、Shane Delmore、Max Ovsiankin和Uma Srinivasan——以及许多开源爱好者。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
Meta: Avaliacao
Meta: Avaliacao Social Sciences-Education
CiteScore
0.40
自引率
0.00%
发文量
13
审稿时长
10 weeks
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信