• DocumentCode
    3643593
  • Title

    Matching logic: a new program verification approach (NIER track)

  • Author

    Grigore Rosu;Andrei Stefanescu

  • Author_Institution
    University of Illinois at Urbana-Champaign, Urbana-Champaign, IL, USA
  • fYear
    2011
  • fDate
    5/1/2011 12:00:00 AM
  • Firstpage
    868
  • Lastpage
    871
  • Abstract
    Matching logic is a new program verification logic, which builds upon operational semantics. Matching logic specifications are constrained symbolic program configurations, called patterns, which can be matched by concrete configurations. By building upon an operational semantics of the language and allowing specifications to directly refer to the structure of the configuration, matching logic has at least three benefits: (1) One´s familiarity with the formalism reduces to one´s familiarity with the operational semantics of the language, that is, with the language itself; (2) The verification process proceeds the same way as the program execution, making debugging failed proof attempts manageable because one can always see the "current configuration" and "what went wrong´, same like in a debugger; and (3) Nothing is lost in translation, that is, there is no gap between the language itself and its verifier. Moreover, direct access to the structure of the configuration facilitates defining subpatterns that one may reason about, such as disjoint lists or trees in the heap, as well as supporting framing in various components of the configuration at no additional costs.
  • Keywords
    "Semantics","Pattern matching","Computer languages","Cognition","Programming","Concrete","Syntactics"
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering (ICSE), 2011 33rd International Conference on
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4503-0445-0
  • Type

    conf

  • DOI
    10.1145/1985793.1985928
  • Filename
    6032539