Title :
Language engineering as an enabler for incrementally defined formal analyses
Author :
Ratiu, Daniel ; Schaetz, Bernhard ; Voelter, Markus ; Kolb, Bernd
Author_Institution :
ForTISS GmbH, Munich, Germany
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.
Keywords :
C language; decision tables; finite state machines; formal verification; C programming language; abstraction recovery; daily development practice; decision tables completeness; decision tables consistency; domain level; domain specific languages; embedded software development; feature models consistency; formal analysis integration; formal verification tools; incrementally defined formal analysis; language engineering techniques; mbeddr stack; model checking-based analysis; programming languages; semantic gap; state machines; verification conditions; Abstracts; Analytical models; Computer languages; Concrete; DSL; Semantics; Syntactics;
Conference_Titel :
Software Engineering: Rigorous and Agile Approaches (FormSERA), 2012 Formal Methods in
Conference_Location :
Zurich
Print_ISBN :
978-1-4673-1907-2
DOI :
10.1109/FormSERA.2012.6229790