A Formal C Memory Model for Separation Logic.
Saved in:
| Title: | A Formal C Memory Model for Separation Logic. |
|---|---|
| Authors: | Krebbers, Robbert mail@robbertkrebbers.nl |
| Source: | Journal of Automated Reasoning. Dec2016, Vol. 57 Issue 4, p319-387. 69p. |
| Subjects: | Imperative programming, Programming languages, Computer storage devices, C (Computer program language), Compilers (Computer programs) |
| Abstract: | The core of a formal semantics of an imperative programming language is a memory model that describes the behavior of operations on the memory. Defining a memory model that matches the description of C in the C11 standard is challenging because C allows both high-level (by means of typed expressions) and low-level (by means of bit manipulation) memory accesses. The C11 standard has restricted the interaction between these two levels to make more effective compiler optimizations possible, at the expense of making the memory model complicated. We describe a formal memory model of the (non-concurrent part of the) C11 standard that incorporates these restrictions, and at the same time describes low-level memory operations. This formal memory model includes a rich permission model to make it usable in separation logic and supports reasoning about program transformations. The memory model and essential properties of it have been fully formalized using the Coq proof assistant. [ABSTRACT FROM AUTHOR] |
| Copyright of Journal of Automated Reasoning is the property of Springer Nature 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: 119061479 AccessLevel: 6 PubType: Academic Journal PubTypeId: academicJournal PreciseRelevancyScore: 0 |
| IllustrationInfo | |
| Items | – Name: Title Label: Title Group: Ti Data: A Formal C Memory Model for Separation Logic. – Name: Author Label: Authors Group: Au Data: <searchLink fieldCode="AR" term="%22Krebbers%2C+Robbert%22">Krebbers, Robbert</searchLink><i> mail@robbertkrebbers.nl</i> – Name: TitleSource Label: Source Group: Src Data: <searchLink fieldCode="JN" term="%22Journal+of+Automated+Reasoning%22">Journal of Automated Reasoning</searchLink>. Dec2016, Vol. 57 Issue 4, p319-387. 69p. – Name: Subject Label: Subjects Group: Su Data: <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="%22Computer+storage+devices%22">Computer storage devices</searchLink><br /><searchLink fieldCode="DE" term="%22C+%28Computer+program+language%29%22">C (Computer program language)</searchLink><br /><searchLink fieldCode="DE" term="%22Compilers+%28Computer+programs%29%22">Compilers (Computer programs)</searchLink> – Name: Abstract Label: Abstract Group: Ab Data: The core of a formal semantics of an imperative programming language is a memory model that describes the behavior of operations on the memory. Defining a memory model that matches the description of C in the C11 standard is challenging because C allows both high-level (by means of typed expressions) and low-level (by means of bit manipulation) memory accesses. The C11 standard has restricted the interaction between these two levels to make more effective compiler optimizations possible, at the expense of making the memory model complicated. We describe a formal memory model of the (non-concurrent part of the) C11 standard that incorporates these restrictions, and at the same time describes low-level memory operations. This formal memory model includes a rich permission model to make it usable in separation logic and supports reasoning about program transformations. The memory model and essential properties of it have been fully formalized using the Coq proof assistant. [ABSTRACT FROM AUTHOR] – Name: AbstractSuppliedCopyright Label: Group: Ab Data: <i>Copyright of Journal of Automated Reasoning is the property of Springer Nature 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=119061479 |
| RecordInfo | BibRecord: BibEntity: Identifiers: – Type: doi Value: 10.1007/s10817-016-9369-1 Languages: – Code: eng Text: English PhysicalDescription: Pagination: PageCount: 69 StartPage: 319 Subjects: – SubjectFull: Imperative programming Type: general – SubjectFull: Programming languages Type: general – SubjectFull: Computer storage devices Type: general – SubjectFull: C (Computer program language) Type: general – SubjectFull: Compilers (Computer programs) Type: general Titles: – TitleFull: A Formal C Memory Model for Separation Logic. Type: main BibRelationships: HasContributorRelationships: – PersonEntity: Name: NameFull: Krebbers, Robbert IsPartOfRelationships: – BibEntity: Dates: – D: 01 M: 12 Text: Dec2016 Type: published Y: 2016 Identifiers: – Type: issn-print Value: 01687433 Numbering: – Type: volume Value: 57 – Type: issue Value: 4 Titles: – TitleFull: Journal of Automated Reasoning Type: main |
| ResultId | 1 |