Loading…
A low-level memory model and an accompanying reachability predicate
Reasoning about program heap, especially if it involves handling unbounded, dynamically heap-allocated data structures such as linked lists and arrays, is challenging. Furthermore, sound analysis that precisely models heap becomes significantly more challenging in the presence of low-level pointer m...
Saved in:
Published in: | International journal on software tools for technology transfer 2009-04, Vol.11 (2), p.105-116 |
---|---|
Main Authors: | , , , |
Format: | Article |
Language: | English |
Subjects: | |
Citations: | Items that this one cites Items that cite this one |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
cited_by | cdi_FETCH-LOGICAL-c2611-cce5100417fd48aae59e4fc47a0547b9510ad2714bf10f20104fdd3c27ed04ec3 |
---|---|
cites | cdi_FETCH-LOGICAL-c2611-cce5100417fd48aae59e4fc47a0547b9510ad2714bf10f20104fdd3c27ed04ec3 |
container_end_page | 116 |
container_issue | 2 |
container_start_page | 105 |
container_title | International journal on software tools for technology transfer |
container_volume | 11 |
creator | Chatterjee, Shaunak Lahiri, Shuvendu K. Qadeer, Shaz Rakamarić, Zvonimir |
description | Reasoning about program heap, especially if it involves handling unbounded, dynamically heap-allocated data structures such as linked lists and arrays, is challenging. Furthermore, sound analysis that precisely models heap becomes significantly more challenging in the presence of low-level pointer manipulation that is prevalent in systems software. The
reachability
predicate has already proved to be useful for reasoning about the heap in type-safe languages where memory is manipulated by dereferencing object fields. In this paper, we present a memory model suitable for reasoning about low-level pointer operations that is accompanied by a formalization of the reachability predicate in the presence of internal pointers and pointer arithmetic. We have designed an annotation language for C programs that makes use of the new predicate. This language enables us to specify properties of many interesting data structures present in the Windows kernel. We present our experience with a prototype verifier on a set of illustrative C benchmarks. |
doi_str_mv | 10.1007/s10009-009-0098-1 |
format | article |
fullrecord | <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_miscellaneous_34877503</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>34877503</sourcerecordid><originalsourceid>FETCH-LOGICAL-c2611-cce5100417fd48aae59e4fc47a0547b9510ad2714bf10f20104fdd3c27ed04ec3</originalsourceid><addsrcrecordid>eNp1kE1LxDAQhoMouK7-AG_Fg7dqpk132uOy-AULXvQcssl07ZI2Ndkq_fdGuogIHt75YJ53GIaxS-A3wDnehhh5lR5UpnDEZiDyPM2wxOOfGqtTdhbCjnPABVYztlom1n2mlj7IJi21zo9J60xsVGeiEqW1a3vVjU23TTwp_aY2jW32Y9J7Mo1WezpnJ7WygS4Oec5e7-9eVo_p-vnhabVcpzpbAKRaUxGvFIC1EaVSVFQkai1Q8ULgpopDZTIEsamB1xkHLmpjcp0hGS5I53N2Pe3tvXsfKOxl2wRN1qqO3BBkLkrEgucRvPoD7tzgu3ibhApFvkDBIwQTpL0LwVMte9-0yo8SuPz-qZx-Kg8qJURPNnlCZLst-V-L_zV9AYDEeII</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>197436740</pqid></control><display><type>article</type><title>A low-level memory model and an accompanying reachability predicate</title><source>Springer Nature</source><creator>Chatterjee, Shaunak ; Lahiri, Shuvendu K. ; Qadeer, Shaz ; Rakamarić, Zvonimir</creator><creatorcontrib>Chatterjee, Shaunak ; Lahiri, Shuvendu K. ; Qadeer, Shaz ; Rakamarić, Zvonimir</creatorcontrib><description>Reasoning about program heap, especially if it involves handling unbounded, dynamically heap-allocated data structures such as linked lists and arrays, is challenging. Furthermore, sound analysis that precisely models heap becomes significantly more challenging in the presence of low-level pointer manipulation that is prevalent in systems software. The
reachability
predicate has already proved to be useful for reasoning about the heap in type-safe languages where memory is manipulated by dereferencing object fields. In this paper, we present a memory model suitable for reasoning about low-level pointer operations that is accompanied by a formalization of the reachability predicate in the presence of internal pointers and pointer arithmetic. We have designed an annotation language for C programs that makes use of the new predicate. This language enables us to specify properties of many interesting data structures present in the Windows kernel. We present our experience with a prototype verifier on a set of illustrative C benchmarks.</description><identifier>ISSN: 1433-2779</identifier><identifier>EISSN: 1433-2787</identifier><identifier>DOI: 10.1007/s10009-009-0098-1</identifier><language>eng</language><publisher>Berlin/Heidelberg: Springer-Verlag</publisher><subject>Computer memory ; Computer Science ; Information processing ; Software Engineering ; Software Engineering/Programming and Operating Systems ; Special Section on TACAS07 ; Theory of Computation</subject><ispartof>International journal on software tools for technology transfer, 2009-04, Vol.11 (2), p.105-116</ispartof><rights>Springer-Verlag 2009</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c2611-cce5100417fd48aae59e4fc47a0547b9510ad2714bf10f20104fdd3c27ed04ec3</citedby><cites>FETCH-LOGICAL-c2611-cce5100417fd48aae59e4fc47a0547b9510ad2714bf10f20104fdd3c27ed04ec3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,780,784,27924,27925</link.rule.ids></links><search><creatorcontrib>Chatterjee, Shaunak</creatorcontrib><creatorcontrib>Lahiri, Shuvendu K.</creatorcontrib><creatorcontrib>Qadeer, Shaz</creatorcontrib><creatorcontrib>Rakamarić, Zvonimir</creatorcontrib><title>A low-level memory model and an accompanying reachability predicate</title><title>International journal on software tools for technology transfer</title><addtitle>Int J Softw Tools Technol Transfer</addtitle><description>Reasoning about program heap, especially if it involves handling unbounded, dynamically heap-allocated data structures such as linked lists and arrays, is challenging. Furthermore, sound analysis that precisely models heap becomes significantly more challenging in the presence of low-level pointer manipulation that is prevalent in systems software. The
reachability
predicate has already proved to be useful for reasoning about the heap in type-safe languages where memory is manipulated by dereferencing object fields. In this paper, we present a memory model suitable for reasoning about low-level pointer operations that is accompanied by a formalization of the reachability predicate in the presence of internal pointers and pointer arithmetic. We have designed an annotation language for C programs that makes use of the new predicate. This language enables us to specify properties of many interesting data structures present in the Windows kernel. We present our experience with a prototype verifier on a set of illustrative C benchmarks.</description><subject>Computer memory</subject><subject>Computer Science</subject><subject>Information processing</subject><subject>Software Engineering</subject><subject>Software Engineering/Programming and Operating Systems</subject><subject>Special Section on TACAS07</subject><subject>Theory of Computation</subject><issn>1433-2779</issn><issn>1433-2787</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2009</creationdate><recordtype>article</recordtype><recordid>eNp1kE1LxDAQhoMouK7-AG_Fg7dqpk132uOy-AULXvQcssl07ZI2Ndkq_fdGuogIHt75YJ53GIaxS-A3wDnehhh5lR5UpnDEZiDyPM2wxOOfGqtTdhbCjnPABVYztlom1n2mlj7IJi21zo9J60xsVGeiEqW1a3vVjU23TTwp_aY2jW32Y9J7Mo1WezpnJ7WygS4Oec5e7-9eVo_p-vnhabVcpzpbAKRaUxGvFIC1EaVSVFQkai1Q8ULgpopDZTIEsamB1xkHLmpjcp0hGS5I53N2Pe3tvXsfKOxl2wRN1qqO3BBkLkrEgucRvPoD7tzgu3ibhApFvkDBIwQTpL0LwVMte9-0yo8SuPz-qZx-Kg8qJURPNnlCZLst-V-L_zV9AYDEeII</recordid><startdate>20090401</startdate><enddate>20090401</enddate><creator>Chatterjee, Shaunak</creator><creator>Lahiri, Shuvendu K.</creator><creator>Qadeer, Shaz</creator><creator>Rakamarić, Zvonimir</creator><general>Springer-Verlag</general><general>Springer Nature B.V</general><scope>AAYXX</scope><scope>CITATION</scope><scope>3V.</scope><scope>7SC</scope><scope>7XB</scope><scope>8AL</scope><scope>8AO</scope><scope>8FD</scope><scope>8FE</scope><scope>8FG</scope><scope>8FK</scope><scope>8G5</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>GNUQQ</scope><scope>GUQSH</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K7-</scope><scope>L6V</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>M0N</scope><scope>M2O</scope><scope>M7S</scope><scope>MBDVC</scope><scope>P5Z</scope><scope>P62</scope><scope>PADUT</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope><scope>Q9U</scope></search><sort><creationdate>20090401</creationdate><title>A low-level memory model and an accompanying reachability predicate</title><author>Chatterjee, Shaunak ; Lahiri, Shuvendu K. ; Qadeer, Shaz ; Rakamarić, Zvonimir</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c2611-cce5100417fd48aae59e4fc47a0547b9510ad2714bf10f20104fdd3c27ed04ec3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2009</creationdate><topic>Computer memory</topic><topic>Computer Science</topic><topic>Information processing</topic><topic>Software Engineering</topic><topic>Software Engineering/Programming and Operating Systems</topic><topic>Special Section on TACAS07</topic><topic>Theory of Computation</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Chatterjee, Shaunak</creatorcontrib><creatorcontrib>Lahiri, Shuvendu K.</creatorcontrib><creatorcontrib>Qadeer, Shaz</creatorcontrib><creatorcontrib>Rakamarić, Zvonimir</creatorcontrib><collection>CrossRef</collection><collection>ProQuest Central (Corporate)</collection><collection>Computer and Information Systems Abstracts</collection><collection>ProQuest Central (purchase pre-March 2016)</collection><collection>Computing Database (Alumni Edition)</collection><collection>ProQuest Pharma Collection</collection><collection>Technology Research Database</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>ProQuest Central (Alumni) (purchase pre-March 2016)</collection><collection>Research Library (Alumni Edition)</collection><collection>Materials Science & Engineering Collection</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>Advanced Technologies & Aerospace Collection</collection><collection>ProQuest Central Essentials</collection><collection>AUTh Library subscriptions: ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central</collection><collection>ProQuest Central Student</collection><collection>Research Library Prep</collection><collection>SciTech Premium Collection (Proquest) (PQ_SDU_P3)</collection><collection>ProQuest Computer Science Collection</collection><collection>Computer Science Database</collection><collection>ProQuest Engineering Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Computing Database</collection><collection>ProQuest_Research Library</collection><collection>Engineering Database</collection><collection>Research Library (Corporate)</collection><collection>Advanced Technologies & Aerospace Database</collection><collection>ProQuest Advanced Technologies & Aerospace Collection</collection><collection>Research Library China</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><collection>ProQuest Central Basic</collection><jtitle>International journal on software tools for technology transfer</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Chatterjee, Shaunak</au><au>Lahiri, Shuvendu K.</au><au>Qadeer, Shaz</au><au>Rakamarić, Zvonimir</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>A low-level memory model and an accompanying reachability predicate</atitle><jtitle>International journal on software tools for technology transfer</jtitle><stitle>Int J Softw Tools Technol Transfer</stitle><date>2009-04-01</date><risdate>2009</risdate><volume>11</volume><issue>2</issue><spage>105</spage><epage>116</epage><pages>105-116</pages><issn>1433-2779</issn><eissn>1433-2787</eissn><abstract>Reasoning about program heap, especially if it involves handling unbounded, dynamically heap-allocated data structures such as linked lists and arrays, is challenging. Furthermore, sound analysis that precisely models heap becomes significantly more challenging in the presence of low-level pointer manipulation that is prevalent in systems software. The
reachability
predicate has already proved to be useful for reasoning about the heap in type-safe languages where memory is manipulated by dereferencing object fields. In this paper, we present a memory model suitable for reasoning about low-level pointer operations that is accompanied by a formalization of the reachability predicate in the presence of internal pointers and pointer arithmetic. We have designed an annotation language for C programs that makes use of the new predicate. This language enables us to specify properties of many interesting data structures present in the Windows kernel. We present our experience with a prototype verifier on a set of illustrative C benchmarks.</abstract><cop>Berlin/Heidelberg</cop><pub>Springer-Verlag</pub><doi>10.1007/s10009-009-0098-1</doi><tpages>12</tpages></addata></record> |
fulltext | fulltext |
identifier | ISSN: 1433-2779 |
ispartof | International journal on software tools for technology transfer, 2009-04, Vol.11 (2), p.105-116 |
issn | 1433-2779 1433-2787 |
language | eng |
recordid | cdi_proquest_miscellaneous_34877503 |
source | Springer Nature |
subjects | Computer memory Computer Science Information processing Software Engineering Software Engineering/Programming and Operating Systems Special Section on TACAS07 Theory of Computation |
title | A low-level memory model and an accompanying reachability predicate |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-07T13%3A40%3A22IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=A%20low-level%20memory%20model%20and%20an%20accompanying%20reachability%20predicate&rft.jtitle=International%20journal%20on%20software%20tools%20for%20technology%20transfer&rft.au=Chatterjee,%20Shaunak&rft.date=2009-04-01&rft.volume=11&rft.issue=2&rft.spage=105&rft.epage=116&rft.pages=105-116&rft.issn=1433-2779&rft.eissn=1433-2787&rft_id=info:doi/10.1007/s10009-009-0098-1&rft_dat=%3Cproquest_cross%3E34877503%3C/proquest_cross%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-c2611-cce5100417fd48aae59e4fc47a0547b9510ad2714bf10f20104fdd3c27ed04ec3%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=197436740&rft_id=info:pmid/&rfr_iscdi=true |