Model checking recursive programs interacting via the heap.

Saved in:
Bibliographic Details
Title: Model checking recursive programs interacting via the heap.
Authors: Asăvoae, I.M.1 mariuca.asavoae@info.uaic.ro, de Boer, F.2,3 frb@cwi.nl, Bonsangue, M.M.2,3 marcello@liacs.nl, Lucanu, D.1 dlucanu@info.uaic.ro, Rot, J.2,3 jrot@liacs.nl
Source: Science of Computer Programming. Mar2015, Vol. 100, p61-83. 23p.
Subjects: Recursive programming, Imperative programming, Programming languages, Mathematical bounds, Object-oriented programming
Abstract: Almost all modern imperative programming languages include operations for dynamically manipulating the heap, for example by allocating and deallocating objects, and by updating reference fields. In the presence of recursive procedures and local variables, the interactions of a program with the heap can become rather complex, as an unbounded number of objects can be allocated either on the call stack using local variables, or, anonymously, on the heap using reference fields. As such, a static analysis for recursive programs with dynamic manipulation of the heap is, in general, undecidable. In this paper we study the verification of recursive programs with unbounded allocation of objects, in a simple imperative language with heap manipulation. We present a semantics for this language which is improved w.r.t. heap allocation, using an abstraction that is precise (i.e., bisimilar with the standard/concrete semantics). For any program with a bounded visible heap, meaning that the number of objects reachable from variables at any point of execution is bounded, this abstraction is a finitary representation of its behaviour, even though an unbounded number of objects can appear in the state. As a consequence, for such programs model checking is decidable. Finally, we introduce a specification language for heap-properties, and we discuss model checking of heap invariant properties against heap-manipulating programs. [ABSTRACT FROM AUTHOR]
Copyright of Science of Computer Programming is the property of Elsevier B.V. and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
FullText Text:
  Availability: 0
Header DbId: egs
DbLabel: Engineering Source
An: 100795160
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Model checking recursive programs interacting via the heap.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Asăvoae%2C+I%2EM%2E%22">Asăvoae, I.M.</searchLink><relatesTo>1</relatesTo><i> mariuca.asavoae@info.uaic.ro</i><br /><searchLink fieldCode="AR" term="%22de+Boer%2C+F%2E%22">de Boer, F.</searchLink><relatesTo>2,3</relatesTo><i> frb@cwi.nl</i><br /><searchLink fieldCode="AR" term="%22Bonsangue%2C+M%2EM%2E%22">Bonsangue, M.M.</searchLink><relatesTo>2,3</relatesTo><i> marcello@liacs.nl</i><br /><searchLink fieldCode="AR" term="%22Lucanu%2C+D%2E%22">Lucanu, D.</searchLink><relatesTo>1</relatesTo><i> dlucanu@info.uaic.ro</i><br /><searchLink fieldCode="AR" term="%22Rot%2C+J%2E%22">Rot, J.</searchLink><relatesTo>2,3</relatesTo><i> jrot@liacs.nl</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22Science+of+Computer+Programming%22">Science of Computer Programming</searchLink>. Mar2015, Vol. 100, p61-83. 23p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Recursive+programming%22">Recursive programming</searchLink><br /><searchLink fieldCode="DE" term="%22Imperative+programming%22">Imperative programming</searchLink><br /><searchLink fieldCode="DE" term="%22Programming+languages%22">Programming languages</searchLink><br /><searchLink fieldCode="DE" term="%22Mathematical+bounds%22">Mathematical bounds</searchLink><br /><searchLink fieldCode="DE" term="%22Object-oriented+programming%22">Object-oriented programming</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: Almost all modern imperative programming languages include operations for dynamically manipulating the heap, for example by allocating and deallocating objects, and by updating reference fields. In the presence of recursive procedures and local variables, the interactions of a program with the heap can become rather complex, as an unbounded number of objects can be allocated either on the call stack using local variables, or, anonymously, on the heap using reference fields. As such, a static analysis for recursive programs with dynamic manipulation of the heap is, in general, undecidable. In this paper we study the verification of recursive programs with unbounded allocation of objects, in a simple imperative language with heap manipulation. We present a semantics for this language which is improved w.r.t. heap allocation, using an abstraction that is precise (i.e., bisimilar with the standard/concrete semantics). For any program with a bounded visible heap, meaning that the number of objects reachable from variables at any point of execution is bounded, this abstraction is a finitary representation of its behaviour, even though an unbounded number of objects can appear in the state. As a consequence, for such programs model checking is decidable. Finally, we introduce a specification language for heap-properties, and we discuss model checking of heap invariant properties against heap-manipulating programs. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of Science of Computer Programming is the property of Elsevier B.V. and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=100795160
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1016/j.scico.2014.09.009
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 23
        StartPage: 61
    Subjects:
      – SubjectFull: Recursive programming
        Type: general
      – SubjectFull: Imperative programming
        Type: general
      – SubjectFull: Programming languages
        Type: general
      – SubjectFull: Mathematical bounds
        Type: general
      – SubjectFull: Object-oriented programming
        Type: general
    Titles:
      – TitleFull: Model checking recursive programs interacting via the heap.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Asăvoae, I.M.
      – PersonEntity:
          Name:
            NameFull: de Boer, F.
      – PersonEntity:
          Name:
            NameFull: Bonsangue, M.M.
      – PersonEntity:
          Name:
            NameFull: Lucanu, D.
      – PersonEntity:
          Name:
            NameFull: Rot, J.
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 15
              M: 03
              Text: Mar2015
              Type: published
              Y: 2015
          Identifiers:
            – Type: issn-print
              Value: 01676423
          Numbering:
            – Type: volume
              Value: 100
          Titles:
            – TitleFull: Science of Computer Programming
              Type: main
ResultId 1