SemanticDB: Scala开发工具的通用数据模型(特邀演讲)

Q4 Social Sciences Meta: Avaliacao Pub Date : 2018-11-05 DOI:10.1145/3281074.3281076
E. Burmako
{"title":"SemanticDB: Scala开发工具的通用数据模型(特邀演讲)","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":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2018-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"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\":null,\"pages\":null},\"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}","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

摘要

如今,开发人员工具之间的通信标准有一个明显的趋势。语言服务器协议(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——以及许多开源爱好者。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
SemanticDB: a common data model for Scala developer tools (invited talk)
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.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
Meta: Avaliacao
Meta: Avaliacao Social Sciences-Education
CiteScore
0.40
自引率
0.00%
发文量
13
审稿时长
10 weeks
期刊最新文献
Camera spectral sensitivity estimation based on spectrally tunable LED illumination Metamer mismatch volume calculation method based on high-dimensional spherical sampling Machine vision-based portable track inspection system Optimization of RGB image spectral reconstruction based on radial basis function networks Study on spectral adaptive transformation based on chromatic aberration
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1