Language engineering as an enabler for incrementally defined formal analyses

D. Ratiu, B. Schätz, M. Völter, Bernd Kolb
{"title":"Language engineering as an enabler for incrementally defined formal analyses","authors":"D. Ratiu, B. Schätz, M. Völter, Bernd Kolb","doi":"10.1109/FORMSERA.2012.6229790","DOIUrl":null,"url":null,"abstract":"There is a big semantic gap between today's general purpose programming languages on the one hand and the input languages of formal verification tools on the other hand. This makes integrating formal analyses into the daily development practice artificially complex. In this paper we advocate that the use of language engineering techniques can substantially improve this situation along three dimensions. First, more abstract and thus more analyzable domain specific languages can be defined, avoiding the need for abstraction recovery from programs written in general purpose languages. Second, restrictions on the use of existing languages can be imposed and thereby more analyzable code can be obtained and analyses can be incrementally defined. Third, by expressing verification conditions and the verification results at the domain level, they are easier to define and the results of analyses are easier to interpret by end users. We exemplify our approach with three domain specific language fragments integrated into the C programming language, together with a set of analyses: completeness and consistency of decision tables, model-checking-based analyses for a dialect of state machines and consistency of feature models. The examples are based on the mbeddr stack, an extensible C language and IDE for embedded software development.","PeriodicalId":192140,"journal":{"name":"2012 First International Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FormSERA)","volume":"26 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-06-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"29","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2012 First International Workshop on Formal Methods in Software Engineering: Rigorous and Agile Approaches (FormSERA)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/FORMSERA.2012.6229790","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 29

Abstract

There is a big semantic gap between today's general purpose programming languages on the one hand and the input languages of formal verification tools on the other hand. This makes integrating formal analyses into the daily development practice artificially complex. In this paper we advocate that the use of language engineering techniques can substantially improve this situation along three dimensions. First, more abstract and thus more analyzable domain specific languages can be defined, avoiding the need for abstraction recovery from programs written in general purpose languages. Second, restrictions on the use of existing languages can be imposed and thereby more analyzable code can be obtained and analyses can be incrementally defined. Third, by expressing verification conditions and the verification results at the domain level, they are easier to define and the results of analyses are easier to interpret by end users. We exemplify our approach with three domain specific language fragments integrated into the C programming language, together with a set of analyses: completeness and consistency of decision tables, model-checking-based analyses for a dialect of state machines and consistency of feature models. The examples are based on the mbeddr stack, an extensible C language and IDE for embedded software development.
作为增量定义形式化分析的推动者的语言工程
今天的通用编程语言与形式验证工具的输入语言之间存在很大的语义差距。这使得将形式化分析集成到日常开发实践中人为地变得复杂。在本文中,我们主张使用语言工程技术可以从三个维度上大大改善这种情况。首先,可以定义更抽象、更易于分析的领域特定语言,从而避免了从用通用语言编写的程序中恢复抽象的需要。其次,可以对现有语言的使用施加限制,从而可以获得更多可分析的代码,并且可以增量地定义分析。第三,通过在域级别表达验证条件和验证结果,它们更容易定义,并且最终用户更容易解释分析结果。我们举例说明了我们的方法,将三个特定领域的语言片段集成到C编程语言中,以及一组分析:决策表的完整性和一致性,基于模型检查的状态机方言分析和特征模型的一致性。示例是基于mbeddr堆栈,可扩展的C语言和嵌入式软件开发IDE。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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学术文献互助群
群 号:604180095
Book学术官方微信