• DocumentCode
    2487616
  • 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
  • fYear
    2012
  • fDate
    2-2 June 2012
  • Firstpage
    9
  • Lastpage
    15
  • 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;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering: Rigorous and Agile Approaches (FormSERA), 2012 Formal Methods in
  • Conference_Location
    Zurich
  • Print_ISBN
    978-1-4673-1907-2
  • Type

    conf

  • DOI
    10.1109/FormSERA.2012.6229790
  • Filename
    6229790