一种利用有限状态自动机驱动符号执行进行资源检查的DSL

IF 1.1 Q3 COMPUTER SCIENCE, THEORY & METHODS Open Computer Science Pub Date : 2020-12-17 DOI:10.1515/comp-2020-0120
Endre Fülöp, Norbert Pataki
{"title":"一种利用有限状态自动机驱动符号执行进行资源检查的DSL","authors":"Endre Fülöp, Norbert Pataki","doi":"10.1515/comp-2020-0120","DOIUrl":null,"url":null,"abstract":"Abstract Static analysis is an essential way to find code smells and bugs. It checks the source code without execution and no test cases are required, therefore its cost is lower than testing. Moreover, static analysis can help in software engineering comprehensively, since static analysis can be used for the validation of code conventions, for measuring software complexity and for executing code refactorings as well. Symbolic execution is a static analysis method where the variables (e.g. input data) are interpreted with symbolic values. Clang Static Analyzer is a powerful symbolic execution engine based on the Clang compiler infrastructure that can be used with C, C++ and Objective-C. Validation of resources’ usage (e.g. files, memory) requires finite state automata (FSA) for modeling the state of resource (e.g. locked or acquired resource). In this paper, we argue for an approach in which automata are in-use during symbolic execution. The generic automaton can be customized for different resources. We present our domain-specific language to define automata in terms of syntactic and semantic rules. We have developed a tool for this approach which parses the automaton and generates Clang Static Analyzer checker that can be used in the symbolic execution engine. We show an example automaton in our domain-specific language and the usage of generated checker.","PeriodicalId":43014,"journal":{"name":"Open Computer Science","volume":"11 1","pages":"107 - 115"},"PeriodicalIF":1.1000,"publicationDate":"2020-12-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1515/comp-2020-0120","citationCount":"1","resultStr":"{\"title\":\"A DSL for Resource Checking Using Finite State Automaton-Driven Symbolic Execution\",\"authors\":\"Endre Fülöp, Norbert Pataki\",\"doi\":\"10.1515/comp-2020-0120\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Abstract Static analysis is an essential way to find code smells and bugs. It checks the source code without execution and no test cases are required, therefore its cost is lower than testing. Moreover, static analysis can help in software engineering comprehensively, since static analysis can be used for the validation of code conventions, for measuring software complexity and for executing code refactorings as well. Symbolic execution is a static analysis method where the variables (e.g. input data) are interpreted with symbolic values. Clang Static Analyzer is a powerful symbolic execution engine based on the Clang compiler infrastructure that can be used with C, C++ and Objective-C. Validation of resources’ usage (e.g. files, memory) requires finite state automata (FSA) for modeling the state of resource (e.g. locked or acquired resource). In this paper, we argue for an approach in which automata are in-use during symbolic execution. The generic automaton can be customized for different resources. We present our domain-specific language to define automata in terms of syntactic and semantic rules. We have developed a tool for this approach which parses the automaton and generates Clang Static Analyzer checker that can be used in the symbolic execution engine. We show an example automaton in our domain-specific language and the usage of generated checker.\",\"PeriodicalId\":43014,\"journal\":{\"name\":\"Open Computer Science\",\"volume\":\"11 1\",\"pages\":\"107 - 115\"},\"PeriodicalIF\":1.1000,\"publicationDate\":\"2020-12-17\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"https://sci-hub-pdf.com/10.1515/comp-2020-0120\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Open Computer Science\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1515/comp-2020-0120\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q3\",\"JCRName\":\"COMPUTER SCIENCE, THEORY & METHODS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Open Computer Science","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1515/comp-2020-0120","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, THEORY & METHODS","Score":null,"Total":0}
引用次数: 1

摘要

摘要静态分析是发现代码气味和错误的重要方法。它在不执行的情况下检查源代码,并且不需要测试用例,因此其成本低于测试。此外,静态分析可以全面帮助软件工程,因为静态分析可以用于验证代码约定、测量软件复杂性以及执行代码重构。符号执行是一种静态分析方法,其中变量(例如输入数据)用符号值进行解释。Clang静态分析器是一个强大的符号执行引擎,基于Clang编译器基础设施,可与C、C++和Objective-C一起使用。验证资源的使用情况(如文件、内存)需要有限状态自动机(FSA)来建模资源的状态(如锁定或获取的资源)。在本文中,我们提出了一种在符号执行过程中使用自动机的方法。通用自动机可以针对不同的资源进行定制。我们提出了我们的领域特定语言来根据句法和语义规则定义自动机。我们为这种方法开发了一个工具,它解析自动机并生成Clang静态分析器检查器,该检查器可用于符号执行引擎。我们展示了领域特定语言中的一个示例自动机以及生成检查器的用法。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
A DSL for Resource Checking Using Finite State Automaton-Driven Symbolic Execution
Abstract Static analysis is an essential way to find code smells and bugs. It checks the source code without execution and no test cases are required, therefore its cost is lower than testing. Moreover, static analysis can help in software engineering comprehensively, since static analysis can be used for the validation of code conventions, for measuring software complexity and for executing code refactorings as well. Symbolic execution is a static analysis method where the variables (e.g. input data) are interpreted with symbolic values. Clang Static Analyzer is a powerful symbolic execution engine based on the Clang compiler infrastructure that can be used with C, C++ and Objective-C. Validation of resources’ usage (e.g. files, memory) requires finite state automata (FSA) for modeling the state of resource (e.g. locked or acquired resource). In this paper, we argue for an approach in which automata are in-use during symbolic execution. The generic automaton can be customized for different resources. We present our domain-specific language to define automata in terms of syntactic and semantic rules. We have developed a tool for this approach which parses the automaton and generates Clang Static Analyzer checker that can be used in the symbolic execution engine. We show an example automaton in our domain-specific language and the usage of generated checker.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
Open Computer Science
Open Computer Science COMPUTER SCIENCE, THEORY & METHODS-
CiteScore
4.00
自引率
0.00%
发文量
24
审稿时长
25 weeks
期刊最新文献
Artificial intelligence-based public safety data resource management in smart cities Application of fingerprint image fuzzy edge recognition algorithm in criminal technology Application of SSD network algorithm in panoramic video image vehicle detection system Data preprocessing impact on machine learning algorithm performance RFID supply chain data deconstruction method based on artificial intelligence technology
×
引用
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