The SOUL tool suite for querying programs in symbiosis with Eclipse

Coen De Roover, Carlos Noguera, Andy Kellens, V. Jonckers
{"title":"The SOUL tool suite for querying programs in symbiosis with Eclipse","authors":"Coen De Roover, Carlos Noguera, Andy Kellens, V. Jonckers","doi":"10.1145/2093157.2093168","DOIUrl":null,"url":null,"abstract":"Program queries can answer important software engineering questions that range from \"which expressions are cast to this type?\" over \"does my program attempt to read from a closed file?\" to \"does my code follow the prescribed design?\". In this paper, we present a comprehensive tool suite for querying Java programs. It consists of the logic program query language Soul, the Cava library of predicates for quantifying over an Eclipse workspace and the Eclipse plugin Barista for launching queries and inspecting their results. Barista allows other Eclipse plugins to peruse program query results which is facilitated by the symbiosis of Soul with Java -- setting Soul apart from other program query languages. This symbiosis enables the Cava library to forego the predominant transcription to logic facts of the queried program. Instead, the library queries the actual AST nodes used by Eclipse itself, making it trivial for any Eclipse plugin to find the AST nodes that correspond to a query result. Moreover, such plugins do not have to worry about having queried stale program information. We illustrate the extensibility of our suite by implementing a tool for co-evolving source code and annotations using program queries.","PeriodicalId":169989,"journal":{"name":"Principles and Practice of Programming in Java","volume":"74 3-4","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-08-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"56","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Principles and Practice of Programming in Java","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2093157.2093168","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 56

Abstract

Program queries can answer important software engineering questions that range from "which expressions are cast to this type?" over "does my program attempt to read from a closed file?" to "does my code follow the prescribed design?". In this paper, we present a comprehensive tool suite for querying Java programs. It consists of the logic program query language Soul, the Cava library of predicates for quantifying over an Eclipse workspace and the Eclipse plugin Barista for launching queries and inspecting their results. Barista allows other Eclipse plugins to peruse program query results which is facilitated by the symbiosis of Soul with Java -- setting Soul apart from other program query languages. This symbiosis enables the Cava library to forego the predominant transcription to logic facts of the queried program. Instead, the library queries the actual AST nodes used by Eclipse itself, making it trivial for any Eclipse plugin to find the AST nodes that correspond to a query result. Moreover, such plugins do not have to worry about having queried stale program information. We illustrate the extensibility of our suite by implementing a tool for co-evolving source code and annotations using program queries.
用于查询与Eclipse共生的程序的SOUL工具套件
程序查询可以回答重要的软件工程问题,从“哪些表达式被强制转换为这种类型?”到“我的程序是否试图从一个关闭的文件中读取?”到“我的代码是否遵循规定的设计?”在本文中,我们提供了一个用于查询Java程序的综合工具套件。它由逻辑程序查询语言Soul、用于对Eclipse工作空间进行量化的Cava谓词库和用于启动查询并检查其结果的Eclipse插件Barista组成。Barista允许其他Eclipse插件仔细阅读程序查询结果,这得益于Soul与Java的共生关系——将Soul与其他程序查询语言区分开来。这种共生关系使Cava库能够放弃对所查询程序的逻辑事实的主要转录。相反,该库查询Eclipse本身使用的实际AST节点,使得任何Eclipse插件查找与查询结果对应的AST节点都很简单。此外,这样的插件不必担心查询过时的节目信息。我们通过实现一个使用程序查询共同进化源代码和注释的工具来说明我们的套件的可扩展性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
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学术官方微信